3 # _noauto* wrapper for builtin rpm Provides generator
4 # requires: /bin/sh, /usr/bin/rpmdeps, coreutils, findutils
5 # input (stdin): filenames (one per line)
6 # output (stdout): Provides list (one per line)
8 # note that no large list is stored in shell variable - this was VERY slow
12 PERLOPT="--define=__perl_provides /bin/sh -c 'cat >/dev/null'"
13 PHPOPT="--define=__php_provides /bin/sh -c 'cat >/dev/null'"
17 while [ $# -gt 0 ]; do
26 buildroot="${1#--buildroot=}"
29 for i in ${1#--noautoprovfiles=} ; do
30 noprovfiles="${noprovfiles}\|${buildroot}${i}"
34 for i in ${1#--noautoprov=} ; do
35 noprov="${noprov}\|${i}"
41 if [ -r /etc/rpm/noautoprovfiles ]; then
42 for i in `cat /etc/rpm/noautoprovfiles | grep -v '^#'`; do
43 noprovfiles="${noprovfiles}\|${buildroot}${i}"
47 if [ -r /etc/rpm/noautoprov ]; then
48 for i in `cat /etc/rpm/noautoprov | grep -v '^#'`; do
49 noprov="${noprov}\|${i}"
53 # rpmdeps output seems sorted, but resort it in case of long list split
54 grep -v -e "^\(${noprovfiles}\)\$" | tr '\n' '\0' | \
55 xargs -r -0 /usr/bin/rpmdeps "${PERLOPT}" "${PHPOPT}" --provides | \
56 LC_ALL=C sort -u | grep -v -e "^\(${noprov}\)\$"