fp-wiki>ImportUser (Imported from MoinMoin) |
m (→requires filtering: Add a link to a more detailed page with less google juice) |
||
(4 intermediate revisions by 4 users not shown) | |||
Line 37: | Line 37: | ||
#!/bin/sh | #!/bin/sh | ||
if [ -x /usr/lib/rpm/redhat/find- | if [ -x /usr/lib/rpm/redhat/find-requires ] ; then | ||
FINDREQ=/usr/lib/rpm/redhat/find-requires | FINDREQ=/usr/lib/rpm/redhat/find-requires | ||
else | else | ||
Line 45: | Line 45: | ||
$FINDREQ $* | sed -e '/libbadreq.so/d' | $FINDREQ $* | sed -e '/libbadreq.so/d' | ||
</pre> | </pre> | ||
See [[Packaging:AutoProvidesAndRequiresFiltering]] for more detail. | |||
=== provides filtering === | === provides filtering === | ||
Line 72: | Line 74: | ||
== Perl filtering == | == Perl filtering == | ||
... pull in bit from [ | ... pull in bit from [[Packaging/Perl]] | ||
== Python filtering == | == Python filtering == | ||
== Mono filtering == | == Mono filtering == | ||
[[Category:Packaging guidelines drafts]] |
Latest revision as of 21:24, 3 August 2015
NOTE: This is a draft, and needs a lot of fleshing out -- if people would rather it live somewhere other than under PackagingDrafts, that's fine by me, so long as the bit about _use_internal_dependency_generator is in the wiki somewhere, hopefully sparing at least one other person the loss of several hours :)
RPM usually does an excellent job of figuring out what a package requires and what it depends on, automatically. However, sometimes there are times you want to disable this entirely (_strongly_ discouraged) or filter out certain errant provides.
How rpm does it ("the plumbing")
... probably just a link to elsewhere ...
Disabling dependency auto-generation
Filtering provides
... bit about the different ways and macros here ...
Unlike the other types of filtering, in order to override the default req/prov generation one has to explicitly set the _use_internal_dependency_generator to 0 in their spec file.
... note about how this seems to override the other, macro based filters as well (e.g. __perl_provides)
requires filtering
In one's specfile, one could have:
Source91: filter-requires.sh %define _use_internal_dependency_generator 0 %define __find_requires %{SOURCE91}
filter-requires.sh would look something like:
#!/bin/sh if [ -x /usr/lib/rpm/redhat/find-requires ] ; then FINDREQ=/usr/lib/rpm/redhat/find-requires else FINDREQ=/usr/lib/rpm/find-requires fi $FINDREQ $* | sed -e '/libbadreq.so/d'
See Packaging:AutoProvidesAndRequiresFiltering for more detail.
provides filtering
In one's specfile, one could have:
Source92: filter-provides.sh %define _use_internal_dependency_generator 0 %define __find_provides %{SOURCE92}
filter-provides.sh would look something like:
#!/bin/sh if [ -x /usr/lib/rpm/redhat/find-provides ] ; then FINDPROV=/usr/lib/rpm/redhat/find-provides else FINDPROV=/usr/lib/rpm/find-provides fi $FINDPROV $* | sed -e '/libbadprov.so/d'
Perl filtering
... pull in bit from Packaging/Perl