On 01/22/2019 04:17 AM, Bruce Dubbs wrote:
On 01/22/2019 03:36 AM, Pierre Labastie via blfs-dev wrote:
Maybe this should go to support, but this might also be an issue with
tar or
git man-pages.
Tar version: 1.31
git version: 2.20.1
Running:
-----
sudo tar -xf ../git-manpages-2.20.1.tar.xz \
-C /usr/share/man --no-same-owner --no-overwrite-dir
-----
just returns:
-----
Aborted
-----
the exit code is 134 (means SIGABRT was received)
and nothing is extracted.
Adding -v to the command, the output is just:
-----
./
Aborted
-----
Running:
-----
tar -tvf git-manpages-2.20.1.tar.xz
-----
shows that all paths begin with ./ and that all directories (including
./)
have mode drwxr-sr-x. So the set-group-id flag might be the culprit.
I've tried --no-same-permission, to no avail.
using --strip-components=1 allows the files to be extracted, but the
set-group-id flag is set on the extracted files.
If I run the command with these 2 switches: --strip-components=1
--no-same-permission and remove the -C /usr/share/man (that is extract
to the
current directory), it works, and the extracted files have the right
permissions (drwxr-xr-x) and owner root:root. But if I run the same
command
again (that is, now man[157] exists), the command aborts.
But with the /usr/share/man, the command still aborts!
The only way I've found to install the man pages (besides installing
asciidoc
and generating them) is to extract them as a user to the current
directory,
chown them to root:root, and copy them to where they belong.
specifically:
install -dvm 755 man
tar -xf ../git-manpages-2.20.1.tar.xz -C man
chown -Rv root:root man
cp -Rv man /usr/share
This is an issue with tar-1.31. I am using the current instructions
without problem with tar-1.30.
http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00015.html
Apparently a workaround is using the -U option until the next tar release.
No it still fails with -U. Here is the fix:
diff --git a/src/extract.c b/src/extract.c
index 090b866..8276f8f 100644
--- a/src/extract.c
+++ b/src/extract.c
@@ -787,7 +787,7 @@ maybe_recoverable (char *file_name, bool regular,
bool *interdir_made)
case UNLINK_FIRST_OLD_FILES:
break;
}
- abort (); /* notreached */
+ FALLTHROUGH;
case ENOENT:
/* Attempt creating missing intermediate directories. */
Alternatively:
sed -i 's/abort.*$/FALLTHROUGH;/' src/extract.c
Not tested.
-- Bruce
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page