Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 604590

Summary: net-nds/rpcbind fails to compile in hardened/linux/musl/amd64 profile
Product: Gentoo Linux Reporter: Chad Joan <chadjoan>
Component: HardenedAssignee: Gentoo musl team <musl>
Status: RESOLVED FIXED    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 430702    
Attachments: build.log
emerge --info '=net-nds/rpcbind-0.2.3-r1::gentoo'
emerge -pqv '=net-nds/rpcbind-0.2.3-r1::gentoo'

Description Chad Joan 2017-01-04 04:28:30 UTC
Created attachment 458624 [details]
build.log

I tried building net-nds/rpcbind-0.2.3-r1 and the build failed, starting with this error and continuing with many others:

src/util.c:44:23: fatal error: sys/queue.h: No such file or directory
 #include <sys/queue.h>
                       ^
compilation terminated.

It seems similar in nature to this bug report for a different piece of software (a text editor):
https://github.com/lichray/nvi2/issues/40

In summary, sys/queue.h is present on glibc systems (/usr/include/sys/queue.h), but not on musl-libc systems.  This particular problem can probably be solved by making the software include /usr/include/bsd in addition to /usr/include so that it can pull in /usr/include/bsd/sys/queue.h, or maybe modify the source to include <bsd/sys/queue.h>.  Hopefully they are compatible.

There may be other problems too.  It's hard to tell without digging.

It's open season on this bug: I won't be working on it now and probably not any time soon.
Comment 1 Chad Joan 2017-01-04 04:29:19 UTC
Created attachment 458626 [details]
emerge --info '=net-nds/rpcbind-0.2.3-r1::gentoo'
Comment 2 Chad Joan 2017-01-04 04:29:56 UTC
Created attachment 458628 [details]
emerge -pqv '=net-nds/rpcbind-0.2.3-r1::gentoo'
Comment 3 Chad Joan 2017-04-06 01:59:18 UTC
Version 0.2.4 confirmed build works.

I tried building rpcbind today to see if it became un-broken, and was pleasantly surprised:

# emerge -av1 net-nds/rpcbind

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


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

Calculating dependencies... done!
[ebuild  N     ] sys-libs/queue-0.1::musl  0 KiB
[ebuild     U  ] net-libs/libtirpc-1.0.1:0/3::musl [0.2.5-r99:0/0::musl] USE="ipv6 -kerberos -static-libs" 484 KiB
[ebuild  N     ] net-nds/rpcbind-0.2.4::gentoo  USE="tcpd -debug (-selinux) (-systemd) -warmstarts" 120 KiB

Total: 3 packages (1 upgrade, 2 new), Size of downloads: 604 KiB

Would you like to merge these packages? [Yes/No] 
>>> Verifying ebuild manifests
>>> Emerging (1 of 3) sys-libs/queue-0.1::musl
>>> Installing (1 of 3) sys-libs/queue-0.1::musl
>>> Emerging (2 of 3) net-libs/libtirpc-1.0.1::musl
>>> Installing (2 of 3) net-libs/libtirpc-1.0.1::musl
>>> Emerging (3 of 3) net-nds/rpcbind-0.2.4::gentoo
>>> Installing (3 of 3) net-nds/rpcbind-0.2.4::gentoo
>>> Jobs: 3 of 3 complete                           Load avg: 0.20, 0.20, 0.21
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

...

I'm not sure if rpcbind was "fixed" or not, but I suspect that the person who added sys-libs/queue::musl to the tree is my hero.

Oh jubilation!
Comment 4 Anthony Basile gentoo-dev 2017-04-06 21:50:36 UTC
It was probably fixed upstream since queue.h is just a bunch of macros.