Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 667272 - sys-process/lsof-4.91[static]: cannot find -ltirpc
Summary: sys-process/lsof-4.91[static]: cannot find -ltirpc
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 667232
  Show dependency tree
 
Reported: 2018-09-29 09:08 UTC by Rolf Eike Beer
Modified: 2018-11-04 22:52 UTC (History)
1 user (show)

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


Attachments
build.log (sys-process_lsof-4.91_use_5KuGg,18.09 KB, text/plain)
2018-09-29 09:08 UTC, Rolf Eike Beer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rolf Eike Beer archtester 2018-09-29 09:08:50 UTC
Created attachment 548166 [details]
build.log

FEATURES=' test' USE='' succeeded for =sys-process/lsof-4.91
USE='-examples -ipv6 -rpc -static' succeeded for =sys-process/lsof-4.91
USE='-examples ipv6 -rpc -static' succeeded for =sys-process/lsof-4.91
USE='examples ipv6 -rpc -static' succeeded for =sys-process/lsof-4.91
USE='-examples -ipv6 rpc -static' succeeded for =sys-process/lsof-4.91
USE='-examples ipv6 rpc -static' succeeded for =sys-process/lsof-4.91
USE='examples ipv6 rpc -static' succeeded for =sys-process/lsof-4.91
USE='-examples ipv6 -rpc static' succeeded for =sys-process/lsof-4.91
USE='examples ipv6 -rpc static' succeeded for =sys-process/lsof-4.91
USE='-examples -ipv6 rpc static' failed for =sys-process/lsof-4.91
    log has been saved as /root/tatt/logs/sys-process_lsof-4.91_use_5KuGg
USE='examples -ipv6 rpc static' failed for =sys-process/lsof-4.91
    log has been saved as /root/tatt/logs/sys-process_lsof-4.91_use_4hxo7
USE='-examples ipv6 rpc static' failed for =sys-process/lsof-4.91
    log has been saved as /root/tatt/logs/sys-process_lsof-4.91_use_LrRSm
USE='examples ipv6 rpc static' failed for =sys-process/lsof-4.91
    log has been saved as /root/tatt/logs/sys-process_lsof-4.91_use_vIQiX


Portage 2.3.49 (python 3.5.5-final-0, default/linux/sparc/13.0, gcc-7.3.0, glibc-2.26-r7, 4.16.8 sparc64)
=================================================================
System uname: Linux-4.16.8-sparc64-sun4v-with-gentoo-2.4.1
KiB Mem:    33133328 total,   7728696 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sat, 29 Sep 2018 08:24:21 +0000
Head commit of repository gentoo: c7838006eea5828a422e4ecb969bad1dbacdf8d0

sh bash 4.4_p12
ld GNU ld (Gentoo 2.30 p2) 2.30.0
app-shells/bash:          4.4_p12::gentoo
dev-lang/perl:            5.24.3-r1::gentoo
dev-lang/python:          2.7.15::gentoo, 3.5.5::gentoo, 3.6.5::gentoo
dev-util/cmake:           3.9.6::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.4.1-r2::gentoo
sys-apps/openrc:          0.34.11::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.69-r4::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.15.1-r2::gentoo
sys-devel/binutils:       2.30-r2::gentoo
sys-devel/gcc:            7.3.0-r3::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r3::gentoo
sys-devel/make:           4.2.1-r3::gentoo
sys-kernel/linux-headers: 4.13::gentoo (virtual/os-headers)
sys-libs/glibc:           2.26-r7::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/repo/sync/gentoo.git
    priority: -1000
    sync-git-verify-commit-signature: yes

ACCEPT_KEYWORDS="sparc"
ACCEPT_LICENSE="* -@EULA"
CBUILD="sparc-unknown-linux-gnu"
CFLAGS="-O2 -mcpu=niagara2 -pipe -Wcast-align"
CHOST="sparc-unknown-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/php/apache2-php5.6/ext-active/ /etc/php/apache2-php7.0/ext-active/ /etc/php/apache2-php7.1/ext-active/ /etc/php/apache2-php7.2/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cgi-php7.2/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/php/cli-php7.1/ext-active/ /etc/php/cli-php7.2/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="-O2 -mcpu=niagara2 -pipe -Wcast-align"
DISTDIR="/usr/portage/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY 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=""
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS=""
GENTOO_MIRRORS="ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j20"
PKGDIR="/usr/portage/packages"
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="acl berkdb big-endian bzip2 cli crypt cxx dri fortran gdbm iconv ipv6 libtirpc modules ncurses nls nptl openmp pam pcre readline sparc ssl tcpd unicode xattr zlib" 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 plan sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" 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" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby23" USERLAND="GNU" VIDEO_CARDS="fbdev glint mga r128 radeon dummy v4l" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2018-09-29 17:31:48 UTC
Interesting, is this the case for you running current stable
Comment 2 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2018-09-29 17:32:05 UTC
(In reply to Mikle Kolyada from comment #1)
> Interesting, is this the case for you running current stable

oh, this was the question
Comment 3 Rolf Eike Beer archtester 2018-09-29 21:28:09 UTC
USE=static emerge -1 =sys-process/lsof-4.89

-> works fine
Comment 4 Larry the Git Cow gentoo-dev 2018-09-30 08:01:42 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/gentoo-bugzilla.git/commit/?id=607033bbd1e5b524eaf5c74e3914590d82b3742a

commit 607033bbd1e5b524eaf5c74e3914590d82b3742a
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2018-09-30 08:00:54 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2018-09-30 08:00:54 +0000

    attachment/list: Display attachment filename
    
    Bug: https://bugs.gentoo.org/667272
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 template/en/default/attachment/list.html.tmpl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Comment 5 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-09-30 08:02:09 UTC
Arr, sorry, wrong bug.
Comment 6 Thomas Deutschmann (RETIRED) gentoo-dev 2018-10-28 23:24:46 UTC
We can address *this* failure via

--- lsof-4.91.ebuild	2018-10-28 16:19:48.524999040 +0100
+++ lsof-4.91-r1.ebuild	2018-10-29 00:13:45.685190699 +0100
@@ -17,9 +17,12 @@
 KEYWORDS="~alpha ~amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
 IUSE="examples ipv6 rpc selinux static"
 
-RDEPEND="rpc? ( net-libs/libtirpc )
+LIB_DEPEND="rpc? ( net-libs/libtirpc[static-libs] )"
+
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs]} )
 	selinux? ( sys-libs/libselinux )"
 DEPEND="${RDEPEND}
+	static? ( ${LIB_DEPEND} )
 	rpc? ( virtual/pkgconfig )"
 
 S="${WORKDIR}/${MY_P}/${MY_P}_src"
@@ -77,8 +80,11 @@
 		fi
 	fi
 
+	local RPC_PKG_CONFIG_PARAMS=( libtirpc --libs )
+	use static && RPC_PKG_CONFIG_PARAMS+=( --static )
+
 	export LSOF_CFGL="${CFLAGS} ${LDFLAGS} \
-		$(use rpc && $(tc-getPKG_CONFIG) libtirpc --libs)"
+		$(use rpc && $(tc-getPKG_CONFIG) ${RPC_PKG_CONFIG_PARAMS[@]})"
 
 	# Set LSOF_INCLUDE to a dummy location so the script doesn't poke
 	# around in it and mix /usr/include paths with cross-compile/etc.


But this will end in a new failure:


> x86_64-pc-linux-gnu-gcc  -O2 -pipe -march=ivybridge -mtune=ivybridge -mno-xsaveopt -Wno-error=missing-prototypes -Wno-error=enum-compare -Wno-error=unused-function -Wno-error=deprecated-declarations -frecord-gcc-switches  -I/usr/include/tirpc -DHASIPv6 -DLINUXV=419000 -DGLIBCV=227 -DHASIPv6 -DNEEDS_NETINET_TCPH -DHASUXSOCKEPT -DHASPTYEPT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAS_STRFTIME -DLSOF_VSTR=\"4.19.0\" -I/var/tmp/portage/sys-process/lsof-4.91-r1/temp     -I/usr/include/tirpc -DHASIPv6  -c -o util.o util.c
> x86_64-pc-linux-gnu-gcc -o lsof dfile.o dmnt.o dnode.o dproc.o dsock.o dstore.o arg.o main.o misc.o node.o print.o proc.o store.o usage.o util.o -L./lib -llsof -O2 -pipe -march=ivybridge -mtune=ivybridge -mno-xsaveopt -Wno-error=missing-prototypes -Wno-error=enum-compare -Wno-error=unused-function -Wno-error=deprecated-declarations -frecord-gcc-switches -Wl,-O1 -Wl,--as-needed -static             -ltirpc -lpthread
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libtirpc.a(libtirpc_la-netnamer.o): in function `netname2user':
> (.text+0x419): warning: Using 'getgrent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: (.text+0x414): warning: Using 'setgrent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: (.text+0x4ba): warning: Using 'endgrent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: arg.o: in function `enter_uid':
> arg.c:(.text+0x3b31): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.o: in function `printuid':
> print.c:(.text+0x1cb6): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libtirpc.a(libtirpc_la-rpcb_clnt.o): in function `getclnthandle':
> (.text+0x407): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.o: in function `gethostnm':
> print.c:(.text+0xc78): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libtirpc.a(libtirpc_la-auth_time.o): in function `__rpc_get_time_offset':
> (.text+0xb06): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: arg.o: in function `lkup_hostnm':
> arg.c:(.text+0x2fd): warning: Using 'gethostbyname2' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: arg.o: in function `enter_network_address':
> arg.c:(.text+0x2c2d): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.o: in function `lkup_svcnam':
> print.c:(.text+0xe6): warning: Using 'getservbyport' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.c:(.text+0x151): warning: Using 'getservent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.c:(.text+0x13b): warning: Using 'setservent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.c:(.text+0x131): warning: Using 'endservent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: print.o: in function `lkup_port':
> print.c:(.text+0x6d9): undefined reference to `getrpcbynumber'
> collect2: error: ld returned 1 exit status
> make: *** [Makefile:59: lsof] Error 1
>  * ERROR: sys-process/lsof-4.91-r1::gentoo failed (compile phase):
>  *   emake failed

getrpcbynumber, used in lsof's print.c when RPC headers are available, is provided by glibc on newer systems (net-libs/libtirpc detects for example that getrpcbynumber is already available and doesn't provide that function in that case).

I have no idea how we can solve this. I would remove "static" from lsof or at least add RESTRICT="static? ( rpc )" but given that rpc is the only dependency, I would remove USE=static at all.
Comment 7 Thomas Deutschmann (RETIRED) gentoo-dev 2018-10-28 23:55:29 UTC
And before I forget: We would also have to disallow net-libs/libtirpc[kerberos] when USE=static is set because net-libs/libtirpc[kerberos] depends on virtual/krb5 which cannot ensure that providing package is built statically (well, net-libs/libtirpc should restrict "static-libs" when USE=kerberos is set).
Comment 8 Larry the Git Cow gentoo-dev 2018-11-04 22:48:46 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0cfdd8632ebc85620266018b7f1f6d30183cb6e

commit b0cfdd8632ebc85620266018b7f1f6d30183cb6e
Author:     Thomas Deutschmann <whissi@gentoo.org>
AuthorDate: 2018-11-04 22:48:24 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2018-11-04 22:48:38 +0000

    sys-process/lsof: remove USE=static
    
    USE=static doesn't work with USE=rpc anymore since tirpc was moved to
    net-libs/libtirpc:
    
    - net-libs/libtirpc[static-libs] is broken: When net-libs/libtirpc was build
      with USE=kerberos it isn't guaranteed that virtual/krb5 provider was linked
      statically which is causing problems for lsof when trying to statically link
      against libtirpc.
    
    - getrpcbynumber from print.c is now part of libc. However you cannot
      statically link against that libc component.
    
    Closes: https://bugs.gentoo.org/667272
    Package-Manager: Portage-2.3.51, Repoman-2.3.11
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 sys-process/lsof/lsof-4.91.ebuild | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)