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}
Just in case. Patched script should look like :- ~/VirtUser# cat packageXen40x.sh bderzhavets. wordpress. com/ /bugs.launchpad .net/ubuntu/ +source/ xen-3.3/ +bug/378240 3.4.1-1ubuntu1. diff.gz
root@ServerLDX:
#!/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://
# *** https:/
# mikmak wrote on 2009-08-13: xen-3.4_
LREL=$1
# Global variables 4.0-testing. hg xenbits. xensource. com/$REPOS CODENAME= //p' /etc/lsb-release) LEVEL=$ (grep processor /proc/cpuinfo | sed -n '$=')
REPOS=xen-
REPURL=http://
export DEBEMAIL="User Virtual <email address hidden>"
STARTDIR=$(pwd)
export DISTRIB=$(sed -n 's/DISTRIB_
export CONCURRENCY_
DEVEL=false # ; DEVEL=true
# Prepare environment src/build/ xen40-$ DISTRIB ; [ -d $WRKD ] || mkdir -p $WRKD
# MUST HAVE RW priviledges to both WRKD and its parent !
export WRKD=/usr/
export IMGD=/usr/src/wget ; [ -d $IMGD ] || mkdir -p $IMGD
# Install build dependencies 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 xml_0.8. 4-10.1ubuntu2. dsc
sudo apt-get -y install libcurl4-
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-
[ -r mk_ub_pgk_source.sh ] && sh mk_ub_pgk_source.sh $SDSC
# Retreive latest release tag if not specified zfs-24. patch1 $WRKD ctrl_func. patch-xen- testing- 4.x.patch1 $WRKD xenbits. xensource. com/$REPOS //;s/-\ ([^-]*\ )$/\1/' ) # 4.0.0
cp fsimage-
cp blktap2_
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://
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-
# Create allinclusive source orig.gz .]*$//' )_$RELTAG DEBNAM. orig.tar. gz $(mktemp -d --tmpdir=$WRKD make.orig.XXXXXX); cd $MAKEORIGWRKD .]*$//' )-0ubuntu1. diff.gz makeiOrigSource .sh makeiOrigSource .sh $LREL
DEBNAM=xen-$(echo $RELTAG | sed 's/\.[^
ORIGZ=$
echo "Info: Making the allinclusive $ORIGZ LREL=$LREL= RELTAG=$RELTAG="; sleep 2
MAKEORIGWRKD=
UDIFNAME=xen-$(echo $RELTAG | sed 's/\.[^
zcat $STARTDIR/$UDIFNAME | patch -p1
chmod 755 debian/
debian/
cd $WRKD/ ; ! $DEVEL && rm -rf $MAKEORIGWRKD
# Unpack sources zfs-24. patch1; ctrl_func. patch-xen- testing- 4.x.patch1;
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-
patch -p1 -s -i $WRKD/blktap2_
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}