I am running on MacOS Catalina, where I run bootstrap-prefix.sh from within a Docker container running Gentoo Linux, with the EPREFIX target as a bind volume to the Mac filesystem. It seems that tar is failing to change the modification date of symlinks via docker bind mount on Mac filesystems Here is a simplified typescript to understand the situation: ``` MacCatalina $ pwd /Users/chuot MacCatalina $ docker run -d --name gentoo -v /Users/chuot:/home/chuot gentoo/stage3-amd64-nomultilib sleep infinity MacCatalina $ docker exec -it gentoo bash GentooContainer # useradd chuot GentooContainer # su - chuot GentooContainer $ pwd /home/chuot GentooContainer $ ./bootstrap-prefix.sh => this will install prefix in /home/chuot/gentoo which is a bind mount to /Users/chuot ... now there is an error when untaring prefix-portage: * Bootstrapping prefix-portage * Fetching prefix-portage-2.3.100.tar.bz2 ... * Unpacking prefix-portage tar: prefix-portage-2.3.100/bin/ebuild-helpers/newlib.so: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/ewarn: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/eerror: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newdoc: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newman: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newconfd: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/eqawarn: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newenvd: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/einfo: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/unprivileged/chgrp: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newlib.a: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newbin: Cannot utime: No such file or directory tar: prefix-portage-2.3.100/bin/ebuild-helpers/newinitd: Cannot utime: No such file or directory tar: Exiting with failure status due to previous errors I tried running bootstrap_stage1_log but that failed :( I have no clue, really. Please find friendly folks in #gentoo-prefix on irc.gentoo.org, gentoo-alt@lists.gentoo.org mailing list, or file a bug at bugs.gentoo.org under Gentoo/Alt, Prefix Support. Sorry that I have failed you master. I shall now return to my humble cave. You can find a log of what happened in /home/chuot/gentoo/stage1.log GentooContainer $ ``` To solve the issue, I added -m to the tar command line: ``` --- bootstrap-prefix.sh.orig 2020-07-02 18:44:18.000000000 +0200 +++ bootstrap-prefix.sh 2020-07-02 18:46:04.000000000 +0200 @@ -647,7 +647,7 @@ rm -rf "${S}" >& /dev/null mkdir -p "${S}" >& /dev/null cd "${S}" - bzip2 -dc "${DISTDIR}/${A}" | tar -xf - || return 1 + bzip2 -dc "${DISTDIR}/${A}" | tar -xmf - || return 1 S="${S}/prefix-portage-${PV}" cd "${S}" ```
Of course, subsequent tar commands are failing as well (when trying to build bash). So I gave up. Probably a slight patch of tar could have made it. For now, instead of a bind mount, I've installed the prefix in a real docker volume and I was able to complete the bootstrap.
I don't think this is a configuration we want to support, sorry.