aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Thauvin <nanardon@mandriva.org>2007-02-13 22:26:30 +0000
committerOlivier Thauvin <nanardon@mandriva.org>2007-02-13 22:26:30 +0000
commitefca5e98a396afaf37b71205802f627a34f20e65 (patch)
tree69405c0f38f561d3e6b3a26dcb0137cd64a088d7
parentc404c94e8243b3eb111b1f3971b278dcc24a8d25 (diff)
downloadrpm-setup-efca5e98a396afaf37b71205802f627a34f20e65.tar
rpm-setup-efca5e98a396afaf37b71205802f627a34f20e65.tar.gz
rpm-setup-efca5e98a396afaf37b71205802f627a34f20e65.tar.bz2
rpm-setup-efca5e98a396afaf37b71205802f627a34f20e65.tar.xz
rpm-setup-efca5e98a396afaf37b71205802f627a34f20e65.zip
- fork pkgconfig dependencies finder script
-rw-r--r--Makefile.am3
-rwxr-xr-xfind-provides.in4
-rwxr-xr-xfind-requires.in4
-rwxr-xr-xpkgconfigdeps.sh47
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