On Apr 21, 2008, at 1:37 PM, Michael Jennings wrote:

For various reasons, it is sometimes necessary to munge the
automatically-generated Perl requirements for various packages.  The
most common way to do that this I've found has been to set
_use_internal_dependency_generator to 0, create a script which did
something similar to this:

    #!/bin/sh

    /usr/lib/rpm/find-requires $* | grep -v 'perl(Business'

and then redefine __find_requires to point to this script.

As you might imagine, this technique breaks with RPM5.  The biggest
and most obvious problem being that /usr/lib/rpm/find-requires no
longer exists.  The closest thing is "/usr/lib/rpm/find-requires.perl"
which contains only "exec /usr/lib/rpm/find-requires" and similarly
fails.  Even %__find_requires points to this non-existent script.

So the question is, what's the right way to "grep out" bogus Perl
module dependencies in RPM >= 5.0?


Hmmm, ick. Disabling the internal depedency generator loses
sorted dependencies, and also results in uncolored packages that
will not install correctly on multilib platforms.

Have you tried using %__perl_requires instead of %__find_requires?
Same "grep -v" or "sed -e's/baddep//" filtering mechanism, just a
different macro.

What's more generally needed is a set of patterns applied to
filter _ALL_ dependencies. PLD has one of these thingies
(they're always first ;-) but now that rpmio/mire.c appears largely
finished, there's a better mechanism to filter _ALL_ deps.

What still needs some though is how to set up a build policy
configuration framework to configure patterns that you never want to
appear in packages. Otherwise lusers will be adding envvars, and options
and whatever else they think they need to change rpmbuild behavior.

73 de Jeff
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to