Comment 65 for bug 378240

Revision history for this message
Boris Derzhavets (bderzhavets) wrote : Re: Please merge xen-3.4 (3.4.0-2) from debian unstable

Just in case. Patched script should look like :-
root@ServerLDX:~/VirtUser# cat packageXen40x.sh
#!/bin/bash
# Usage:
# ./packageXen40x.sh RELEASE-4.0.0
# ./packageXen40x.sh 4.0.1-rc1
# ./packageXen40x.sh # pickup the latest # 4.0.1-rc3
#
# References:
# *** http://bderzhavets.wordpress.com/
# *** https://bugs.launchpad.net/ubuntu/+source/xen-3.3/+bug/378240
# mikmak wrote on 2009-08-13: xen-3.4_3.4.1-1ubuntu1.diff.gz

LREL=$1

# Global variables
REPOS=xen-4.0-testing.hg
REPURL=http://xenbits.xensource.com/$REPOS
export DEBEMAIL="User Virtual <email address hidden>"
STARTDIR=$(pwd)
export DISTRIB=$(sed -n 's/DISTRIB_CODENAME=//p' /etc/lsb-release)
export CONCURRENCY_LEVEL=$(grep processor /proc/cpuinfo | sed -n '$=')
DEVEL=false # ; DEVEL=true

# Prepare environment
# MUST HAVE RW priviledges to both WRKD and its parent !
export WRKD=/usr/src/build/xen40-$DISTRIB ; [ -d $WRKD ] || mkdir -p $WRKD
export IMGD=/usr/src/wget ; [ -d $IMGD ] || mkdir -p $IMGD

# Install build dependencies
sudo apt-get -y install libcurl4-openssl-dev xserver-xorg-dev mercurial gitk build-essential libncurses5-dev uuid-dev gawk gettext texinfo bcc libncurses5-dev dpkg-dev debhelper iasl texinfo catdvi fakeroot bison flex devscripts
sudo apt-get -y build-dep xen-3.3
# Install recommended run dependencies
sudo apt-get -y install bridge-utils
# Recommended dependency no longer part of current ubuntu archives. Make it from the latest source
SDSC=python-xml_0.8.4-10.1ubuntu2.dsc
[ -r mk_ub_pgk_source.sh ] && sh mk_ub_pgk_source.sh $SDSC

# Retreive latest release tag if not specified
cp fsimage-zfs-24.patch1 $WRKD
cp blktap2_ctrl_func.patch-xen-testing-4.x.patch1 $WRKD
cd $WRKD
[ ! -d $REPOS -a -d ../$REPOS ] && ln -sv ../$REPOS .
if [ -z "$LREL" ]; then
 echo "Info: Finding last release tag: hg clone $REPURL; hg pull; hg update"
 cd $WRKD
 [ -d $REPOS ] || hg clone $REPURL #http://xenbits.xensource.com/$REPOS
 cd $WRKD/$REPOS
 LREL=$(hg tags | sed '/^tip\b /d' | sed -n '1 s/ *.*//p') # RELEASE-4.0.0
 hg pull; hg update;
fi
RELTAG=$(echo $LREL | sed 's/^RELEASE-//;s/-\([^-]*\)$/\1/') # 4.0.0

# Create allinclusive source orig.gz
DEBNAM=xen-$(echo $RELTAG | sed 's/\.[^.]*$//')_$RELTAG
ORIGZ=$DEBNAM.orig.tar.gz
echo "Info: Making the allinclusive $ORIGZ LREL=$LREL= RELTAG=$RELTAG="; sleep 2
MAKEORIGWRKD=$(mktemp -d --tmpdir=$WRKD make.orig.XXXXXX); cd $MAKEORIGWRKD
UDIFNAME=xen-$(echo $RELTAG | sed 's/\.[^.]*$//')-0ubuntu1.diff.gz
zcat $STARTDIR/$UDIFNAME | patch -p1
chmod 755 debian/makeiOrigSource.sh
debian/makeiOrigSource.sh $LREL
cd $WRKD/ ; ! $DEVEL && rm -rf $MAKEORIGWRKD

# Unpack sources
cd $WRKD/
echo Info: Unpack $ORIGZ ...
DEBDIRNAM=$(echo $DEBNAM | sed 's/_/-/')
rm -rf $DEBDIRNAM; tar xzf $ORIGZ; mv $DEBDIRNAM.orig $DEBDIRNAM
cd $WRKD/$DEBDIRNAM
echo Info: Patch with debian diff $UDIFNAME ...
zcat $STARTDIR/$UDIFNAME | patch -p1
echo "Info: ZFS & VHD patching"
        patch -p1 -s -i $WRKD/fsimage-zfs-24.patch1;
        patch -p1 -s -i $WRKD/blktap2_ctrl_func.patch-xen-testing-4.x.patch1;
echo Info: Tag change log with the version: $RELTAG-0ubuntu1
test "$RELTAG" != "4.0.0" && \
 dch -b --newversion $RELTAG-0ubuntu1 "Automated rebuild atempt for new upstream version."
head debian/changelog; sleep 1 && $DEVEL && echo cd $WRKD/$DEBDIRNAM && exit

# Make the actual build
dpkg-buildpackage -rfakeroot
_RT=$?

if [ 0 -eq ${_RT} ]; then
 # Install instructions
 TPKG=$(echo $SDSC | sed 's/_.*//')
 cd $WRKD
 BOOTPART=false; mount | grep ' /boot ' && BOOTPART=true
 cat << EOF
### Install by running ###
# $( $BOOTPART && echo "mount | grep ' /boot .*(.*\bro\b' && sudo mount -v -o remount,rw /boot" )
# sudo dpkg --purge --force-depends $TPKG
# sudo dpkg -i $WRKD/$TPKG/$(echo $SDSC | sed 's/\.dsc//')*.deb
# cd $WRKD
# sudo dpkg --purge --force-depends $(echo $(ls *${RELTAG}*.deb | sed 's/_.*//g'))
# sudo dpkg -i $(echo $(ls *${RELTAG}*.deb))

EOF
 # Cleanup
# ! $DEVEL && echo Doing cleanup... rm -rf $WRKD/$DEBDIRNAM && rm -rf $WRKD/$DEBDIRNAM
 echo BUILT OK.
fi
exit ${_RT}