[Libguestfs] [PATCH] Adding ibm-powerkvm distro detection (the right one)

Daniel Henrique Barboza danielhb at linux.vnet.ibm.com
Thu Apr 2 22:10:39 UTC 2015



On 04/02/2015 01:20 PM, Daniel Henrique Barboza wrote:
>
>
> On 04/02/2015 11:47 AM, Pino Toscano wrote:
>> On Thursday 02 April 2015 11:15:07 Daniel Henrique Barboza wrote:
>>> Hi Pino,
>>>
>>> On 04/02/2015 09:51 AM, Pino Toscano wrote:
>>>> Hi Daniel,
>>>>
>>>> On Thursday 02 April 2015 09:34:17 Daniel Henrique Barboza wrote:
>>>>> On 04/02/2015 05:23 AM, Pino Toscano wrote:
>>>>>> Hi Daniel,
>>>>>>
>>>>>> On Wednesday 01 April 2015 16:37:26 Daniel Henrique Barboza wrote:
>>>>>>> The one that got upstream does not work in ibm-powerkvm due to the
>>>>>>> rpm_is_avaiable verification
>>>>>>> in the detection (I've attached the wrong version in bugzilla).
>>>>>> the new version of the patch is somehow confusing. supermin >= 
>>>>>> 5.1.12
>>>>>> uses librpm to query for rpm dependencies, file listing, 
>>>>>> provides, etc.
>>>>>> If rpm_is_available returns false, that means you built without 
>>>>>> librpm,
>>>>>> and that supermin will not really work. Did you tried running the 
>>>>>> test
>>>>>> suite (`make check`)?
>>>>>>
>>>>> These are the results of make check in the system I've used to 
>>>>> test the
>>>>> patch. The system is
>>>>> in an internal isolated network, thus I believe some failures were
>>>>> expected to happen.
>>>>>
>>>>>
>>>>> PASS: test-basic.sh
>>>>> PASS: test-execstack.sh
>>>>> FAIL: test-build-bash.sh
>>>>> FAIL: test-binaries-exist.sh
>>>>> SKIP: test-harder.sh
>>>>> FAIL: test-build-bash-network.sh
>>>>> FAIL: test-binaries-exist-network.sh
>>>>> SKIP: test-harder-network.sh
>>>>> make[4]: Entering directory `/root/supermin/tests'
>>>>> make[4]: Nothing to be done for `all'.
>>>>> make[4]: Leaving directory `/root/supermin/tests'
>>>>> ============================================================================ 
>>>>>
>>>>> Testsuite summary for supermin 5.1.12
>>>>> ============================================================================ 
>>>>>
>>>>> # TOTAL: 8
>>>>> # PASS:  2
>>>>> # SKIP:  2
>>>>> # XFAIL: 0
>>>>> # FAIL:  4
>>>>> # XPASS: 0
>>>>> # ERROR: 0
>>>>>
>>>>> I've run the non-related network tests to see the failure cause. 
>>>>> It is
>>>>> worth saying that supermin
>>>>> upstream code builds and runs fine as far as I can tell, thus I 
>>>>> couldn't
>>>>> figure it out much reading
>>>>> these errors:
>>>>>
>>>>> # ./test-build-bash.sh
>>>>> ./test-build-bash.sh: line 34: 83872 Aborted ../src/supermin -v
>>>>> --prepare $USE_INSTALLED bash -o $d1
>>>>> # ./test-binaries-exist.sh
>>>>> ./test-binaries-exist.sh: line 29: 83886 Aborted ../src/supermin -v
>>>>> --prepare $USE_INSTALLED bash coreutils -o $d1
>>>> These errors tells me exactly what I was talking about: you are
>>>> building supermin on a rpm-based distribution without librpm support,
>>>> meaning that supermin is basically non-functional.
>>>>
>>>> The abort() come from src/librpm-c.c, in the else part of the
>>>> #ifdef HAVE_LIBRPM.
>>>>
>>>>> I will be honest and say that I didn't dig further understanding 
>>>>> why the
>>>>> rpm_is_available
>>>>> check fails in ibm-powerkvm. The patch I sent is similar to an 
>>>>> internal
>>>>> patch we used to add
>>>>> temporary support to the distro on a older version of supermin (the
>>>>> version shipped
>>>>> with RHEL 7.1 GA).
>>>>>
>>>>> I assumed that rpm_is_available failed because ibm-powerkvm does not
>>>>> have all the rpm features
>>>>> fedora and rhel have, although it uses rpm/yum. Perhaps in a later
>>>>> release of the OS, using
>>>>> a newer version of supermin, we should review this code and 
>>>>> enhance it.
>>>> As I said, I'm pretty sure it's because you are building without
>>>> librpm, and you should have got in configure's output something like:
>>>>
>>>>     checking for LIBRPM... no
>>>>
>>>> Please try the following:
>>>> - install rpm-devel (being a Fedora-based distro, you should have it)
>>>> - get supermin 5.1.12
>>>> - apply your ibm-powerkvm patch
>>>> - readd the rpm_is_available check (basically reverting [1])
>>>> - run ./configure and check that you have "LIBRPM... yes"
>>>> - build and run the test suite
>>>>
>>>> If things work, you should get 6 tests passing and 2 skipped (we can
>>>> make these 2 working as well later).
>>>>
>>>> [1] 
>>>> https://github.com/libguestfs/supermin/commit/b2b0f29efb537161df0286f4a9d5cfe94206be18
>>> You are right. I've executed all the steps you mentioned and make check
>>> now passes
>>> (6 pass 2 skipped) and the original patch now detects ibm-powerkvm 
>>> as well.
>> Nice to hear that. I've just reverted upstream the aforementioned
>> patch, following your confirmation.
>>
>> Regarding the skipped test (the two occurrence are the same test, just
>> run in local-only and network mode): would it be possible to extend it
>> to recognize the ibm-powerkvm distro?
> I'll try it for sure. I am having problems accessing the system at this
> moment (lab downtime/maintenance) but as soon as I am able I'll try
> to follow your checklist and see if I can make the skipped test work
> with ibm-powerkvm too.
>
> I'll update this thread when I have news about it.

I've changed tests/test-harder.sh and now make checks passes it 8/8 in my
ibm_powerkvm test system:

==========================================
Testsuite summary for supermin 5.1.12
==========================================
# TOTAL: 8
# PASS:  8
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
==========================================

I've double checked 'supermin --list-drivers' to see if the detection 
was working as
intended and it is.

The patch that adds ibm-powerkvm in test-harder.sh is attached in this 
email.


Thanks!

>
>
> Thanks!
>
>
>> Basically it boils down to:
>> - set the proper "distro" variable, which in your case would be checking
>>    for /etc/ibm_powerkvm-release
>> - set few packages in "pkgs", possibly taking one simple/small with
>>    epoch (like tar, if ibm_powerkvm is based on fedora/rhel/centos)
>> - check that there are "key files" (like shared libraries and binaries)
>>    installed by the specified packages
>>
>> This test helps checking that the result produced by supermin actually
>> do contain the files from packages you asked to "install".
>>
>> Thanks,
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Adding-ibm-powerkvm-distro-to-tests-test-harder.sh.patch
Type: text/x-patch
Size: 1876 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20150402/128bdd4f/attachment.bin>


More information about the Libguestfs mailing list