mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-03-04 16:01:24 +00:00
merge with trunk
This commit is contained in:
commit
177f6754c4
21
BuildLiveCD
21
BuildLiveCD
@ -27,7 +27,7 @@ fi
|
||||
ARCH=$(dpkg --print-installation-architecture)
|
||||
SUBARCH=""
|
||||
SUBARCHARG=""
|
||||
DEFAULTSUITE="gutsy"
|
||||
DEFAULTSUITE="intrepid"
|
||||
NEWSUITE=""
|
||||
SUITES=""
|
||||
PROPOSED=""
|
||||
@ -54,6 +54,23 @@ done
|
||||
if [ -z "$SUITES" ]; then
|
||||
echo "No valid suites to build for" >&2 && exit 1
|
||||
fi
|
||||
for s in $SUITES; do
|
||||
case $s in
|
||||
dapper|edgy|feisty|gutsy|hardy)
|
||||
ARCHARG=""
|
||||
old_suite="yes"
|
||||
;;
|
||||
*)
|
||||
ARCHARG="-a$ARCH"
|
||||
new_suite="yes"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ "$new_suite" = "yes" ] && [ "$old_suite" = "yes" ]; then
|
||||
echo "Can't build images for suites older than intrepid and suites" >&2
|
||||
echo "greater than hardy at the same time, please use two invocations" >&2
|
||||
exit 1
|
||||
fi
|
||||
if (( $# == 0 )) || [ "X$1" = "Xall" ]; then
|
||||
set -- ubuntu kubuntu kubuntu-kde4 edubuntu xubuntu mythbuntu base
|
||||
if [ "$ARCH" = "i386" ]; then
|
||||
@ -111,7 +128,7 @@ for STE in $SUITES; do
|
||||
rm -f ${PUBDIR}latest
|
||||
ln -sf ${PUBDIR}${NOW} ${PUBDIR}latest
|
||||
mkdir -p ${PUBDIR}${NOW}
|
||||
if $LINUX32 sudo chroot ${DIR%/./*} sh -c "cd /${DIR#*/./} && /usr/sbin/livecd.sh ${SUBARCHARG} ${PROPOSED} -d${STE} $arg" > ${LOG} 2>&1; then
|
||||
if $LINUX32 sudo chroot ${DIR%/./*} sh -c "cd /${DIR#*/./} && /usr/sbin/livecd.sh ${SUBARCHARG} ${PROPOSED} -d${STE} ${ARCHARG} $arg" > ${LOG} 2>&1; then
|
||||
rm -f ${PUBDIR}current
|
||||
ln -sf ${NOW} ${PUBDIR}current
|
||||
|
||||
|
76
debian/changelog
vendored
76
debian/changelog
vendored
@ -1,9 +1,82 @@
|
||||
livecd-rootfs (0.56) UNRELEASED; urgency=low
|
||||
livecd-rootfs (0.63) UNRELEASED; urgency=low
|
||||
|
||||
* Add Mythbuntu support.
|
||||
|
||||
-- Mario Limonciello <superm1@ubuntu.com> Wed, 31 Oct 2007 10:26:25 -0400
|
||||
|
||||
livecd-rootfs (0.62) intrepid; urgency=low
|
||||
|
||||
* Use 'set -eu' rather than putting -eu on the #! line, so that running
|
||||
'sh -x /usr/sbin/livecd.sh' for testing doesn't invoke different
|
||||
error-handling behaviour.
|
||||
* Remove the kernel from the livefs; ubiquity >= 1.9.4 will copy it from
|
||||
the CD root if it needs to (LP: #80385).
|
||||
|
||||
-- Colin Watson <cjwatson@ubuntu.com> Fri, 18 Jul 2008 20:01:15 +0100
|
||||
|
||||
livecd-rootfs (0.61) intrepid; urgency=low
|
||||
|
||||
* Use apt pinning to force use of the version of ssl-cert from the hardy
|
||||
release pocket, not the one from -updates, so we avoid pulling in the
|
||||
very large openssl-blacklist package that we don't need on live CDs
|
||||
|
||||
-- Steve Langasek <steve.langasek@ubuntu.com> Fri, 20 Jun 2008 13:53:17 -0700
|
||||
|
||||
livecd-rootfs (0.60) intrepid; urgency=low
|
||||
|
||||
* Employ hideous hack to ensure that when we're building against
|
||||
updates/proposed, we only get one version of kernel headers.
|
||||
* Move the cleanup() call to the end of the script, so we still
|
||||
have proc mounted for coreutils when update-initramfs is run.
|
||||
* Mount dev/pts immediately after debootstrap, as dpkg has begun
|
||||
whining pretty loudly (and occasionally exiting) if it's gone.
|
||||
|
||||
-- Adam Conrad <adconrad@ubuntu.com> Tue, 10 Jun 2008 17:20:10 -0600
|
||||
|
||||
livecd-rootfs (0.59) intrepid; urgency=low
|
||||
|
||||
[ Colin Watson ]
|
||||
* Remove /boot/initrd.img-*.bak (LP: #64887).
|
||||
|
||||
[ Adam Conrad ]
|
||||
* Resurrect the proposed option for livecd.sh/BuildLiveCD, so
|
||||
we can build test images that include packages from proposed.
|
||||
* Build with updates and security by default, which is a no-op
|
||||
on development releases (where these suites are empty), but
|
||||
a necessity for point-release image building.
|
||||
* Copy bin/true from the chroot, not from the real root, so
|
||||
image builds for i386/lpia work on amd64, as intended.
|
||||
|
||||
-- Adam Conrad <adconrad@ubuntu.com> Tue, 10 Jun 2008 13:23:18 -0600
|
||||
|
||||
livecd-rootfs (0.58) intrepid; urgency=low
|
||||
|
||||
* Fix up BuildLiveCD to only pass -a$ARCH when building for intrepid,
|
||||
and to disallow multi-suite builds (does anyone use it for this) of
|
||||
suites >= intrepid and <= hardy in the same invocation.
|
||||
|
||||
-- Adam Conrad <adconrad@ubuntu.com> Fri, 02 May 2008 15:44:17 -0600
|
||||
|
||||
livecd-rootfs (0.57) intrepid; urgency=low
|
||||
|
||||
* Allow the user to specify the ARCH on the livecd.sh command line,
|
||||
overriding the use of the dpkg architecture for the livecd run.
|
||||
* Differentiate between ARCH (the local architecture) and TARGETARCH,
|
||||
so that builds of ubuntu-lpia continue to work on the i386 buildd.
|
||||
* Pass ARCH by default from BuildLiveCD to livecd.sh; this should be
|
||||
manually overridden on cross-arch buildds, instead of using dpkg.
|
||||
* Update default suite in BuildLiveCD to intrepid, gutsy's a bit old.
|
||||
|
||||
-- Adam Conrad <adconrad@ubuntu.com> Fri, 02 May 2008 15:10:32 -0600
|
||||
|
||||
livecd-rootfs (0.56) hardy; urgency=low
|
||||
|
||||
* Explicitly install language-support-en first for kubuntu-kde4
|
||||
live, should stop apt wanting to install firefox for no good
|
||||
reason.
|
||||
|
||||
-- Jonathan Riddell <jriddell@ubuntu.com> Thu, 13 Mar 2008 14:32:14 +0000
|
||||
|
||||
livecd-rootfs (0.55) hardy; urgency=low
|
||||
|
||||
* All powerpc builds (including ps3) use the powerpc/powerpc64-smp kernels
|
||||
@ -89,7 +162,6 @@ livecd-rootfs (0.44) hardy; urgency=low
|
||||
|
||||
-- Sarah Hobbs <hobbsee@ubuntu.com> Fri, 30 Nov 2007 14:52:29 +1100
|
||||
|
||||
>>>>>>> MERGE-SOURCE
|
||||
livecd-rootfs (0.43) hardy; urgency=low
|
||||
|
||||
* Add Gobuntu support.
|
||||
|
126
livecd.sh
126
livecd.sh
@ -1,4 +1,5 @@
|
||||
#!/bin/bash -eu
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
##########################################################################
|
||||
#### (c) Copyright 2004-2007 Canonical Ltd. #####
|
||||
@ -70,29 +71,27 @@ OPTMIRROR=
|
||||
|
||||
select_mirror () {
|
||||
case $ARCH in
|
||||
i386|amd64|sparc)
|
||||
i386|amd64)
|
||||
case $FS in
|
||||
ubuntu-lpia)
|
||||
USERMIRROR=http://ports.ubuntu.com/ubuntu-ports
|
||||
SECMIRROR=${USERMIRROR}
|
||||
SECSRCMIRROR=${SRCMIRROR}
|
||||
TARGETARCH=lpia
|
||||
;;
|
||||
*)
|
||||
USERMIRROR=http://archive.ubuntu.com/ubuntu
|
||||
SECMIRROR=http://security.ubuntu.com/ubuntu
|
||||
SECSRCMIRROR=${SECMIRROR}
|
||||
TARGETARCH=${ARCH}
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
hppa)
|
||||
USERMIRROR=http://ports.ubuntu.com/ubuntu-ports
|
||||
SECMIRROR=${USERMIRROR}
|
||||
SECSRCMIRROR=${SRCMIRROR}
|
||||
;;
|
||||
*)
|
||||
USERMIRROR=http://ports.ubuntu.com/ubuntu-ports
|
||||
SECMIRROR=${USERMIRROR}
|
||||
SECSRCMIRROR=${SRCMIRROR}
|
||||
TARGETARCH=${ARCH}
|
||||
;;
|
||||
esac
|
||||
case $(hostname --fqdn) in
|
||||
@ -114,15 +113,18 @@ STE=gutsy
|
||||
EXCLUDE=""
|
||||
LIST=""
|
||||
SUBARCH=""
|
||||
PROPOSED=""
|
||||
|
||||
while getopts :d:e:i:I:mS::s: name; do case $name in
|
||||
while getopts :d:e:i:I:m:S:s:a:p name; do case $name in
|
||||
d) STE=$OPTARG;;
|
||||
e) EXCLUDE="$EXCLUDE $OPTARG";;
|
||||
i) LIST="$LIST $OPTARG";;
|
||||
I) UINUM=$(sanitize int "$OPTARG");;
|
||||
m) OPTMIRROR=$(sanitize url "$OPTARG");;
|
||||
S) USZ=$(sanitize int "$OPTARG");;
|
||||
I) UINUM="$OPTARG";;
|
||||
m) OPTMIRROR="$OPTARG";;
|
||||
S) USZ="$OPTARG";;
|
||||
s) SUBARCH="$OPTARG";;
|
||||
a) ARCH="$OPTARG";;
|
||||
p) PROPOSED="yes";;
|
||||
\?) echo bad usage >&2; exit 2;;
|
||||
\:) echo missing argument >&2; exit 2;;
|
||||
esac; done;
|
||||
@ -131,7 +133,7 @@ shift $((OPTIND-1))
|
||||
if (( $# == 0 )) || [ "X$1" = "Xall" ]; then
|
||||
set -- ubuntu kubuntu kubuntu-kde4 edubuntu xubuntu mythbuntu gobuntu base
|
||||
if [ "$ARCH" = "i386" ]; then
|
||||
set -- ubuntu ubuntu-dvd ubuntu-lpia kubuntu kubuntu-dvd kubuntu-kde4 edubuntu edubuntu-dvd mythbuntu xubuntu gobuntu base
|
||||
set -- ubuntu ubuntu-dvd kubuntu kubuntu-dvd kubuntu-kde4 edubuntu edubuntu-dvd mythbuntu xubuntu gobuntu base
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -179,7 +181,7 @@ Flags: seen
|
||||
;;
|
||||
kubuntu-kde4)
|
||||
LIST="$LIST minimal^ standard^ kubuntu-kde4-desktop^"
|
||||
LIVELIST="kubuntu-kde4-live^ xresprobe laptop-detect casper lupin-casper"
|
||||
LIVELIST="language-support-en kubuntu-kde4-live^ xresprobe laptop-detect casper lupin-casper"
|
||||
COMP="main restricted universe multiverse"
|
||||
;;
|
||||
edubuntu|edubuntu-dvd)
|
||||
@ -187,8 +189,9 @@ Flags: seen
|
||||
LIVELIST="edubuntu-live^ xresprobe laptop-detect casper lupin-casper"
|
||||
;;
|
||||
xubuntu)
|
||||
LIST="$LIST minimal^ standard^ xterm libgoffice-gtk-0-4 xubuntu-desktop^"
|
||||
LIST="$LIST minimal^ standard^ xterm libgoffice-gtk-0-6 xubuntu-desktop^"
|
||||
LIVELIST="xubuntu-live^ xresprobe laptop-detect casper lupin-casper"
|
||||
COMP="main restricted universe multiverse"
|
||||
;;
|
||||
gobuntu)
|
||||
LIST="$LIST minimal^ standard^ gobuntu-desktop^"
|
||||
@ -235,18 +238,18 @@ Flags: seen
|
||||
esac
|
||||
|
||||
dpkg -l livecd-rootfs || true # get our version # in the log.
|
||||
if [ "$FS" != "ubuntu-lpia" ]; then
|
||||
debootstrap --components=$(echo $COMP | sed 's/ /,/g') $STE $ROOT $MIRROR
|
||||
else
|
||||
debootstrap --components=$(echo $COMP | sed 's/ /,/g') --arch lpia $STE $ROOT $MIRROR
|
||||
fi
|
||||
debootstrap --components=$(echo $COMP | sed 's/ /,/g') --arch $TARGETARCH $STE $ROOT $MIRROR
|
||||
|
||||
# Recent dpkg has started complaining pretty loudly if dev/pts isn't
|
||||
# mounted, so let's get it mounted immediately after debootstrap:
|
||||
mount -t devpts devpts-${STE}-${FSS}-livefs ${ROOT}dev/pts
|
||||
|
||||
# Just make a few things go away, which lets us skip a few other things.
|
||||
DIVERTS="usr/sbin/mkinitrd usr/sbin/invoke-rc.d"
|
||||
for file in $DIVERTS; do
|
||||
mkdir -p ${ROOT}${file%/*}
|
||||
chroot $ROOT dpkg-divert --add --local --divert /${file}.livecd --rename /${file}
|
||||
cp /bin/true ${ROOT}$file
|
||||
cp ${ROOT}/bin/true ${ROOT}$file
|
||||
done
|
||||
|
||||
# /bin/true won't cut it for mkinitrd, need to have -o support.
|
||||
@ -261,8 +264,8 @@ for i in range(len(sys.argv)):
|
||||
|
||||
trap "cleanup" 0 1 2 3 15
|
||||
|
||||
case $ARCH in
|
||||
alpha|amd64|i386|ia64|m68k|mips|mipsel)
|
||||
case $TARGETARCH in
|
||||
alpha|amd64|i386|ia64|lpia|m68k|mips|mipsel)
|
||||
link_in_boot=no
|
||||
;;
|
||||
*)
|
||||
@ -283,7 +286,7 @@ link_in_boot = $link_in_boot
|
||||
mkdir -p ${ROOT}proc
|
||||
mount -tproc none ${ROOT}proc
|
||||
|
||||
case $ARCH+$SUBARCH in
|
||||
case $TARGETARCH+$SUBARCH in
|
||||
powerpc+ps3)
|
||||
mkdir -p ${ROOT}spu;;
|
||||
esac
|
||||
@ -293,15 +296,12 @@ link_in_boot = $link_in_boot
|
||||
cp ${ROOT}etc/apt/trusted.gpg ${ROOT}etc/apt/trusted.gpg.$$
|
||||
cat /etc/apt/trusted.gpg >> ${ROOT}etc/apt/trusted.gpg
|
||||
|
||||
case $ARCH in
|
||||
case $TARGETARCH in
|
||||
amd64) LIST="$LIST linux-generic";;
|
||||
i386)
|
||||
case $FS in
|
||||
ubuntu-lpia) LIST="$LIST linux-lpia";;
|
||||
*) LIST="$LIST linux-generic";;
|
||||
esac;;
|
||||
i386) LIST="$LIST linux-generic";;
|
||||
|
||||
# and the bastard stepchildren
|
||||
lpia) LIST="$LIST linux-lpia";;
|
||||
ia64) LIST="$LIST linux-itanium linux-mckinley";;
|
||||
hppa) LIST="$LIST linux-hppa32 linux-hppa64";;
|
||||
powerpc) LIST="$LIST linux-powerpc linux-powerpc64-smp";;
|
||||
@ -313,10 +313,46 @@ link_in_boot = $link_in_boot
|
||||
LIST="$(without_package "$x" "$LIST")"
|
||||
done
|
||||
|
||||
if [ "$STE" = "hardy" ]; then
|
||||
# <hack, hack, hack> use the version of ssl-cert from the release
|
||||
# pocket, because the version in -updates pulls in the large
|
||||
# openssl-blacklist package which we should never need on the
|
||||
# live CD
|
||||
cat << @@EOF > ${ROOT}etc/apt/preferences
|
||||
Package: ssl-cert
|
||||
Pin: version 1.0.14-0ubuntu2
|
||||
Pin-Priority: 900
|
||||
@@EOF
|
||||
fi
|
||||
|
||||
# Create a good sources.list, and finish the install
|
||||
echo deb $MIRROR $STE ${COMP} > ${ROOT}etc/apt/sources.list
|
||||
echo deb $MIRROR ${STE}-security ${COMP} >> ${ROOT}etc/apt/sources.list
|
||||
echo deb $MIRROR ${STE}-updates ${COMP} >> ${ROOT}etc/apt/sources.list
|
||||
if [ "$PROPOSED" = "yes" ]; then
|
||||
echo deb $MIRROR ${STE}-proposed ${COMP} >> ${ROOT}etc/apt/sources.list
|
||||
fi
|
||||
chroot $ROOT apt-get update
|
||||
chroot $ROOT apt-get -y --purge dist-upgrade </dev/null
|
||||
chroot $ROOT apt-get -y install $LIST </dev/null
|
||||
|
||||
# launchpad likes to put dependencies of seeded packages in tasks along with the
|
||||
# actual seeded packages. In general, this isn't an issue. With updated kernels
|
||||
# and point-releases, though, we end up with extra header packages:
|
||||
chroot ${ROOT} dpkg -l linux-headers-2\* | grep ^i | awk '{print $2}' \
|
||||
> livecd.${FSS}.manifest-headers
|
||||
chroot ${ROOT} dpkg -l linux-headers-\* | grep ^i | awk '{print $2}' \
|
||||
> livecd.${FSS}.manifest-headers-full
|
||||
HEADERPACKAGES=`cat livecd.${FSS}.manifest-headers-full`
|
||||
HEADERMETA=""
|
||||
for i in `comm -3 livecd.${FSS}.manifest-headers livecd.${FSS}.manifest-headers-full`; do
|
||||
HEADERMETA="$HEADERMETA $i"
|
||||
done
|
||||
rm -f livecd.${FSS}.manifest-headers livecd.${FSS}.manifest-headers-full
|
||||
chroot ${ROOT} apt-get -y --purge remove $HEADERPACKAGES </dev/null || true
|
||||
chroot ${ROOT} apt-get -y install $HEADERMETA </dev/null || true
|
||||
# End horrible linux-header launchpad workaround. Hopefully this is temporary.
|
||||
|
||||
chroot ${ROOT} dpkg-query -W --showformat='${Package} ${Version}\n' \
|
||||
> livecd.${FSS}.manifest-desktop
|
||||
chroot $ROOT apt-get -y install $LIVELIST </dev/null
|
||||
@ -345,12 +381,22 @@ link_in_boot = $link_in_boot
|
||||
chroot $ROOT dpkg-divert --remove --rename /${file}
|
||||
done
|
||||
|
||||
# remove the apt preferences hack if it was added
|
||||
rm -f ${ROOT}etc/apt/preferences
|
||||
|
||||
# And make this look more pristine
|
||||
cleanup
|
||||
cat << @@EOF > ${ROOT}etc/apt/sources.list
|
||||
deb ${USERMIRROR} $STE ${COMP}
|
||||
deb-src ${SRCMIRROR} $STE ${COMP}
|
||||
|
||||
deb ${SECMIRROR} ${STE}-security ${COMP}
|
||||
deb-src ${SECSRCMIRROR} ${STE}-security ${COMP}
|
||||
|
||||
## Major bug fix updates produced after the final release of the
|
||||
## distribution.
|
||||
deb ${USERMIRROR} ${STE}-updates ${COMP}
|
||||
deb-src ${USERMIRROR} ${STE}-updates ${COMP}
|
||||
|
||||
## Uncomment the following two lines to add software from the 'universe'
|
||||
## repository.
|
||||
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
|
||||
@ -360,9 +406,10 @@ deb-src ${SRCMIRROR} $STE ${COMP}
|
||||
## team.
|
||||
# deb ${USERMIRROR} $STE universe
|
||||
# deb-src ${SRCMIRROR} $STE universe
|
||||
|
||||
deb ${SECMIRROR} ${STE}-security ${COMP}
|
||||
deb-src ${SECSRCMIRROR} ${STE}-security ${COMP}
|
||||
# deb ${USERMIRROR} ${STE}-updates universe
|
||||
# deb-src ${USERMIRROR} ${STE}-updates universe
|
||||
# deb ${USERMIRROR} ${STE}-security universe
|
||||
# deb-src ${USERMIRROR} ${STE}-security universe
|
||||
@@EOF
|
||||
mv ${ROOT}etc/apt/trusted.gpg.$$ ${ROOT}etc/apt/trusted.gpg
|
||||
|
||||
@ -388,7 +435,10 @@ deb-src ${SECSRCMIRROR} ${STE}-security ${COMP}
|
||||
chroot ${ROOT} update-initramfs -k "${KVER}" -u
|
||||
# we mv the initramfs, so it's not wasting space on the livefs
|
||||
mv ${ROOT}/boot/initrd.img-"${KVER}" livecd.${FSS}.initrd-"${SUBARCH}"
|
||||
cp ${ROOT}/boot/vmlinu?-"${KVER}" livecd.${FSS}.kernel-"${SUBARCH}"
|
||||
rm -f ${ROOT}/boot/initrd.img-"${KVER}".bak
|
||||
# ubiquity >= 1.9.4 copies the kernel from the CD root if it doesn't
|
||||
# find one on the livefs, allowing us to save space
|
||||
mv ${ROOT}/boot/vmlinu?-"${KVER}" livecd.${FSS}.kernel-"${SUBARCH}"
|
||||
done
|
||||
NUMKVERS="$(set -- $KVERS; echo $#)"
|
||||
if [ "$NUMKVERS" = 1 ]; then
|
||||
@ -397,7 +447,7 @@ deb-src ${SECSRCMIRROR} ${STE}-security ${COMP}
|
||||
ln -s livecd.${FSS}.initrd-"${SUBARCH}" livecd.${FSS}.initrd
|
||||
ln -s livecd.${FSS}.kernel-"${SUBARCH}" livecd.${FSS}.kernel
|
||||
fi
|
||||
case $ARCH+$SUBARCH in
|
||||
case $TARGETARCH+$SUBARCH in
|
||||
powerpc+ps3)
|
||||
chroot ${ROOT} addgroup --system spu;;
|
||||
esac
|
||||
@ -430,9 +480,13 @@ deb-src ${SECSRCMIRROR} ${STE}-security ${COMP}
|
||||
perl -i -nle 'print unless /^Package: language-(pack|support)/ .. /^$/;' \
|
||||
${ROOT}/var/lib/apt/extended_states
|
||||
|
||||
# And run the cleanup function dead last, to umount /proc after nothing
|
||||
# else needs to be run in the chroot (umounting it earlier breaks rm):
|
||||
cleanup
|
||||
|
||||
livefs_squash()
|
||||
{
|
||||
squashsort="http://people.ubuntu.com/~tfheen/livesort/${FSS}.list.${ARCH}"
|
||||
squashsort="http://people.ubuntu.com/~tfheen/livesort/${FSS}.list.${TARGETARCH}"
|
||||
if wget -O livecd.${FSS}.sort ${squashsort} > /dev/null 2>&1; then
|
||||
echo "Using the squashfs sort list from ${squashsort}."
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user