mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-08-21 13:44:08 +00:00
Compare commits
17 Commits
ubuntu/mas
...
2.435.4
Author | SHA1 | Date | |
---|---|---|---|
|
f9f09d2c20 | ||
|
69d1ed2f78 | ||
|
c1b8828c99 | ||
|
8af2c58d98 | ||
|
7fd6f602fb | ||
|
61302098e4 | ||
|
20d7483fe0 | ||
|
af894a7f89 | ||
|
d8adccd284 | ||
|
da2d7fd268 | ||
|
6fe8773c74 | ||
|
cc04805c04 | ||
|
4d2e4846d3 | ||
|
dbab0a7464 | ||
|
fa985b74ef | ||
|
0f3066035d | ||
|
d271e408ca |
39
debian/changelog
vendored
39
debian/changelog
vendored
@ -1,3 +1,42 @@
|
||||
livecd-rootfs (2.435.4) yakkety; urgency=medium
|
||||
|
||||
[ Balint Reczey ]
|
||||
* Source ubuntu-cpc functions from the right place
|
||||
* Use all config hooks from the proper place, not from /build/
|
||||
* Add basic but configurable autopkgtest (LP: #1690440)
|
||||
* sync before calling kpartx to let writing to loop devices finish
|
||||
* wrap kpartx and trap spurious errors, to work around kpartx
|
||||
unreliability.
|
||||
|
||||
-- Steve Langasek <steve.langasek@ubuntu.com> Tue, 06 Jun 2017 22:11:04 -0700
|
||||
|
||||
livecd-rootfs (2.435.3) yakkety; urgency=medium
|
||||
|
||||
* live-build/ubuntu-cpc/hooks/999-extras.binary: Exit on first failure.
|
||||
(LP: #1687752)
|
||||
|
||||
-- Robert C Jennings <robert.jennings@canonical.com> Tue, 09 May 2017 13:49:48 -0700
|
||||
|
||||
livecd-rootfs (2.435.2) yakkety; urgency=medium
|
||||
|
||||
[ Chris Glass ]
|
||||
* Fix the manifest generation in OVA files so that ovf files don't have
|
||||
double extensions. (LP: #1627931)
|
||||
* Fix the OVF's metadata to include Ubuntu specific identifiers and
|
||||
descriptions instead of the generic Linux ones. (LP: #1656293)
|
||||
[ Daniel Watkins ]
|
||||
* Add replace_grub_root_with_label function thereby consolidating multiple
|
||||
uses of the same calls to sed.
|
||||
|
||||
-- Robert C Jennings <robert.jennings@ubuntu.com> Fri, 17 Mar 2017 13:46:47 -0500
|
||||
|
||||
livecd-rootfs (2.435.1) yakkety; urgency=medium
|
||||
|
||||
[ Robert C Jennings ]
|
||||
* ubuntu-cpc: Remove redundant copy of grub files. (LP: #1637290)
|
||||
|
||||
-- Mathieu Trudel-Lapierre <cyphermox@ubuntu.com> Thu, 17 Nov 2016 16:13:28 -0500
|
||||
|
||||
livecd-rootfs (2.435) yakkety; urgency=medium
|
||||
|
||||
* Update the ubuntu-touch hints to try installing ubuntu-system-settings
|
||||
|
3
debian/tests/control
vendored
Normal file
3
debian/tests/control
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Tests: default-bootstraps
|
||||
Depends: @, lsb-release
|
||||
Restrictions: needs-root isolation-machine
|
97
debian/tests/default-bootstraps
vendored
Executable file
97
debian/tests/default-bootstraps
vendored
Executable file
@ -0,0 +1,97 @@
|
||||
#!/bin/sh
|
||||
# autopkgtest check: Build default rootfs for all supported project:subproject pairs
|
||||
# (C) 2017 Canonical Ltd.
|
||||
# Author: Balint Reczey <balint.reczey@canonical.com>
|
||||
|
||||
set -e
|
||||
|
||||
if [ -z "$SUITE"]; then
|
||||
SUITE=$(lsb_release -c -s)
|
||||
fi
|
||||
|
||||
# Known project:subproject:template combinations.
|
||||
# Listed subprojects can be combined with other projects as well,
|
||||
# but this list gives reasonable coverage.
|
||||
ALL_TRIPLETS="
|
||||
base::
|
||||
edubuntu::
|
||||
edubuntu-dvd::
|
||||
kubuntu::
|
||||
kubuntu-active::
|
||||
kubuntu-dvd::
|
||||
kubuntu-plasma5::
|
||||
lubuntu::
|
||||
lubuntu-next::
|
||||
mythbuntu::
|
||||
ubuntu::
|
||||
ubuntu-base::
|
||||
ubuntu-budgie::
|
||||
ubuntu-budgie-desktop::
|
||||
ubuntu-budgie-live::
|
||||
ubuntu-core:system-image:ubuntu-core
|
||||
ubuntu-cpc::ubuntu-cpc
|
||||
ubuntu-desktop-next:system-image:ubuntu-desktop-next
|
||||
ubuntu-desktop-next::ubuntu-desktop-next
|
||||
ubuntu-dvd::
|
||||
ubuntu-gnome::
|
||||
ubuntukylin::
|
||||
ubuntu-mate::
|
||||
ubuntu-mate-core::
|
||||
ubuntu-mate-desktop::
|
||||
ubuntu-mate-live::
|
||||
ubuntu-netbook::
|
||||
ubuntu-server::
|
||||
ubuntu-server:ubuntu-rtm:
|
||||
ubuntu-server:ubuntu-rtm/foo:
|
||||
ubuntu-server:wubi:
|
||||
ubuntu-touch-custom::ubuntu-touch-custom
|
||||
ubuntu-touch::ubuntu-touch
|
||||
xubuntu::"
|
||||
|
||||
if [ -z "$SELECTED_TRIPLETS" ]; then
|
||||
SELECTED_TRIPLETS="
|
||||
ubuntu-base::
|
||||
ubuntu-cpc::ubuntu-cpc
|
||||
"
|
||||
fi
|
||||
|
||||
live_build_rootfs() {
|
||||
PROJECT=${1%%:*}
|
||||
local SUBPROJECT_TMP=${1%:*}
|
||||
SUBPROJECT=${SUBPROJECT_TMP#*:}
|
||||
TEMPLATE=${1##*:}
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
echo "Building rootfs for project: '$PROJECT' subproject: '$SUBPROJECT' template: '$TEMPLATE' in $PWD"
|
||||
cp -a /usr/share/livecd-rootfs/live-build/auto .
|
||||
if [ -n "$TEMPLATE" ]; then
|
||||
cp -a /usr/share/livecd-rootfs/live-build/$TEMPLATE .
|
||||
fi
|
||||
(env PROJECT=$PROJECT \
|
||||
SUBPROJECT=$SUBPROJECT \
|
||||
SUITE=$SUITE \
|
||||
ARCH=$ARCH \
|
||||
lb config
|
||||
)
|
||||
mkdir chroot
|
||||
# this part needs root rights, but right now the whole script ran as root by autopkgtest
|
||||
(env PROJECT=$PROJECT \
|
||||
SUBPROJECT=$SUBPROJECT \
|
||||
ARCH=$ARCH \
|
||||
lb build
|
||||
)
|
||||
echo "Build results for project: '$PROJECT' subproject: '$SUBPROJECT' template: '$TEMPLATE' in $PWD"
|
||||
du -sh *
|
||||
echo ""
|
||||
}
|
||||
|
||||
WORKDIR=$(mktemp -d)
|
||||
trap "RET=\$?; rm -rf $WORKDIR; exit \$RET" 0 INT QUIT ABRT PIPE TERM
|
||||
cd $WORKDIR
|
||||
|
||||
for i in $SELECTED_TRIPLETS; do
|
||||
mkdir $i
|
||||
(cd $i && live_build_rootfs $i)
|
||||
# clean up after build to avoid filling the disk, needs root rights
|
||||
rm -rf $i
|
||||
done
|
||||
|
@ -11,9 +11,22 @@ backing_img=
|
||||
apt-get -qqy install dosfstools gdisk
|
||||
|
||||
clean_loops() {
|
||||
local kpartx_ret
|
||||
local kpartx_stdout
|
||||
|
||||
if [ -n "${backing_img}" ]; then
|
||||
kpartx -v -d "${backing_img}"
|
||||
# sync before removing loop to avoid "Device or resource busy" errors
|
||||
sync
|
||||
kpartx_ret=""
|
||||
kpartx_stdout=$(kpartx -v -d "${backing_img}") || kpartx_ret=$?
|
||||
echo "$kpartx_stdout"
|
||||
if [ -n "$kpartx_ret" ]; then
|
||||
if echo "$kpartx_stdout" | grep -q "loop deleted: "; then
|
||||
echo "Suppressing kpartx returning error (#860894)"
|
||||
else
|
||||
exit $kpartx_ret
|
||||
fi
|
||||
fi
|
||||
unset backing_img
|
||||
fi
|
||||
|
||||
@ -249,4 +262,11 @@ convert_to_qcow2() {
|
||||
qemu-img info "$destination"
|
||||
}
|
||||
|
||||
replace_grub_root_with_label() {
|
||||
# When update-grub is run, it will detect the disks in the build system.
|
||||
# Instead, we want grub to use the cloudimg-rootfs labelled disk
|
||||
CHROOT_ROOT="$1"
|
||||
|
||||
sed -i -e "s,root=[^ ]\+,root=LABEL=cloudimg-rootfs," \
|
||||
"$CHROOT_ROOT/boot/grub/grub.cfg"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
BOOTPART_START=
|
||||
BOOTPART_END=
|
||||
@ -92,7 +92,7 @@ case $ARCH:$SUBARCH in
|
||||
# not the best place for this, but neither flash-kernel nor
|
||||
# u-boot have provisions for installing u-boot via maintainer
|
||||
# script
|
||||
/build/config/hooks/raspi2/mkknlimg --dtok \
|
||||
config/hooks/raspi2/mkknlimg --dtok \
|
||||
mountpoint/usr/lib/u-boot/rpi_2/u-boot.bin \
|
||||
mountpoint/boot/firmware/uboot.bin
|
||||
;;
|
||||
|
@ -8,7 +8,7 @@ if [ -n "$SUBARCH" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
mkdir binary/boot/squashfs.dir
|
||||
cp -a chroot/* binary/boot/squashfs.dir
|
||||
|
@ -9,7 +9,7 @@ case $ARCH in
|
||||
;;
|
||||
esac
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
apt-get -qqy install dosfstools gdisk
|
||||
|
||||
@ -70,9 +70,6 @@ install_grub() {
|
||||
amd64)
|
||||
chroot mountpoint apt-get install -qqy grub-efi-amd64-signed grub-efi-amd64 shim-signed
|
||||
grub_modules="part_gpt fat ext2 normal chain boot configfile linux multiboot search_fs_uuid search_label terminal serial video video_fb video_bochs usb usb_keyboard efi_gop efi_uga"
|
||||
chroot mountpoint cp /usr/lib/shim/shim.efi.signed "${efi_boot_dir}/shimx64.efi"
|
||||
chroot mountpoint cp /usr/lib/shim/MokManager.efi.signed "${efi_boot_dir}/MokManager.efi"
|
||||
chroot mountpoint cp /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed "${efi_boot_dir}/grubx64.efi"
|
||||
efi_target=x86_64-efi
|
||||
;;
|
||||
esac
|
||||
@ -108,7 +105,7 @@ EOF
|
||||
|
||||
chroot mountpoint dpkg-divert --local --rename /etc/grub.d/30_os-prober
|
||||
chroot mountpoint update-grub
|
||||
sed -i "s,root=.* ,root=LABEL=cloudimg-rootfs ,g" mountpoint/boot/grub/grub.cfg
|
||||
replace_grub_root_with_label mountpoint
|
||||
chroot mountpoint dpkg-divert --remove --local --rename /etc/grub.d/30_os-prober
|
||||
|
||||
chroot mountpoint apt-get -y clean
|
||||
|
@ -7,7 +7,7 @@ case $ARCH in
|
||||
;;
|
||||
esac
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
create_partitions() {
|
||||
disk_image="$1"
|
||||
@ -52,7 +52,7 @@ EOF
|
||||
|
||||
chroot mountpoint dpkg-divert --local --rename /etc/grub.d/30_os-prober
|
||||
chroot mountpoint update-grub
|
||||
sed -i "s,root=.* ,root=LABEL=cloudimg-rootfs ,g" mountpoint/boot/grub/grub.cfg
|
||||
replace_grub_root_with_label mountpoint
|
||||
chroot mountpoint dpkg-divert --remove --local --rename /etc/grub.d/30_os-prober
|
||||
|
||||
umount_partition mountpoint
|
||||
|
@ -12,7 +12,7 @@ esac
|
||||
|
||||
apt-get install -qqy qemu-utils
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
if [ -f binary/boot/disk-uefi.ext4 ]; then
|
||||
convert_to_qcow2 binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.img
|
||||
|
@ -9,7 +9,7 @@ case $ARCH in
|
||||
exit 0;;
|
||||
esac
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
if [ -e binary/boot/disk-uefi.ext4 ]; then
|
||||
create_vmdk binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.vmdk
|
||||
|
@ -9,11 +9,24 @@
|
||||
#
|
||||
# For this step, we re-use the VMDK's made in 040-vmdk-image.binary
|
||||
|
||||
|
||||
# Switch on $ARCH to determine which ID and description to use in the produced
|
||||
# OVF. We have fancy Ubuntu-specific IDs in the OVF specification, we might as
|
||||
# well use them.
|
||||
case $ARCH in
|
||||
amd64|i386) ;;
|
||||
*) echo "OVA images are not supported for $ARCH yet.";
|
||||
exit 0;;
|
||||
amd64)
|
||||
ovf_id=94
|
||||
ovf_os_type="ubuntu64Guest"
|
||||
ovf_desc_bits=64 ;;
|
||||
i386)
|
||||
ovf_id=93
|
||||
ovf_os_type="ubuntu32Guest"
|
||||
ovf_desc_bits=32 ;;
|
||||
*)
|
||||
echo "OVA images are not supported for $ARCH yet.";
|
||||
exit 0;;
|
||||
esac
|
||||
|
||||
cur_d=${PWD}
|
||||
my_d=$(dirname $(readlink -f ${0}))
|
||||
|
||||
@ -57,7 +70,10 @@ sed -i "${ovf}" \
|
||||
-e "s/@@NUM_CPUS@@/2/g" \
|
||||
-e "s/@@VERSION@@/${version}/g" \
|
||||
-e "s/@@DATE@@/${serial_stamp}/g" \
|
||||
-e "s/@@MEM_SIZE@@/1024/g"
|
||||
-e "s/@@MEM_SIZE@@/1024/g" \
|
||||
-e "s/@@OVF_ID@@/${ovf_id}/g" \
|
||||
-e "s/@@OVF_OS_TYPE@@/${ovf_os_type}/g" \
|
||||
-e "s/@@OVF_DESC_BITS@@/${ovf_desc_bits}/g"
|
||||
|
||||
# Get the checksums
|
||||
vmdk_sha256=$(sha256sum ${vmdk_f} | cut -d' ' -f1)
|
||||
@ -67,7 +83,7 @@ ovf_sha256=$(sha256sum ${ovf} | cut -d' ' -f1)
|
||||
manifest="${scratch_d}/${prefix}.mf"
|
||||
cat > "${manifest}" <<EOF
|
||||
SHA256(${vmdk_f##*/})= ${vmdk_sha256}
|
||||
SHA256(${ovf##*/}.ovf)= ${ovf_sha256}
|
||||
SHA256(${ovf##*/})= ${ovf_sha256}
|
||||
EOF
|
||||
|
||||
# Now create the OVA
|
||||
|
@ -18,14 +18,24 @@
|
||||
cur_d=${PWD}
|
||||
my_d=$(dirname $(readlink -f ${0}))
|
||||
|
||||
# Switch on $ARCH to determine which ID and description to use in the produced
|
||||
# OVF. We have fancy Ubuntu-specific IDs in the OVF specification, we might as
|
||||
# well use them.
|
||||
case $ARCH in
|
||||
amd64|i386) ;;
|
||||
*)
|
||||
echo "Vagrant images are not supported for $ARCH"
|
||||
exit 0
|
||||
amd64)
|
||||
ovf_id=94
|
||||
ovf_os_type="ubuntu64Guest"
|
||||
ovf_desc_bits=64 ;;
|
||||
i386)
|
||||
ovf_id=93
|
||||
ovf_os_type="ubuntu32Guest"
|
||||
ovf_desc_bits=32 ;;
|
||||
*)
|
||||
echo "Vagrant images are not supported for $ARCH yet."
|
||||
exit 0;;
|
||||
esac
|
||||
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
# Virtualbox is needed for making a small VMDK
|
||||
apt-get -qqy install genisoimage qemu-utils
|
||||
@ -172,7 +182,10 @@ sed -i "${ovf}" \
|
||||
-e "s/@@NUM_CPUS@@/2/g" \
|
||||
-e "s/@@VERSION@@/${version}/g" \
|
||||
-e "s/@@DATE@@/${serial_stamp}/g" \
|
||||
-e "s/@@MEM_SIZE@@/1024/g"
|
||||
-e "s/@@MEM_SIZE@@/1024/g" \
|
||||
-e "s/@@OVF_ID@@/${ovf_id}/g" \
|
||||
-e "s/@@OVF_OS_TYPE@@/${ovf_os_type}/g" \
|
||||
-e "s/@@OVF_DESC_BITS@@/${ovf_desc_bits}/g"
|
||||
|
||||
ovf_sha256=$(sha256sum ${ovf} | cut -d' ' -f1)
|
||||
|
||||
@ -181,7 +194,7 @@ manifest="${box_d}/${prefix}.mf"
|
||||
cat > "${manifest}" <<EOF
|
||||
SHA256(${vmdk_f##*/})= ${vmdk_sha256}
|
||||
SHA256(${cdrom_vmdk_f##*/})= ${cdrom_sha256}
|
||||
SHA256(${ovf##*/}.ovf)= ${ovf_sha256}
|
||||
SHA256(${ovf##*/})= ${ovf_sha256}
|
||||
EOF
|
||||
|
||||
# Now create the box
|
||||
|
@ -9,7 +9,7 @@ if [ ! -d ${my_dir}/extra ]; then
|
||||
fi
|
||||
|
||||
# Export the common functions to the extras
|
||||
. /build/config/functions
|
||||
. config/functions
|
||||
|
||||
# Cleaner execution
|
||||
/bin/run-parts --regex ".*\.binary" "${extra_d}"
|
||||
/bin/run-parts --exit-on-error --regex ".*\.binary" "${extra_d}"
|
||||
|
@ -18,8 +18,9 @@
|
||||
<VirtualSystem ovf:id="@@NAME@@">
|
||||
<Info>A virtual machine</Info>
|
||||
<Name>@@NAME@@</Name>
|
||||
<OperatingSystemSection ovf:id="100" vmw:osType="other3xLinux64Guest">
|
||||
<OperatingSystemSection ovf:id="@@OVF_ID@@" vmw:osType="@@OVF_OS_TYPE@@">
|
||||
<Info>The kind of installed guest operating system</Info>
|
||||
<Description>Ubuntu Linux (@@OVF_DESC_BITS@@-bit)</Description>
|
||||
</OperatingSystemSection>
|
||||
|
||||
<ProductSection ovf:required="false">
|
||||
|
@ -16,8 +16,9 @@
|
||||
<VirtualSystem ovf:id="@@NAME@@">
|
||||
<Info>A virtual machine</Info>
|
||||
<Name>@@NAME@@</Name>
|
||||
<OperatingSystemSection ovf:id="100" vmw:osType="other3xLinux64Guest">
|
||||
<OperatingSystemSection ovf:id="@@OVF_ID@@" vmw:osType="@@OVF_OS_TYPE@@">
|
||||
<Info>The kind of installed guest operating system</Info>
|
||||
<Description>Ubuntu Linux (@@OVF_DESC_BITS@@-bit)</Description>
|
||||
</OperatingSystemSection>
|
||||
|
||||
<ProductSection ovf:required="false">
|
||||
|
Loading…
x
Reference in New Issue
Block a user