Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 677870 - dev-libs/yajl: pkg-config should be installed to /usr/lib*
Summary: dev-libs/yajl: pkg-config should be installed to /usr/lib*
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 675032
  Show dependency tree
 
Reported: 2019-02-13 12:53 UTC by Fab
Modified: 2019-05-13 18:07 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (mpd-0.21.4-r1:20190213-121249.log,702.32 KB, text/plain)
2019-02-13 12:55 UTC, Fab
Details
meson build log (meson-log.txt,76.25 KB, text/plain)
2019-02-16 10:43 UTC, Fab
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Fab 2019-02-13 12:53:32 UTC
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"
Comment 1 Fab 2019-02-13 12:55:29 UTC
Created attachment 565046 [details]
build.log
Comment 2 Fab 2019-02-16 10:43:15 UTC
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
Comment 3 Fab 2019-02-16 10:46:03 UTC
Replacing lib32 by lib64 in yajl.pc makes mpd build.
Comment 4 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2019-02-16 10:52:15 UTC
(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.
Comment 5 Hans de Graaff gentoo-dev Security 2019-02-24 09:17:40 UTC
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?
Comment 6 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-24 09:42:10 UTC
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.
Comment 7 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-24 09:47:40 UTC
Oh, actually, the pkg-config file contents are ok.  However, it's installed into /usr/share instead of /usr/lib*.
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-24 10:02:40 UTC
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
Comment 9 Larry the Git Cow gentoo-dev 2019-03-11 20:40:35 UTC
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(+)