The build log and emerge outputs are attached, this is the error: Note that the same version of cmucl installed on my x86 gentoo laptop, error free. * ERROR: dev-lisp/cmucl-20b_p001 failed (install phase): * Cannot fix site-init.lisp * * Call stack: * ebuild.sh, line 56: Called src_install * environment, line 2240: Called die * The specific snippet of code: * sed "s,@PF@,${PF},g ; s,@VERSION@,$(date +%F),g" < "${FILESDIR}"/site-init.lisp.in > "${D}"/usr/$(get_libdir)/cmucl/site-init.lisp || die "Cannot fix site-init.lisp"; Reproducible: Always Steps to Reproduce: 1. emerge cmucl Actual Results: Error is thrown consistently. Expected Results: Properly installed. $ emerge --info Portage 2.1.10.11 (default/linux/amd64/10.0/desktop/kde, gcc-4.4.5, glibc-2.12.2-r0, 2.6.39-gentoo-r3-brian-desktop x86_64) ================================================================= System uname: Linux-2.6.39-gentoo-r3-brian-desktop-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.0.3 Timestamp of tree: Sat, 10 Sep 2011 05:00:01 +0000 app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.6.6-r2, 2.7.1-r1, 3.1.3-r1 dev-util/cmake: 2.8.4-r1 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.0.3 sys-apps/openrc: 0.8.3-r1 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.21.1-r1 sys-devel/gcc: 4.4.5 sys-devel/gcc-config: 1.4.1-r1 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r1 sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers) sys-libs/glibc: 2.12.2 Repositories: gentoo ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j6" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 apng asf bash-completion berkdb blender-game branding bzip2 cairo caps cdda cddb cdr cli consolekit cracklib crypt cups cxx dbus declarative dga dhcp dhcpcd dri dts dvd dvdr dynamic embedded emboss encode exif expat fam fat fbcon ffmpeg firefox flac fontforge fortran g15 gd gdbm gdu gif gnutls gpm gstreamer gtk hddtemp hpn http iconv icu iostats ipod java jpeg kde kipi kpathsea latex lcd lcms libnotify lyrics lzo mad mktemp mmx mng modules mp3 mp4 mpd mpeg mudflap multilib musicbrainz mysql mysqli mysqlnd ncurses network-cron nls nptl nptlonly nsplugin nspluginwrapper nvidia offensive ogg openal opengl openmp pam pam_ssh pango pcre pdf perl phonon plasma png policykit postgres ppds pppd python qt3support qt4 rar readline sdl semantic-desktop sensord session sip smp spell sqlite sqlite3 sse sse2 ssl startup-notification svg symlink sysfs taglib tcpd theora threads tiff tools truetype udev unicode usb utils v4l v4l2 vdpau verse vim-syntax vorbis wav wifi win32 win64 x264 xattr xcb xcomposite xft xinerama xml xorg xpm xscreensaver xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="g15" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 286033 [details] build log
Created attachment 286035 [details] emerge --info =dev-lisp/cmucl-20b_p001
Created attachment 286037 [details] emerge -pqv =dev-lisp/cmucl-20b_p001
I cannot reproduce this (on x86). The file /var/tmp/portage/dev-lisp/cmucl-20b_p001/image/usr/lib/cmucl/site-init.lisp looks OK; it contains the line Read the documentation in /usr/share/doc/cmucl-20b_p001. which was produced by this sed script. The error you see must be amd64-specific. There "${D}"/usr/$(get_libdir)/cmucl/site-init.lisp must be /var/tmp/portage/dev-lisp/cmucl-20b_p001/image/usr/lib64/cmucl/site-init.lisp I suppose. Please check if you have such a file. But, unfortunately, I cannot check this myself, because I have no amd64 hardware.
I do not in fact have the file /var/tmp/portage/dev-lisp/cmucl-20b_p001/image/usr/lib64/cmucl/site-init.lisp $ ls /var/tmp/portage/dev-lisp/cmucl-20b_p001/image/usr/lib/cmucl/ internals.h internals.inc lib lisp.map lisp.nm sample-wrapper (There is only lib, not lib64). Also, $ find /var/tmp/portage/dev-lisp/cmucl-20b_p001/ -iname 'site-init.lisp' yields no results. Are there any other files from /var/tmp/portage/dev-lisp/cmucl-20b_p001 that could be useful? I can upload whichever you need to see. Thanks
I can confirm this bug. The issue is that there is only an x86 ebuild and no amd64 ebuild. So using $(get_libdir) is what causes this problem. On amd64 it will return lib64, but there is no lib64 directory created within the build, so the site-init.lisp file cannot be created. I simply changed "$(get_libdir)" to "lib" in the ebuild to work around this problem.
*** Bug 545084 has been marked as a duplicate of this bug. ***
*** Bug 547046 has been marked as a duplicate of this bug. ***
@grozin do we (common-lisp) have something to do here? I was able to build cmucl-21c on amd64 using the upstream -O1 patch https://gitlab.common-lisp.net/cmucl/cmucl/merge_requests/45, but it still fails in src_install due to the get_libdir thing. Nonetheless, the current ebuild has no amd64 keywords. I could take a look and fix the ebuild in the lisp overlay if you care. Thanks
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=619a139a19f2b798c3088d28d6956790d2e96ea8 commit 619a139a19f2b798c3088d28d6956790d2e96ea8 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-01-19 01:13:14 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-01-19 01:13:19 +0000 dev-lisp/cmucl: add -* to KEYWORDS (needs binary to bootstrap) Closes: https://bugs.gentoo.org/831436 Bug: https://bugs.gentoo.org/382463 Signed-off-by: Sam James <sam@gentoo.org> dev-lisp/cmucl/cmucl-21c.ebuild | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
(In reply to Larry the Git Cow from comment #10) > The bug has been referenced in the following commit(s): > > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > ?id=619a139a19f2b798c3088d28d6956790d2e96ea8 > > commit 619a139a19f2b798c3088d28d6956790d2e96ea8 > Author: Sam James <sam@gentoo.org> > AuthorDate: 2022-01-19 01:13:14 +0000 > Commit: Sam James <sam@gentoo.org> > CommitDate: 2022-01-19 01:13:19 +0000 > > dev-lisp/cmucl: add -* to KEYWORDS (needs binary to bootstrap) > > Closes: https://bugs.gentoo.org/831436 > Bug: https://bugs.gentoo.org/382463 > Signed-off-by: Sam James <sam@gentoo.org> > > dev-lisp/cmucl/cmucl-21c.ebuild | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Why? cmucl is a high-quality *x86-only* lisp. Porting it to amd64 is a non-trivial task because of a different number of bits in a pointer (cmucl uses some bits in pointers in funny ways), for other arches porting is, probably, impossible. It should have KEYWORDS="x86", there should be no attempts to use this ebuild on other arches, but for x86 is should work fine. I no longer have x86 systems and cannot check this now, but, when I had such a system, cmucl was one of the fastest lisps on it.
Yes, it is not compatible with amd64. This is not a bug, but a feature.
(In reply to Andrey Grozin from comment #11) > (In reply to Larry the Git Cow from comment #10) > > The bug has been referenced in the following commit(s): > > > > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > > ?id=619a139a19f2b798c3088d28d6956790d2e96ea8 > > > > commit 619a139a19f2b798c3088d28d6956790d2e96ea8 > > Author: Sam James <sam@gentoo.org> > > AuthorDate: 2022-01-19 01:13:14 +0000 > > Commit: Sam James <sam@gentoo.org> > > CommitDate: 2022-01-19 01:13:19 +0000 > > > > dev-lisp/cmucl: add -* to KEYWORDS (needs binary to bootstrap) > > > > Closes: https://bugs.gentoo.org/831436 > > Bug: https://bugs.gentoo.org/382463 > > Signed-off-by: Sam James <sam@gentoo.org> > > > > dev-lisp/cmucl/cmucl-21c.ebuild | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > Why? cmucl is a high-quality *x86-only* lisp. Porting it to amd64 is a > non-trivial task because of a different number of bits in a pointer (cmucl > uses some bits in pointers in funny ways), for other arches porting is, > probably, impossible. It should have KEYWORDS="x86", there should be no > attempts to use this ebuild on other arches, but for x86 is should work > fine. I no longer have x86 systems and cannot check this now, but, when I > had such a system, cmucl was one of the fastest lisps on it. I think you've misundestood the commit. It was marking it as -* to ensure that nobody attempts to keyword it accidentally (like what happened in bug 831436). It does _not_ prevent installing it on x86, as it has "-* .. x86". i.e. the commit just does exactly what you suggested, prevent people from trying it on other arches accidentally. (In reply to Andrey Grozin from comment #12) > Yes, it is not compatible with amd64. This is not a bug, but a feature. Not convinced it's actually a "feature", just a property and a known one, but fine. :)