Looking for testers: RPM 4.9 alpha

Panu Matilainen pmatilai at laiskiainen.org
Tue Nov 30 20:10:55 UTC 2010


On Tue, 30 Nov 2010, Erik van Pienbroek wrote:

> Panu Matilainen schreef op vr 26-11-2010 om 13:20 [+0200]:
>> In particular, I'm interested in feedback on the new, pluggable and
>> enhanced dependency extration system. Documentation is scarce at the
>> moment but some background and examples can be found here:
>> http://laiskiainen.org/blog/?p=35
>
> All mingw32 packages in Fedora contain these set of instructions in
> the .spec files:
>
> %global _use_internal_dependency_generator 0
> %global __find_requires %{_mingw32_findrequires}
> %global __find_provides %{_mingw32_findprovides}
>
> Does this new dependency extraction system make these kind of
> instructions obsolete?

The above still works with the new rpm version.

>
> If I understand your blog entry correctly then we (the Fedora MinGW SIG)
> are recommended to use something like this:
>
> %__mingw32_provides %{_mingw32_findprovides}
> %__mingw32_requires %{_mingw32_findrequires}
>
> Is this correct or do you recommend something different?

That alone wont do anything at all, to create a new "file attribute" 
called mingw32 you'd add a file like this to a suitable package, 
mingw32-filesystem probably:

/usr/lib/rpm/fileattrs/mingw32.attr:

%__mingw32_requires	/usr/lib/rpm/mingw32-find-requires.sh
%__mingw32_provides	/usr/lib/rpm/mingw32-find-provides.sh
%__mingw32_magic	^PE32 executable for MS Windows.* 80386 32-bit$

The magic rule is based on what 'file -b <file>' outputs for mingw32 
executables and dll's - the above includes both, but you can make it 
tighter to only include DLL's or have different extractors for DLL's and 
EXE's by creating two rules instead of just one etc. Or if libmagic 
strings aren't good ("fakedll" binaries from Wine would match the above 
rule), path based regexes can be used too. It all depends on what makes 
sense in a given scenario.

You could also easily have a mingw32-specific pkg-config dependency 
extractor which uses a different namespace than the regular pkgconfig(foo) 
and only activates on .pc files from the mingw32 sys-root directory.

And with necessary mingw32-specific .attr files in place through 
buildrequires, there's no need for override kludges in each and every 
mingw32 spec.

 	- Panu -


More information about the devel mailing list