Building testing kernels

Tim Gardner tim.gardner at canonical.com
Fri Feb 4 13:42:48 UTC 2011


On 02/04/2011 04:21 AM, Herton Ronaldo Krzesinski wrote:
> Hi,
>
> what's the common used way to provide test kernels for users to test, is
> it fine to use ppa in launchpad?
>
> Yesterday I started playing with ppa/building packages, and found that
> we have on kteam-tools a script to build ppa packages more or less with
> everything sorted out, build-mkppa
>
> But I found some problems, when trying to build a ppa for maverick's
> kernel, using build-mkppa:
> - It got confused by some tags in ubuntu maverick git repository, as abi
> in them had a higher number than the last released mavericks kernel, it
> thought that last kernel was Ubuntu-2.6.35-903.21, while the last one is
> Ubuntu-2.6.35-26.46. I ended up removing all Ubuntu-2.6.35-90?.* tags to
> overcome this.
> - build-mkppa looks outdated compared with build procedures of today,
> not knowing about debian.master in current repo. I fixed this along
> another little nits, and then was able to build sources for a ppa.
>
> I created a kteam-tools repository to provide the fixes under my
> account, please check and see if they are ok, if yes here is the pull
> request:
>
> The following changes since commit 94116bd51b2b27829ea4edc517ffefc8e147d9ec:
>
>    Added regular expression which can be used by other code. (2011-02-02 14:58:10 -0800)
>
> are available in the git repository at:
>    ssh://kernel.ubuntu.com/srv/kernel.ubuntu.com/git/herton/kteam-tools fixes
>
> Herton Ronaldo Krzesinski (4):
>        Trivial typo fix in build-mkppa
>        build-mkppa: change default PPAEXT to "ppa"
>        build-mkppa: abort if git am fails
>        build-mkppa: make sure we use proper debian master directory
>
>   buildscripts/build-mkppa |   48 ++++++++++++++++++++++++++++-----------------
>   1 files changed, 30 insertions(+), 18 deletions(-)
>
> diff --git a/buildscripts/build-mkppa b/buildscripts/build-mkppa
> index 2e0b89b..8bed21b 100755
> --- a/buildscripts/build-mkppa
> +++ b/buildscripts/build-mkppa
> @@ -30,7 +30,7 @@
>   # DEBEMAIL: Those two environment variables (exported) are used by dch to
>   #           set the email address and the name of the maintainer.
>   #==============================================================================
> -PPAEXT=smb
> +PPAEXT=ppa
>   if [ "$PPADIR" = "" ]; then
>   	PPADIR="../$(basename $(pwd))-ppa"
>   fi
> @@ -106,12 +106,14 @@ while [ $# -gt 0 ]; do
>   	esac
>   	shift
>   done
> +DEBIAN=$(debian/rules printdebian)
> +[ -n "$DEBIAN" ] || DEBIAN=debian
>
>   #
>   # If this is missing, there is really something odd.
>   #
> -if [ ! -f debian/changelog ]; then
> -	echo "debian/changlog not found!">&2
> +if [ ! -f $DEBIAN/changelog ]; then
> +	echo "$DEBIAN/changelog not found!">&2
>   	exit 1
>   fi
>   DIST=$(awk '
> @@ -123,7 +125,7 @@ DIST=$(awk '
>   			exit
>   		}
>   	}
> -' debian/changelog)
> +' $DEBIAN/changelog)
>
>   case $DIST in
>   	dapper|hardy|jaunty|karmic|lucid|maverick)
> @@ -216,9 +218,17 @@ fi
>   # If one of the patches is marked "BumpABI: yes", then bump the ABI later.
>   #
>   BUMPABI=false
> +applied=0
>   if [ -r "$PATCHDIR/series" ]; then
>   	for i in $(cat $PATCHDIR/series); do
>   		git am $PATCHDIR/$i
> +		if [ "$?" -ne 0 ]; then
> +			git am --abort
> +			[ "$applied" -eq 0 ] || git reset --hard HEAD~$applied
> +			echo "Aborted as one of the patches doesn't apply"
> +			exit 1
> +		fi
> +		let "applied++"
>   		if [ "$(GetPatchTag BumpABI "$PATCHDIR/$i")" = "yes" ]; then
>   			BUMPABI=true
>   		fi
> @@ -305,13 +315,14 @@ awk '
>   	!silent{
>   		print
>   	}
> -' debian/changelog>debian/changelog.$$&&  \
> -	mv debian/changelog.$$ debian/changelog
> +' $DEBIAN/changelog>$DEBIAN/changelog.$$&&  \
> +	mv $DEBIAN/changelog.$$ $DEBIAN/changelog
>
> -dch -b -v"$PPAVER" -D"$DIST" "!!!PLACEHOLDER!!!"
> +dch -c $DEBIAN/changelog -b -v"$PPAVER" -D"$DIST" "!!!PLACEHOLDER!!!"
>   awk -vTEXT="$CHANGES" '/!!!PLACEHOLDER!!!/{print TEXT; next} {print}' \
> -	debian/changelog>debian/changelog.$$&&  \
> -	mv debian/changelog.$$ debian/changelog
> +	$DEBIAN/changelog>$DEBIAN/changelog.$$&&  \
> +	mv $DEBIAN/changelog.$$ $DEBIAN/changelog
> +[ "$DEBIAN" = "debian" ] || cp -f $DEBIAN/changelog debian/changelog
>
>   #
>   # Update the debian control file
> @@ -322,7 +333,8 @@ debian/rules debian/control.stub>/dev/null
>   # Stupid ABI check possibly wants stuff
>   #
>   LASTFULLVER=$VER-$LASTRELEASE
> -if [ -d debian/abi ]; then
> +debian/scripts/misc/getabis $VER $LASTRELEASE
> +if [ -d $DEBIAN/abi ]; then
>   	#
>   	# No kABI files for the last release. If there is a tarball
>   	# that provides those relative to the kernel top level dir,
> @@ -331,27 +343,27 @@ if [ -d debian/abi ]; then
>   	if [ -f $PPADIR/abi-$LASTFULLVER.tar.gz ]; then
>   		echo "Found and use $FULLVER tarball."
>   		tar -xzf $PPADIR/abi-$LASTFULLVER.tar.gz
> -		git add debian/abi/$LASTFULLVER
> +		git add $DEBIAN/abi/$LASTFULLVER
>   	fi
> -	if [ ! -d debian/abi/$LASTFULLVER ]; then
> +	if [ ! -d $DEBIAN/abi/$LASTFULLVER ]; then
>   		#
>   		# If the directory is still missing, there was no tarbal.
>   		# Maybe the files from an older release are there.
>   		#
> -		if [ ! -d debian/abi/$LASTFULLVER ]; then
> +		if [ ! -d $DEBIAN/abi/$LASTFULLVER ]; then
>   			echo "WARNING: No kABI files for $LASTRELEASE!!!"
> -			LASTRELEASE=$(ls -1 debian/abi|tail -1|cut -d- -f2)
> +			LASTRELEASE=$(ls -1 $DEBIAN/abi|tail -1|cut -d- -f2)
>   			if [ "$LASTRELEASE" = "" ]; then
>   				echo "Unable to continue!">&2
>   				exit 1
>   			fi
>   			echo "Using $LASTRELEASE instead. Hope this works..."
>   			echo "Generate ABI modules files..."
> -			cp -r debian/abi/$VER-$LASTRELEASE \
> -				debian/abi/$LASTFULLVER
> -			echo $ABI>debian/abi/$LASTFULLVER/abiname
> +			cp -r $DEBIAN/abi/$VER-$LASTRELEASE \
> +				$DEBIAN/abi/$LASTFULLVER
> +			echo $ABI>$DEBIAN/abi/$LASTFULLVER/abiname
>   		fi
> -		git add debian/abi/$LASTFULLVER
> +		git add $DEBIAN/abi/$LASTFULLVER
>   	fi
>   fi
>
>

This truly a stale script. We've been using the abstracted debian 
directories for a good while now. Your changes look fine.

Stefan - you wrote this, what do you think?

rtg
-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list