diff options
-rw-r--r-- | Makefile.am | 3 | ||||
-rwxr-xr-x | find-provides.in | 4 | ||||
-rwxr-xr-x | find-requires.in | 4 | ||||
-rwxr-xr-x | pkgconfigdeps.sh | 47 |
4 files changed, 53 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am index b09bc4c..3a4270b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -25,7 +25,8 @@ pkg_scripts = \ perl.prov \ perl.req \ php.prov \ - php.req + php.req \ + pkgconfigdeps.sh pkg_gscripts = \ find-provides \ diff --git a/find-provides.in b/find-provides.in index 0bb9dc4..38270b6 100755 --- a/find-provides.in +++ b/find-provides.in @@ -65,8 +65,8 @@ done | sort -u # # --- Pkgconfig deps -[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -P | sort -u +[ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] && + echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pkgconfigdeps.sh -P | sort -u if [ -n "$LIBTOOLDEP" ]; then # diff --git a/find-requires.in b/find-requires.in index 2c3bc28..8739cc9 100755 --- a/find-requires.in +++ b/find-requires.in @@ -198,8 +198,8 @@ fi if [ -n "$NOTYET" ]; then # # --- Pkgconfig deps -[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -R | sort -u +[ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] && + echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pkgconfigdeps.sh -R | sort -u fi diff --git a/pkgconfigdeps.sh b/pkgconfigdeps.sh new file mode 100755 index 0000000..dc93c80 --- /dev/null +++ b/pkgconfigdeps.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +pkgconfig=/usr/bin/pkg-config +test -x $pkgconfig || { + cat > /dev/null + exit 0 +} + +[ $# -ge 1 ] || { + cat > /dev/null + exit 0 +} + +case $1 in +-P|--provides) + while read filename ; do + case "${filename}" in + *.pc) + # Assume that this file doesn't contain useful information. + needs_pkgconfig=false + # Query the dependencies of the package. + $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do + # We have a dependency. Make a note that we need the pkgconfig + # tool for this package. + echo "pkgconfig($n)" "$r" "$v" + needs_pkgconfig=true + done + # The dependency on the pkgconfig package itself. + if $needs_pkgconfig ; then + echo pkgconfig + fi + ;; + esac + done + ;; +-R|--requires) + while read filename ; do + case "${filename}" in + *.pc) + $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do + echo "pkgconfig($n)" "$r" "$v" + done + esac + done + ;; +esac +exit 0 |