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 -