From 3b670a7ed6222df65502410075995b092a591112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= Date: Sun, 4 Oct 2009 13:53:40 +0200 Subject: [PATCH] Import patches-unapplied version 0.99 to ubuntu/karmic Imported using git-ubuntu import. Changelog parent: 94f3c2d41cb43b6c9b420cec8f95235ef3081878 New changelog entries: * Revert 0.98 change; it's actually much more wide-ranging than I thought as it would cause each livefs build on a subarch to rotate the timestamped dir and hence would mask the previous builds; and even if that would be fixed, arch-indepedent filenames such as manifest/kernel/initrd/etc. symlinks would clash. * Rename EXTRASOURCE to PPA and also define PPAMIRROR near top, set to ppa.launchpad.net. Changing to PPA avoids listing non-main components in deb lines and having an useful comment in sources.list. * Create an etc/apt/preferences file Pin-ing the PPA at 550 when there's one. * Gross hack to reinstall the moblin-ppa-keyring package after the trusted db is put back in place since otherwise we miss the GPG key we wanted. * Fix computation of Origin fields for PPAs named "ppa" and document the exception along with the expected format for the PPA var in comments. LP: #434243 * Move the code taking a backup of the APT trusted keyring to just after sources.list generation (this is safe since there's no apt call inbetween) and move the installation of the moblin-archive-keyring just before the backup is taken; this allows dropping the hack of reinstalling the keyring package at the end of the build. It might break apt-get update for UMR before the host keys are appended to the trusted keyring though. * Remove ${ROOT}var/cache/apt/{,src}pkgcache.bin after installing the moblin keyring package, workaround for LP #442082. * Run apt-get update one more time after installing the moblin keyring package, to promote Release.gpg from APT's lists/partial/ to lists/. Ideally APT would do that for us on apt-key updates. * Also change computation of Origin field for PPAs when generating the final APT config; ideally we wouldn't have to duplicate this code though; perhaps the removal of APT preferences file can be limited to hardy too. Also add an Explanation: header in the final preferences. * Put livecd logs into project/ not project-subarch/. --- debian/changelog | 41 ++++++++++++++++++++++++++++++++ livecd.sh | 62 ++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 91 insertions(+), 12 deletions(-) diff --git a/debian/changelog b/debian/changelog index e90a605f..34e48db1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,44 @@ +livecd-rootfs (0.99) karmic; urgency=low + + * Revert 0.98 change; it's actually much more wide-ranging than I thought as + it would cause each livefs build on a subarch to rotate the timestamped + dir and hence would mask the previous builds; and even if that would be + fixed, arch-indepedent filenames such as manifest/kernel/initrd/etc. + symlinks would clash. + * Rename EXTRASOURCE to PPA and also define PPAMIRROR near top, set to + ppa.launchpad.net. Changing to PPA avoids listing non-main components in + deb lines and having an useful comment in sources.list. + * Create an etc/apt/preferences file Pin-ing the PPA at 550 when there's + one. + * Gross hack to reinstall the moblin-ppa-keyring package after the trusted + db is put back in place since otherwise we miss the GPG key we wanted. + * Fix computation of Origin fields for PPAs named "ppa" and document the + exception along with the expected format for the PPA var in comments. + LP: #434243 + * Move the code taking a backup of the APT trusted keyring to just after + sources.list generation (this is safe since there's no apt call inbetween) + and move the installation of the moblin-archive-keyring just before the + backup is taken; this allows dropping the hack of reinstalling the keyring + package at the end of the build. It might break apt-get update for UMR + before the host keys are appended to the trusted keyring though. + * Remove ${ROOT}var/cache/apt/{,src}pkgcache.bin after installing the moblin + keyring package, workaround for LP #442082. + * Run apt-get update one more time after installing the moblin keyring + package, to promote Release.gpg from APT's lists/partial/ to lists/. + Ideally APT would do that for us on apt-key updates. + * Also change computation of Origin field for PPAs when generating the final + APT config; ideally we wouldn't have to duplicate this code though; + perhaps the removal of APT preferences file can be limited to hardy too. + Also add an Explanation: header in the final preferences. + + -- Loïc Minier Sun, 04 Oct 2009 13:53:40 +0200 + +livecd-rootfs (0.98) karmic; urgency=low + + * Put livecd logs into project/ not project-subarch/. + + -- Loïc Minier Wed, 23 Sep 2009 09:46:43 +0200 + livecd-rootfs (0.97) karmic; urgency=low [ Colin Watson ] diff --git a/livecd.sh b/livecd.sh index 70cf6f7e..340efa2d 100755 --- a/livecd.sh +++ b/livecd.sh @@ -68,6 +68,7 @@ export DEBIAN_FRONTEND=noninteractive export LANG=C export CASPER_GENERATE_UUID=1 SRCMIRROR=http://archive.ubuntu.com/ubuntu +PPAMIRROR=ppa.launchpad.net ARCH=$(dpkg --print-architecture) OPTMIRROR= INITRD_COMPRESSOR=lzma @@ -117,7 +118,9 @@ EXCLUDE="" LIST="" SUBARCH="" PROPOSED="" -EXTRASOURCE="" +# must be in the "team / PPA name" form; e.g. "moblin/ppa"; the default PPA +# name is "ppa", don't omit it +PPA="" while getopts :d:e:i:I:m:S:s:a:p name; do case $name in d) STE=$OPTARG;; @@ -221,7 +224,7 @@ Flags: seen LIST="$LIST minimal^ ubuntu-moblin-remix" LIVELIST="ubuntu-moblin-live" COMP="main restricted universe" - EXTRASOURCE="http://ppa.launchpad.net/moblin/ppa/ubuntu/" + PPA="moblin/ppa" ;; base) LIST="$LIST minimal^ standard^" @@ -317,11 +320,6 @@ link_in_boot = $link_in_boot mkdir -p ${ROOT}spu;; esac - # In addition to the ones we got from apt, trust whatever the local system - # believes in, but put things back afterwards. - cp ${ROOT}etc/apt/trusted.gpg ${ROOT}etc/apt/trusted.gpg.$$ - cat /etc/apt/trusted.gpg >> ${ROOT}etc/apt/trusted.gpg - case $TARGETARCH in amd64) LIST="$LIST linux-generic";; i386) LIST="$LIST linux-generic";; @@ -379,14 +377,36 @@ Pin-Priority: 900 if [ "$PROPOSED" = "yes" ]; then echo deb $MIRROR ${STE}-proposed ${COMP} >> ${ROOT}etc/apt/sources.list fi - if [ -n "$EXTRASOURCE" ]; then - echo deb $EXTRASOURCE $STE ${COMP} >> ${ROOT}etc/apt/sources.list + if [ -n "$PPA" ]; then + echo deb http://$PPAMIRROR/$PPA/ubuntu ${STE} main >> ${ROOT}etc/apt/sources.list + + # handle PPAs named "ppa" specially; their Origin field in the Release + # file does not end with "-ppa" for backwards compatibility + origin="${PPA%/ppa}" + origin="${origin/\//-}" + touch ${ROOT}etc/apt/preferences + cat << @@EOF >> ${ROOT}etc/apt/preferences +Package: * +Pin: release o=LP-PPA-$origin +Pin-Priority: 550 +@@EOF fi - chroot $ROOT apt-get update + if [ "$FS" = "ubuntu-moblin-remix" ]; then + chroot $ROOT apt-get update chroot $ROOT apt-get -y --force-yes install ubuntu-moblin-ppa-keyring + # promote Release.gpg from APT's lists/partial/ to lists/ chroot $ROOT apt-get update + # workaround LP #442082 + rm -f ${ROOT}var/cache/apt/{,src}pkgcache.bin fi + + # In addition to the ones we got from apt, trust whatever the local system + # believes in, but put things back afterwards. + cp ${ROOT}etc/apt/trusted.gpg ${ROOT}etc/apt/trusted.gpg.$$ + cat /etc/apt/trusted.gpg >> ${ROOT}etc/apt/trusted.gpg + + chroot $ROOT apt-get update chroot $ROOT apt-get -y --purge dist-upgrade > ${ROOT}etc/apt/sources.list + if [ -n "$PPA" ]; then + cat << @@EOF >> ${ROOT}etc/apt/sources.list + +## The following unsupported and untrusted Personal Archives (PPAs) were used +## to create the base image of this system +deb http://$PPAMIRROR/$PPA/ubuntu ${STE} main +deb-src http://$PPAMIRROR/$PPA/ubuntu ${STE} main +@@EOF + + # handle PPAs named "ppa" specially; their Origin field in the Release + # file does not end with "-ppa" for backwards compatibility + origin="${PPA%/ppa}" + origin="${origin/\//-}" + touch ${ROOT}etc/apt/preferences + cat << @@EOF >> ${ROOT}etc/apt/preferences +Explanation: This prefers the Personal Archive $PPA over the other sources +Package: * +Pin: release o=LP-PPA-$origin +Pin-Priority: 550 +@@EOF fi mv ${ROOT}etc/apt/trusted.gpg.$$ ${ROOT}etc/apt/trusted.gpg