From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org)
	by nuthatch.gentoo.org with esmtp (Exim 4.67)
	(envelope-from <gnap-dev+bounces-49-garchives=archives.gentoo.org@gentoo.org>)
	id 1IGxKI-000893-B5
	for garchives@archives.gentoo.org; Fri, 03 Aug 2007 13:36:23 +0000
Received: from robin.gentoo.org (localhost [127.0.0.1])
	by robin.gentoo.org (8.14.0/8.14.0) with SMTP id l73DaFl8027127;
	Fri, 3 Aug 2007 13:36:15 GMT
Received: from mail.bawue.net (phoenix.bawue.net [193.7.176.60])
	by robin.gentoo.org (8.14.0/8.14.0) with ESMTP id l73DaFY8027122
	for <gnap-dev@lists.gentoo.org>; Fri, 3 Aug 2007 13:36:15 GMT
Received: from [193.166.89.200] (b136a.mtalo.tontut.fi [193.166.89.200])
	(using SSLv3 with cipher RC4-MD5 (128/128 bits))
	(No client certificate requested)
	by mail.bawue.net (Postfix) with ESMTP id 6660A854C7
	for <gnap-dev@lists.gentoo.org>; Fri,  3 Aug 2007 15:27:01 +0200 (CEST)
Subject: [gnap-dev] [PATCH 1/4] GNAP cleanup
From: Philipp Riegger <lists@anderedomain.de>
To: gnap-dev@lists.gentoo.org
In-Reply-To: <1186146995.10651.18.camel@b136a>
References: <1186146995.10651.18.camel@b136a>
Content-Type: text/plain
Date: Fri, 03 Aug 2007 16:26:58 +0300
Message-Id: <1186147618.10651.24.camel@b136a>
Precedence: bulk
List-Post: <mailto:gnap-dev@lists.gentoo.org>
List-Help: <mailto:gnap-dev+help@gentoo.org>
List-Unsubscribe: <mailto:gnap-dev+unsubscribe@gentoo.org>
List-Subscribe: <mailto:gnap-dev+subscribe@gentoo.org>
List-Id: Gentoo GNAP development <gnap-dev.gentoo.org>
X-BeenThere: gnap-dev@gentoo.org
Reply-to: gnap-dev@lists.gentoo.org
Mime-Version: 1.0
X-Mailer: Evolution 2.10.2 
Content-Transfer-Encoding: 7bit
X-Archives-Salt: a9c67319-6a8d-4896-8615-d0ddab6185cc
X-Archives-Hash: aaf3a189d8fc5114f304cdfdd218ab65

This patch does some cleanup work:
 - ginfo was available and used in only one of the gnap_* scripts. Add
it to the other scripts where it might be needed and use it.
 - mkdir -p ... \n gtest ... was used very often. I put this in a
function, the error messages are now more detailed (no "kernel temp dir
could not be created", but "/some/very/important/path could not be
created".
 - removed ALLTARGET in gnap_make.
 - used storedir from catalyst.conf instead of CATALYST_DIR.
 - some more stuff, which should be obvious.

If there are any questions, just ask.

Philipp


diff -ur --exclude .svn --exclude upload.sh --exclude diff.sh
gnap-2.0/src/gnap_make gnap-2.0+cleanup/src/gnap_make
--- gnap-2.0/src/gnap_make	2007-07-23 14:14:40.000000000 +0300
+++ gnap-2.0+cleanup/src/gnap_make	2007-08-02 15:55:38.000000000 +0300
@@ -21,6 +21,15 @@
 	echo -e " ${W}*${N} ${*}"
 }
 
+ginfo() {
+	echo -e " ${G}*${N} ${*}"
+}
+
+gmkdir() {
+	mkdir -p "$1"
+	gtest continued $? "Failed to create directory \"$1\"."
+}
+
 gconfirm() {
 	if [[ "${FORCEYES}" -eq 1 ]]; then
 		gwarn "${*} forced to yes"
@@ -30,7 +39,7 @@
 			if [[ -n "${TEMPDIR}" ]]; then
 				cleanup
 			fi
-			echo Build aborted !
+			echo Build aborted!
 			exit 2
 		fi
 	fi
@@ -77,7 +86,7 @@
 	echo '    -c catalyst.conf     Use specific catalyst.conf file'
 	echo '    -e specs             Specs directory or tar.bz2 file'
 	echo
-	echo "Please man ${GNAPNAME} for more details."
+	echo "Please use man ${GNAPNAME} for more details."
 }
 
 cleanup() {
@@ -92,19 +101,24 @@
 	fi
 }
 
-if [[ "$#" -eq 0 || "${1}" == '-h' ]]; then
+if [[ "$#" -eq 0 ]]; then
 	usage
 	exit 0
 fi
 
 gbegin 'Checking parameters'
 
+# Catalyst executable and config file
+CATALYST_BIN="/usr/bin/catayst"
+CATALYST_CONF="/etc/catalyst/catalyst.conf"
+
 # Read options
 NOTARGET=1
 STAMP=$(date +%Y%m%d)
-while getopts ':hs:p:m:o:v:t:fl:c:e:' options; do
-	case ${options} in
-		h ) usage
+while getopts ':hs:p:m:o:v:t:fl:c:e:' option; do
+	case ${option} in
+		h )
+			usage
 			exit 0;;
 		s ) STAGE3FILE="${OPTARG}";;
 		p ) SNAPSHOTFILE="${OPTARG}";;
@@ -112,7 +126,13 @@
 		v ) STAMP="${OPTARG}";;
 		t )
 			case "${OPTARG}" in
-				all ) ALLTARGET=1;;
+				all )
+					STAGE3=1
+					LIVECD1=1
+					LIVECD2=1
+					TARBALL=1
+					MODULES=1
+					NEEDS_SNAPSHOT=1;;
 				stage3 )
 					STAGE3=1
 					NEEDS_SNAPSHOT=1;;
@@ -122,17 +142,19 @@
 				livecd-stage2 )
 					LIVECD2=1
 					NEEDS_SNAPSHOT=1;;
-				tarball ) TARBALL=1;;
+				tarball )
+					TARBALL=1;;
 				extensions )
 					MODULES=1
 					NEEDS_SNAPSHOT=1;;
+				* ) gtest 1 'Specified stage is unknown!';;
 			esac
 			NOTARGET=0;;
 		f ) FORCEYES=1;;
 		l ) GNAPLOGPREFIX="${OPTARG}";;
 		c ) CATALYST_CONF="${OPTARG}";;
 		e ) SPECS="${OPTARG}";;
-		* ) gtest 1 'Specified options are incomplete or unknown !';;
+		* ) gtest 1 'Specified options are incomplete or unknown!';;
 	esac
 done
 
@@ -147,8 +169,7 @@
 # Prepare specs dir and check common.conf file
 SPECDIR="${TEMPDIR}/specs"
 if [[ -f "${SPECS}" ]]; then
-	mkdir "${SPECDIR}"
-	gtest continued $? 'Failed to create specs temporary subdirectory'
+	gmkdir "${SPECDIR}"
 	tar jx -f "${SPECS}" -C "${SPECDIR}"
 	gtest continued $? 'Failed to unpack specs'
 elif [[ -d "${SPECS}" ]]; then
@@ -158,7 +179,7 @@
 	gtest continued 1 "${SPECS} not found, provide a valid -e option"
 fi
 test -f "${SPECDIR}/common.conf"
-gtest continued $? "Incorrect specdir: ${SPECDIR}/common.conf not
found !"
+gtest continued $? "Incorrect specdir: ${SPECDIR}/common.conf not
found!"
 source "${SPECDIR}/common.conf"
 export CHOST
 export CFLAGS
@@ -169,30 +190,16 @@
 
 # catalyst.conf file
 test -f "${CATALYST_CONF}"
-gtest continued $? "${CATALYST_CONF} file not found !"
+gtest continued $? "${CATALYST_CONF} file not found!"
 source "${CATALYST_CONF}"
 
-# Default targets is complete core build
-if [[ "${ALLTARGET}" -eq 1 ]]; then
-	STAGE3=1
-	LIVECD1=1
-	LIVECD2=1
-	TARBALL=1
-	MODULES=1
-	NEEDS_SNAPSHOT=1
-fi
-
 # At least one target is needed
 test "${NOTARGET}" -eq 0
 gtest continued $? \
 	'No target specified. You should provide at least one -t option.'
 
-# CATALYST_DIR must exist
-if [[ ! -d "${CATALYST_DIR}" ]]; then
-  mkdir "${CATALYST_DIR}"
-  gtest continued $? \
-	"Error: failed to create ${CATALYST_DIR} directory."
-fi
+# storedir must exist
+gmkdir "${storedir}"
 
 # Stage3 needs a seed stage
 if [[ "${STAGE3}" -eq 1 ]]; then
@@ -211,17 +218,14 @@
 	test -f "${STAGE3FILE}"
 	gtest continued $? "${STAGE3FILE} is not a valid stage3 tarball"
 fi
-gtest 0
 
 # If extensions and no stage3, warn that we'll use seedstage as stage3
-STAGE3LOC="${CATALYST_DIR}/builds/${RELTYPE}/stage3-${SUBARCH}-${STAMP}.tar.bz2"
+STAGE3LOC="${storedir}/builds/${RELTYPE}/stage3-${SUBARCH}-${STAMP}.tar.bz2"
 if [[ "${MODULES}" -eq 1 || "${LIVECD1}" -eq 1 ]]; then
 	if [[ "${STAGE3}" -ne 1 && ! -f "${STAGE3LOC}" ]]; then
 		gwarn '"livecd-stage1" or "extensions" was selected without
"stage3".'
-		gconfirm 'Should I use the seed stage as stage3 result ?'
-		if [[ ! -d "${CATALYST_DIR}/builds/${RELTYPE}" ]]; then
-			mkdir -p "${CATALYST_DIR}/builds/${RELTYPE}"
-		fi
+		gconfirm 'Should I use the seed stage as stage3 result?'
+		gmkdir "${storedir}/builds/${RELTYPE}"
 		cp "${STAGE3FILE}" "${STAGE3LOC}"
 	fi
 fi
@@ -242,14 +246,12 @@
 if [[ "${MODULES}" -eq 1 ]]; then
 	TARGETLIST="${TARGETLIST}[extensions]"
 fi
-gwarn 'The following targets will be called:'
-gwarn "${TARGETLIST}"
+ginfo 'The following targets will be called:'
+ginfo "${TARGETLIST}"
 
 # Confirm tarball overwrite if TARBALL stage selected
-if [[ "${TARBALL}" -eq 1 ]]; then
-	if [[ -e "gnap-${GNAPVERSION}-${STAMP}.tar" ]]; then
-		gconfirm "gnap-${GNAPVERSION}-${STAMP}.tar already exists, overwrite"
-	fi
+if [[ "${TARBALL}" -eq 1 -a -e "gnap-${GNAPVERSION}-${STAMP}.tar" ]];
then
+	gconfirm "gnap-${GNAPVERSION}-${STAMP}.tar already exists, overwrite"
 fi
 
 # Logfile setup and confirmation
@@ -275,17 +277,14 @@
 if [[ "${NEEDS_SNAPSHOT}" -eq 1 ]]; then
 	gbegin 'Preparing portage snapshot'
 
-	if [[ ! -d "${CATALYST_DIR}/snapshots" ]]; then
-		mkdir -p "${CATALYST_DIR}/snapshots"
-	fi
+	gmkdir "${storedir}/snapshots"
 
 	if [[ -z "${PORTAGE_OVERLAYS}" ]]; then
-		cp "${SNAPSHOTFILE}"
"${CATALYST_DIR}/snapshots/portage-${STAMP}.tar.bz2"
+		cp "${SNAPSHOTFILE}" "${storedir}/snapshots/portage-${STAMP}.tar.bz2"
 		gtest $? "Snapshot preparation failed, ${SEELOGFILES}"
 	else
 		TEMPPRTDIR="${TEMPDIR}/portage"
-		mkdir "${TEMPPRTDIR}"
-		gtest continued $? 'Failed to create portage temporary subdirectory'
+		gmkdir "${TEMPPRTDIR}"
 
 		tar jxf "${SNAPSHOTFILE}" -C "${TEMPPRTDIR}" \
 			>> "${GNAPLOGPREFIX}.out" 2>> "${GNAPLOGPREFIX}.err"
@@ -295,7 +294,7 @@
 			gtest continued $? "Failed to copy ${overlay}"
 		done
 
-		tar jcf "${CATALYST_DIR}/snapshots/portage-${STAMP}.tar.bz2" \
+		tar jcf "${storedir}/snapshots/portage-${STAMP}.tar.bz2" \
 			-C "${TEMPPRTDIR}" . \
 			>> "${GNAPLOGPREFIX}.out" 2>> "${GNAPLOGPREFIX}.err"
 		gtest $? "Snapshot preparation failed, ${SEELOGFILES}"
@@ -306,10 +305,8 @@
 if [[ "${STAGE3}" -eq 1 ]]; then
 	gbegin "${G}[stage3]${N} stage (base system build)"
 
-	if [[ ! -d "${CATALYST_DIR}/builds/${RELTYPE}" ]]; then
-		mkdir -p "${CATALYST_DIR}/builds/${RELTYPE}"
-	fi
-	cp "${STAGE3FILE}"
"${CATALYST_DIR}/builds/${RELTYPE}/seedstage.tar.bz2"
+	gmkdir "${storedir}/builds/${RELTYPE}"
+	cp "${STAGE3FILE}" "${storedir}/builds/${RELTYPE}/seedstage.tar.bz2"
 
 	TEMPCONF="${TEMPDIR}/stage3.conf"
 	touch "${TEMPCONF}"
@@ -328,7 +325,7 @@
 	$CATALYST_BIN -c "${CATALYST_CONF}" -f "${TEMPCONF}" \
 		>> "${GNAPLOGPREFIX}.out" 2>> "${GNAPLOGPREFIX}.err"
 	gtest $? "[stage3] failed, ${SEELOGFILES}"
-	rm "${CATALYST_DIR}/builds/${RELTYPE}/seedstage.tar.bz2"
+	rm "${storedir}/builds/${RELTYPE}/seedstage.tar.bz2"
 fi
 
 # LIVECD-STAGE1 phase
@@ -389,16 +386,14 @@
 	gbegin "${G}[tarball]${N} phase (Creation of core and basefs
components)"
 	test -e "gnap-${GNAPVERSION}-${STAMP}.iso"
 	gtest continued $? "No gnap-${GNAPVERSION}-${STAMP}.iso file to
convert !"
-	test -d "${CATALYST_DIR}/tmp/gnap/livecd-stage1-${SUBARCH}-${STAMP}"
+	test -d "${storedir}/tmp/gnap/livecd-stage1-${SUBARCH}-${STAMP}"
 	gtest $? 'Missing livecd-stage2 results'
 
 	gbegin '  Creating core component'
 	TEMPMNTDIR="${TEMPDIR}/mount"
-	mkdir "${TEMPMNTDIR}"
-	gtest continued $? 'Failed to create mount temporary subdirectory'
+	gmkdir "${TEMPMNTDIR}"
 	TEMPISODIR="${TEMPDIR}/iso"
-	mkdir "${TEMPISODIR}"
-	gtest continued $? 'Failed to create iso temporary subdirectory'
+	gmkdir "${TEMPISODIR}"
 
 	mount -o loop "gnap-${GNAPVERSION}-${STAMP}.iso" ${TEMPMNTDIR} && \
 		cp -r ${TEMPMNTDIR}/* ${TEMPISODIR}
@@ -419,14 +414,14 @@
 
 	gbegin '  Creating basefs component'
 	tar jcf "gnap-basefs-${GNAPVERSION}-${STAMP}.tar.bz2" \
-		-C "${CATALYST_DIR}/tmp/gnap/livecd-stage2-${SUBARCH}-${STAMP}" .
+		-C "${storedir}/tmp/gnap/livecd-stage2-${SUBARCH}-${STAMP}" .
 	gtest $? 'Unable to create basefs tarball'
 fi
 
 # EXTENSIONS phase
 if [[ "${MODULES}" -eq 1 ]]; then
 	gbegin "${G}[extensions]${N} stage start"
-	GRP_PREFIX="${CATALYST_DIR}/builds/${RELTYPE}/grp-${SUBARCH}-${STAMP}"
+	GRP_PREFIX="${storedir}/builds/${RELTYPE}/grp-${SUBARCH}-${STAMP}"
 	SPECMODULE="${SPECDIR}/extensions.conf"
 	mod_list=$(grep '^extensions:' "${SPECMODULE}" 2>/dev/null);
 	mod_list="${mod_list/extensions:/}"
@@ -460,12 +455,10 @@
 
 		$CATALYST_BIN -c "${CATALYST_CONF}" -f "${TEMPCONF}" \
 			>> "${GNAPLOGPREFIX}.out" 2>> "${GNAPLOGPREFIX}.err"
-		gtest continued $? \
-			"Extension build failed, ${SEELOGFILES}"
+		gtest continued $? "Extension build failed, ${SEELOGFILES}"
 
 		TEMPMODULEDIR="${TEMPDIR}/module_${mod_name}"
-		mkdir "${TEMPMODULEDIR}"
-		gtest continued $? 'Failed to create module temporary subdirectory'
+		gmkdir "${TEMPMODULEDIR}"
 		for pkg in $( ls ${GRP_PREFIX}/${mod_name}/All/*.tbz2 ); do
 			tar jxf $pkg -C "${TEMPMODULEDIR}" -p \
 				>> "${GNAPLOGPREFIX}.out" 2>> "${GNAPLOGPREFIX}.err"
@@ -488,5 +481,5 @@
 fi
 
 cleanup
-echo 'Build successful !'
+echo 'Build successful!'
 exit 0
diff -ur --exclude .svn --exclude upload.sh --exclude diff.sh
gnap-2.0/src/specs/common.conf gnap-2.0+cleanup/src/specs/common.conf
--- gnap-2.0/src/specs/common.conf	2007-07-23 14:14:39.000000000 +0300
+++ gnap-2.0+cleanup/src/specs/common.conf	2007-07-17 15:40:34.000000000
+0300
@@ -1,9 +1,3 @@
-# Catalyst executable and support files
-CATALYST_NAME='catalyst'
-CATALYST_BIN="/usr/bin/${CATALYST_NAME}"
-CATALYST_CONF="/etc/${CATALYST_NAME}/${CATALYST_NAME}.conf"
-CATALYST_DIR="/var/tmp/${CATALYST_NAME}"
-
 # Profile and build flags to use
 SUBARCH="x86"
 PROFILE="uclibc/x86/hardened"
diff -ur --exclude .svn --exclude upload.sh --exclude diff.sh
gnap-2.0/tools/gnap_overlay gnap-2.0+cleanup/tools/gnap_overlay
--- gnap-2.0/tools/gnap_overlay	2007-07-23 14:14:39.000000000 +0300
+++ gnap-2.0+cleanup/tools/gnap_overlay	2007-08-02 15:56:18.000000000
+0300
@@ -3,8 +3,9 @@
 
 GNAPNAME=$(basename "$0")
 echo "GNAP overlay tool ${GNAPNAME} ${VERSION}"
-GNAPCORE='/usr/lib/gnap/gnap-core.tar'
-GNAPMBR='/usr/lib/gnap/mbr/mbr.bin'
+GNAPLIBDIR='/usr/lib/gnap'
+GNAPCORE="${GNAPLIBDIR}/gnap-core.tar"
+GNAPMBR="${GNAPLIBDIR}/mbr/mbr.bin"
 TEMPDIR=''
 IMG_SIZE=15
 
@@ -24,6 +25,11 @@
 	echo -e " ${G}*${N} ${*}"
 }
 
+gmkdir() {
+	mkdir -p "$1"
+	gtest continued $? "Failed to create directory \"$1\"."
+}
+
 gconfirm() {
 	if [[ "${FORCEYES}" -eq 1 ]]; then
 		gwarn "${*} forced to yes"
@@ -33,7 +39,7 @@
 			if [[ -n "${TEMPDIR}" || -n "${LOOP}" ]]; then
 				cleanup
 			fi
-			echo 'Overlay aborted !'
+			echo 'Overlay aborted!'
 			exit 2
 		fi
 	fi
@@ -98,7 +104,7 @@
     echo '  -S size       Size of image file in megabyte'
     echo '  The disk target options also apply, except -d.'
     echo
-    echo "Please man ${GNAPNAME} for more details."
+    echo "Please use man ${GNAPNAME} for more details."
 }
 
 cleanup() {
@@ -126,8 +132,17 @@
 gbegin 'Checking parameters'
 
 # Read options
-while getopts ':hg:o:c:nfi:d:l:r:ms:S:L:' options; do
-	case ${options} in
+NOLOGO=0
+FORCEYES=0
+OUTPUT=''
+TYPE=''
+CREATE='n'
+TARGETROOT=''
+CACHE=''
+SERIAL=''
+BAUDRATE=''
+while getopts ':hg:o:c:nfi:d:l:r:ms:S:L:' option; do
+	case ${option} in
 		h ) usage
 			exit 0;;
 		g ) GNAPCORE="${OPTARG}";;
@@ -150,7 +165,7 @@
 		m ) CACHE='docache ';;
 		s ) SERIAL="console=ttyS0,${OPTARG}n81"
 			BAUDRATE="${OPTARG}";;
-		* ) gtest 1 'Specified options are incomplete or unknown !';;
+		* ) gtest 1 'Specified options are incomplete or unknown!';;
 	esac
 done
 
@@ -192,7 +207,7 @@
 	gwarn "${W}dd if=${GNAPMBR} of=${PARENTDEV} bs=512 count=1${N} if
needed"
 	gwarn "${OUTPUT} must contain an active partition:"
 	gwarn " use ${W}fdisk ${PARENTDEV}${N} if needed"
-	gwarn "Current data on ${OUTPUT} will be ${B}destroyed${N} !"
+	gwarn "Current data on ${OUTPUT} will be ${B}destroyed${N}!"
 	gconfirm 'Are you sure you want to continue ?'
 fi
 
@@ -201,20 +216,18 @@
 TEMPDIR=$(mktemp -d -t gnap_overlay.XXXXXX)
 gtest continued $? 'Failed to create temporary directory'
 TEMPCOREDIR="${TEMPDIR}/core"
-mkdir "${TEMPCOREDIR}"
-gtest continued $? 'Failed to create core temporary subdirectory'
+gmkdir "${TEMPCOREDIR}"
 tar x -C "${TEMPCOREDIR}" -f "${GNAPCORE}"
 gtest $? 'Failed to extract core'
 
 gbegin 'Preparing overlay'
 TEMPOVERDIR="${TEMPDIR}/overlay"
-mkdir "${TEMPOVERDIR}"
-gtest $? 'Failed to create overlay temporary subdirectory'
+gmkdir "${TEMPOVERDIR}"
 
 if [[ -n "${BAUDRATE}" ]]; then
 	gbegin 'Adding baudrate for serial console'
-	mkdir -p "${TEMPOVERDIR}/etc/gnap" && \
-		echo -n "${BAUDRATE}" > "${TEMPOVERDIR}/etc/gnap/baudrate"
+	gmkdir "${TEMPOVERDIR}/etc/gnap"
+	echo -n "${BAUDRATE}" > "${TEMPOVERDIR}/etc/gnap/baudrate"
 	gtest $? 'Failed to create /etc/gnap/baudrate'
 fi
 for overlay in ${OVERLAYS} ; do
@@ -231,8 +244,7 @@
 if [[ -n "${OVERLAYCONF}" ]]; then
 	gbegin "Adding ${OVERLAYCONF} (overlay.conf file)"
 	if [[ ! -d "${TEMPOVERDIR}/etc" ]]; then
-		mkdir "${TEMPOVERDIR}/etc"
-		gtest continued $? 'Failed to create /etc overlay directory'
+		gmkdir "${TEMPOVERDIR}/etc"
 	fi
 	cp "${OVERLAYCONF}" "${TEMPOVERDIR}/etc/overlay.conf"
 	gtest $? "Failed to copy ${OVERLAYCONF}"
@@ -256,7 +268,7 @@
 # Target specific actions
 if [[ "${TYPE}" == 'iso' ]]; then
 	if [[ -f "${OUTPUT}" ]]; then
-		gconfirm "File ${OUTPUT} already exists, overwrite ?"
+		gconfirm "File ${OUTPUT} already exists, overwrite?"
 	fi
 	rm "${TEMPCOREDIR}/syslinux.cfg"
 	gbegin "Building ${OUTPUT} ISO file"
@@ -285,7 +297,7 @@
 
 		if [[ "${CREATE}"  == y ]]; then
 			if [[ -f "${OUTPUT}" ]]; then
-				gconfirm "File ${OUTPUT} already exists, overwrite ?"
+				gconfirm "File ${OUTPUT} already exists, overwrite?"
 			fi
 
 			gbegin 'Creating image file'
@@ -328,8 +340,7 @@
 
 	gbegin "Mounting ${OUTPUT}"
 	TEMPMOUNTDIR="${TEMPDIR}/mount"
-	mkdir "${TEMPMOUNTDIR}"
-	gtest continued $? 'Failed to create mount temporary subdirectory'
+	gmkdir "${TEMPMOUNTDIR}"
 	mount -t msdos "${OUTPUT}" "${TEMPMOUNTDIR}"
 	gtest $?
 
@@ -375,5 +386,5 @@
 
 # Successful finish
 cleanup
-echo 'Overlay successful !'
+echo 'Overlay successful!'
 exit 0
diff -ur --exclude .svn --exclude upload.sh --exclude diff.sh
gnap-2.0/tools/gnap_remaster gnap-2.0+cleanup/tools/gnap_remaster
--- gnap-2.0/tools/gnap_remaster	2007-07-23 14:14:39.000000000 +0300
+++ gnap-2.0+cleanup/tools/gnap_remaster	2007-08-02 15:56:39.000000000
+0300
@@ -3,11 +3,12 @@
 
 GNAPNAME=$(basename "$0")
 echo "GNAP remastering tool ${GNAPNAME} ${VERSION}"
-GNAPCORE='/usr/lib/gnap/gnap-core.tar'
-GNAPBASEFS='/usr/lib/gnap/gnap-basefs.tar.bz2'
-GNAPEXTDIR='/usr/lib/gnap/extensions'
-OUTPUT='mygnap-core.tar'
+GNAPLIBDIR='/usr/lib/gnap'
+GNAPEXTDIR="${GNAPLIBDIR}/extensions"
 TEMPDIR=''
+GNAPCORE="${GNAPLIBDIR}/gnap-core.tar"
+GNAPBASEFS="${GNAPLIBDIR}/gnap-basefs.tar.bz2"
+OUTPUT='mygnap-core.tar'
 
 G=$'\e[32;01m'
 B=$'\e[31;01m'
@@ -21,6 +22,11 @@
 	echo -e " ${W}*${N} ${*}"
 }
 
+gmkdir() {
+	mkdir -p "$1"
+	gtest continued $? "Failed to create directory \"$1\"."
+}
+
 gconfirm() {
 	if [[ "${FORCEYES}" -eq 1 ]]; then
 		gwarn "${*} forced to yes"
@@ -30,7 +36,7 @@
 			if [[ -n "${TEMPDIR}" ]]; then
 				cleanup
 			fi
-			echo 'Remaster aborted !'
+			echo 'Remaster aborted!'
 			exit 2
 		fi
 	fi
@@ -79,9 +85,9 @@
 	echo '  -g gnap_core    Original GNAP core file'
 	echo '  -b basefs       basefs.tar.bz2 file to use as base'
 	echo '  -d extdir       Directory where to find extensions'
-	echo '  -f              Force all answers to yes (dangerous !)'
+	echo '  -f              Force all answers to yes (dangerous!)'
 	echo
-	echo "Please man ${GNAPNAME} for more details."
+	echo "Please use man ${GNAPNAME} for more details."
 }
 
 cleanup() {
@@ -104,8 +110,14 @@
 gbegin 'Checking parameters'
 
 # Read options
-while getopts ':he:k:m:o:g:b:d:f' options; do
-	case ${options} in
+EXTENSIONS=''
+KERNEXT=''
+MODEXT=''
+GNAPBASEFS=''
+GNAPEXTDIR=''
+FORCEYES=0
+while getopts ':he:k:m:o:g:b:d:f' option; do
+	case ${option} in
 		h ) usage
 			exit 0;;
 		e ) EXTENSIONS="${EXTENSIONS} ${OPTARG}";;
@@ -116,7 +128,7 @@
 		b ) GNAPBASEFS="${OPTARG}";;
 		d ) GNAPEXTDIR="${OPTARG}";;
 		f ) FORCEYES=1;;
-		* ) gtest 1 'Specified options are incomplete or unknown !';;
+		* ) gtest 1 'Specified options are incomplete or unknown!';;
 	esac
 done
 
@@ -146,8 +158,7 @@
 TEMPDIR=$(mktemp -d -t gnap_remaster.XXXXXX)
 gtest continued $? 'Failed to create temporary directory'
 TEMPOVERDIR="${TEMPDIR}/basefs"
-mkdir "${TEMPOVERDIR}"
-gtest continued $? 'Failed to create basefs temporary subdirectory'
+gmkdir "${TEMPOVERDIR}"
 
 tar jx -C "${TEMPOVERDIR}" -f "${GNAPBASEFS}"
 gtest $? 'Failed to unpack basefs'
@@ -163,8 +174,7 @@
 # Preparing new core
 gbegin 'Extracting core tarball'
 TEMPCOREDIR="${TEMPDIR}/core"
-mkdir "${TEMPCOREDIR}"
-gtest continued $? 'Failed to create core temporary subdirectory'
+gmkdir "${TEMPCOREDIR}"
 
 tar x -C "${TEMPCOREDIR}" -f "${GNAPCORE}" --exclude image.squashfs
 gtest $? 'Failed to extract core'
@@ -172,8 +182,7 @@
 if [[ -f "${KERNEXT}" ]]; then
 	gbegin "Replacing kernel and initrd using ${KERNEXT}"
 	TEMPKERNDIR="${TEMPDIR}/kernel"
-	mkdir "${TEMPKERNDIR}"
-	gtest continued $? 'Failed to create kernel temporary subdirectory'
+	gmkdir "${TEMPKERNDIR}"
 
 	tar jx -C "${TEMPKERNDIR}" -f "${KERNEXT}"
 	gtest continued $? 'Failed to extract kernpackage'
@@ -205,6 +214,6 @@
 
 # Successful finish
 cleanup
-echo 'Remaster successful !'
+echo 'Remaster successful!'
 exit 0
 
diff -ur --exclude .svn --exclude upload.sh --exclude diff.sh
gnap-2.0/tools/packlister.pl gnap-2.0+cleanup/tools/packlister.pl
--- gnap-2.0/tools/packlister.pl	2007-07-23 14:14:39.000000000 +0300
+++ gnap-2.0+cleanup/tools/packlister.pl	2007-07-09 21:10:18.000000000
+0300
@@ -1,49 +1,77 @@
-sub dump
+#! /usr/bin/perl
+#
+# packlister.pl prints out the given version number and a list of
+# packages found in the corresponding catalyst package cache and
+# grp cache.
+#
+# Usage: packlister.pl <version>
+#        packlister.pl <version> | reducedsnapshot.pl
+#        packlister.pl <version> > packlisterfile
+
+sub find_and_dump
 {
-  while (<FIND>)
-  {
-    if (/^(\d+)\s+(.+)\/(.+)\/(.+)$/)
-    {
-    	$size = $1;
-	$cstage = $2;
-	$cat = $3;
-	$name = $4;
-	if ($cstage =~ /.*\/(.+)-x86-.+/)
+	if (scalar @_ == 0)
 	{
-		$stage=$1;
+		return;
 	}
-	else
+	
+	open (FIND, "find $_ -name '*.tbz2' -exec ls -Ls {} \\; | "
+		. "grep -v '/All/' |");
+	
+	while (<FIND>)
 	{
-		print STDERR "ERROR ($cstage)\n";
+		if (/^(\d+)\s+(.+)\/([A-Za-z0-9+_]+[A-Za-z0-9+_.-]*)\/(.+)$/)
+		{
+			$size = $1;
+			$cstage = $2;
+			$cat = $3;
+			$name = $4;
+			
+			# There might be more than x86 supported in future versions.
+			if ($cstage =~ /.*\/(.+)-x86-.+/)
+			{
+				$stage=$1;
+			}
+			else
+			{
+				print STDERR "ERROR ($cstage)\n";
+			}
+			
+			# FIXME: The second regex (elsif) seems to match the stuff
+			# the first one also matches. Is this needed?
+			if ($name =~ /^(.+)-(.+-r\d+)\.tbz2/)
+			{
+				$packages{"$cat/$1"} = "$2 - $size Kb - $stage";
+			} 
+			elsif ($name =~ /^(.+)-(.+)\.tbz2/)
+			{
+				$packages{"$cat/$1"} = "$2 - $size Kb - $stage";
+			} 
+			else
+			{
+				print STDERR "ERROR ($name)\n"
+			}	
+		}
+		else
+		{
+			print STDERR "ERROR : $_";
+		}
 	}
-	if ($name =~ /^(.+)-(.+-r\d+)\.tbz2/)
-	{
-		$packages{"$cat/$1"} = "$2 - $size Kb - $stage";
-	} 
-	elsif ($name =~ /^(.+)-(.+)\.tbz2/)
-	{
-		$packages{"$cat/$1"} = "$2 - $size Kb - $stage";
-	} 
-	else
-	{
-		print STDERR "ERROR ($name)\n"
-	}	
-    }
-    else
-    {
-    	print STDERR "ERROR : $_";
-    }
-  }
+	
+	close (FIND);
+}
+
+# Check script parameters
+if (scalar @ARGV == 0)
+{
+	die "Usage: $ENV{_} <version>\n";
 }
+
+# Print version and file list based on catalyst
 print "$ARGV[0]\n";
-$loc = "/var/tmp/catalyst/packages/gnap/*$ARGV[0]";
-open (FIND,"find $loc -name '*.tbz2' -exec ls -Ls {} \\; | grep -v
'/All/' |");
-&dump();
-close FIND;
-$loc = "/var/tmp/catalyst/builds/gnap/grp*$ARGV[0]/*";
-open (FIND,"find $loc -name '*.tbz2' -exec ls -Ls {} \\; | grep -v
'/All/' |");
-&dump();
-close FIND;
+&find_and_dump("/var/tmp/catalyst/packages/gnap/*$ARGV[0]");
+&find_and_dump("/var/tmp/catalyst/packages/gnap/grp*$ARGV[0]/*");
+
 #No need to grab for kernel sources as they are found in the /ALL/
directory
 #$kernel=`grep sys-kernel gnap_make-$ARGV[0].out | grep merged | grep
sources`;
 #if ($kernel =~ /(sys-kernel\/.*-sources)-(.*) merged/)
@@ -54,11 +82,13 @@
 #{
 #  print STDERR "Kernel not found: $kernel\n";
 #}
+
 foreach $key (sort(keys(%packages)))
 {
-  print STDOUT "$key $packages{$key}\n";
+	print STDOUT "$key $packages{$key}\n";
 }
-  #Groff is part of the stage3 tarball but not remerged so we have to
add it manually
-  print STDOUT "sys-apps/groff 1.19.2-r1 - 116 Kb - stage3\n";
-  #htbinit is merged with kernel sources and somehow missed by the
script
-  print STDOUT "net-misc/htbinit 0.8.5-r1 - 116 Kb - livecd-stage2\n";
+
+#Groff is part of the stage3 tarball but not remerged so we have to add
it manually
+print STDOUT "sys-apps/groff 1.19.2-r1 - 116 Kb - stage3\n";
+#htbinit is merged with kernel sources and somehow missed by the script
+print STDOUT "net-misc/htbinit 0.8.5-r1 - 116 Kb - livecd-stage2\n";
diff -ur --exclude .svn --exclude upload.sh --exclude diff.sh
gnap-2.0/tools/reducedsnapshot.pl gnap-2.0
+cleanup/tools/reducedsnapshot.pl
--- gnap-2.0/tools/reducedsnapshot.pl	2007-07-23 14:14:39.000000000
+0300
+++ gnap-2.0+cleanup/tools/reducedsnapshot.pl	2007-07-23
14:16:49.000000000 +0300
@@ -1,3 +1,13 @@
+#! /usr/bin/perl
+#
+# resucedsnapshot.pl creates a reduced portage snapshot based on a
+# dfault set (eclasses, profiles) and a packagelist created by
+# packlister.pl.
+#
+# Usage: packlister.pl <version> | reducedsnapshot.pl
+#        reducedsnapshot.pl packlisterfile
+#        reducedsnapshot.pl < packlisterfile
+
 @minportage = ( 
 	"portage/eclass",
 	"portage/profiles/arch.list",
@@ -14,19 +24,21 @@
 	"portage/profiles/uclibc",
 	"portage/profiles/updates",
 	"portage/profiles/use.desc",
-	"portage/profiles/use.local.desc");
+	"portage/profiles/use.local.desc"
+);
+
 print "Building package list...\n";
 $version = <>;
 chop $version;
 while (<>)
 {
-  ($pack,$ver,,,,)=split;
-  push (@minportage,"portage/$pack");
-  push (@minportage,"portage/metadata/cache/$pack-$ver");
+	($pack,$ver,,,,) = split;
+	push (@minportage, "portage/$pack");
+	push (@minportage, "portage/metadata/cache/$pack-$ver");
 }
+
 print "Extracting portage...\n";
 system "mkdir tmp_port";
-
 system "tar jx -C tmp_port
-f /var/tmp/catalyst/snapshots/portage-$version.tar.bz2";
 print "Creating reduced portage snapshot...\n";
 system "tar jc -C tmp_port -f redportage-$version.tar.bz2 @minportage";

-- 
gnap-dev@gentoo.org mailing list