unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
@ 2022-06-25 20:40 Paul Eggert
  2022-06-26 13:24 ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Eggert @ 2022-06-25 20:40 UTC (permalink / raw)
  To: 56222

[-- Attachment #1: Type: text/plain, Size: 1114 bytes --]

The Emacs 28.1 distribution tarball does not unpack correctly on Solaris 
10 when using the system-supplied 'tar' program. This is a regression 
from Emacs 27.2. I didn't pick this up when testing earlier, since I 
have GNU 'tar' in my PATH (perhaps I shouldn't; oh well). The symptoms are:

   $ gzip -d <emacs-28.1.tar.gz | tar xf -
   tar: ././@LongLink: typeflag 'L' not recognized, converting to 
regular file
   tar: ././@LongLink: typeflag 'L' not recognized, converting to 
regular file
   ...

The problem is that the Emacs 28.1 tarball (unlike 27.2) has file names 
longer than 100 bytes. These file names do not fit within traditional 
'tar' format. By default, for these files GNU Tar uses a GNU-specific 
@LongLink extension, designed long ago but not picked up by POSIX, that 
Solaris 10 tar does not understand.

A simple workaround is to tell GNU Tar to generate POSIX-standard 
tarballs instead. I installed the attached patch to Emacs master to fix 
this, and suggest that it be backported to the Emacs 28 branch if we're 
planning to generate another Emacs 28 version.

[-- Attachment #2: 0001-Port-distribution-tarball-to-Solaris-10.patch --]
[-- Type: text/x-patch, Size: 1437 bytes --]

From 4410f5d86997b6b238ff05c2ece338b28e1163b1 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sat, 25 Jun 2022 14:51:28 -0500
Subject: [PATCH] Port distribution tarball to Solaris 10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* make-dist (taropt): Use 'tar -H ustar' to generate a portable
tar file format instead of a GNU-specific format.  Needed now that
Emacs tarballs contain file names longer than 100 bytes, e.g.:
emacs-28.1/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key
emacs-28.1/test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-success.el
Without this patch, extracting a tarball on Solaris 10 fails with
many diagnostics like “tar: ././@LongLink: typeflag 'L' not
recognized, converting to regular file”.
---
 make-dist | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/make-dist b/make-dist
index 447e90f018..67e49382d0 100755
--- a/make-dist
+++ b/make-dist
@@ -485,6 +485,8 @@ tempsubdirs=
   esac
   echo "Creating tar file"
   taropt='--numeric-owner --owner=0 --group=0 --mode=go+u,go-w'
+  tar -H ustar -cf /dev/null $tempdir/src/lisp.h 2>/dev/null &&
+    taropt="$taropt -H ustar"
   tar --sort=name -cf /dev/null $tempdir/src/lisp.h 2>/dev/null &&
     taropt="$taropt --sort=name"
   [ "$verbose" = "yes" ] && taropt="$taropt --verbose"
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-06-26 22:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-25 20:40 bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10 Paul Eggert
2022-06-26 13:24 ` Eli Zaretskii
2022-06-26 15:13   ` Paul Eggert
2022-06-26 15:19     ` Eli Zaretskii
2022-06-26 18:10       ` Paul Eggert
2022-06-26 18:37         ` Eli Zaretskii
2022-06-26 22:46           ` Paul Eggert

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).