]>
Commit | Line | Data |
---|---|---|
0b3acdf9 | 1 | #!/bin/sh |
0b3acdf9 JB |
2 | |
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) | |
7 | ||
8 | # note that no large list is stored in shell variable - this was VERY slow | |
9 | ||
10 | ulimit -c 0 | |
11 | ||
1cee2a54 | 12 | PERLOPT="--define=__perl_provides /bin/sh -c 'cat >/dev/null'" |
e3197275 | 13 | PERLOPT2="--define=__perl_requires /bin/sh -c 'cat >/dev/null'" |
1cee2a54 | 14 | PHPOPT="--define=__php_provides /bin/sh -c 'cat >/dev/null'" |
e3197275 | 15 | PHPOPT2="--define=__php_requires /bin/sh -c 'cat >/dev/null'" |
0b3acdf9 | 16 | noprovfiles='' |
0ad25a07 JB |
17 | noprov='' |
18 | buildroot='' | |
19 | while [ $# -gt 0 ]; do | |
20 | case "$1" in | |
21 | --with-perl) | |
22 | PERLOPT="" | |
e3197275 | 23 | PERLOPT2="" |
0ad25a07 JB |
24 | ;; |
25 | --with-php) | |
26 | PHPOPT="" | |
e3197275 | 27 | PHPOPT2="" |
0ad25a07 JB |
28 | ;; |
29 | --buildroot=*) | |
30 | buildroot="${1#--buildroot=}" | |
31 | ;; | |
32 | --noautoprovfiles=*) | |
33 | for i in ${1#--noautoprovfiles=} ; do | |
34 | noprovfiles="${noprovfiles}\|${buildroot}${i}" | |
35 | done | |
36 | ;; | |
37 | --noautoprov=*) | |
38 | for i in ${1#--noautoprov=} ; do | |
39 | noprov="${noprov}\|${i}" | |
40 | done | |
41 | esac | |
42 | shift | |
43 | done | |
44 | ||
0b3acdf9 JB |
45 | if [ -r /etc/rpm/noautoprovfiles ]; then |
46 | for i in `cat /etc/rpm/noautoprovfiles | grep -v '^#'`; do | |
0ad25a07 | 47 | noprovfiles="${noprovfiles}\|${buildroot}${i}" |
0b3acdf9 JB |
48 | done |
49 | fi | |
50 | ||
0b3acdf9 JB |
51 | if [ -r /etc/rpm/noautoprov ]; then |
52 | for i in `cat /etc/rpm/noautoprov | grep -v '^#'`; do | |
53 | noprov="${noprov}\|${i}" | |
54 | done | |
55 | fi | |
56 | ||
57 | # rpmdeps output seems sorted, but resort it in case of long list split | |
58 | grep -v -e "^\(${noprovfiles}\)\$" | tr '\n' '\0' | \ | |
e3197275 JB |
59 | xargs -r -0 /usr/bin/rpmdeps "${PERLOPT}" "${PERLOPT2}" \ |
60 | "${PHPOPT}" "${PHPOPT2}" --provides | \ | |
0ad25a07 | 61 | LC_ALL=C sort -u | grep -v -e "^\(${noprov}\)\$" |
0b3acdf9 JB |
62 | |
63 | exit 0 |