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

* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
  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
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-06-26 13:24 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 56222

> Date: Sat, 25 Jun 2022 15:40:08 -0500
> From: Paul Eggert <eggert@cs.ucla.edu>
> 
> 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.

Thanks, I cherry-picked to the emacs-28 branch.

(Yes, there will be at least Emacs 28.2.)





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

* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
  2022-06-26 13:24 ` Eli Zaretskii
@ 2022-06-26 15:13   ` Paul Eggert
  2022-06-26 15:19     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Eggert @ 2022-06-26 15:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 56222

On 6/26/22 08:24, Eli Zaretskii wrote:
>
> Thanks, I cherry-picked to the emacs-28 branch.
>
> (Yes, there will be at least Emacs 28.2.)

Thanks, that's enough to get "make" and "make install" to work on 
Solaris 10.

Is it also important for "make check" and "make clean" to work? If so, 
we should also backport these two patches. Without the first patch, 
"make check" doesn't run most of the tests.

https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=b0ed2d1f46d27885a19ae6941b6ea5276f0050e0

https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=78c0c8673bba086842ef9ea57f44f446558e5ebf






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

* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
  2022-06-26 15:13   ` Paul Eggert
@ 2022-06-26 15:19     ` Eli Zaretskii
  2022-06-26 18:10       ` Paul Eggert
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-06-26 15:19 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 56222

> Date: Sun, 26 Jun 2022 10:13:11 -0500
> Cc: 56222@debbugs.gnu.org
> From: Paul Eggert <eggert@cs.ucla.edu>
> 
> On 6/26/22 08:24, Eli Zaretskii wrote:
> >
> > Thanks, I cherry-picked to the emacs-28 branch.
> >
> > (Yes, there will be at least Emacs 28.2.)
> 
> Thanks, that's enough to get "make" and "make install" to work on 
> Solaris 10.
> 
> Is it also important for "make check" and "make clean" to work? If so, 
> we should also backport these two patches. Without the first patch, 
> "make check" doesn't run most of the tests.

I don't know how important these two are.  Do I understand correctly
that these two problems could be worked around by installing GNU Find?





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

* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
  2022-06-26 15:19     ` Eli Zaretskii
@ 2022-06-26 18:10       ` Paul Eggert
  2022-06-26 18:37         ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Eggert @ 2022-06-26 18:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 56222

On 6/26/22 10:19, Eli Zaretskii wrote:
> Do I understand correctly
> that these two problems could be worked around by installing GNU Find?

Yes, just as the tarball problem can be worked around by installing 
Solaris 10's optional GNU tar package. However, GNU findutils is not 
packaged as part of Solaris 10, not even as an optional package; also, 
obtaining and building GNU findutils requires first obtaining and 
building one non-GNU tool (XZ Utils) that findutils depends on but that 
is not in Solaris 10 even as an option.

In short although GNU findutils is doable, it's a hassle that is better 
avoided.






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

* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
  2022-06-26 18:10       ` Paul Eggert
@ 2022-06-26 18:37         ` Eli Zaretskii
  2022-06-26 22:46           ` Paul Eggert
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-06-26 18:37 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 56222

> Date: Sun, 26 Jun 2022 13:10:58 -0500
> Cc: 56222@debbugs.gnu.org
> From: Paul Eggert <eggert@cs.ucla.edu>
> 
> On 6/26/22 10:19, Eli Zaretskii wrote:
> > Do I understand correctly
> > that these two problems could be worked around by installing GNU Find?
> 
> Yes, just as the tarball problem can be worked around by installing 
> Solaris 10's optional GNU tar package.

Being unable to unpack a tarball is much worse that being unable to
run the test suite or clean the build tree, though.  I'm sure some
people won't even know how to proceed in that situation.

> In short although GNU findutils is doable, it's a hassle that is better 
> avoided.

I'm reluctant to make changes in the build scripts on the release
branch at this point.  make-dist only affects Emacs maintainers who
prepare the tarball, so having some trouble there is not a
catastrophe.  But a problem in Makefile's will affect everyone who
builds the release.  So I'd prefer to keep those two changes on master
for now.





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

* bug#56222: Emacs 28.1 distribution tarball does not unpack on Solaris 10
  2022-06-26 18:37         ` Eli Zaretskii
@ 2022-06-26 22:46           ` Paul Eggert
  0 siblings, 0 replies; 7+ messages in thread
From: Paul Eggert @ 2022-06-26 22:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 56222

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

On 6/26/22 13:37, Eli Zaretskii wrote:
> I'm reluctant to make changes in the build scripts on the release
> branch at this point.

OK, I installed a couple of notes in etc/PROBLEMS instead; see attached. 
One is for the problems with "make clean" and "make check". The other is 
for a build failure I noticed while doing all this.

[-- Attachment #2: 0001-Mention-further-crashes-on-Solaris-10.patch --]
[-- Type: text/x-patch, Size: 1030 bytes --]

From ade34cf8217e40ea27cde7c12ad6071cee283bb1 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 26 Jun 2022 17:23:20 -0500
Subject: [PATCH 1/2] Mention further crashes on Solaris 10

---
 etc/PROBLEMS | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 8a260c3177..c2164094d7 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2400,6 +2400,11 @@ Definitions" to make them defined.
 We list bugs in current versions here.  See also the section on legacy
 systems.
 
+*** On Solaris 10 sparc, Emacs crashes during the build while saving state.
+This was observed for Emacs 28.1 on Solaris 10 32-bit sparc, with
+Oracle Developer Studio 12.6 (Sun C 5.15).  The failure was intermittent,
+and running GNU Make a second time would typically finish the build.
+
 *** On Solaris 10, Emacs crashes during the build process.
 (This applies only with './configure --with-unexec=yes', which is rare.)
 This was reported for Emacs 25.2 on i386-pc-solaris2.10 with Sun
-- 
2.36.1


[-- Attachment #3: 0002-Mention-Solaris-10-make-clean-and-make-check.patch --]
[-- Type: text/x-patch, Size: 1051 bytes --]

From c66b90a534ed08762d57f8f78224dbd6dd6a1b68 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 26 Jun 2022 17:36:22 -0500
Subject: [PATCH 2/2] Mention Solaris 10 'make clean' and 'make check'

---
 etc/PROBLEMS | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index c2164094d7..f935b9c930 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2400,6 +2400,12 @@ Definitions" to make them defined.
 We list bugs in current versions here.  See also the section on legacy
 systems.
 
+*** On Solaris 10, 'make clean' and 'make check' do not work.
+The Emacs build procedure uses ’find ... -path ...', which Solaris 10
+'find' does not support.  You can work around the problem by
+installing GNU 'find' in your PATH.  This problem should be fixed in
+Emacs 29.
+
 *** On Solaris 10 sparc, Emacs crashes during the build while saving state.
 This was observed for Emacs 28.1 on Solaris 10 32-bit sparc, with
 Oracle Developer Studio 12.6 (Sun C 5.15).  The failure was intermittent,
-- 
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).