From 95e731c6a7be89802246901d725c4f9d7ed7d3ca Mon Sep 17 00:00:00 2001 From: Christian Wiese Date: Mon, 2 Jan 2012 12:27:35 +0100 Subject: [PATCH] Build-Target/package.sh: added capability to filter out development files while creating the binary package Note: This is a very first attempt, thus the implementation is far from being perfect! --- lib/sde-binary/package.sh | 47 ++++++++++++++++++++++++++++++++++----- scripts/Build-Target | 3 ++- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/lib/sde-binary/package.sh b/lib/sde-binary/package.sh index 2307a53..73eb14c 100755 --- a/lib/sde-binary/package.sh +++ b/lib/sde-binary/package.sh @@ -3,7 +3,7 @@ # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: lib/sde-binary/package.sh -# Copyright (C) 2007 - 2010 The OpenSDE Project +# Copyright (C) 2007 - 2012 The OpenSDE Project # # More information can be found in the files COPYING and README. # @@ -31,12 +31,14 @@ Usage: ${0} --type [--versioned] [--root ] [--output ] "$output/$filename.tmp" +tarfilename="$pkg_name${versioned:+-${version}}.tar" + +tmpdir=$( mktemp -d "$SDEROOT/tmp/packaging.$pkg_name.XXXXXXXX" ) +tmpflist="$tmpdir/var/adm/flists/$pkg_name" +tmpcksum="$tmpdir/var/adm/cksums/$pkg_name" +tmpmd5sum="$tmpdir/var/adm/md5sums/$pkg_name" + +# creating backup of var/adm files +mkdir -p "$tmpdir" + +for x in $( grep ' var/adm' "$flist" | cut -d' ' -f2- ); do + mkdir -p "$tmpdir/$(dirname $x)" + cp -a "$root/$x" "$tmpdir/$x" +done + +# pattern to filter development files +if [ "$nodevel" ]; then + filterpattern="-e '/\.\(c\|h\|hpp\|hxx\|o\|a\|la\|m4\|pc\)$/d;'" +fi + +if [ ! -z "$filterpattern" ]; then + eval "sed -i $filterpattern" "$tmpflist" "$tmpcksum" "$tmpmd5sum" +fi + +# create uncompressed tar with the files from the sandbox but without var/adm +( grep -v ' var/adm' "$tmpflist" ) | cut -f2- -d' ' | + tar -C "$root" -cf "$output/$tarfilename.tmp" --no-recursion --files-from=- +errno=$? + +# add adjusted var/adm files from tmpdir to the uncompressed tar +( grep ' var/adm' "$tmpflist" ) | cut -f2- -d' ' | + tar -C "$tmpdir" -rf "$output/$tarfilename.tmp" --no-recursion --files-from=- +errno=$? + +# create the final compressed tar file +eval "$compressor --stdout $output/$tarfilename.tmp > $output/$filename.tmp" errno=$? if [ "$errno" != "0" ]; then echo_error "failed to create '$output/$filename' (errno:$errno)" + rm -f "$output/$tarfilename.tmp" rm -f "$output/$filename.tmp" exit 4 else + rm -rf "$tmpdir" + rm -f "$output/$tarfilename.tmp" mv "$output/$filename.tmp" "$output/$filename" fi diff --git a/scripts/Build-Target b/scripts/Build-Target index 8eba069..aea6b9a 100755 --- a/scripts/Build-Target +++ b/scripts/Build-Target @@ -3,7 +3,7 @@ # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: scripts/Build-Target -# Copyright (C) 2006 - 2010 The OpenSDE Project +# Copyright (C) 2006 - 2012 The OpenSDE Project # Copyright (C) 2004 - 2006 The T2 SDE Project # Copyright (C) 1998 - 2003 Clifford Wolf # @@ -239,6 +239,7 @@ pkgloop_package() { else ./lib/sde-binary/package.sh --type "$SDECFG_PKGFILE_TYPE" \ $( if [ "${SDECFG_PKGFILE_VER}" = 1 ]; then echo '--versioned'; fi ) \ + $( if [ "${SDECFG_FILTER_NODEVEL}" = 1 ]; then echo '--nodevel'; fi ) \ --root "${build_root}" --output "${build_pkgs}" ${pkg_name} fi fi