Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 497956 - net-misc/curl[rtmp] forces rebuild of media-libs/raptor and app-office/libreoffice after media-video/rtmpdump update
Summary: net-misc/curl[rtmp] forces rebuild of media-libs/raptor and app-office/libreo...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Anthony Basile
URL: https://sourceforge.net/p/curl/bugs/1...
Whiteboard:
Keywords:
Depends on: 498396
Blocks:
  Show dependency tree
 
Reported: 2014-01-13 05:04 UTC by Nikoli
Modified: 2018-10-26 19:51 UTC (History)
5 users (show)

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


Attachments
libcurl.pc (libcurl.pc,1.61 KB, text/plain)
2014-01-13 12:38 UTC, Nikoli
Details
raptor-2.0.9.ebuild.patch (raptor-2.0.9.ebuild.patch,402 bytes, patch)
2014-01-19 15:05 UTC, Nikoli
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nikoli 2014-01-13 05:04:41 UTC
After updating media-video/rtmpdump from version 2.3 to 2.4_p20131018 'emerge @preserved-rebuild' wants to rebuild raptor because /usr/lib64/libraptor2.so.0.0.0 links to libcurl.so.4 and librtmp.so.0 (after rebuild it links to librtmp.so.1)

'grep rtmp -Ri .' finds nothing in raptor2-2.0.9 sources, so most likely the problem is curl related.

Same problem with libreoffice, these files link to both libcurl.so.4 and librtmp.so.0:
/usr/lib64/libreoffice/program/libmergedlo.so
/usr/lib64/libreoffice/program/libucpcmis1lo.so
/usr/lib64/libreoffice/program/libucpftp1.so

But /usr/lib64/libreoffice/program/libunordflo.so links to libcurl.so.4 and does not link to librtmp.so.0.


/usr/lib64/libcurl.so.4.3.0 links to librtmp.so.0, .pc file seems correct too:
$ grep -v '#' /usr/lib64/pkgconfig/libcurl.pc
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib64
includedir=${prefix}/include
supported_protocols="DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTMP RTSP SCP SFTP SMTP SMTPS TELNET TFTP"
supported_features="SSL IPv6 libz AsynchDNS IDN NTLM NTLM_WB TLS-SRP"
Name: libcurl
URL: http://curl.haxx.se/
Description: Library to transfer files with ftp, http, etc.
Version: 7.34.0
Libs: -L${libdir} -lcurl
Libs.private: -lidn -lrtmp -lz -lgnutls -lssh2 -lssh2 -lssl -lcrypto -lssl -lcrypto -lz -lrt
Cflags: -I${includedir} 

My versions and USE flags:
[binary   R    ] media-video/rtmpdump-2.4_p20131018  USE="gnutls ssl (-polarssl)" 0 kB
[binary   R    ] net-misc/curl-7.34.0-r1  USE="idn ipv6 metalink rtmp ssh ssl threads -adns -kerberos -ldap -static-libs {-test}" CURL_SSL="openssl -axtls -cyassl -gnutls -nss -polarssl" 0 kB
[binary   R    ] media-libs/raptor-2.0.9:2  USE="curl unicode -debug -json -static-libs" 0 kB
[binary   R    ] app-office/libreoffice-4.1.3.2-r2  USE="cups dbus gstreamer gtk kde opengl {test} vba webdav (-aqua) -bluetooth -branding -debug -eds -gnome -gtk3 -java -jemalloc -mysql -odk -postgres -telepathy" LIBREOFFICE_EXTENSIONS="presenter-minimizer -nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 -python3_3" PYTHON_TARGETS="python2_7 -python3_3" 0 kB

Portage 2.2.7 (hardened/linux/amd64, gcc-4.7.3, glibc-2.17, 3.11.9-hardened x86_64)
=================================================================
KiB Mem:    65825872 total,  26591844 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Mon, 13 Jan 2014 03:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r3
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo nikoli
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=corei7-avx -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0"
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=corei7-avx -O2 -pipe"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs cgroup collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync network-sandbox news parallel-fetch preserve-libs protect-owned sandbox sfperms strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9"
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"
PORTDIR_OVERLAY="/var/lib/layman/nikoli"
USE="X a52 aac acl acpi aes-ni alsa amd64 amr audiofile avx bash-completion bzip2 cairo caps cdda cddb cdio cdparanoia cdr celt cli consolekit cracklib crypt css cups cxx dbus djvu dri dts dv dvd dvdr encode exif fat ffmpeg flac fluidsynth fontconfig fortran gd geoip gif gimp gmp gnutls gphoto2 gpm graphviz gsm gstreamer gtk handbook hardened iconv icu id3tag idn ilbc imagemagick imap imlib ios ipod ipv6 jbig jpeg jpeg2k justify kde kipi lame laptop lcms libass libnotify libproxy libsamplerate lm_sensors lzma lzo mac mad matroska mikmod mmx mmxext modplug modules mp3 mp4 mpeg mtp mudflap multilib musepack musicbrainz ncurses networkmanager nls nptl nptlonly ntfs ogg openal openexr opengl openmp opus pam pango pax_kernel pcre pdf phonon plasma pm-utils png policykit postscript qt3support qt4 quicktime rar raw readline reiserfs replaygain rtmp sasl scanner semantic-desktop session sid smp sndfile socks5 speex spell sqlite sse sse2 sse3 sse4_1 ssl ssse3 startup-notification svg symlink sysfs taglib theora threads thumbnail tiff truetype tta udev udisks unicode upnp upower usb v4l v4l2 vcd vdpau vorbis vpx wavpack webkit webp wma wmf x264 xattr xcb xcomposite xface xinerama xml xmp xpm xscreensaver xv xvid xz zip zlib" ABI_X86="64" 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="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="*" 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 ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-minimizer" LINGUAS="ru ru_RU en" NGINX_MODULES_HTTP="access auth_basic autoindex fastcgi gzip rewrite" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby20" USERLAND="GNU" VIDEO_CARDS="radeon r600 modesetting vesa" 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, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 1 Anthony Basile gentoo-dev 2014-01-13 12:09:18 UTC
(In reply to Nikoli from comment #0)
> After updating media-video/rtmpdump from version 2.3 to 2.4_p20131018
> 'emerge @preserved-rebuild' wants to rebuild raptor because
> /usr/lib64/libraptor2.so.0.0.0 links to libcurl.so.4 and librtmp.so.0 (after
> rebuild it links to librtmp.so.1)
> 
> 'grep rtmp -Ri .' finds nothing in raptor2-2.0.9 sources, so most likely the
> problem is curl related.
> 

There is nothing wrong in the R/DEPENDS of curl.  If this is a bug, then its in the way @preserved-rebuild is resolving things.  Having said that, I'm not sure its a bug.  What does the linkage for all the libraries involved look like?  Ie run ldd on libraptor2.so.0.0.0, libcurl.so.4 and librtmp.so.0.  (Sorry I don't have your configuration.)
Comment 2 Nikoli 2014-01-13 12:20:30 UTC
# ldd /usr/lib64/librtmp.so.0 
        linux-vdso.so.1 (0x000002f7a243c000)
        libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x000002f7a1f2a000)
        libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x000002f7a1c9f000)
        libz.so.1 => /lib64/libz.so.1 (0x000002f7a1a86000)
        libc.so.6 => /lib64/libc.so.6 (0x000002f7a16dd000)
        libnettle.so.4 => /usr/lib64/libnettle.so.4 (0x000002f7a14a9000)
        libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x000002f7a122c000)
        libhogweed.so.2 => /usr/lib64/libhogweed.so.2 (0x000002f7a0ffb000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x000002f7a0ddf000)
        libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x000002f7a0bcc000)
        libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x000002f7a09c7000)
        /lib64/ld-linux-x86-64.so.2 (0x000002f7a243d000)

# ldd /usr/lib64/libcurl.so.4
        linux-vdso.so.1 (0x000002fede12f000)
        libidn.so.11 => /usr/lib64/libidn.so.11 (0x000002feddc5e000)
        librtmp.so.0 => /usr/lib64/librtmp.so.0 (0x000002fedda43000)
        libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x000002fedd778000)
        libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x000002fedd54c000)
        libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x000002fedd2db000)
        libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x000002fedcebb000)
        libz.so.1 => /lib64/libz.so.1 (0x000002fedcca3000)
        librt.so.1 => /lib64/librt.so.1 (0x000002fedca9b000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x000002fedc87e000)
        libc.so.6 => /lib64/libc.so.6 (0x000002fedc4d5000)
        libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x000002fedc24a000)
        libnettle.so.4 => /usr/lib64/libnettle.so.4 (0x000002fedc015000)
        libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x000002fedbd99000)
        libhogweed.so.2 => /usr/lib64/libhogweed.so.2 (0x000002fedbb68000)
        libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x000002fedb955000)
        libdl.so.2 => /lib64/libdl.so.2 (0x000002fedb751000)
        /lib64/ld-linux-x86-64.so.2 (0x000002fede130000)
        libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x000002fedb54b000)

# ldd /usr/lib64/libraptor2.so.0.0.0 
        linux-vdso.so.1 (0x000002f4ec7ec000)
        libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x000002f4ec2e5000)
        libidn.so.11 => /usr/lib64/libidn.so.11 (0x000002f4ec0b0000)
        librtmp.so.0 => /usr/lib64/librtmp.so.0 (0x000002f4ebe94000)
        libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x000002f4ebbca000)
        libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x000002f4eb99e000)
        libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x000002f4eb72c000)
        libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x000002f4eb30d000)
        libicuuc.so.51 => /usr/lib64/libicuuc.so.51 (0x000002f4eaf76000)
        libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x000002f4ead36000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x000002f4ea9af000)
        libz.so.1 => /lib64/libz.so.1 (0x000002f4ea797000)
        libdl.so.2 => /lib64/libdl.so.2 (0x000002f4ea592000)
        libm.so.6 => /lib64/libm.so.6 (0x000002f4ea293000)
        librt.so.1 => /lib64/librt.so.1 (0x000002f4ea08b000)
        libc.so.6 => /lib64/libc.so.6 (0x000002f4e9ce1000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x000002f4e9ac5000)
        libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x000002f4e983a000)
        libnettle.so.4 => /usr/lib64/libnettle.so.4 (0x000002f4e9605000)
        libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x000002f4e9389000)
        libhogweed.so.2 => /usr/lib64/libhogweed.so.2 (0x000002f4e9158000)
        libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x000002f4e8f45000)
        libicudata.so.51 => /usr/lib64/libicudata.so.51 (0x000002f4e77f9000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6 (0x000002f4e74d5000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libgcc_s.so.1 (0x000002f4e72bd000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x000002f4e7097000)
        /lib64/ld-linux-x86-64.so.2 (0x000002f4ec7ed000)
        libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x000002f4e6e91000)

So why libraptor2.so.0.0.0 links to librtmp.so.0?
Comment 3 Andreas K. Hüttel archtester gentoo-dev 2014-01-13 12:26:40 UTC
please paste the contents of your /usr/lib64/pkgconfig/libcurl.pc
Comment 4 Nikoli 2014-01-13 12:38:20 UTC
Created attachment 367786 [details]
libcurl.pc
Comment 5 Andreas K. Hüttel archtester gentoo-dev 2014-01-13 13:07:50 UTC
What's the output of "curl-config --libs"
Comment 6 Nikoli 2014-01-13 13:11:51 UTC
# curl-config --libs
-lcurl -lidn -lrtmp -lz -lgnutls -lssh2 -lssh2 -lssl -lcrypto -lssl -lcrypto -lz -lrt
Comment 7 Anthony Basile gentoo-dev 2014-01-13 13:45:17 UTC
(In reply to Nikoli from comment #2)

> So why libraptor2.so.0.0.0 links to librtmp.so.0?

Because you have to follow through on the full link chain.  If libA links to libB and libB links to libC then ldd libA lists libC.  Try using readelf -d and looking at the (NEEDED) section.

I think this bug should be closed resolved invalid.  I don't see anything wrong here.
Comment 8 Nikoli 2014-01-13 14:08:11 UTC
I used 'objdump -p' and looked at NEEDED before opening this bug. And i think this sure is bug:
# objdump -p /usr/lib64/libraptor2.so.0.0.0 |grep NEEDED|sort
  NEEDED               libcrypto.so.1.0.0
  NEEDED               libc.so.6
  NEEDED               libcurl.so.4
  NEEDED               libdl.so.2
  NEEDED               libgnutls.so.26
  NEEDED               libicuuc.so.51
  NEEDED               libidn.so.11
  NEEDED               libm.so.6
  NEEDED               librtmp.so.0
  NEEDED               librt.so.1
  NEEDED               libssh2.so.1
  NEEDED               libssl.so.1.0.0
  NEEDED               libxml2.so.2
  NEEDED               libxslt.so.1
  NEEDED               libz.so.1

It should not link to libcrypto.so.1.0.0, libgnutls.so.26, libidn.so.11, librtmp.so.0, libssh2.so.1, libssl.so.1.0.0

Example of correct and expected behaviour for --as-needed:
/usr/lib64/libwx_gtk2u_core-2.8.so has libjpeg.so.62 and a lot other libs in NEEDED; /usr/lib64/hugin/libhuginbasewx.so.0.0 has libwx_gtk2u_core-2.8.so.0 in NEEDED, but does not have libjpeg.so.62 and other dep of libwx_gtk2u_core-2.8.so.0.
Comment 9 Anthony Basile gentoo-dev 2014-01-13 14:40:52 UTC
(In reply to Nikoli from comment #8)
> I used 'objdump -p' and looked at NEEDED before opening this bug. And i
> think this sure is bug:
> # objdump -p /usr/lib64/libraptor2.so.0.0.0 |grep NEEDED|sort
>   NEEDED               libcrypto.so.1.0.0
>   NEEDED               libc.so.6
>   NEEDED               libcurl.so.4
>   NEEDED               libdl.so.2
>   NEEDED               libgnutls.so.26
>   NEEDED               libicuuc.so.51
>   NEEDED               libidn.so.11
>   NEEDED               libm.so.6
>   NEEDED               librtmp.so.0
>   NEEDED               librt.so.1
>   NEEDED               libssh2.so.1
>   NEEDED               libssl.so.1.0.0
>   NEEDED               libxml2.so.2
>   NEEDED               libxslt.so.1
>   NEEDED               libz.so.1
> 
> It should not link to libcrypto.so.1.0.0, libgnutls.so.26, libidn.so.11,
> librtmp.so.0, libssh2.so.1, libssl.so.1.0.0
> 
> Example of correct and expected behaviour for --as-needed:
> /usr/lib64/libwx_gtk2u_core-2.8.so has libjpeg.so.62 and a lot other libs in
> NEEDED; /usr/lib64/hugin/libhuginbasewx.so.0.0 has libwx_gtk2u_core-2.8.so.0
> in NEEDED, but does not have libjpeg.so.62 and other dep of
> libwx_gtk2u_core-2.8.so.0.

Isn't this a problem in raptor then?  Even so, I see libcurl.so.4 in there and that links to librtmp.so.0 so ldd would still show libraptor needing librtmp.
Comment 10 Anthony Basile gentoo-dev 2014-01-13 15:18:52 UTC
Okay as discussed on IRC, this is a problem in curl-config.

curl-config --libs gives

    -lcurl -lrtmp ...

which means you need -lrtmp on the linker line when building against libcurl, but you don't.  In fact libcurl.pc is correct with.

I'll submit this upstream.
Comment 11 Anthony Basile gentoo-dev 2014-01-13 15:38:49 UTC
Upstream at  https://sourceforge.net/p/curl/bugs/1325/
Comment 12 Nikoli 2014-01-17 18:49:03 UTC
Upstream answer:
"curl-config should only list the full set of libraries if libtool indicates that the target system requires that. What is the output of:

libtool --config | grep link_all_deplibs

on this system? If it's anything other than "link_all_deplibs=no" then curl is doing the right thing, according to libtool."

In Gentoo we have:
$ libtool --config | grep link_all_deplibs
link_all_deplibs=unknown

I think it would be better to change link_all_deplibs= to 'no' in libtool package, Debian did so years ago, but this change may break some packages.
Comment 13 Anthony Basile gentoo-dev 2014-01-18 15:09:51 UTC
(In reply to Nikoli from comment #12)
> Upstream answer:
> "curl-config should only list the full set of libraries if libtool indicates
> that the target system requires that. What is the output of:
> 
> libtool --config | grep link_all_deplibs
> 
> on this system? If it's anything other than "link_all_deplibs=no" then curl
> is doing the right thing, according to libtool."
> 
> In Gentoo we have:
> $ libtool --config | grep link_all_deplibs
> link_all_deplibs=unknown
> 
> I think it would be better to change link_all_deplibs= to 'no' in libtool
> package, Debian did so years ago, but this change may break some packages.

These -config scripts cause no end of issues!

1) Can raptor et al. swtich to using pkgconfig which is the sane way to go?

2) I don't thing switching link_all_deplibs is the way to go here.  While I haven't tested I'm certain this will break a lot.  We'd have to open a tracker and follow packages that break.  Just to save the buggy -config's?
Comment 14 SpanKY gentoo-dev 2014-01-19 00:53:25 UTC
(In reply to Anthony Basile from comment #13)

i see no reason as to why they can't switch to the pkg-config file.  it's the sane answer.

the libtool link thing is bug 498396 already (listed as a blocker here).
Comment 15 Samuli Suominen (RETIRED) gentoo-dev 2014-01-19 07:39:10 UTC
(In reply to Anthony Basile from comment #13)
> These -config scripts cause no end of issues!
> 
> 1) Can raptor et al. swtich to using pkgconfig which is the sane way to go?

curl and raptor has been using pkg-config since forever, any -config's are just for backwards compability (switch happened years ago)

$ pkg-config --exists raptor2
$ echo $?
0
$ pkg-config --exists libcurl
$ echo $?
0
Comment 16 Anthony Basile gentoo-dev 2014-01-19 13:54:08 UTC
(In reply to Samuli Suominen from comment #15)
> (In reply to Anthony Basile from comment #13)
> > These -config scripts cause no end of issues!
> > 
> > 1) Can raptor et al. swtich to using pkgconfig which is the sane way to go?
> 
> curl and raptor has been using pkg-config since forever, any -config's are
> just for backwards compability (switch happened years ago)
> 
> $ pkg-config --exists raptor2
> $ echo $?
> 0
> $ pkg-config --exists libcurl
> $ echo $?
> 0

I didn't look myself.  So where is the curl-config script causing the problem?
Comment 17 Samuli Suominen (RETIRED) gentoo-dev 2014-01-19 14:44:56 UTC
(In reply to Anthony Basile from comment #16)
> I didn't look myself.  So where is the curl-config script causing the
> problem?

You started talking about it at Comment #10 at this bug, referencing some IRC discussion. You tell us. :-)
Comment 18 Anthony Basile gentoo-dev 2014-01-19 14:55:03 UTC
(In reply to Samuli Suominen from comment #17)
> (In reply to Anthony Basile from comment #16)
> > I didn't look myself.  So where is the curl-config script causing the
> > problem?
> 
> You started talking about it at Comment #10 at this bug, referencing some
> IRC discussion. You tell us. :-)

Were we barking up the wrong tree in comments #5 thorugh #10?  dilfridge asked in comment #5 about "curl-config --libs" so I assumed that was the culprit.  If none of the packages described in comment #0 use curl-config then is it purely link_all_deplibs?
Comment 19 Nikoli 2014-01-19 15:05:36 UTC
Created attachment 368162 [details, diff]
raptor-2.0.9.ebuild.patch

$ equery f curl|grep curl-config
/usr/bin/curl-config
/usr/share/man/man1/curl-config.1.bz2

If you read raptor2-2.0.9/configure.ac, you will see that build system by default is using /usr/bin/*-config for most deps instead of pkg-config, but for some deps you can force using of pkg-config by adding '--with-foo-config=no' to configure options:
$ grep '\-config' configure.ac 
# for raptor-config.in
AC_CHECK_PROGS(PKG_CONFIG, pkg-config)
AC_ARG_WITH(xml2-config, [  --with-xml2-config=PATH   Location of libxml xml2-config []], xml2_config="$withval", xml2_config="")
    AC_CHECK_PROGS(XML_CONFIG, xml2-config)
  AC_MSG_CHECKING(for libxml via xml2-config)
    libxml_source="xml2-config"
  AC_MSG_CHECKING(for libxml via pkg-config)
    libxml_source="pkg-config"
AC_ARG_WITH(xslt-config, [  --with-xslt-config=PATH   Location of libxslt xslt-config []], xslt_config="$withval", xslt_config="")
    AC_CHECK_PROGS(XSLT_CONFIG, xslt-config)
AC_ARG_WITH(curl-config, [  --with-curl-config=PATH   Location of libcurl curl-config []], curl_config="$withval", curl_config="")
    AC_CHECK_PROGS(CURL_CONFIG, curl-config)
  AC_MSG_CHECKING(for libcurl via curl-config)
    libcurl_source="curl-config"
  AC_MSG_CHECKING(for libcurl via pkg-config)
    libcurl_source="pkg-config"
AC_ARG_WITH(icu-config, [  --with-icu-config=PATH   Location of ICU icu-config []], icu_config="$withval", icu_config="")
dnl Note there is NO automated searching for icu-config
AC_ARG_WITH(www-config, [  --with-libwww-config=PATH Location of W3C libwww libwww-config []], libwww_config="$withval", libwww_config="")

$ grep '"Xno"' configure.ac 
if test "X$xml2_config" != "Xno" ; then
if test "X$xslt_config" != "Xno" ; then
if test "X$curl_config" != "Xno" ; then
if test "X$icu_config" != "Xno" -a "X$icu_config" != "X" ; then
if test "X$libwww_config" != "Xno" -a "X$libwww_config" != "X" ; then


'-with-xml2-config=no --with-curl-config=no' works fine for me and disables linking to curl deps (libcrypto.so.1.0.0 libidn.so.11 libssh2.so.1 libssl.so.1.0.0), but when --with-xslt-config=no or --with-icu-config=no is used raptor does not link to xslt or icu libs.
Comment 20 Anthony Basile gentoo-dev 2014-01-19 15:57:12 UTC
(In reply to Nikoli from comment #19)
> Created attachment 368162 [details, diff] [details, diff]
> raptor-2.0.9.ebuild.patch

Nikoli thanks.  I think with the next bump of curl, I may try to just not install curl-config and tack what packages break and offer fixes along the line of pkgconfig.
Comment 21 Samuli Suominen (RETIRED) gentoo-dev 2014-01-19 15:58:02 UTC
Tracker for migrating away from curl-config to pkg-config feasible?
Comment 22 Anthony Basile gentoo-dev 2014-01-19 16:05:43 UTC
(In reply to Samuli Suominen from comment #21)
> Tracker for migrating away from curl-config to pkg-config feasible?

Yes.
Comment 23 Andreas K. Hüttel archtester gentoo-dev 2014-01-25 11:26:45 UTC
Tom made a patch for libreoffice and I've added it in ~arch and later (no revbump).
Comment 24 Andreas K. Hüttel archtester gentoo-dev 2014-02-04 23:34:47 UTC
Patch added to raptor. (libreoffice already fixed.)

Nothing else to do here. 

@blueness: do you still want to make a tracker? If not I guess we can close this...
Comment 25 Anthony Basile gentoo-dev 2014-02-05 13:07:14 UTC
(In reply to Andreas K. Hüttel from comment #24)
> Patch added to raptor. (libreoffice already fixed.)
> 
> Nothing else to do here. 
> 
> @blueness: do you still want to make a tracker? If not I guess we can close
> this...

I don't know if we caught them all, but what I'll do when 7.36 comes out is simply remove curl-config.  As packages break people will open bugs and I'll start tracking them then.  I don't think we have a huge amount of breakage coming (eg as we do with a glibc bump or gcc bump) so we can get them one at a time.
Comment 26 Jonas Stein gentoo-dev 2016-07-24 06:22:40 UTC
net-misc/curl-7.45.0 is the latest version in the tree now. Is the bug still active, or can we close the ticket?
Comment 27 Craig Andrews gentoo-dev 2018-10-26 19:51:33 UTC
I've never observed this problem, cannot reproduce it, and it's been a couple years with new versions of things released since...

If this behavior is observed again, please reopen.