diff options
author | Alexander Leidinger <netchild@FreeBSD.org> | 2007-08-24 14:29:42 +0000 |
---|---|---|
committer | Alexander Leidinger <netchild@FreeBSD.org> | 2007-08-24 14:29:42 +0000 |
commit | 27333072519b646c9b8871dffba523f342b8c605 (patch) | |
tree | 03cf93bb8ab0707cd4085fb27238f325b73a56fe /Tools | |
parent | 011560cf378894dc3bfe97e3501a564e1704cd1c (diff) | |
download | ports-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-x | Tools/scripts/explicit_lib_depends.sh | 115 |
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 |