Re: DEB_VENDOR and forks
Raphael Hertzog schrieb:
> On Wed, 18 Mar 2009, Loïc Minier wrote:
>> If you implement conditional behavior in your rules, typically based on
>> lsb_release -is output:
>> if vendor is Ubuntu:
>> foo
>> elif vendor is Debian:
>> bar
>> you face a problem when you meet:
>> else:
>>
>> What behavior should one use here?
>
> Debian should always be the "else" because it's the default case. It
> ensures that the lack of DEB_VENDOR results in correct package and
> also that any unknown derivatives get the Debian behaviour.
>
> Of course an Ubuntu derivative could be surprised if they get
> a Debian-variant of a package instead of an Ubuntu-variant… this explains
> your other remark:
>
>> Instead, I think it would be nice if we could express some inheritance
>> concept so that you can have conditional behavior in rules based on
>> either "this distribution and its derivatives" or "only for this exact
>> distribution" and logical combinations such as "derivatives of Foo
>> except derivatives of Bar".
>
> I see how we can solve it (add new fields in /etc/dpkg/origins/* to
> describe parent relationship, and create a new tool to query those
> meta-information) but I wonder what impact you expect it would have
> on the decision of exporting DEB_VENDOR in the build environment.
>
> Would you like a DEB_VENDORS="Gobuntu Ubuntu Debian" or similar
> so that no external tool is required ?
>
> ifneq (,$(filter Ubuntu,$(DEB_VENDORS)))
> # Ubuntu or derivative
> endif
what about a command is_derivative <DEB_VENDOR> which could be used instead?
This wouldn't hard-code any specific vendor names.
Reply to: