[libvirt] Bug - libvirt persists on having dnsmasq

Zdenek Styblik stybla at turnovfree.net
Tue Aug 16 18:39:23 UTC 2011


On 08/16/11 20:00, Matthias Bolte wrote:
> 2011/8/16 Zdenek Styblik <stybla at turnovfree.net>:
>> On 08/16/11 18:07, Zdenek Styblik wrote:
>> [...]
>>>>> Well, libvirt.spec has had Require: dnsmasq for at least a couple
>>>>> years, so any install of a libvirt rpm should fail when dnsmasq
>>>>> isn't present. I don't know for certain how long the BuildRequires:
>>>>> dnsmasq has been there, but certainly for at least a year (the last
>>>>> time the line was modified), so any rpm builds should also fail.
>>>>>
>>>>> But of course if you're running ./autogen.sh and then make, that
>>>>> doesn't involve the specfile.
>>>>>
>>>>> dnsmasq really is an integral part of the network driver; I don't
>>>>> know that it makes any sense to "fix" things so it can be built
>>>>> without dnsmasq. It's probably a good idea to make the failure
>>>>> complete though.
>>>>
>>>> We already have an option to disable the virtual network driver. I don't
>>>> think we want to have a separate option for dnsmasq, since that is an
>>>> integral part of hte network driver IMHO
>>>>
>>>> Daniel
>>>
>>> I'm sorry, but what? I did not understand single word, and I mean it -
>>> no irony, no pun.
>>>
>>> In other words and what I took from the reply, you mean to tell me from
>>> libvirt-0.9.4 and on one is forced to have dnsmasq around resp. to use
>>> libvirt?
>>>
>>> Thanks,
>>> Z.
>>
>>
>> So, let me just repeat whole thing again.
>>
>> Up until libvirt version 0.9.3, libvirt was able to auto-magically
>> detect presence of dnsmasq. And in case dnsmasq was not found during
>> ./configure; libvirt wouldn't try to use it.
> 
> Actually I think that's not true. I think the code just accidentally
> ignored it when dnsmasq could not be started. This commit (part of
> libvirt 0.9.4)
> 
> http://libvirt.org/git/?p=libvirt.git;a=commit;h=85a954cebbbb3ae6210a779a5f3b29559ec5f862
> 
> fixed this. I didn't test it but this seems to be the cause for the
> problem you're describing.
> 
>> However, since libvirt version 0.9.4 resp. in libvirt version 0.9.4 this
>> auto-magical detection does not work and libvirt persists on using
>> dnsmasq which is not present.
> 
> True, because a bug was fixed. It may look to you as there was a
> feature that's broken now, but that's not the case, I think. The code
> is expecting dnsmasq to be available when a virtual network is used.
> 
> A simple solution for you might be to revert commit
> 85a954cebbbb3ae6210a779a5f3b29559ec5f862 and go back to exploiting the
> bug, that made it work for you as you expect it.
> 
>> I don't know what to make from your replies as it seems like you don't
>> want to get blame for this one nor there seems to be will not to make
>> libvirt dnsmasq independent.
> 
> I don't think that this is the case here. I think Dan and Laine
> weren't aware that there was a bug fixed in libvirt 0.9.4 that gave
> you the impression that dnsmasq was optional.
> 
>> I blame nobody. I want to know, I want to fix it one way or another, and
>> move on.
> 
> One could argue that the virtual network code could be more fine
> grained and only start dnsmasq when it's really necessary, as this is
> what you expect from it. Currently it tries to start dnsmasq when the
> network contains an <ip> element. See
> 
> http://libvirt.org/git/?p=libvirt.git;a=blob;f=src/network/bridge_driver.c#l1806
> 
> You might suggest that it only should start/require dnsmasq when there
> is a <dhcp> element or something DNS related that really makes dnsmasq
> necessary.
> 

Matthias, thank you for exhaustive reply. I have nothing, but really
nothing, to argue about. I mean, I agree 100% with everything you've
written.

I hope I was not being jerky beyond limits.

Thanks again,
Z.

-- 
Zdenek Styblik
email: stybla at turnovfree.net
jabber: stybla at jabber.turnovfree.net




More information about the libvir-list mailing list