Hi, Unable tu update media-sound/mpd to 0.21.4-r1. I found bug #671852 and bug #675032, where you said : > your dev-libs/yajl compiled with different ABI than mpd and > This is actually expected due to abi difference, do not force 32 bit yajl on the 64 bit mpd. On my system, 32bit ABI is enabled by default for all packages. So dev-libs/yajl is built with both ABI : > dev-libs/yajl-2.1.0-r1::gentoo was built with the following: > USE="-static-libs" ABI_X86="32 (64) (-x32)" It seems to me that something is wrong with the mpd build system. Reproducible: Always $ emerge --info yajl mpd Portage 2.3.51 (python 2.7.15-final-0, default/linux/amd64/17.0/desktop, gcc-7.3.0, glibc-2.27-r6, 4.14.83-gentoo x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.14.83-gentoo-x86_64-Intel-R-_Core-TM-_i5-2500K_CPU_@_3.30GHz-with-gentoo-2.6 KiB Mem: 8138060 total, 1892584 free KiB Swap: 6291444 total, 6291444 free Timestamp of repository gentoo: Wed, 13 Feb 2019 09:15:01 +0000 Head commit of repository gentoo: 8cf18832afef56fa988b0291ec8877d739a8c6ba Head commit of repository gnome15: 6c8c18706db1218e532d2c6f29a25f4c32bbb56d Head commit of repository java: bfb25ae5f259c3bb7f965ec65d2a4379f656f430 Head commit of repository obs-studio-overlay: 986b6a026efbf0cfe46d4cc0d850a80ff79766f8 Head commit of repository steam-overlay: 11a4ca7b45e9d9bdf26508bfaa67e2b769b91dae Head commit of repository voyageur: 283b1cd4b36a827bd19c9f97add85be1e16aff03 Head commit of repository dxvk: 0ab406b78ddb9a0f2a2f7d6b7cd2781dd52966c1 Head commit of repository perso: b680bbd3500ec69cf234cdb3fd2aec2fa183bc9b Head commit of repository netfab: 5e4abf3a2b06d95e9b99b5348c8f05f4a3934172 sh bash 4.4_p23-r1 ld GNU ld (Gentoo 2.30 p5) 2.30.0 distcc 3.2rc1 x86_64-pc-linux-gnu [disabled] app-shells/bash: 4.4_p23-r1::gentoo dev-java/java-config: 2.2.0-r4::gentoo dev-lang/perl: 5.26.2::gentoo dev-lang/python: 2.7.15::gentoo, 3.6.5::gentoo dev-util/cmake: 3.9.6::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.6-r1::gentoo sys-apps/openrc: 0.38.3-r1::gentoo sys-apps/sandbox: 2.13::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.11.6-r3::gentoo, 1.13.4-r2::gentoo, 1.16.1-r1::gentoo sys-devel/binutils: 2.30-r4::gentoo sys-devel/gcc: 7.3.0-r3::gentoo sys-devel/gcc-config: 2.0::gentoo sys-devel/libtool: 2.4.6-r3::gentoo sys-devel/make: 4.2.1-r4::gentoo sys-kernel/linux-headers: 4.14-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.27-r6::gentoo Repositories: gentoo location: /portage/trees/gentoo sync-type: rsync sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-jobs: 1 sync-rsync-verify-metamanifest: yes sync-rsync-extra-opts: sync-rsync-verify-max-age: 24 gnome15 location: /portage/trees/gnome15 sync-type: git sync-uri: https://github.com/CMoH/gnome15-overlay.git masters: gentoo priority: 0 java location: /portage/trees/java sync-type: git sync-uri: git://anongit.gentoo.org/proj/java.git masters: gentoo priority: 0 obs-studio-overlay location: /portage/trees/obs-studio sync-type: git sync-uri: https://github.com/saintdev/obs-studio-overlay masters: gentoo priority: 0 steam-overlay location: /portage/trees/steam sync-type: git sync-uri: git://github.com/anyc/steam-overlay.git masters: gentoo priority: 0 voyageur location: /portage/trees/voyageur sync-type: git sync-uri: https://cafarelli.fr/git/voyageur-overlay/ masters: gentoo priority: 0 dxvk location: /portage/trees/dxvk sync-type: git sync-uri: https://github.com/pchome/dxvk-gentoo-overlay masters: gentoo priority: 60 perso location: /portage/trees/perso sync-type: git sync-uri: /home/depots/gentoo/overlays/perso.git masters: gentoo priority: 9998 netfab location: /portage/trees/netfab sync-type: git sync-uri: /home/depots/gentoo/overlays/netfab.git masters: gentoo priority: 9999 Installed sets: @common-apps, @dev-apps, @games-apps, @kernel-apps, @portage-apps, @qemukvm, @system-apps, @xfce ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=sandybridge -mtune=generic -O2 -pipe -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mpclmul -mpopcnt -mavx -msse4.2 -msse4.1 -mfxsr -mxsave -mxsaveopt -fstack-protector-strong -mno-3dnow -mno-sse4a -mno-movbe -mno-aes -mno-sha -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mno-avx2 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb -mno-mwaitx -mno-clzero -mno-pku" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=sandybridge -mtune=generic -O2 -pipe -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mpclmul -mpopcnt -mavx -msse4.2 -msse4.1 -mfxsr -mxsave -mxsaveopt -fstack-protector-strong -mno-3dnow -mno-sse4a -mno-movbe -mno-aes -mno-sha -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mno-avx2 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb -mno-mwaitx -mno-clzero -mno-pku" DISTDIR="/portage/distpack/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y --jobs 3 --load-average 3 --keep-going" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN 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 -pipe" FEATURES="assume-digests binpkg-logs buildpkg clean-logs config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ ftp://mirror.ovh.net/gentoo-distfiles/ http://mirror.ovh.net/gentoo-distfiles/" LANG="fr_FR.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en fr" MAKEOPTS="-j5" PKGDIR="/portage/distpack/packages/coreIx" PORTAGE_CONFIGROOT="/" 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" USE="X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg flac fortran gdbm gif glamor gnutls gstreamer gtk gtk3 hddtemp iconv id3tag ipv6 java jpeg lcms libnotify libtirpc lm_sensors mad matroska mng mp3 mp4 mpeg multilib ncurses nls nptl nsplugin ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt5 readline sdl seccomp sox spell ssl startup-notification steamruntime svg tcpd theora tiff truetype udev udisks unicode upower usb v4l vaapi vdpau vorbis wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64 32" 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" 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" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock 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="evdev" KERNEL="linux" L10N="en fr" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-1" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="nouveau nvidia" 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: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= dev-libs/yajl-2.1.0-r1::gentoo was built with the following: USE="-static-libs" ABI_X86="32 (64) (-x32)" media-sound/mpd-0.20.21-r1::gentoo was built with the following: USE="alsa bzip2 curl eventfd ffmpeg fifo flac icu id3tag inotify ipv6 mad network ogg pulseaudio signalfd tcpd unicode vorbis zlib -adplug -ao -audiofile -cdio -debug -expat -faad -fluidsynth -gme -jack -lame -libav -libmpdclient -libsamplerate -libsoxr -mikmod -mms -modplug -mpg123 -musepack -nfs -openal -opus -oss -pipe -recorder -samba (-selinux) -sid -sndfile -soundcloud -sqlite -systemd -twolame -upnp -wavpack -webdav -wildmidi -zeroconf -zip" ABI_X86="(64)" LDFLAGS="-Wl,-O1 -Wl,--as-needed -L/usr/lib64/sidplay/builders"
Created attachment 565046 [details] build.log
Created attachment 565544 [details] meson build log In mpd-0.21.4-build/meson-logs/meson-log.txt, I found this : > Called `/usr/bin/x86_64-pc-linux-gnu-pkg-config yajl --libs` -> 0 > -L/usr/lib32 -lyajl > Called `/usr/bin/x86_64-pc-linux-gnu-pkg-config yajl --libs` -> 0 > -L/usr/lib32 -lyajl In a terminal, if I run : > x86_64-pc-linux-gnu-pkg-config yajl --libs The output is : > -L/usr/lib32 -lyajl In /usr/share/pkgconfig/yajl.pc, I found that lib32 is hardcoded : > prefix=/usr > libdir=${prefix}/lib32 > includedir=${prefix}/include/yajl > > Name: Yet Another JSON Library > Description: A Portable JSON parsing and serialization library in ANSI C > Version: 2.1.0 > Cflags: -I${includedir} > Libs: -L${libdir} -lyajl
Replacing lib32 by lib64 in yajl.pc makes mpd build.
(In reply to Fab from comment #3) > Replacing lib32 by lib64 in yajl.pc makes mpd build. hmm indeed good catch, thanks! Not mpd issue though.
ruby seems to be stuck here as a maintainer because dev-libs/yajl was initially added as a dependency for dev-ruby/yajl-ruby. Hopefully the cmake-multilib.eclass authors can help with this?
At a quick glance, passing -DLIB_SUFFIX=${libdir#lib} where libdir=$(get_libdir) might help. I'm going to look into a proper fix upstream.
Oh, actually, the pkg-config file contents are ok. However, it's installed into /usr/share instead of /usr/lib*.
Ok, so fun stuff. This bug has been known since at least Jan 2014 [1]. Many people have provided fixes. There's also a PR from Apr 2015 [2]. I've submitted yet another one that's more complete than the previous one [3], hoping that maybe upstream would notice this one and finally bother fixing it. However, the upstream hasn't done anything since Sep 2015, so I guess the package is as dead as it can be. I would suggest anyone to stay as far away from it as possible but it seems that it's another crappy dead library that random people like to use. Now, the funniest fact: according to bug #480598, this was fixed in Gentoo already. It seems that the previous maintained brilliantly dropped the patch on some version bump. [1]:https://github.com/lloyd/yajl/issues/118 [2]:https://github.com/lloyd/yajl/pull/158 [3]:https://github.com/lloyd/yajl/pull/216
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c83deef5496190a13784839a9b48e20a77458346 commit c83deef5496190a13784839a9b48e20a77458346 Author: Hans de Graaff <graaff@gentoo.org> AuthorDate: 2019-03-11 20:02:45 +0000 Commit: Hans de Graaff <graaff@gentoo.org> CommitDate: 2019-03-11 20:40:12 +0000 dev-libs/yajl: fix pkg-config file install Fixes: https://bugs.gentoo.org/677870 Signed-off-by: Hans de Graaff <graaff@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11 dev-libs/yajl/files/yajl-2.1.0-pkg-config.patch | 50 +++++++++++++++++++++++++ dev-libs/yajl/yajl-2.1.0-r2.ebuild | 38 +++++++++++++++++++ 2 files changed, 88 insertions(+)