r3086 - trunk/scripts

Simon Horman horms@costa.debian.org
Fri, 13 May 2005 07:19:44 +0000


Author: horms
Date: 2005-05-13 07:19:44 +0000 (Fri, 13 May 2005)
New Revision: 3086

Removed:
   trunk/scripts/test_kernel_build
Log:
update my build scripts

Deleted: trunk/scripts/test_kernel_build
===================================================================
--- trunk/scripts/test_kernel_build	2005-05-13 07:10:19 UTC (rev 3085)
+++ trunk/scripts/test_kernel_build	2005-05-13 07:19:44 UTC (rev 3086)
@@ -1,443 +0,0 @@
-#!/bin/bash
-######################################################################
-# Horms                                                   October 2004
-######################################################################
-
-START=$(date --rfc)
-
-set -e
-
-usage () 
-{
-	echo "Usage: $0 VERSION [START_STAGE] [END_STAGE]" 1>&2
-	exit 1
-}
-
-export LC_ALL=C
-unset LANG
-unset LANGUAGE
-
-#TO="horms+keitai@verge.net.au"
-TO="simon@valinux.co.jp"
-SUBJECT="Kernel Build"
-
-if ! which fakeroot >& /dev/null; then
-	echo "Error: fakeroot is not installed" 1>&2
-	exit 1
-fi
-
-umask 022
-
-unset MAKE
-export CONCURRENCY_LEVEL=2
-
-#export DISTCC_HOSTS='harry.lab.ultramonkey.org charles.lab.ultramonkey.org citadel.lab.ultramonkey.org tabatha.lab.ultramonkey.org'
-#export MAKE="make CC=\"ccache distcc gcc-3.2\""
-#export CONCURRENCY_LEVEL=16
-
-#export MAKE="make CC=\"ccache gcc-3.2\""
-#export CONCURRENCY_LEVEL=8
-#export MAKE="make CC=\"gcc-3.2\""
-
-export CCACHE_HARDLINK
-
-if [ $# -lt 1 -o $# -gt 3 ]; then
-	usage
-fi
-VERSION="$1"
-if [ $# -gt 1 ]; then
-	START_STAGE=$2
-else
-	START_STAGE=0
-fi
-if [ $# -gt 2 ]; then
-	END_STAGE=$3
-else
-	END_STAGE=1000
-fi
-STAGE=0
-
-shopt -s extglob
-case $VERSION in
-	2.6.+([0-9]))
-		MAJOR_MINOR="2.6"
-		SVN_SUBDIR="kernel"
-	;;
-	2.4.+([0-9]))
-		MAJOR_MINOR="2.4"
-		SVN_SUBDIR="kernel-2.4"
-	;;
-	*)
-		echo "Unknown Version" 1>&2
-		usage
-	;;
-esac
-shopt -u extglob
-
-LOG=""
-#STAMP="${VERSION}_$(date +%Y-%m-%d_%H:%M:%S).$$"
-STAMP="${VERSION}"
-STAGE_STATUS="failed"
-KERNEL_ARCH="i386"
-SVN_BASE="$HOME/work/debian-kernel/svn/kernel/trunk"
-S_SRC_BASE="$SVN_BASE/$SVN_SUBDIR/source"
-B_SRC_BASE="$SVN_BASE/$SVN_SUBDIR/$KERNEL_ARCH"
-S_DST_BASE="/tmp/debian-kernel-test"
-B_DST_BASE="$S_DST_BASE"
-
-S_SRC_DIR="$S_SRC_BASE/kernel-source-$VERSION-$VERSION"
-S_DST_DIR="$S_DST_BASE/kernel-source-$VERSION-$VERSION"
-S_PKG_DIR="$S_DST_DIR/kernel-source-$VERSION-$VERSION"
-S_LOG="$S_DST_DIR/kernel-source-$STAMP.log"
-B_SRC_DIR="$B_SRC_BASE/kernel-image-$VERSION-$KERNEL_ARCH-$VERSION"
-B_DST_DIR="$B_DST_BASE/kernel-image-$VERSION-$KERNEL_ARCH-$VERSION"
-B_PKG_DIR="$B_DST_DIR//kernel-image-$VERSION-$KERNEL_ARCH-$VERSION"
-B_LOG="$B_DST_DIR/kernel-image-$STAMP.log"
-
-trap pm_quit EXIT
-trap pm_quit SIGHUP
-trap pm_quit SIGTERM
-trap pm_quit SIGQUIT
-
-set -e
-
-kernel_symbol_check_clean ()
-{
-	rm -rf "$TMP";
-}
-
-kernel_symbol_check ()
-{
-	TMP="$(mktemp -d)"
-	trap kernel_symbol_check_clean EXIT
-
-
-	PKG1="$1"
-	PKG2="$2"
-
-	echo "Checking $PKG1 vs $PKG2"
-
-	PKG1_FILE="${PKG1##*/}"
-	PKG1_BASE="${PKG1_FILE%%_*}"
-
-	PKG2_FILE="${PKG2##*/}"
-	PKG2_BASE="${PKG2_FILE%%_*}"
-
-	rm -rf "$TMP/1/" "$TMP/2/"
-	mkdir "$TMP/1/" "$TMP/2/"
-	dpkg -x "$PKG1" "$TMP/1/"
-	dpkg -x "$PKG2" "$TMP/2/"
-
-	find "$TMP/1/usr/src/$PKG1_BASE/include" -name "*.ver" -type f | \
-		xargs cat | sort > "$TMP/1.sym"
-	find "$TMP/2/usr/src/$PKG2_BASE/include" -name "*.ver" -type f | \
-		xargs cat | sort > "$TMP/2.sym"
-
-	diff -u "$TMP/1.sym" "$TMP/2.sym" > "$TMP/sym.udiff" || true
-	diff "$TMP/1.sym" "$TMP/2.sym" > "$TMP/sym.diff" || true
-	cat "$TMP/sym.udiff"
-	if grep "^<" "$TMP/sym.diff" > /dev/null; then
-		echo 'Error: Symbol Changes, as above. Incompatible ABI!!!'
-		STATUS=1
-	elif [ -s "$TMP/sym.udiff" ]; then
-		echo "Warning: Additions made to ABI"
-		STATUS=2
-	else
-		echo "No Changes"
-		STATUS=0
-	fi
-
-	kernel_symbol_check_clean
-	trap EXIT
-	return $STATUS
-}
-
-LOG_BUF=""
-log ()
-{
-	echo $@
-	if [ -f "$LOG" ]; then
-		echo "$LOG_BUF"$@ >> "$LOG"
-		LOG_BUF=""
-	else
-		LOG_BUF="${LOG_BUF}$(echo $@)"
-	fi
-}
-
-openlog ()
-{
-	echo "$LOG_BUF" > "$LOG"
-	LOG_BUF=""
-}
-
-purgelog ()
-{
-	rm -f "$LOG"
-}
-
-pm_quit ()
-{
-	log ""
-	
-	echo "Status: $STAGE_STATUS"
-	echo "Version: $VERSION"
-	echo -n "Host: "
-	hostname -s
-	echo "Start: $START"
-	echo -n "Finish: "
-	date --rfc
-	times
-
-	if [ "$STAGE_STATUS" = failed ]; then
-		echo "Stage: $STAGE: $STAGE_NAME..."
-		[ -f "$LOG.$STAGE" ] && tail -100 "$LOG.$STAGE"
-	fi
-	
-	{
-	echo "Status: $STAGE_STATUS"
-	echo "Version: $VERSION"
-	echo -n "Host: "
-	hostname -s
-	echo "Start: $START"
-	echo -n "Finish: "
-	date --rfc
-	times
-
-	if [ "$STAGE_STATUS" = failed ]; then
-		echo "Stage: $STAGE: $STAGE_NAME..."
-		[ -f "$LOG.$STAGE" ] && tail -100 "$LOG.$STAGE" | tac
-	else
-		[ -f "$B_LOG" ] && tac "$B_LOG"
-		[ -f "$S_LOG" ] && tac "$S_LOG"
-	fi
-	} | mail -s "Build: ($STAGE_STATUS: $VERSION: $(hostname -s))" $TO
-
-}
-
-stage_begin ()
-{
-	if [ $END_STAGE -eq $STAGE ]; then
-		log "exiting on request"
-		STAGE_STATUS="ok"
-		exit 0
-	fi
-
-	STAGE=$(( $STAGE + 1 ))
-	log -n "Stage $STAGE: $@... "
-
-	if [ $STAGE -lt $START_STAGE -a -f "$DST_DIR/$STAGE.marker" ]; then
-		log skipped
-		return 0
-	fi
-	return 1
-}
-
-stage_end ()
-{
-	STATUS="$1"
-	if [ $STATUS -ne 0 ]; then
-		log "failed"
-		cat "$LOG.$STAGE"
-		exit 1
-	fi
-	touch "$DST_DIR/$STAGE.marker"
-	log "ok!"
-}
-
-log "Building as $(whoami)@$(hostname) (this will be included in dmsg)";
-if [ -n "$RELEASE" ]; then
-	log "Building for release, kernel-tree will need to be installed"
-else
-	log "Building for testing, dependancies will be mangled"
-	log "Define RELEASE=yes in the environment to build for a release"
-fi
-
-LOG="$S_LOG"
-purgelog
-DST_DIR="$S_DST_DIR"
-STAGE_NAME="Creating kernel-source directory"
-stage_begin "$STAGE_NAME" || {
-	{
-		rm -rf "$S_DST_DIR" "$S_PKG_DIR" "$S_DST_DIR/tmp"
-		mkdir -p "$S_DST_DIR" "$S_DST_DIR/tmp"
-	}
-	stage_end $?
-}
-openlog
-log "Logs in $LOG.blah"
-
-STAGE_NAME="Fetching kernel-source tarball from debian archive"
-stage_begin "$STAGE_NAME" || {
-	(
-		cd "$S_DST_DIR" && \
-		apt-get source -d -q=1 "kernel-source-$VERSION" && \
-		tar -zxf "kernel-source-${VERSION}_$VERSION.orig.tar.gz" && \
-		test ! -d "kernel-source-${VERSION}-$VERSION.orig" || \
-		mv "kernel-source-${VERSION}-$VERSION.orig" \
-			"kernel-source-${VERSION}-$VERSION"
-	) >& "$LOG.$STAGE"
-	stage_end $?
-}
-
-STAGE_NAME="Copying kernel-source debian directory"
-stage_begin "$STAGE_NAME" || {
-	{
-		( cd "$S_SRC_DIR/" && svn status; ) > "$LOG.$STAGE.svn" && \
-		rsync -av --exclude .svn --exclude ".*.sw[a-z]" \
-			"$S_SRC_DIR/" "$S_PKG_DIR/"  && \
-		chmod u+x "$S_PKG_DIR/debian/rules" && \
-		echo "Do not remove this line. " > "$S_PKG_DIR/debian/official"
-	} >& "$LOG.$STAGE"
-	stage_end $?
-	if [ -s "$LOG.$STAGE.svn" ]; then
-		echo "=== SVN file stauts ==="
-		cat "$LOG.$STAGE.svn"
-	fi | tee -a "$LOG.$STAGE"
-}
-
-STAGE_NAME="Patching kernel-source tree"
-stage_begin "$STAGE_NAME" || {
-	(
-		cd "$S_PKG_DIR" && \
-		./debian/rules patch
-	) >& "$LOG.$STAGE"
-	stage_end $?
-}
-
-STAGE_NAME="Build kernel-source package"
-stage_begin "$STAGE_NAME" || {
-	(
-		cd "$S_PKG_DIR" && \
-		dpkg-buildpackage -us -uc -rfakeroot
-	) >& "$LOG.$STAGE"
-	stage_end $?
-}
-
-STAGE_NAME="Extracting kernel-source package"
-stage_begin "$STAGE_NAME" || {
-	{
-	if [ -n "$RELEASE" ]; then
-		echo skip
-	else
-		DEB_VERSION=$(( cd "$S_PKG_DIR" && dpkg-parsechangelog; ) | \
-			awk '/^Version: / { print $$2 }') && \
-		dpkg-deb -x "$S_DST_DIR/kernel-source-${VERSION}_${DEB_VERSION}_all.deb" "$S_DST_DIR/tmp" && \
-		mv "$S_DST_DIR/tmp/usr/src/kernel-source-$VERSION.tar.bz2" \
-			"$S_DST_DIR"
-	fi
-	} >& "$LOG.$STAGE"
-	stage_end $?
-}
-
-LOG="$B_LOG"
-purgelog
-DST_DIR="$B_DST_DIR"
-STAGE_NAME="Creating kernel-image directory"
-stage_begin "$STAGE_NAME" || {
-	{
-		rm -rf "$B_DST_DIR" "$B_PKG_DIR"
-		mkdir -p "$B_DST_DIR"
-	}
-	stage_end $?
-}
-openlog
-log "Logs in $LOG.blah"
-
-STAGE_NAME="Copying kernel-image debian directory"
-stage_begin "$STAGE_NAME" || {
-	{
-		( cd "$B_SRC_DIR/" && svn status; ) > "$LOG.$STAGE.svn" && \
-		rsync -av --exclude .svn "$B_SRC_DIR/" "$B_PKG_DIR/"  && \
-		chmod u+x "$B_PKG_DIR/debian/rules"
-	} >& "$LOG.$STAGE"
-	stage_end $?
-	if [ -s "$LOG.$STAGE.svn" ]; then
-		echo "=== SVN file stauts ==="
-		cat "$LOG.$STAGE.svn"
-	fi | tee -a "$LOG.$STAGE"
-}
-
-STAGE_NAME="Mangling kernel-image debian/{rules,control}"
-stage_begin "$STAGE_NAME" || {
-	{
-	if [ -n "$RELEASE" ]; then
-		echo skip
-	else
-		DEB_VERSION=$(( cd "$S_PKG_DIR" && dpkg-parsechangelog; ) | \
-			awk '/^Version: / { print $$2 }') && \
-		TMP_DIR="$(echo $S_DST_DIR | sed -e 's/\//\\\//g')" && \
-		TMP_CMD="override_version=$DEB_VERSION home=$S_PKG_DIR/debian/patches sh $S_PKG_DIR/debian/apply" && \
-		TMP_CMD="$(echo $TMP_CMD | sed -e 's/\//\\\//g')" && \
-		sed -e "s/\/usr\/src\(\/kernel-source\)/$TMP_DIR\1/" \
-			-e "s/\/usr\/src\/.*\/apply\/debian/$TMP_CMD/" \
-			< "$B_PKG_DIR/debian/rules" \
-			> "$B_PKG_DIR/debian/rules.2" && \
-		mv "$B_PKG_DIR/debian/rules.2" "$B_PKG_DIR/debian/rules" && \
-		chmod u+x "$B_PKG_DIR/debian/rules" && \
-		sed -re "/^Build-Depends: / s/kernel-tree-$VERSION-[0-9]+(, )?//" \
-			< "$B_PKG_DIR/debian/control" \
-			> "$B_PKG_DIR/debian/control.2" && \
-		mv "$B_PKG_DIR/debian/control.2" \
-			"$B_PKG_DIR/debian/control" && \
-		chmod u+x "$B_PKG_DIR/debian/control"
-	fi
-	} >& "$LOG.$STAGE"
-	stage_end $?
-}
-
-STAGE_NAME="Building kernel-image packages"
-stage_begin "$STAGE_NAME" || {
-	(
-		cd $B_PKG_DIR && \
-		time dpkg-buildpackage -rfakeroot -us -uc
-	) >& "$LOG.$STAGE"
-	stage_end $?
-}
-BUILD_STAGE=$STAGE
-
-STAGE_NAME="Examining kernel-image symbols"
-stage_begin "$STAGE_NAME" || {
-	(
-		LOOP_STATUS=0
-		echo "=== Modprobe Symbol Report ==="
-		fgrep "needs unknown symbol" $LOG.$BUILD_STAGE && \
-			LOOP_STATUS=1
-		echo "=== System.map Symbol Report ==="
-		OLD="$B_DST_DIR/old"
-		rm -rf "$OLD"
-		mkdir -p "$OLD"
-		cd "$OLD"
-		apt-get -q source "kernel-image-$VERSION-$KERNEL_ARCH"
-		# Using apt-get here does not work because it only
-		# prints out URLs of files that need to be downloaded,
-		# so if they are in the apt cache somewhere they
-		# won't show up
-		#awk '/^Package: kernel-headers/ {print $2}' < \
-		#	kernel-image-2.4.27-i386-2.4.27/debian/control | \
-		#	xargs apt-get --reinstall -qq --print-uris install | \
-		#	awk -F\' '{print $2}' | \
-		#	xargs wget -nv
-		export URL="http://debian.local.valinux.co.jp/debian/"
-		awk '/^Package: kernel-headers/ {print $2}' < \
-			kernel-image-$VERSION-$KERNEL_ARCH-$VERSION/debian/control | \
-			xargs apt-cache show |\
-			awk '/^Filename: / {print ENVIRON["URL"]$2}' | \
-			xargs wget -nv
-		cd $B_PKG_DIR
-		DEB_VERSION=$(( cd "$B_PKG_DIR" && dpkg-parsechangelog; ) | \
-			awk '/^Version: / { print $$2 }') && \
-		SONAME=$(sed -ne "s/Package: kernel-headers-$VERSION-\([0-9]\) *$/\1/ p" debian/control)
-		for f in $(find config -maxdepth 1 -type f ! -name default -printf '%f\n'); do
-			echo "\"$f\""
-			kernel_symbol_check \
-				"$OLD/kernel-headers-$VERSION-"[0-9]"-${f}_$VERSION-"*"_$KERNEL_ARCH.deb" \
-				"$B_DST_DIR/kernel-headers-$VERSION-$SONAME-${f}_${DEB_VERSION}_$KERNEL_ARCH.deb" \
-				|| LOOP_STATUS=1
-		done
-		[ "$LOOP_STATUS" = "0" ]
-	) >& "$LOG.$STAGE"
-	stage_end $?
-}
-
-STAGE_STATUS="ok"
-exit