[Mageia-dev] Standardising the virtual Provides in -devel packages

Ahmad Samir ahmadsamir3891 at gmail.com
Wed Jul 13 12:41:22 CEST 2011


On 13 July 2011 12:34, nicolas vigier <boklm at mars-attacks.org> wrote:
> On Wed, 13 Jul 2011, Ahmad Samir wrote:
>
>> On 10 July 2011 10:03, Ahmad Samir <ahmadsamir3891 at gmail.com> wrote:
>> > On 8 July 2011 06:37, Ahmad Samir <ahmadsamir3891 at gmail.com> wrote:
>> >> Hello.
>> >>
>> >> I've had a rather vague idea about standardising the virtual provides
>> >> in the distro, there should be:
>> >> Provides: %{name}-devel
>> >> Provides: lib%{name}-devel
>> >>
>> >> either both of them in _all_ packages, or one of them in _all_
>> >> packages, so that we don't have to check urpmq --provides all the
>> >> time. Personally, I am more inclined on having them both, so as not to
>> >> break already working specs.
>> >>
>> >> For example:
>> >> $ urpmq --provides lib64gudev1.0-devel-166-5.mga1.x86_64
>> >> libgudev-devel[== 166-5.mga1]
>> >> pkgconfig(gudev-1.0)[== 166]
>> >> devel(libgudev-1.0(64bit))
>> >> lib64gudev1.0-devel[== 166-5.mga1]
>> >> lib64gudev1.0-devel(x86-64)[== 166-5.mga1]
>> >>
>> >> only libgudev-devel, so if I put BR gudev-devel in a spec it won't
>> >> work, whereas I'd expect it to work since some other packages have
>> >> such similar provides:
>> >> $ urpmq --provides lib64dbus-1-devel
>> >> libdbus-1-devel[== 1.4.1-3.mga1]
>> >> libdbus-devel[== 1.4.1-3.mga1]
>> >> dbus-devel[== 1.4.1-3.mga1]
>> >> [...]
>> >>
>> >>
>> >> WDYT?
>> >>
>> >> (If we agree to go one way or the other, will just fix them gradually
>> >> over time).
>> >>
>> >> --
>> >> Ahmad Samir
>> >>
>> >
>> > Adding to the above, spturtle has suggested using pkgconfig()
>> > provides: https://bugs.mageia.org/show_bug.cgi?id=2065
>> >
>> > --
>> > Ahmad Samir
>> >
>>
>> Using pkgconfig provides looks like an optimal option, we could start
>> now, whenever we touch a spec we change to the pkgconfig provides, and
>> gradually all the specs will be adapted.
>>
>> And for the packages that don't have .pc files we add:
>> Provides: %{name}-devel = %{version}-release
>> Provides: lib%{name}-devel = %{version}-release
>>
>> or we could add them to all packages whether they have .pc files or
>> not, but still always use pkgconfig() provides as BR in our specs.
>
> I think it's better to use %{name}-devel for packages which don't have
> pkgconfig files. And keep pkgconfig() provides for packages with .pc
> files.
>
>

As spturtle said, conformity/consistency is good, i.e. all our
packages should have the same Provides, that's better in the long run,
and less confusing for new (and old too) packagers.

The cost of dropping lib%{name}-devel altogether is some specs may
break, but that can be mitigated by adding the SRPMS repos manually (I
didn't know those repos had hdlists, until tv pointed it out in
another thread some time ago), and checking:
urpmf --media Core-SRPMS --requires lib%{name}-devel

and then fixing all the specs that has lib%{name}-devel (that may be a
daunting task sometimes, though).

The point is, we don't have to fix this tomorrow, we start now and
with mga2/3 all the specs will have been cleaned up.

-- 
Ahmad Samir


More information about the Mageia-dev mailing list