Hello, When trying to compile dev-scheme/racket-8.2-r1 I get this ``` >>> Completed installing dev-scheme/racket-8.2-r1 into /tmp/portage/dev-scheme/racket-8.2-r1/image * Final size of build directory: 316796 KiB (309.3 MiB) * Final size of installed tree: 167280 KiB (163.3 MiB) strip: x86_64-pc-linux-gnu-strip --strip-unneeded -N __gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R .note.gnu.gold-version /usr/lib64/racket/starter /usr/lib64/libracketcs.a /usr/bin/racket /usr/lib64/racket/gracket >>> Installing (1 of 1) dev-scheme/racket-8.2-r1::gentoo * checking 1941 files for package collisions >>> Merging dev-scheme/racket-8.2-r1 to / We are installing the same SLOT: 0/8.2 * Keeping old file: /usr/share/racket/info-cache.rktd mv: cannot stat '/tmp/portage/dev-scheme/racket-8.2-r1/image//usr/share/racket/info-cache.rktd': No such file or directory * ERROR: dev-scheme/racket-8.2-r1::gentoo failed (preinst phase): * failed to create a backup of /usr/share/racket/info-cache.rktd * * Call stack: * ebuild.sh, line 127: Called pkg_preinst * environment, line 1012: Called die * The specific snippet of code: * mv "${ED}"/${rktd} "${ED}"/${rktd}.bak || die "failed to create a backup of ${rktd}"; * * If you need support, post the output of `emerge --info '=dev-scheme/racket-8.2-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-scheme/racket-8.2-r1::gentoo'`. * The complete build log is located at '/tmp/portage/dev-scheme/racket-8.2-r1/temp/build.log'. * The ebuild environment file is located at '/tmp/portage/dev-scheme/racket-8.2-r1/temp/environment'. * Working directory: '/tmp/portage/dev-scheme/racket-8.2-r1/empty' * S: '/tmp/portage/dev-scheme/racket-8.2-r1/work/racket-8.2/src' !!! FAILED preinst: 1 >>> Failed to install dev-scheme/racket-8.2-r1 * GNU info directory index is up-to-date. ``` When I try to compile with USE=minimal, tried other flags, this is the only one which was doing this weird thing. Then I just switched to other flags without `minimal` and it worked, seems like there is a bug in the ebuild itself. Suggested fix: Check if `minimal` USE flag is enabled, if not don't create a backup of /usr/share/racket/info-cache.rktd ``` if ! use minimal; then mv "${ED}"/${rktd} "${ED}"/${rktd}.bak || die "failed to create a backup of ${rktd}" fi ``` This is how my racket build looks like: ``` [ebuild R ] dev-scheme/racket-8.2-r1 USE="chez doc futures jit places threads -X* -minimal" ``` When broken: ``` [ebuild R ] dev-scheme/racket-8.2-r1 USE="chez doc futures jit minimal* places threads -X*" ``` Steps to reproduce: 1. Add the `minimal` USE flag to racket's package.use 2. Emerge racket 3. Wait for it to compile 4. Watch it fail at the end of the installation
FYI: `dev-scheme/racket-8.3-r1` does NOT have the same issue as `dev-scheme/racket-8.2-r1`
FYI: `dev-scheme/racket-8.3-r1` does NOT have the same issue as `dev-scheme/racket-8.2-r1` ``` [ebuild R ] dev-scheme/racket-8.3-r1 USE="chez doc futures jit minimal places threads" ```
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f8757ad71d16fb4963f9933000d3b99a846a025c commit f8757ad71d16fb4963f9933000d3b99a846a025c Author: Maciej Barć <xgqt@gentoo.org> AuthorDate: 2021-12-14 08:13:41 +0000 Commit: Maciej Barć <xgqt@gentoo.org> CommitDate: 2021-12-14 08:53:36 +0000 dev-scheme/racket: fix pkg_preinst; do not die on pkg_config Closes: https://bugs.gentoo.org/829121 Signed-off-by: Maciej Barć <xgqt@gentoo.org> dev-scheme/racket/{racket-8.2-r1.ebuild => racket-8.2-r2.ebuild} | 8 ++++---- dev-scheme/racket/{racket-8.3-r1.ebuild => racket-8.3-r2.ebuild} | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-)
> FYI: `dev-scheme/racket-8.3-r1` does NOT have the same issue as `dev-scheme/racket-8.2-r1` the reason why this worked is because we copy the pkgdb files only when there is NO SLOT change anyway, thanks for reporting this