Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 833754 - app-emulation/libvirt-8.0.0-r1 fails tests on MUSL
Summary: app-emulation/libvirt-8.0.0-r1 fails tests on MUSL
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Matthias Maier
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-19 06:49 UTC by Agostino Sarubbo
Modified: 2022-04-03 04:36 UTC (History)
2 users (show)

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


Attachments
build.log.xz (build.log.xz,46.29 KB, application/x-xz)
2022-02-19 06:49 UTC, Agostino Sarubbo
Details
1-testlog.txt.xz (1-testlog.txt.xz,74.77 KB, application/x-xz)
2022-02-19 06:49 UTC, Agostino Sarubbo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2022-02-19 06:49:25 UTC
https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/

Issue: app-emulation/libvirt-8.0.0-r1 fails tests.
Discovered on: amd64 (internal ref: tinderbox_musl)

NOTE:
This machine uses MUSL libc
Comment 1 Agostino Sarubbo gentoo-dev 2022-02-19 06:49:28 UTC
Created attachment 765437 [details]
build.log.xz

build log and emerge --info (compressed because it exceeds attachment limit, use 'xzless' to read it)
Comment 2 Agostino Sarubbo gentoo-dev 2022-02-19 06:49:30 UTC
Created attachment 765438 [details]
1-testlog.txt.xz

1-testlog.txt (compressed because it exceeds attachment limit, use 'xzless' to read it)
Comment 3 Agostino Sarubbo gentoo-dev 2022-02-19 06:49:31 UTC
Error(s) that match a know pattern:


Library rados found: NO
Library rbd found: NO
Program augparse found: NO
Program dog found: NO
Program flake8 found: NO
Program iscsiadm found: NO
Program mdevctl found: NO
Program mm-ctl found: NO
Program ovs-vsctl found: NO
Program pdwtags found: NO
Program showmount found: NO
Program slirp-helper found: NO
Run-time dependency bash-completion found: NO (tried pkgconfig and cmake)
Run-time dependency devmapper found: NO (tried pkgconfig and cmake)
Run-time dependency libiscsi found: NO (tried pkgconfig and cmake)
Run-time dependency libparted found: NO (tried pkgconfig and cmake)
Run-time dependency openwsman found: NO (tried pkgconfig and cmake)
Run-time dependency parallels-sdk found: NO (tried pkgconfig and cmake)
Comment 4 Michal Privoznik 2022-03-02 10:00:21 UTC
So, there are nwfilterxml2firewalltest, qemuxml2xmltest and qemuxml2argvtest failing.

The first one (nwfilterxml2firewalltest) fails, because unexpected output was produced. The actual test case is ah-ipv6.xml ( https://gitlab.com/libvirt/libvirt/-/blob/master/tests/nwfilterxml2firewalldata/ah-ipv6.xml ) and the problematic part is the following:

  <rule action='accept' direction='in'>
    <ah-ipv6 srcmacaddr='1:2:3:4:5:6' srcipaddr='::10.1.2.3' srcipmask='128' dscp='33'/>
  </rule>

The aim of the test is to check whether libvirt generated expected firewall rules. And with glibc we get:

ip6tables -w -A FP-vnet0 -p ah -m mac --mac-source 01:02:03:04:05:06 --source ::10.1.2.3/128 -m dscp --dscp 33 -m state --state NEW,ESTABLISHED -j ACCEPT
ip6tables -w -A HJ-vnet0 -p ah --destination ::10.1.2.3/128 ...

While with musl the IPv4 mapped IPv6 address looks a bit different: ::a01:203/128
They are both equivalent so I guess libvirt needs to address this, somehow.

Then, the other two tests (qemuxml2xmltest and qemuxml2argvtest) fail because apparently some <controller/>-s are not added automatically. I wonder what the root cause may be. We use so called mocking where we provide alternative implementation of some functions (either libvirt internal ones or even libc/gnutls/etc.) to have predictable results. But maybe we have forgotten to mock some additional functions and thus these tests still depend on something in the host? I'll try to investigate.
Comment 5 Michal Privoznik 2022-03-07 13:02:48 UTC
Alright, I've merged/reviewed couple of fixes and now I am able to build libvirt with musl successfully. The upstream commits include:

89cc0ffdeb wireshark: Fix dissector for quad types
ca6122d237 docs: remove extra closing tag
3c61c9bea6 tests: Allow expansion of mocked stat symbols
822be8d652 nwfilter: Avoid memory alignment issues
fad2bff51e Include sys/wait.h instead of wait.h
afecf0ee0b Include poll.h instead of sys/poll.h
00babda45e syntax-check: Rework mock-noinline to get all files at once
86c691e6de tests: Update IPv4-in-IPv6 addresses
c7a0b89065 sockettest: Check for IPv4-in-IPv6 parsing and formatting
c3c1293984 vircgroupmock: Make global variables static
61a12ffe08 vircgroupmock: Be wiser about detecting fakerootdir change

They are going to be part of 8.2.0 release.
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-03-14 21:56:29 UTC
(In reply to Michal Privoznik from comment #5)
> Alright, I've merged/reviewed couple of fixes and now I am able to build
> libvirt with musl successfully. The upstream commits include:
> 

Excellent work -- thank you for both doing it and updating us here too. Really appreciated!
Comment 7 Larry the Git Cow gentoo-dev 2022-04-03 04:36:03 UTC
The bug has been closed via the following commit(s):

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

commit f80abc70fa18166129b827b6ed4c671cb5c656b0
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2022-04-03 04:04:09 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-04-03 04:35:37 +0000

    app-emulation/libvirt: add 8.2.0
    
    * Add 8.2.0
    * Tighten up some lower bounds on dependencies
    * Add shorewall to init script 'after'
    
    Bug: https://bugs.gentoo.org/836128
    Closes: https://bugs.gentoo.org/833754
    Closes: https://bugs.gentoo.org/831121
    Signed-off-by: Sam James <sam@gentoo.org>

 app-emulation/libvirt/Manifest                |   2 +
 app-emulation/libvirt/files/libvirtd.init-r19 |   2 +-
 app-emulation/libvirt/libvirt-8.2.0.ebuild    | 336 ++++++++++++++++++++++++++
 app-emulation/libvirt/libvirt-9999.ebuild     |  52 ++--
 app-emulation/libvirt/metadata.xml            |   4 +
 5 files changed, 368 insertions(+), 28 deletions(-)