From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 4KqoJrN/m2F+CQAAgWs5BA (envelope-from ) for ; Mon, 22 Nov 2021 12:32:03 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id CLxGIrN/m2HRUQAAbx9fmQ (envelope-from ) for ; Mon, 22 Nov 2021 11:32:03 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3095E5037 for ; Mon, 22 Nov 2021 12:32:03 +0100 (CET) Received: from localhost ([::1]:37126 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mp7YI-0004Nb-8T for larch@yhetil.org; Mon, 22 Nov 2021 06:32:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35794) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mp7Y6-0004NB-Kd for guix-devel@gnu.org; Mon, 22 Nov 2021 06:31:51 -0500 Received: from [2001:470:142:3::e] (port=57852 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mp7Y6-0006d6-4Z; Mon, 22 Nov 2021 06:31:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=O6BfAYiGArZNUI3k5/t9vQXn1+klNwLNC/pWdMc8hjc=; b=eRzr/JDwXpYepvBtCvDQ eYzEcQiWNnmbGvQMADuyRMzCYwfIlmGX3iuWA4lOrTANU3/QXS17xUZ0G4J5WqtYXbbDbt3E64K8e hhrzx1VLqD0UdeRMEMdpiPcvOTU7K8pxah8BGUCceEpiwKcDi1JWqCvvLRPZQvDpwfuSq4gg0OYLm 1L9jKh7THhMoCii7S6agOzSlcYdQJaTlK1bV0OIYCy6xaB4YjTb3q7XqjHbqAGF1ijrloTnyLE95v OUWNQWNfGbX2XNLt7DKIcb+azV0sfaNvuTIJO27fPYA8q0Hitc6xc78LnEpI2PGdgtSz9SIlQ59bc SRvUbbyh/Ld70g==; Received: from [193.50.110.200] (port=54058 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mp7Y5-0006gs-Tp; Mon, 22 Nov 2021 06:31:50 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxim Cournoyer Subject: Re: default tar format for "make dist" and patch file length References: <87sfvxhrav.fsf@ponder> <874k8bxbit.fsf@gnu.org> <87fsru8l05.fsf@ponder> <87zgpxaqvn.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 Frimaire an 230 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 22 Nov 2021 12:31:46 +0100 In-Reply-To: <87zgpxaqvn.fsf@gmail.com> (Maxim Cournoyer's message of "Sun, 21 Nov 2021 21:03:24 -0500") Message-ID: <871r38pgt9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vagrant Cascadian , guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1637580723; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=O6BfAYiGArZNUI3k5/t9vQXn1+klNwLNC/pWdMc8hjc=; b=ePLJh9/Tp0QpRqi6TK6PS0tZzXoBGryvID+BnJXJVDY96FVLp8brFquSKvo4CQHYK9nOHJ ZvLxPnsc9GoLVBNuUU3Husc8VgGWs82t6zZhXIzb8Ckm9QAD2X8Ueev0RUv+DHtsiZ5t2O O91q1d9QUjYg8HLum0DScfZ716aLqQ52dOqas4CacNQvFIH7mlY6YiBJRAAnTbpn/0NPaZ WIadQQ3aw3bjENJAnjoYuxP54x2qRvclYVIAjfgoKShIromdsE0nU/slV1XfLNDa8VCFmQ RG2+yR+ajNe6vlsK/89O2MtTpi5MwV2VDvEhR5E8HMg86RJjJRWm77qlqDOonA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1637580723; a=rsa-sha256; cv=none; b=I2SnezeUMj4Vc8BqC+HHB71YY8dVOxpe+IcboWYVIzqU9Z++7XaBSOyQ+nSqbC9xJhQ3Wr AORgHLujMUnjCmj49to3p9KDZJfQAy4MJNIPVlb/4/QVaJKUDggB9qOSY8fGnZ1J6SjixY xE4dBilLgL3QLHZwQzekEyBD4r+L2pe6D4O5/WjWDVjb7in6pLc+YvYAtt+LWauTYi/87V 9GwzdP2KxBaQJkLdPmn7h8HaKeeY4al+j46U36SDqhm3bPIls7NdZAe2ZKC9+P6O+efBdB qo2sLxJvNuZ2Uzh3ZMM5jscf7SBiZGhRA9aWffjTd8iQv5Styzo5G+k/1SVzGA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b="eRzr/JDw"; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.28 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b="eRzr/JDw"; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 3095E5037 X-Spam-Score: -5.28 X-Migadu-Scanner: scn0.migadu.com X-TUID: DlSyalCqh23W --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi! Maxim Cournoyer skribis: > Reading the Automake manual (info (automake) List of Automake options) I > stumbled on this: > > =E2=80=98filename-length-max=3D99=E2=80=99 > Abort if file names longer than 99 characters are found during > =E2=80=98make dist=E2=80=99. Such long file names are generally= considered not to > be portable in tarballs. See the =E2=80=98tar-v7=E2=80=99 and = =E2=80=98tar-ustar=E2=80=99 options > below. This option should be used in the top-level =E2=80=98Mak= efile.am=E2=80=99 > or as an argument of =E2=80=98AM_INIT_AUTOMAKE=E2=80=99 in =E2= =80=98configure.ac=E2=80=99; it will > be ignored otherwise. It will also be ignored in sub-packages of > nested packages (*note Subpackages::). > > This makes me think that Automake is simply configured out of the box to > keep the file names as portable as possible (it doesn't mean it uses > tar-v7 itself, IIUC, though I haven't checked). Oh, looks like we could add the =E2=80=98tar-ustar=E2=80=99 option and be d= one with it (info "(automake) List of Automake options"): =E2=80=98tar-ustar=E2=80=99 selects the ustar format defined by POSIX = 1003.1-1988. This format is old enough to be portable: As of 2018, it is supported by the native =E2=80=98tar=E2=80=99 command on GNU, FreeBSD,= NetBSD, OpenBSD, AIX, HP-UX, and Solaris, at least. It fully supports empty directories. It can store file names with up to 256 characters, provided that the file name can be split at directory separator in two parts, first of them being at most 155 bytes long. So, in most cases the maximum file name length will be shorter than 256 characters. Any objections against the patch below? --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/configure.ac b/configure.ac index 84592f6041..341cff8fbd 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ AC_INIT([GNU Guix], [https://www.gnu.org/software/guix/]) AC_CONFIG_AUX_DIR([build-aux]) -AM_INIT_AUTOMAKE([1.14 gnu silent-rules subdir-objects \ +AM_INIT_AUTOMAKE([1.14 gnu tar-ustar silent-rules subdir-objects \ color-tests parallel-tests -Woverride -Wno-portability]) # Enable silent rules by default. --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I tried it and there=E2=80=99s no tar warning and the file looks just fine, including the long file names: --8<---------------cut here---------------start------------->8--- $ make dist -j5 [=E2=80=A6] make[2]: Leaving directory '/home/ludo/src/guix' tardir=3Dguix-1.3.0.8612-7cad44-dirty && tar --format=3Dustar -chf - "$tard= ir" | eval GZIP=3D gzip --best -c >guix-1.3.0.8612-7cad44-dirty.tar.gz make[1]: Leaving directory '/home/ludo/src/guix' if test -d "guix-1.3.0.8612-7cad44-dirty"; then find "guix-1.3.0.8612-7cad4= 4-dirty" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "guix-1.3.0.= 8612-7cad44-dirty" || { sleep 5 && rm -rf "guix-1.3.0.8612-7cad44-dirty"; }= ; else :; fi $ tar tvf guix-1.3.0.8612-7cad44-dirty.tar.gz |grep patches/xplanet -rw-r--r-- ludo/users 1252 2020-04-06 00:14 guix-1.3.0.8612-7cad44-dirt= y/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch -rw-r--r-- ludo/users 765 2020-04-06 00:14 guix-1.3.0.8612-7cad44-dirt= y/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch -rw-r--r-- ludo/users 6990 2020-04-06 00:14 guix-1.3.0.8612-7cad44-dirt= y/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch -rw-r--r-- ludo/users 783 2020-04-06 00:14 guix-1.3.0.8612-7cad44-dirt= y/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch --8<---------------cut here---------------end--------------->8--- > Seems a good thing to be as portable as can be, especially since 200 > chars patch file names wouldn't look good in the sources anyway ;-). I don=E2=80=99t think we care about =E2=80=9Cportability=E2=80=9D as unders= tood in the context of Automake, which roughly translates to =E2=80=9Csupport SunOS 2 and HP-UX= =E2=80=99s 1991 =E2=80=98tar=E2=80=99 implementation=E2=80=9D. :-) Thanks, Ludo=E2=80=99. --=-=-=--