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

Bug 609488

Summary: app-emulation/libvirt-3.0.0 fails to compile in hardened/linux/musl/amd64 profile
Product: Gentoo Linux Reporter: Chad Joan <chadjoan>
Component: Current packagesAssignee: Gentoo musl team <musl>
Status: RESOLVED FIXED    
Severity: normal CC: tamiko, virtualization
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 430702    
Attachments: build.log.gz
emerge --info '=app-emulation/libvirt-3.0.0::gentoo'
emerge -pqv '=app-emulation/libvirt-3.0.0::gentoo'

Description Chad Joan 2017-02-16 06:53:30 UTC
Build failed on this error:

storage/storage_backend_fs.c: In function 'virStorageBackendFileSystemIsMounted':
storage/storage_backend_fs.c:420:23: error: '_PATH_MOUNTED' undeclared (first use in this function)
     if ((mtab = fopen(_PATH_MOUNTED, "r")) == NULL) {
                       ^
storage/storage_backend_fs.c:420:23: note: each undeclared identifier is reported only once for each function it appears in


I likely do not have time to follow-through with this one right away.
Comment 1 Chad Joan 2017-02-16 06:58:22 UTC
Created attachment 463904 [details]
build.log.gz
Comment 2 Chad Joan 2017-02-16 06:59:11 UTC
Created attachment 463906 [details]
emerge --info '=app-emulation/libvirt-3.0.0::gentoo'
Comment 3 Chad Joan 2017-02-16 06:59:57 UTC
Created attachment 463908 [details]
emerge -pqv '=app-emulation/libvirt-3.0.0::gentoo'
Comment 4 Chad Joan 2017-02-16 07:16:11 UTC
Status of other versions:
app-emulation/libvirt-2.5.0-r2::gentoo  (build failed)
app-emulation/libvirt-2.3.0::gentoo  (build failed*)
app-emulation/libvirt-2.1.0-r2::gentoo  (build failed**)
app-emulation/libvirt-1.3.5-r2::gentoo  (pulled in different deps, so I didn't attempt it)

* Slightly different error text, but pretty much the same thing:

/var/tmp/portage/app-emulation/libvirt-2.3.0/work/libvirt-2.3.0/src/storage/storage_backend_fs.c: In function 'virStorageBackendFileSystemIsMounted':
/var/tmp/portage/app-emulation/libvirt-2.3.0/work/libvirt-2.3.0/src/storage/storage_backend_fs.c:424:23: error: '_PATH_MOUNTED' undeclared (first use in this function)
     if ((mtab = fopen(_PATH_MOUNTED, "r")) == NULL) {
                       ^
/var/tmp/portage/app-emulation/libvirt-2.3.0/work/libvirt-2.3.0/src/storage/storage_backend_fs.c:424:23: note: each undeclared identifier is reported only once for each function it appears in

** This error is different entirely:
In file included from /var/tmp/portage/app-emulation/libvirt-2.1.0-r2/work/libvirt-2.1.0/src/libvirt-stream.c:26:0:
/var/tmp/portage/app-emulation/libvirt-2.1.0-r2/work/libvirt-2.1.0/src/rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
 #include <rpc/rpc.h>
                     ^
compilation terminated.
Comment 5 Felix Janda 2017-02-16 12:45:51 UTC
A <paths.h> include is missing. alpine has a patch for this:

http://git.alpinelinux.org/cgit/aports/tree/main/libvirt/musl-fix-includes.patch?id=9dd23710883316940b74244850e2ca2515a69c07

This should be easy to get upstream, but it seems that nobody has
bothered so far...

(In future, please use the "Current Packages" Component, so that the
bug has a higher probability of being assigned to the package's
maintainer.)
Comment 6 Matthias Maier gentoo-dev 2017-03-04 21:43:56 UTC
I have applied said patch to libvirt, please test version 3.1.0.


commit ee4cf77bfc66702e29c6fad238edd2a7e02dab1d
Author: Matthias Maier <tamiko@gentoo.org>
Date:   Sat Mar 4 15:36:15 2017 -0600

    app-emulation/libvirt: fix include for musl, bug #609488
    
    Package-Manager: Portage-2.3.3, Repoman-2.3.2
Comment 7 Chad Joan 2017-03-04 23:14:19 UTC
I have attempted to compile 3.1.0:

$ emerge -av app-emulation/libvirt

 * 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    ~] app-emulation/libvirt-3.1.0:0/3.1.0::gentoo  USE="caps dbus fuse libvirtd macvtap qemu sasl udev vepa zfs (-apparmor) -audit -firewalld -glusterfs -iscsi -libssh -lvm -lxc -nfs -nls -numa -openvz -parted -pcap -phyp -policykit -rbd (-selinux) -uml -virt-network -virtualbox -wireshark-plugins -xen -zeroconf" 13581 KiB

Total: 1 package (1 new), Size of downloads: 13581 KiB

Would you like to merge these packages? [Yes/No] 
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) app-emulation/libvirt-3.1.0::gentoo
>>> Failed to emerge app-emulation/libvirt-3.1.0, Log file:
>>>  '/var/tmp/portage/app-emulation/libvirt-3.1.0/temp/build.log'
>>> Jobs: 0 of 1 complete, 1 failed                 Load avg: 4.46, 1.24, 0.53

...



Unfortunately, I am still getting a similar error:

storage/storage_backend_fs.c: In function 'virStorageBackendFileSystemIsMounted':
storage/storage_backend_fs.c:306:23: error: '_PATH_MOUNTED' undeclared (first use in this function)
     if ((mtab = fopen(_PATH_MOUNTED, "r")) == NULL) {
                       ^
storage/storage_backend_fs.c:306:23: note: each undeclared identifier is reported only once for each function it appears in
Makefile:10069: recipe for target 'storage/libvirt_storage_backend_fs_la-storage_backend_fs.lo' failed
make[3]: *** [storage/libvirt_storage_backend_fs_la-storage_backend_fs.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
Comment 8 Chad Joan 2017-04-06 06:01:01 UTC
I just built app-emulation/libvirt-3.1.0::musl successfully.

So something changed; it seems like the ::musl version of the ebuild didn't exist before, but now it does and everything is peachy.

This is wonderful!  Thanks a bunch!

Victory went like so:
# emerge -av app-emulation/libvirt

 * 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    ~] app-emulation/libvirt-3.1.0:0/3.1.0::musl  USE="caps dbus fuse libvirtd macvtap nfs qemu sasl udev vepa zfs (-apparmor) -audit -firewalld -glusterfs -iscsi -libssh -lvm -lxc -nls -numa -openvz -parted -pcap -phyp -policykit -rbd (-selinux) -uml -virt-network -virtualbox -wireshark-plugins -xen -zeroconf" 0 KiB

Total: 1 package (1 new), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] 
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) app-emulation/libvirt-3.1.0::musl
>>> Installing (1 of 1) app-emulation/libvirt-3.1.0::musl
>>> Recording app-emulation/libvirt in "world" favorites file...
>>> Jobs: 1 of 1 complete                           Load avg: 6.07, 2.85, 1.40
>>> Auto-cleaning packages...

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

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