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 PERLOPT2="--define=__perl_requires /bin/sh -c 'cat >/dev/null'"
14 PHPOPT="--define=__php_provides /bin/sh -c 'cat >/dev/null'"
15 PHPOPT2="--define=__php_requires /bin/sh -c 'cat >/dev/null'"
19 while [ $# -gt 0 ]; do
30 buildroot="${1#--buildroot=}"
33 for i in ${1#--noautoprovfiles=} ; do
34 noprovfiles="${noprovfiles}\|${buildroot}${i}"
38 for i in ${1#--noautoprov=} ; do
39 noprov="${noprov}\|${i}"
45 if [ -r /etc/rpm/noautoprovfiles ]; then
46 for i in `cat /etc/rpm/noautoprovfiles | grep -v '^#'`; do
47 noprovfiles="${noprovfiles}\|${buildroot}${i}"
51 if [ -r /etc/rpm/noautoprov ]; then
52 for i in `cat /etc/rpm/noautoprov | grep -v '^#'`; do
53 noprov="${noprov}\|${i}"
57 # rpmdeps output seems sorted, but resort it in case of long list split
58 grep -v -e "^\(${noprovfiles}\)\$" | tr '\n' '\0' | \
59 xargs -r -0 /usr/bin/rpmdeps "${PERLOPT}" "${PERLOPT2}" \
60 "${PHPOPT}" "${PHPOPT2}" --provides | \
61 LC_ALL=C sort -u | grep -v -e "^\(${noprov}\)\$"