Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Apr 2009 18:23:23 +0000 (UTC)
From:      Poul-Henning Kamp <phk@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r191275 - head/tools/tools/nanobsd
Message-ID:  <200904191823.n3JINNiv016808@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: phk
Date: Sun Apr 19 18:23:23 2009
New Revision: 191275
URL: http://svn.freebsd.org/changeset/base/191275

Log:
  A script for plucking packages and their runtime dependencies for
  nanobsd images.

Added:
  head/tools/tools/nanobsd/fill_pkg.sh   (contents, props changed)

Added: head/tools/tools/nanobsd/fill_pkg.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/fill_pkg.sh	Sun Apr 19 18:23:23 2009	(r191275)
@@ -0,0 +1,96 @@
+#!/bin/sh
+#
+# Copyright (c) 2009 Poul-Henning Kamp.
+# 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 THE 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 THE 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$
+#
+# Usage:
+# 	$0 PACKAGE_DUMP NANO_PACKAGE_DIR /usr/ports/foo/bar ...
+#
+# Will symlink the packages listed, including their runtime dependencies,
+# from the PACKAGE_DUMP to the NANO_PACKAGE_DIR.
+#
+
+NANO_PKG_DUMP=$1
+shift;
+if [ ! -d $NANO_PKG_DUMP ] ; then
+	echo "$NANO_PKG_DUMP not a directory" 1>&2
+	exit 1
+fi
+
+NANO_PACKAGE_DIR=$1
+shift;
+
+ports_recurse() (
+	of=$1
+	shift
+	for d
+	do
+		if [ ! -d $d ] ; then
+			echo "Missing port $d" 1>&2
+			exit 2
+		fi
+		if grep -q "^$d\$" $of ; then
+			true
+		else
+			(
+			cd $d
+			rd=`make -V RUN_DEPENDS`	
+			ld=`make -V LIB_DEPENDS`	
+			
+			for x in $rd $ld
+			do
+				ports_recurse $of `echo $x |
+				    sed 's/^[^:]*:\([^:]*\).*$/\1/'`
+			done
+			)
+			echo $d >> $of
+		fi
+	done
+)
+
+rm -rf $NANO_PACKAGE_DIR
+mkdir -p $NANO_PACKAGE_DIR
+
+PL=$NANO_PACKAGE_DIR/_list
+true > $PL
+for i 
+do
+	ports_recurse `pwd`/$PL $i
+done
+
+for i in `cat $PL`
+do
+	p=`(cd $i && make -V PKGNAME)`
+	if [ -f $NANO_PKG_DUMP/$p.tbz ] ; then
+		ln -s $NANO_PKG_DUMP/$p.tbz $NANO_PACKAGE_DIR
+	else
+		echo "Package $p misssing in $NANO_PKG_DUMP" 1>&2
+		exit 1
+	fi
+done
+
+rm -f $PL
+exit 0



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904191823.n3JINNiv016808>