aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorAlexander Leidinger <netchild@FreeBSD.org>2007-08-24 14:29:42 +0000
committerAlexander Leidinger <netchild@FreeBSD.org>2007-08-24 14:29:42 +0000
commit27333072519b646c9b8871dffba523f342b8c605 (patch)
tree03cf93bb8ab0707cd4085fb27238f325b73a56fe /Tools
parent011560cf378894dc3bfe97e3501a564e1704cd1c (diff)
downloadports-27333072519b646c9b8871dffba523f342b8c605.tar.gz
ports-27333072519b646c9b8871dffba523f342b8c605.zip
explicit_lib_depends.sh shows you the current explicit dependency list of
libs for a given installed port, e.g.: # ./explicit_lib_depends.sh gnome-vfs-2.18.1_2 USE_GETTEXT=yes USE_GNOME+=gconf2 USE_GNOME+=glib20 USE_GNOME+=gnomevfs2 USE_GNOME+=libxml2 USE_GNOME+=orbit2 USE_ICONV=yes avahi-client:net/avahi avahi-common:net/avahi avahi-glib:net/avahi dbus-1:devel/dbus dbus-glib-1:devel/dbus-glib
Notes
Notes: svn path=/head/; revision=198252
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/scripts/explicit_lib_depends.sh115
1 files changed, 115 insertions, 0 deletions
diff --git a/Tools/scripts/explicit_lib_depends.sh b/Tools/scripts/explicit_lib_depends.sh
new file mode 100755
index 000000000000..c373608bfff3
--- /dev/null
+++ b/Tools/scripts/explicit_lib_depends.sh
@@ -0,0 +1,115 @@
+#!/bin/sh
+
+#
+# Copyright (C) 2007 Alexander Leidinger <netchild@FreeBSD.org>.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+
+# $FreeBSD$
+
+#
+# The purpose of this script is to give the real dependency list of a
+# currently installed port.
+#
+
+print_usage() {
+ echo "Usage: $0 [-b base ...] port_name ..."
+ echo "Example: $0 -b /usr/local -b /space/porttest gnome-vfs-2.18.1_2"
+}
+
+args=$(getopt b:h $@)
+if [ $? -ne 0 ]; then
+ print_usage
+ exit 2
+fi
+
+set -- ${args}
+for arg; do
+ case "${arg}" in
+ -b)
+ bases="${bases} -b $2"
+ shift; shift
+ ;;
+ -h)
+ print_usage
+ exit 0
+ ;;
+ --)
+ shift
+ break
+ ;;
+ esac
+done
+
+if [ -z "$1" ]; then
+ print_usage
+ exit 2
+fi
+
+if [ -z "${PORTSDIR}" ]; then
+ PORTSDIR=$(make -f /etc/make.conf -V PORTSDIR)
+fi
+
+if [ -z "${PORTSDIR}" -o ! -d "${PORTSDIR}" ]; then
+ PORTSDIR=/usr/ports
+fi
+
+if [ -z "${PKG_DBDIR} ]; then
+ PKG_DBDIR=$(make -f /etc/make.conf -V PKG_DBDIR)
+fi
+
+if [ -z "${PKG_DBDIR} -o ! -d "${PKG_DBDIR}" ]; then
+ PKG_DBDIR=/var/db/pkg
+fi
+
+for i in $@; do
+ if [ -d "${i}" ]; then
+ current_port="${i}"
+ else
+ if [ -d "${PKG_DBDIR}/${i}" ]; then
+ current_port="${PKG_DBDIR}/${i}"
+ fi
+ fi
+
+ awk '
+ /^@cwd / {
+ CWD=$2;
+ if (CWD == ".") {
+ exit 0;
+ }
+ }
+
+ /^bin\// {
+ printf "%s/%s\n", CWD, $1;
+ }
+
+ /^lib\// {
+ printf "%s/%s\n", CWD, $1;
+ }
+ ' < ${current_port}/+CONTENTS | \
+ xargs ${PORTSDIR}/Tools/scripts/neededlibs.sh | \
+ xargs ${PORTSDIR}/Tools/scripts/resolveportsfromlibs.sh ${bases}
+
+
+done | sort -u