Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 590456 - portage fails to use build dependencies when installing to a ROOT
Summary: portage fails to use build dependencies when installing to a ROOT
Status: RESOLVED DUPLICATE of bug 317337
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-04 12:10 UTC by Dennis Schridde
Modified: 2017-01-08 21:32 UTC (History)
0 users

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


Attachments
build.log (build.log,3.98 KB, text/plain)
2016-08-04 12:10 UTC, Dennis Schridde
Details
build.log (build.log,4.34 KB, text/plain)
2017-01-07 13:32 UTC, Dennis Schridde
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Schridde 2016-08-04 12:10:06 UTC
Created attachment 442500 [details]
build.log

x86_64-pc-linux-gnu-gcc -pipe -mtune=generic -O2 -c netcat.c -o netcat.o
x86_64-pc-linux-gnu-gcc -pipe -mtune=generic -O2 -c atomicio.c -o atomicio.o
netcat.c:99:24: fatal error: bsd/stdlib.h: No such file or directory
 #include <bsd/stdlib.h>
                        ^
compilation terminated.
Makefile:16: recipe for target 'netcat.o' failed
make: *** [netcat.o] Error 1


# emerge --info net-analyzer/openbsd-netcat
Portage 2.2.28 (python 3.4.5-final-0, hardened/linux/amd64/selinux, gcc-4.9.3, glibc-2.22-r4, 4.4.8-hardened-r1 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.4.8-hardened-r1-x86_64-AMD_Athlon-tm-_64_Processor_3700+-with-gentoo-2.2
KiB Mem:     2044892 total,    404016 free
KiB Swap:    4194300 total,   4094836 free
Timestamp of repository gentoo: Fri, 29 Jul 2016 12:15:01 +0000
sh bash 4.3_p42-r1
ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
distcc 3.2rc1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.3_p42-r1::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.12::gentoo, 3.4.5::gentoo
dev-util/cmake:           3.3.1-r1::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/sandbox:         2.10-r1::gentoo
sys-devel/autoconf:       2.69::gentoo
sys-devel/automake:       1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo
sys-devel/gcc:            4.9.3::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers)
sys-libs/glibc:           2.22-r4::gentoo
Repositories:

gentoo
    location: /var/cache/portage/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage
    priority: -1000

local
    location: /var/cache/portage/local
    masters: gentoo local

hhvm
    location: /var/lib/layman/hhvm
    sync-type: laymansync
    sync-uri: git://github.com/reanimus/hhvm-overlay.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-pipe -mtune=generic -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.0/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-pipe -mtune=generic -O2"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --nospinner --usepkg --buildpkg --binpkg-respect-use --binpkg-changed-deps=y --rebuilt-binaries=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox selinux sesandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://distfiles.gentoo.org"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j2"
PKGDIR="/var/cache/portage/packages"
PORTAGE_COMPRESS="xz"
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 amd64 audit berkdb bzip2 caps cli cracklib crypt cxx dri gdbm gpg hardened iconv ipv6 jit justify luajit lz4 lzma lzo mmx mmxext modules multilib ncurses nls nptl open_perms openmp pam pax_kernel pcre pie readline sctp seccomp selinux session sse sse2 ssl ssp systemd tcpd udev unconfined unicode urandom vhosts xattr xtpax xz 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="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext sse sse2 sse3" DRACUT_MODULES="lvm" 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" 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-5 php7-0" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4 pypy pypy3" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" 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_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

net-analyzer/openbsd-netcat-1.84::gentoo was built with the following:
USE="(pie) (selinux) (ssp) -static" ABI_X86="64"
Comment 1 Dennis Schridde 2016-08-04 12:14:39 UTC
PFL suggest that this header (bsd/stdlib.h) is part of dev-libs/libbsd:

(on another system) # e-file stdlib.h
[...]
[I] dev-libs/libbsd
        Available Versions:     0.8.3 0.8.2 0.8.1-r1 0.8.1 0.8.0-r1 0.8.0 0.7.0 0.6.0 0.4.2 
        Last Installed Ver:     0.8.3(Tue 26 Apr 2016 19:12:21 CEST)
        Matched Files:          /usr/src/debug/dev-libs/libbsd-0.8.3/libbsd-0.8.3/include/bsd/stdlib.h; /usr/src/debug/dev-libs/libbsd-0.8.2/libbsd-0.8.2/include/bsd/stdlib.h; /usr/src/debug/dev-libs/libbsd-0.8.1/libbsd-0.8.1/include/bsd/stdlib.h; /usr/src/debug/dev-libs/libbsd-0.8.1-r1/libbsd-0.8.1/include/bsd/stdlib.h; /usr/src/debug/dev-libs/libbsd-0.8.0/libb
sd-0.8.0/include/bsd/stdlib.h; /usr/src/debug/dev-libs/libbsd-0.7.0/libbsd-0.7.0/include/bsd/stdlib.h; /usr/include/bsd/stdlib.h; 
[...]
Comment 2 Benda Xu gentoo-dev 2017-01-07 03:43:12 UTC
Do you have dev-libs/libbsd installed?
Comment 3 Dennis Schridde 2017-01-07 04:11:22 UTC
(In reply to Benda Xu from comment #2)
> Do you have dev-libs/libbsd installed?

Judging from what I wrote 5 months ago (comment #1), I assume I did not.
Comment 4 Benda Xu gentoo-dev 2017-01-07 04:51:44 UTC
(In reply to Dennis Schridde from comment #3)
> (In reply to Benda Xu from comment #2)
> > Do you have dev-libs/libbsd installed?
> 
> Judging from what I wrote 5 months ago (comment #1), I assume I did not.

did you compiled by `ebuild xxxx.ebuild merge`?  If you invoke via emerge the dependencies will be pulled in :)

I assume we can close the bug now.
Comment 5 Dennis Schridde 2017-01-07 13:32:47 UTC
Created attachment 459040 [details]
build.log
Comment 6 Dennis Schridde 2017-01-07 13:33:26 UTC
I can still reproduce this. Using `ROOT=/var/lib/lxc/www/rootfs emerge -a openbsd-netcat`.
Comment 7 Benda Xu gentoo-dev 2017-01-07 14:37:04 UTC
Very strange, I have tested with

ROOT=/tmp emerge -a openbsd-netcat

And it worked.
Comment 8 Benda Xu gentoo-dev 2017-01-07 14:39:13 UTC
Hmmm, if I uninstall libbsd from ROOT=/.  The bug appears again.

So this is a bug of portage, not openbsd-netcat itself.
Comment 9 Benda Xu gentoo-dev 2017-01-07 14:45:16 UTC
@portage team:

Installing into a ROOT cannot deal with package dependencies correctly.  Taking openbsd-netcat for example, which depends on libbsd.

# ROOT=/tmp emerge -a openbsd-netcat

These are the packages that would be merged, in order:

Calculating dependencies        ... done!                       
[ebuild  N     ] dev-libs/libbsd-0.8.3 to /tmp/ USE="-static-libs" ABI_X86="(64) -32 (-x32)" 
[ebuild  N     ] net-analyzer/openbsd-netcat-1.105-r1 to /tmp/

Would you like to merge these packages? [Yes/No] 

emerge draws in libbsd correctly, not the build system cannot find the headers of libbsd in /tmp

socks.c:41:32: fatal error: bsd/readpassphrase.h: No such file or directory


After installing libbsd into ROOT=/, then openbsd-netcat is built correctly.


Ideally, portage should handle this automatically.

Any hints to move forward?
Comment 10 Mike Gilbert gentoo-dev 2017-01-07 15:33:23 UTC
See bug 317337. The bug title mentions CBUILD and CHOST, but ROOT is closely related.

To summarize, the meaning of DEPEND is ambiguous when installing to ROOT != /.

Also see the "emerge --root-deps" flag as a workaround.
Comment 11 Zac Medico gentoo-dev 2017-01-08 21:32:37 UTC

*** This bug has been marked as a duplicate of bug 317337 ***