System: Portage 3.0.30 (python 3.10.6-final-0, default/linux/amd64/17.0/musl/hardened, gcc-11.3.0, musl-1.2.3, 5.15.59-gentoo-apu2.0 x86_64) compile stops with error Reproducible: Always Steps to Reproduce: 1. compile package: emerge -1 sys-libs/pam 2. compile breaks nearly the end with error: undefined reference to `crypt_gensalt_rn'. Actual Results: libtool: warning: relinking 'pam_unix.la' libtool: install: (cd /var/tmp/portage/sys-libs/pam-1.5.2-r1/work/Linux-PAM-1.5.2-abi_x86_64.amd64/modules/pam_unix; /bin/sh "/var/tmp/portage/sys-libs/pam-1.5.2-r1/work/Linux-PAM-1.5.2-abi_x86_64.amd64/libtool" --tag CC --mode=relink x86_64-gentoo-linux-musl-gcc -I/var/tmp/portage/sys-libs/pam-1.5.2-r1/work/Linux-PAM-1.5.2/libpam/include -I/var/tmp/portage/sys-libs/pam-1.5.2-r1/work/Linux-PAM-1.5.2/libpamc/include -DCHKPWD_HELPER=\"/sbin/unix_chkpwd\" -DUPDATE_HELPER=\"/sbin/unix_update\" -W -Wall -Wbad-function-cast -Wcast-align -Wcast-align=strict -Wcast-qual -Wdeprecated -Winline -Wmain -Wmissing-declarations -Wmissing-format-attribute -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wshadow -Wstrict-prototypes -Wuninitialized -Wwrite-strings -march=native -mtune=native -m64 -flto=auto -O2 -pipe -I/usr/include/xcrypt -no-undefined -avoid-version -module -Wl,--version-script=/var/tmp/portage/sys-libs/pam-1.5.2-r1/work/Linux-PAM-1.5.2/modules/pam_unix/../modules.map -Wl,-O2 -Wl,--as-needed -Wl,--sort-common -Wl,--enable-new-dtags -Wl,--gc-sections -Wl,-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -o pam_unix.la -rpath /lib/security bigcrypt.lo pam_unix_acct.lo pam_unix_auth.lo pam_unix_passwd.lo pam_unix_sess.lo support.lo passverify.lo yppasswd_xdr.lo md5_good.lo md5_broken.lo ../../libpam/libpam.la -L/usr/lib/xcrypt -lcrypt -inst-prefix-dir /var/tmp/portage/sys-libs/pam-1.5.2-r1/image) libtool: relink: x86_64-gentoo-linux-musl-gcc -shared -fPIC -DPIC .libs/bigcrypt.o .libs/pam_unix_acct.o .libs/pam_unix_auth.o .libs/pam_unix_passwd.o .libs/pam_unix_sess.o .libs/support.o .libs/passverify.o .libs/yppasswd_xdr.o .libs/md5_good.o .libs/md5_broken.o -Wl,--as-needed -L/var/tmp/portage/sys-libs/pam-1.5.2-r1/image/usr/lib -L/usr/lib -lpam -L/usr/lib/xcrypt -lcrypt -march=native -mtune=native -m64 -flto=auto -O2 -Wl,--version-script=/var/tmp/portage/sys-libs/pam-1.5.2-r1/work/Linux-PAM-1.5.2/modules/pam_unix/../modules.map -Wl,-O2 -Wl,--sort-common -Wl,--enable-new-dtags -Wl,--gc-sections -Wl,-flto=auto -Wl,--no-undefined -Wl,-O1 -Wl,-soname -Wl,pam_unix.so -o .libs/pam_unix.so /usr/lib/gcc/x86_64-gentoo-linux-musl/11.3.0/../../../../x86_64-gentoo-linux-musl/bin/ld: /var/tmp/portage/sys-libs/pam-1.5.2-r1/temp/ccBlONcM.ltrans0.ltrans.o: in function `_unix_verify_password': <artificial>:(.text+0x369b): undefined reference to `crypt_checksalt' /usr/lib/gcc/x86_64-gentoo-linux-musl/11.3.0/../../../../x86_64-gentoo-linux-musl/bin/ld: /var/tmp/portage/sys-libs/pam-1.5.2-r1/temp/ccBlONcM.ltrans0.ltrans.o: in function `pam_sm_chauthtok': <artificial>:(.text+0x4bcf): undefined reference to `crypt_gensalt_rn' /usr/lib/gcc/x86_64-gentoo-linux-musl/11.3.0/../../../../x86_64-gentoo-linux-musl/bin/ld: <artificial>:(.text+0x50a3): undefined reference to `crypt_gensalt_rn' collect2: error: ld returned 1 exit status libtool: error: error: relink 'pam_unix.la' with the above command before installing it make[3]: *** [Makefile:784: install-securelibLTLIBRARIES] Error 1 make[2]: *** [Makefile:1367: install-am] Error 2 make[1]: *** [Makefile:498: install-recursive] Error 1 make: *** [Makefile:498: install-recursive] Error 1 * ERROR: sys-libs/pam-1.5.2-r1::gentoo failed (install phase): * emake failed sys-libs/pam-1.5.1_p20210622-r1 - version before, compiles with same system: musl-library and my compiler and linker playground without errors. Probably at this time I'm using gcc 10 not 11.
in detail it happens after the compile phase while package install: [...] >>> Source compiled. >>> Test phase [not enabled]: sys-libs/pam-1.5.2-r1 >>> Install sys-libs/pam-1.5.2-r1 into /var/tmp/portage/sys-libs/pam-1.5.2-r1/image * abi_x86_64.amd64: running multilib-minimal_abi_src_install [...] then and after a while comes the error as described above. The package is not installed.
Please attach full build.log and emerge --info.
$ emerge --info Portage 3.0.30 (python 3.10.6-final-0, default/linux/amd64/17.0/musl/hardened, gcc-11.3.0, musl-1.2.3, 5.15.59-gentoo-apu2.0 x86_64) ================================================================= System uname: Linux-5.15.59-gentoo-apu2.0-x86_64-AMD_GX-412TC_SOC-with-libc KiB Mem: 3466684 total, 677532 free KiB Swap: 10485744 total, 10050608 free Timestamp of repository gentoo: Fri, 02 Sep 2022 00:45:01 +0000 Head commit of repository gentoo: 5fa605296d718d9b635d6d28c8c1f1f2dab495c2 Head commit of repository musl: 630364c519d028de3192f87ccc1fd7f75cac696f sh bash 5.1_p16-r1 ld GNU ld (Gentoo 2.38 p4) 2.38 app-misc/pax-utils: 1.3.4::gentoo app-shells/bash: 5.1_p16-r1::gentoo dev-lang/perl: 5.34.1-r3::gentoo dev-lang/python: 3.10.6_p2::gentoo dev-lang/rust-bin: 1.62.1::gentoo dev-util/cmake: 3.23.3::gentoo dev-util/meson: 0.62.2::gentoo sys-apps/baselayout: 2.8::gentoo sys-apps/openrc: 0.44.10::gentoo sys-apps/sandbox: 2.29::gentoo sys-devel/autoconf: 2.71-r1::gentoo sys-devel/automake: 1.16.5::gentoo sys-devel/binutils: 2.38-r2::gentoo sys-devel/binutils-config: 5.4.1::gentoo sys-devel/gcc: 11.3.0::gentoo sys-devel/gcc-config: 2.5-r1::gentoo sys-devel/libtool: 2.4.7::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.15-r3::gentoo (virtual/os-headers) sys-libs/musl: 1.2.3::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage sync-user: portage:portage priority: -1000 sync-rsync-extra-opts: -zz --bwlimit=1m sync-rsync-verify-max-age: 24 sync-rsync-verify-jobs: 2 sync-rsync-verify-metamanifest: true localrepo location: /var/db/repos/localrepo sync-user: portage:portage masters: gentoo musl location: /var/db/repos/layman/musl sync-type: git sync-uri: git://anongit.gentoo.org/git/proj/musl.git sync-user: portage:portage masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-gentoo-linux-musl" CFLAGS="-O2 -march=native -mtune=native -m64 -pipe -w" CHOST="x86_64-gentoo-linux-musl" CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.4/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/php/fpm-php7.4/ext-active/ /etc/php/phpdbg-php7.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CPPFLAGS="-O2 -march=native -mtune=native -m64 -pipe -w" CXXFLAGS="-O2 -march=native -mtune=native -m64 -pipe -w -fexceptions -ffunction-sections -fdata-sections" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -march=native -mtune=native -m64 -pipe -w" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg buildpkg-live candy cgroup collision-protect compress-build-logs config-protect-if-modified distlocks downgrade-backup ebuild-locks fixlafiles ipc-sandbox merge-sync mount-sandbox network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-backup unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -march=native -mtune=native -m64 -pipe -w" GENTOO_MIRRORS="rsync://rsync.de.gentoo.org ftp://ftp.fau.de/gentoo/ ftp://mirror.netcologne.de/gentoo/" INSTALL_MASK="charset.alias /usr/share/locale/locale.alias" LDFLAGS="-Wl,-O2 -Wl,--as-needed -Wl,--sort-common -Wl,--enable-new-dtags -Wl,--gc-sections -s" MAKEOPTS="-s -j3 -l12 -Otarget" PKGDIR="/usr/portage/binpkgs" PORTAGE_COMPRESS="xz" PORTAGE_COMPRESS_FLAGS="-T0" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="-zz --bwlimit=1m" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" RUSTFLAGS="-C target-cpu=native -O" SHELL="/bin/bash" USE="acl amd64 bzip2 crypt hardened iconv ipv6 libglvnd libtirpc lto native-cflags ncurses nls nptl openmp pam pcre pie readline savedconfig seccomp sha512 split-usr ssl ssp unicode verify-sig xattr xtpax zlib" ABI_X86="64" ADA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 asis authn_socache brotli cache_disk cache_socache dbd fcgid http2 proxy proxy_fcgi proxy_http2 session session_dbd socache_memcache socache_redis substitute wsgi xml2enc" APACHE2_MPMS="event" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" CURL_SSL="gnutls" ELIBC="musl" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de en" LCD_DEVICES="ncurses text" LLVM_TARGETS="X86" LUA_SINGLE_TARGET="lua5-4" LUA_TARGETS="lua5-1 lua5-4" PHP_TARGETS="php7-4" POSTGRES_TARGETS="postgres12" PYTHON_SINGLE_TARGET="python3_10" PYTHON_TARGETS="python3_10" RUBY_TARGETS="ruby27" USERLAND="GNU" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, LANG, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, RANLIB, READELF, SIZE, STRINGS, STRIP, YACC, YFLAGS
Please attach the full build.log then try without -w. -w is likely to break configure tests.
Created attachment 802741 [details] build.log build.log
(In reply to Lloyd from comment #5) > Created attachment 802741 [details] > build.log > > build.log Does it work without -w?
Pardon, I use a /etc/portage/env script for sys-libs/pam separately, compiler flags do not correspond to those from emerge --info. The -w argument is not active. Most packages are compiled with flto=auto, so also this. Sorry for delay.
(In reply to Lloyd from comment #7) > Pardon, I use a /etc/portage/env script for sys-libs/pam separately, > compiler flags do not correspond to those from emerge --info. The -w > argument is not active. Most packages are compiled with flto=auto, so also > this. Sorry for delay. FWIW, it's possible that building with -w for *anything* leads to bad configure results and miscompiled binaries, not just explicit build failures for the package itself. If you want to use -w, I recommend a hook to do it in post_src_configure so it doesn't affect configure. Anyway, libxcrypt at least is broken with LTO (we filter it in newer versions) so I'm guessing it's related to that.
*** Bug 868375 has been marked as a duplicate of this bug. ***
Interestingly, toralf hit it with his normal musl setup: bug 868375 (dupe).
(In reply to Sam James from comment #10) > Interestingly, toralf hit it with his normal musl setup: bug 868375 (dupe). Reproduced. It happens if sys-libs/libxcrypt is installed. I'm guessing there's some missing $(LIBCRYPT) or whatever in the autotools.
(In reply to Sam James from comment #11) > (In reply to Sam James from comment #10) > > Interestingly, toralf hit it with his normal musl setup: bug 868375 (dupe). > > Reproduced. It happens if sys-libs/libxcrypt is installed. I'm guessing > there's some missing $(LIBCRYPT) or whatever in the autotools. libtool: install: /usr/lib/portage/python3.9/ebuild-helpers/xattr/install -c unix_update /var/tmp/portage/sys-libs/pam-1.5.2-r2/image/sbin/unix_update libtool: relink: i686-gentoo-linux-musl-gcc -shared -fPIC -DPIC .libs/bigcrypt.o .libs/pam_unix_acct.o .libs/pam_unix_auth.o .libs/pam_unix_passwd.o .libs/pam_unix_sess.o .libs/support.o .libs/passverify.o .libs/yppasswd_xdr.o .libs/md5_good.o .libs/md5_broken.o -Wl,--as-needed -L/var/tmp/portage/sys-libs/pam-1.5.2-r2/image/usr/lib -L/usr/lib -lpam -L/usr/lib/xcrypt -lcrypt -O2 -march=i686 -Wl,--version-script=/var/tmp/portage/sys-libs/pam-1.5.2-r2/work/Linux-PAM-1.5.2/modules/pam_unix/../modules.map -Wl,-O1 -Wl,--no-undefined -Wl,-O1 -Wl,-soname -Wl,pam_unix.so -o .libs/pam_unix.so /usr/lib/gcc/i686-gentoo-linux-musl/11.3.0/../../../../i686-gentoo-linux-musl/bin/ld: .libs/passverify.o: in function `verify_pwd_hash': passverify.c:(.text+0x3a4): undefined reference to `crypt_checksalt' /usr/lib/gcc/i686-gentoo-linux-musl/11.3.0/../../../../i686-gentoo-linux-musl/bin/ld: .libs/passverify.o: in function `create_password_hash': passverify.c:(.text+0x933): undefined reference to `crypt_gensalt_rn' /usr/lib/gcc/i686-gentoo-linux-musl/11.3.0/../../../../i686-gentoo-linux-musl/bin/ld: passverify.c:(.text+0xa96): undefined reference to `crypt_gensalt_rn' collect2: error: ld returned 1 exit status libtool: error: error: relink 'pam_unix.la' with the above command before installing it # nm -D /usr/lib/xcrypt/libcrypt.so | grep crypt_checksalt 0001c730 T crypt_checksalt@@XCRYPT_4.3 musl doesn't do most forms of symbol versioning. If I try to build libxcrypt with --disable-symvers, I end up with a build failure, so whatever (I guess because the compat build makes no sense w/o symbol versioning...?) Anyway, I think for now, we can hard-disable libxcrypt support in PAM where has_version sys-libs/libxcrypt[system]. We're still planning to do the migration for musl systems at some point, although it may be more optional there (undecided) given it's not explicitly required unlike for glibc which will remove support at some point for its own crypt.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d9a5223420c777c1edde14239f812d788d8848e7 commit d9a5223420c777c1edde14239f812d788d8848e7 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-05 02:22:36 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-05 02:22:36 +0000 sys-libs/pam: workaround build failures on musl w/ sys-libs/libxcrypt[compat] Closes: https://bugs.gentoo.org/867991 Signed-off-by: Sam James <sam@gentoo.org> sys-libs/pam/pam-1.5.2-r2.ebuild | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68061fbd8345c59ec19fbad1bf1569d55186c19a commit 68061fbd8345c59ec19fbad1bf1569d55186c19a Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-08 03:40:44 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-10 11:28:03 +0000 profiles/features/musl: set -crypt on sys-libs/musl musl will still work with its own libcrypt, but applications and libraries are starting to need a fancier libcrypt (libxcrypt) so let's disable USE=crypt by default on sys-libs/musl to have libxcrypt provide crypt.h & libcrypt.so (musl's libcrypt is included in libc.so). This brings musl in line with the changes we made for glibc a while ago. The situation with glibc is a bit different because the migration is mandatory there, while we're just strongly recommending it for musl because sys-libs/libxcrypt[-system] causes headaches (see linked PAM bug for an example, but I've also hit a similar issue with Python yesterday). Bug: https://bugs.gentoo.org/867991 Bug: https://bugs.gentoo.org/699422 Signed-off-by: Sam James <sam@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/27187 Signed-off-by: Sam James <sam@gentoo.org> profiles/features/musl/package.use | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f63e433a3db50537ff903195e7e7c90b80d68047 commit f63e433a3db50537ff903195e7e7c90b80d68047 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-08 03:23:18 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-10 11:28:03 +0000 profiles/features/musl: unmask sys-libs/libxcrypt[system] This brings musl in line with the changes we made for glibc a while ago. The situation with glibc is a bit different because the migration is mandatory there, while we're just strongly recommending it for musl because sys-libs/libxcrypt[-system] causes headaches (see linked PAM bug for an example, but I've also hit a similar issue with Python yesterday). Bug: https://bugs.gentoo.org/867991 Bug: https://bugs.gentoo.org/699422 Signed-off-by: Sam James <sam@gentoo.org> profiles/features/musl/package.mask | 5 ----- profiles/features/musl/package.use.force | 4 ++-- profiles/features/musl/package.use.mask | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b7575b3f13e546dd2431d0ab8db699935392bdb commit 4b7575b3f13e546dd2431d0ab8db699935392bdb Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-08 03:34:26 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-10 11:28:03 +0000 virtual/libcrypt: add 2-r1 with support for musl This brings musl in line with the changes we made for glibc a while ago. The situation with glibc is a bit different because the migration is mandatory there, while we're just strongly recommending it for musl because sys-libs/libxcrypt[-system] causes headaches (see linked PAM bug for an example, but I've also hit a similar issue with Python yesterday). Bug: https://bugs.gentoo.org/867991 Bug: https://bugs.gentoo.org/699422 Signed-off-by: Sam James <sam@gentoo.org> virtual/libcrypt/libcrypt-2-r1.ebuild | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=777ef3df1b81456b7b733d5673b341c6b9a22d88 commit 777ef3df1b81456b7b733d5673b341c6b9a22d88 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-08 03:24:29 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-10 11:28:03 +0000 sys-libs/libxcrypt: wire up musl USE=system support This brings musl in line with the changes we made for glibc a while ago. The situation with glibc is a bit different because the migration is mandatory there, while we're just strongly recommending it for musl because sys-libs/libxcrypt[-system] causes headaches (see linked PAM bug for an example, but I've also hit a similar issue with Python yesterday). Bug: https://bugs.gentoo.org/867991 Bug: https://bugs.gentoo.org/699422 Signed-off-by: Sam James <sam@gentoo.org> sys-libs/libxcrypt/libxcrypt-4.4.28-r2.ebuild | 304 ++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fbdcef42c8f58fdd5175f2130afd56b8e42ef226 commit fbdcef42c8f58fdd5175f2130afd56b8e42ef226 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-08 03:21:04 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-10 11:28:02 +0000 sys-libs/musl: add USE=crypt for libxcrypt support Add USE=crypt to allow enabling/disabling crypt.h installation (to allow sys-libs/libxcrypt[system] usage). Many things are starting to want functions from libxcrypt itself (additional functions and algorithms). musl isn't removing crypt.h (and the relevant functions from its libc), unlike glibc, but we need to allow disabling the installation of crypt.h to allow libxcrypt[system] usage (which provides crypt.h & libcrypt.so instead, with more functionality). This brings musl in line with the changes we made for glibc a while ago. The situation with glibc is a bit different because the migration is mandatory there, while we're just strongly recommending it for musl because sys-libs/libxcrypt[-system] causes headaches (see linked PAM bug for an example, but I've also hit a similar issue with Python yesterday). Bug: https://bugs.gentoo.org/867991 Bug: https://bugs.gentoo.org/699422 Signed-off-by: Sam James <sam@gentoo.org> sys-libs/musl/musl-1.2.3-r1.ebuild | 181 +++++++++++++++++++++++++++++++++++++ sys-libs/musl/musl-9999.ebuild | 10 +- 2 files changed, 190 insertions(+), 1 deletion(-)
Your changes to sys-libs/musl have the condition for the dependency backward: RDEPEND="crypt? ( sys-libs/libxcrypt[system] )" Since sys-libs/libxcrypt blocks sys-libs/musl[crypt], it is not possible to install sys-libs/musl[crypt] at the moment. This should be RDEPEND="!crypt? ...".
(In reply to Samuel Holland from comment #15) > Your changes to sys-libs/musl have the condition for the dependency backward: > > RDEPEND="crypt? ( sys-libs/libxcrypt[system] )" > > Since sys-libs/libxcrypt blocks sys-libs/musl[crypt], it is not possible to > install sys-libs/musl[crypt] at the moment. > > This should be RDEPEND="!crypt? ...". Thanks!
(In reply to Sam James from comment #16) > (In reply to Samuel Holland from comment #15) > > Your changes to sys-libs/musl have the condition for the dependency backward: > > > > RDEPEND="crypt? ( sys-libs/libxcrypt[system] )" > > > > Since sys-libs/libxcrypt blocks sys-libs/musl[crypt], it is not possible to > > install sys-libs/musl[crypt] at the moment. > > > > This should be RDEPEND="!crypt? ...". > > Thanks! (in future, please file a new bug though)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dff39d4671198d0287ae9da0263b543affe57d46 commit dff39d4671198d0287ae9da0263b543affe57d46 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-09-11 17:27:28 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-09-11 17:27:28 +0000 sys-libs/musl: fix libxcrypt dep We only need libxcrypt when we DON'T install crypt.h Bug: https://bugs.gentoo.org/867991 Signed-off-by: Sam James <sam@gentoo.org> sys-libs/musl/{musl-1.2.3-r1.ebuild => musl-1.2.3-r2.ebuild} | 5 ++++- sys-libs/musl/musl-9999.ebuild | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-)