mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-11-04 10:54:07 +00:00 
			
		
		
		
	Import patches-unapplied version 2.352 to ubuntu/xenial-proposed
Imported using git-ubuntu import.
Changelog parent: 9ac850741cb5c111949cb40b971436c3524d495d
New changelog entries:
  * Move building of all architecture-specific CPC artifacts into Launchpad
    (LP: #1513754).
			
			
This commit is contained in:
		
							parent
							
								
									9ac850741c
								
							
						
					
					
						commit
						131941df22
					
				
							
								
								
									
										7
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@ -1,3 +1,10 @@
 | 
			
		||||
livecd-rootfs (2.352) xenial; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Move building of all architecture-specific CPC artifacts into Launchpad
 | 
			
		||||
    (LP: #1513754).
 | 
			
		||||
 | 
			
		||||
 -- Daniel Watkins <daniel.watkins@canonical.com>  Fri, 06 Nov 2015 09:55:33 +0000
 | 
			
		||||
 | 
			
		||||
livecd-rootfs (2.351) xenial; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * live-build/ubuntu-core/hooks/21-snappy-security-policy-stamp.chroot:
 | 
			
		||||
 | 
			
		||||
@ -247,6 +247,10 @@ deb file:/var/lib/preinstalled-pool/ $LB_DISTRIBUTION $LB_PARENT_ARCHIVE_AREAS
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$PROJECT" = "ubuntu-cpc" ]; then
 | 
			
		||||
		cat > chroot/etc/cloud/build.info << EOF
 | 
			
		||||
build_name: server
 | 
			
		||||
serial: $BUILDSTAMP
 | 
			
		||||
EOF
 | 
			
		||||
		cat > chroot/etc/apt/sources.list << EOF
 | 
			
		||||
deb ${LB_PARENT_MIRROR_BINARY} ${LB_DISTRIBUTION} main restricted universe multiverse
 | 
			
		||||
deb ${LB_PARENT_MIRROR_BINARY} ${LB_DISTRIBUTION}-updates main restricted universe multiverse
 | 
			
		||||
@ -355,6 +359,10 @@ for FLAVOUR in $LB_LINUX_FLAVOURS; do
 | 
			
		||||
	if [ -z "$LB_LINUX_FLAVOURS" ] || [ "$LB_LINUX_FLAVOURS" = "none" ]; then
 | 
			
		||||
		continue
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$FLAVOUR" = "virtual" ]; then
 | 
			
		||||
		# The virtual kernel is named generic in /boot
 | 
			
		||||
		FLAVOUR="generic"
 | 
			
		||||
	fi
 | 
			
		||||
	KVERS="$( (cd "binary/$INITFS"; ls vmlinu?-* 2>/dev/null || true) | (fgrep -v .efi || true) | sed -n "s/^vmlinu.-\\([^-]*-[^-]*-$FLAVOUR\\)$/\\1/p" )"
 | 
			
		||||
	if [ -z "$KVERS" ]; then
 | 
			
		||||
		if [ -e "binary/$INITFS/vmlinuz" ]; then
 | 
			
		||||
 | 
			
		||||
@ -391,6 +391,10 @@ case $PROJECT in
 | 
			
		||||
			#add_task install minimal
 | 
			
		||||
			add_task install ubuntu-core
 | 
			
		||||
 | 
			
		||||
                        # more packages are pulled in via the seed.
 | 
			
		||||
                        # (important to remember when comparing to the
 | 
			
		||||
                        #  livecd-rootfs from ppa:snappy-dev/image)
 | 
			
		||||
 | 
			
		||||
			case $ARCH in
 | 
			
		||||
				i386)
 | 
			
		||||
					# efi support can go once the task
 | 
			
		||||
@ -550,24 +554,22 @@ esac
 | 
			
		||||
 | 
			
		||||
if [ "$PROJECT" = "ubuntu-cpc" ]; then
 | 
			
		||||
	BINARY_REMOVE_LINUX=false
 | 
			
		||||
	OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none"
 | 
			
		||||
	KERNEL_FLAVOURS=none
 | 
			
		||||
	OPTS="${OPTS:+$OPTS }--initramfs=none"
 | 
			
		||||
	KERNEL_FLAVOURS=virtual
 | 
			
		||||
	case $ARCH in
 | 
			
		||||
		armhf)
 | 
			
		||||
			add_package install flash-kernel linux-generic-lpae
 | 
			
		||||
			KERNEL_FLAVOURS=generic-lpae
 | 
			
		||||
			add_package install flash-kernel
 | 
			
		||||
			add_task install server
 | 
			
		||||
			;;
 | 
			
		||||
		arm64)
 | 
			
		||||
			add_package install flash-kernel linux-generic
 | 
			
		||||
			KERNEL_FLAVOURS=generic
 | 
			
		||||
			add_package install flash-kernel
 | 
			
		||||
			add_task install server
 | 
			
		||||
			;;
 | 
			
		||||
		ppc64el)
 | 
			
		||||
			add_package install linux-virtual
 | 
			
		||||
			add_task install server
 | 
			
		||||
			;;
 | 
			
		||||
		*)
 | 
			
		||||
			add_package install linux-virtual
 | 
			
		||||
			;;
 | 
			
		||||
	esac
 | 
			
		||||
	OPTS="${OPTS:+$OPTS }--system=normal"
 | 
			
		||||
	OPTS="${OPTS:+$OPTS }--hdd-label=cloudimg-rootfs"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										61
									
								
								live-build/ubuntu-cpc/functions
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								live-build/ubuntu-cpc/functions
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
			
		||||
CLOUD_IMG_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
 | 
			
		||||
IMAGE_SIZE=$((2252*1024**2))  # 2.2G (the current size we ship)
 | 
			
		||||
 | 
			
		||||
rootfs_dev_mapper=
 | 
			
		||||
loop_device=
 | 
			
		||||
loop_raw=
 | 
			
		||||
 | 
			
		||||
clean_loops() {
 | 
			
		||||
    [ -z "${rootfs_dev_mapper}" ] || {
 | 
			
		||||
        udevadm settle
 | 
			
		||||
        find /dev/mapper -iname "${loop_device///dev\//}*" | \
 | 
			
		||||
            xargs -n1 -I DEVICE dmsetup remove DEVICE ||
 | 
			
		||||
                kpartx -d "${rootfs_dev_mapper}"
 | 
			
		||||
        losetup -d "${loop_device}" || echo "Failed to detach disk"
 | 
			
		||||
        unset loop_raw
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
create_empty_disk_image() {
 | 
			
		||||
    # Prepare an empty disk image
 | 
			
		||||
    dd if=/dev/zero of="$1" bs=1 count=0 seek="${IMAGE_SIZE}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
make_ext4_partition() {
 | 
			
		||||
    device="$1"
 | 
			
		||||
 | 
			
		||||
    mkfs.ext4 -F -b 4096 -i 8192 -m 0 -L cloudimg-rootfs -E resize=536870912 "$device"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mount_image() {
 | 
			
		||||
    apt-get install -qqy kpartx
 | 
			
		||||
    trap clean_loops EXIT
 | 
			
		||||
    loop_raw="$(kpartx -s -v -a "$1" )"
 | 
			
		||||
    loop_device="$(echo -e "${loop_raw}" | head -n1 | awk '{print($(NF-1))}')"
 | 
			
		||||
    rootfs_dev_mapper="/dev/mapper${loop_device///dev/}p1"
 | 
			
		||||
    [ ! -b "${rootfs_dev_mapper}" ] &&
 | 
			
		||||
        echo "${rootfs_dev_mapper} is not a block device" && exit 1
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mount_partition() {
 | 
			
		||||
    partition="$1"
 | 
			
		||||
    mountpoint="$2"
 | 
			
		||||
 | 
			
		||||
    mount "$partition" "$mountpoint"
 | 
			
		||||
    mount --bind /dev "$mountpoint/dev"
 | 
			
		||||
    mount proc-live -t proc "$mountpoint/proc"
 | 
			
		||||
    mount sysfs-live -t sysfs "$mountpoint/sys"
 | 
			
		||||
    mv "$mountpoint/etc/resolv.conf" resolv.conf.tmp
 | 
			
		||||
    cp /etc/resolv.conf "$mountpoint/etc/resolv.conf"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
umount_partition() {
 | 
			
		||||
    mountpoint="$1"
 | 
			
		||||
 | 
			
		||||
    mv resolv.conf.tmp "$mountpoint/etc/resolv.conf"
 | 
			
		||||
    umount "$mountpoint/proc"
 | 
			
		||||
    umount "$mountpoint/sys"
 | 
			
		||||
    umount "$mountpoint/dev"
 | 
			
		||||
    umount "$mountpoint"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								live-build/ubuntu-cpc/hooks/010-write-etc-ec2-version.chroot
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								live-build/ubuntu-cpc/hooks/010-write-etc-ec2-version.chroot
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
#!/bin/bash -eux
 | 
			
		||||
 | 
			
		||||
. /etc/os-release
 | 
			
		||||
echo "Ubuntu $VERSION" > /etc/ec2_version
 | 
			
		||||
							
								
								
									
										25
									
								
								live-build/ubuntu-cpc/hooks/030-root-tarball.binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								live-build/ubuntu-cpc/hooks/030-root-tarball.binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
#!/bin/bash -ex
 | 
			
		||||
mkdir binary/boot/filesystem.dir
 | 
			
		||||
 | 
			
		||||
cp -a chroot/* binary/boot/filesystem.dir
 | 
			
		||||
 | 
			
		||||
mount --bind /dev "binary/boot/filesystem.dir/dev"
 | 
			
		||||
mount proc-live -t proc "binary/boot/filesystem.dir/proc"
 | 
			
		||||
mount sysfs-live -t sysfs "binary/boot/filesystem.dir/sys"
 | 
			
		||||
mv "binary/boot/filesystem.dir/etc/resolv.conf" resolv.conf.tmp
 | 
			
		||||
cp /etc/resolv.conf "binary/boot/filesystem.dir/etc/resolv.conf"
 | 
			
		||||
 | 
			
		||||
chroot binary/boot/filesystem.dir dpkg-divert --local --rename /usr/sbin/grub-probe
 | 
			
		||||
chroot binary/boot/filesystem.dir touch /usr/sbin/grub-probe
 | 
			
		||||
chroot binary/boot/filesystem.dir chmod +x /usr/sbin/grub-probe
 | 
			
		||||
 | 
			
		||||
env DEBIAN_FRONTEND=noninteractive chroot binary/boot/filesystem.dir apt-get --purge remove --assume-yes '^linux-.*'
 | 
			
		||||
env DEBIAN_FRONTEND=noninteractive chroot binary/boot/filesystem.dir apt-get --purge remove --assume-yes '^grub-.*'
 | 
			
		||||
 | 
			
		||||
chroot binary/boot/filesystem.dir rm /usr/sbin/grub-probe
 | 
			
		||||
chroot binary/boot/filesystem.dir dpkg-divert --remove --local --rename /usr/sbin/grub-probe
 | 
			
		||||
 | 
			
		||||
mv resolv.conf.tmp "binary/boot/filesystem.dir/etc/resolv.conf"
 | 
			
		||||
umount "binary/boot/filesystem.dir/proc"
 | 
			
		||||
umount "binary/boot/filesystem.dir/sys"
 | 
			
		||||
umount "binary/boot/filesystem.dir/dev"
 | 
			
		||||
							
								
								
									
										3
									
								
								live-build/ubuntu-cpc/hooks/031-root-xz.binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								live-build/ubuntu-cpc/hooks/031-root-xz.binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
#!/bin/bash -ex
 | 
			
		||||
(cd "binary/boot/filesystem.dir/" && tar -c *) | \
 | 
			
		||||
    xz > "livecd.ubuntu-cpc.rootfs.tar.xz"
 | 
			
		||||
							
								
								
									
										60
									
								
								live-build/ubuntu-cpc/hooks/032-disk-image.binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										60
									
								
								live-build/ubuntu-cpc/hooks/032-disk-image.binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,60 @@
 | 
			
		||||
#!/bin/bash -eux
 | 
			
		||||
architecture=$(chroot chroot dpkg --print-architecture)
 | 
			
		||||
if [ "$architecture" = "ppc64el" ]; then
 | 
			
		||||
    echo "ppc64el disk images are handled separately"
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
. /build/config/functions
 | 
			
		||||
 | 
			
		||||
create_empty_partition() {
 | 
			
		||||
    apt-get install -qqy parted
 | 
			
		||||
    parted_prefix="parted $1 --script --"
 | 
			
		||||
 | 
			
		||||
    ${parted_prefix} mklabel msdos
 | 
			
		||||
    ${parted_prefix} mkpart primary 1 -1
 | 
			
		||||
    ${parted_prefix} set 1 B
 | 
			
		||||
    ${parted_prefix} print
 | 
			
		||||
    ${parted_prefix} align-check opt 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
disk_image=binary/boot/disk.ext4
 | 
			
		||||
 | 
			
		||||
create_empty_disk_image "${disk_image}"
 | 
			
		||||
create_empty_partition "${disk_image}"
 | 
			
		||||
mount_image "${disk_image}"
 | 
			
		||||
 | 
			
		||||
# Copy the chroot in to the disk
 | 
			
		||||
make_ext4_partition "${rootfs_dev_mapper}"
 | 
			
		||||
mkdir mountpoint
 | 
			
		||||
mount "${rootfs_dev_mapper}" mountpoint
 | 
			
		||||
cp -a chroot/* mountpoint/
 | 
			
		||||
umount mountpoint
 | 
			
		||||
rmdir mountpoint
 | 
			
		||||
 | 
			
		||||
should_install_grub() {
 | 
			
		||||
    case $architecture in
 | 
			
		||||
        armhf|arm64)
 | 
			
		||||
            return 1
 | 
			
		||||
            ;;
 | 
			
		||||
        *)
 | 
			
		||||
            return 0
 | 
			
		||||
            ;;
 | 
			
		||||
    esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if should_install_grub; then
 | 
			
		||||
    mkdir mountpoint
 | 
			
		||||
    mount_partition "${rootfs_dev_mapper}" mountpoint
 | 
			
		||||
 | 
			
		||||
    echo "(hd0) ${loop_device}" > mountpoint/tmp/device.map
 | 
			
		||||
    chroot mountpoint grub-install ${loop_device}
 | 
			
		||||
    chroot mountpoint grub-bios-setup --boot-image=i386-pc/boot.img --core-image=i386-pc/core.img --skip-fs-probe --device-map=/tmp/device.map ${loop_device}
 | 
			
		||||
 | 
			
		||||
    rm mountpoint/tmp/device.map
 | 
			
		||||
    umount_partition mountpoint
 | 
			
		||||
    rmdir mountpoint
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
clean_loops
 | 
			
		||||
trap - EXIT
 | 
			
		||||
							
								
								
									
										141
									
								
								live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										141
									
								
								live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,141 @@
 | 
			
		||||
#!/bin/bash -eux
 | 
			
		||||
 | 
			
		||||
architecture=$(chroot chroot dpkg --print-architecture)
 | 
			
		||||
case $architecture in
 | 
			
		||||
    amd64|arm64)
 | 
			
		||||
        ;;
 | 
			
		||||
    *)
 | 
			
		||||
        echo "We don't create EFI images for $architecture."
 | 
			
		||||
        exit 0
 | 
			
		||||
        ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
. /build/config/functions
 | 
			
		||||
 | 
			
		||||
create_partitions() {
 | 
			
		||||
    disk_image="$1"
 | 
			
		||||
    apt-get install -qqy gdisk
 | 
			
		||||
    sgdisk "${disk_image}" --zap-all
 | 
			
		||||
    case $architecture in
 | 
			
		||||
        arm64)
 | 
			
		||||
            sgdisk "${disk_image}" \
 | 
			
		||||
                --new=15:0:204800 \
 | 
			
		||||
                --typecode=15:ef00 \
 | 
			
		||||
                --new=1:
 | 
			
		||||
            ;;
 | 
			
		||||
        amd64)
 | 
			
		||||
            sgdisk "${disk_image}" \
 | 
			
		||||
                --new=14::+4M \
 | 
			
		||||
                --new=15::+106M \
 | 
			
		||||
                --new=1::
 | 
			
		||||
            sgdisk "${disk_image}" \
 | 
			
		||||
                -t 14:ef02 \
 | 
			
		||||
                -t 15:ef00
 | 
			
		||||
            ;;
 | 
			
		||||
    esac
 | 
			
		||||
    sgdisk "${disk_image}" \
 | 
			
		||||
        --print
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
create_and_mount_uefi_partition() {
 | 
			
		||||
    uefi_dev="/dev/mapper${loop_device///dev/}p15"
 | 
			
		||||
    apt-get -qqy install dosfstools
 | 
			
		||||
    mountpoint="$1"
 | 
			
		||||
    mkfs.vfat -F 32 -n UEFI "${uefi_dev}"
 | 
			
		||||
 | 
			
		||||
    mkdir -p "${mountpoint}"/boot/efi
 | 
			
		||||
    mount "${uefi_dev}" "$mountpoint"/boot/efi
 | 
			
		||||
 | 
			
		||||
    cat << EOF >> "mountpoint/etc/fstab"
 | 
			
		||||
LABEL=UEFI	/boot/efi	vfat	defaults	0 0
 | 
			
		||||
EOF
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
install_grub() {
 | 
			
		||||
    mkdir mountpoint
 | 
			
		||||
    mount_partition "${rootfs_dev_mapper}" mountpoint
 | 
			
		||||
 | 
			
		||||
    create_and_mount_uefi_partition mountpoint
 | 
			
		||||
 | 
			
		||||
    echo "(hd0) ${loop_device}" > mountpoint/tmp/device.map
 | 
			
		||||
    mkdir -p mountpoint/etc/default/grub.d
 | 
			
		||||
    efi_boot_dir="/boot/efi/EFI/BOOT"
 | 
			
		||||
    chroot mountpoint mkdir -p "${efi_boot_dir}"
 | 
			
		||||
 | 
			
		||||
    case $architecture in
 | 
			
		||||
        arm64)
 | 
			
		||||
            chroot mountpoint apt-get -qqy install --no-install-recommends grub-efi-arm64 grub-efi-arm64-bin
 | 
			
		||||
            grub_modules="part_gpt fat gzio ext2 normal chain boot configfile linux search_fs_uuid search_label terminal serial video video_fb efi_gop"
 | 
			
		||||
            efi_target=arm64-efi
 | 
			
		||||
            ;;
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
    cat << EOF >> mountpoint/etc/default/grub.d/50-cloudimg-settings.cfg
 | 
			
		||||
${CLOUD_IMG_STR}
 | 
			
		||||
# For Cloud Image compatability
 | 
			
		||||
GRUB_PRELOAD_MODULES="${grub_modules}"
 | 
			
		||||
EOF
 | 
			
		||||
    chroot mountpoint grub-install "${loop_device}" \
 | 
			
		||||
        --boot-directory=/boot \
 | 
			
		||||
        --efi-directory=/boot/efi \
 | 
			
		||||
        --target=${efi_target} \
 | 
			
		||||
        --removable \
 | 
			
		||||
        --uefi-secure-boot \
 | 
			
		||||
        --no-nvram \
 | 
			
		||||
        --modules="${grub_modules}"
 | 
			
		||||
 | 
			
		||||
    if [ -f mountpoint/boot/efi/EFI/BOOT/grub.cfg ]; then
 | 
			
		||||
        sed -i "s| root| root hd0,gpt1|" mountpoint/boot/efi/EFI/BOOT/grub.cfg
 | 
			
		||||
        sed -i "1i${CLOUD_IMG_STR}" mountpoint/boot/efi/EFI/BOOT/grub.cfg
 | 
			
		||||
        # For some reason the grub disk is looking for /boot/grub/grub.cfg on
 | 
			
		||||
        # part 15....
 | 
			
		||||
        chroot mountpoint mkdir -p /boot/efi/boot/grub
 | 
			
		||||
        chroot mountpoint cp /boot/efi/EFI/BOOT/grub.cfg /boot/efi/boot/grub
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ $architecture = "amd64" ]; then
 | 
			
		||||
        # Install the BIOS/GPT bits. Since GPT boots from the ESP partition,
 | 
			
		||||
        # it means that we just run this simple command and we're done
 | 
			
		||||
        chroot mountpoint grub-install --target=i386-pc "${loop_device}"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    chroot mountpoint dpkg-divert --remove --local --rename /etc/grub.d/30_os-prober
 | 
			
		||||
 | 
			
		||||
    chroot mountpoint apt-get -y clean
 | 
			
		||||
    chroot mountpoint apt-get -y update
 | 
			
		||||
 | 
			
		||||
    rm mountpoint/tmp/device.map
 | 
			
		||||
    umount mountpoint/boot/efi
 | 
			
		||||
    umount_partition mountpoint
 | 
			
		||||
    rmdir mountpoint
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
disk_image=binary/boot/disk-uefi.ext4
 | 
			
		||||
 | 
			
		||||
create_empty_disk_image "${disk_image}"
 | 
			
		||||
create_partitions "${disk_image}"
 | 
			
		||||
mount_image "${disk_image}"
 | 
			
		||||
 | 
			
		||||
# Copy the chroot in to the disk
 | 
			
		||||
make_ext4_partition "${rootfs_dev_mapper}"
 | 
			
		||||
mkdir mountpoint
 | 
			
		||||
mount "${rootfs_dev_mapper}" mountpoint
 | 
			
		||||
cp -a chroot/* mountpoint/
 | 
			
		||||
umount mountpoint
 | 
			
		||||
rmdir mountpoint
 | 
			
		||||
 | 
			
		||||
install_grub
 | 
			
		||||
 | 
			
		||||
clean_loops
 | 
			
		||||
trap - EXIT
 | 
			
		||||
							
								
								
									
										64
									
								
								live-build/ubuntu-cpc/hooks/034-disk-image-ppc64el.binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										64
									
								
								live-build/ubuntu-cpc/hooks/034-disk-image-ppc64el.binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
#!/bin/bash -eux
 | 
			
		||||
architecture=$(chroot chroot dpkg --print-architecture)
 | 
			
		||||
if [ "$architecture" != "ppc64el" ]; then
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
. /build/config/functions
 | 
			
		||||
 | 
			
		||||
create_partitions() {
 | 
			
		||||
    disk_image="$1"
 | 
			
		||||
    apt-get install -qqy gdisk
 | 
			
		||||
    sgdisk "${disk_image}" \
 | 
			
		||||
        --zap-all
 | 
			
		||||
    sgdisk "${disk_image}" \
 | 
			
		||||
        --new=2::+8M \
 | 
			
		||||
        --new=1:
 | 
			
		||||
    sgdisk "${disk_image}" -t 2:4100
 | 
			
		||||
    sgdisk "${disk_image}" \
 | 
			
		||||
        --print
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
install_grub() {
 | 
			
		||||
    mkdir mountpoint
 | 
			
		||||
    mount_partition "${rootfs_dev_mapper}" mountpoint
 | 
			
		||||
 | 
			
		||||
    chroot mountpoint apt-get -qqy install grub2
 | 
			
		||||
    chroot mountpoint apt-get -qqy remove --purge grub-legacy-ec2
 | 
			
		||||
 | 
			
		||||
    # set the kernel commandline to use hvc0
 | 
			
		||||
    mkdir -p mountpoint/etc/default/grub.d
 | 
			
		||||
    cat << EOF > mountpoint/etc/default/grub.d/50-cloudimg-settings.cfg
 | 
			
		||||
${CLOUD_IMG_STR}
 | 
			
		||||
#
 | 
			
		||||
# Set the default commandline
 | 
			
		||||
GRUB_CMDLINE_LINUX_DEFAULT="console=hvc0 earlyprintk"
 | 
			
		||||
EOF
 | 
			
		||||
    prep_partition="/dev/mapper${loop_device///dev/}p2"
 | 
			
		||||
    chroot mountpoint grub-install "${prep_partition}" \
 | 
			
		||||
        --no-nvram \
 | 
			
		||||
        --boot-directory=/boot \
 | 
			
		||||
        --target=powerpc-ieee1275
 | 
			
		||||
 | 
			
		||||
    umount_partition mountpoint
 | 
			
		||||
    rmdir mountpoint
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
disk_image=binary/boot/disk.ext4
 | 
			
		||||
 | 
			
		||||
create_empty_disk_image "${disk_image}"
 | 
			
		||||
create_partitions "${disk_image}"
 | 
			
		||||
mount_image "${disk_image}"
 | 
			
		||||
 | 
			
		||||
# Copy the chroot in to the disk
 | 
			
		||||
make_ext4_partition "${rootfs_dev_mapper}"
 | 
			
		||||
mkdir mountpoint
 | 
			
		||||
mount "${rootfs_dev_mapper}" mountpoint
 | 
			
		||||
cp -a chroot/* mountpoint/
 | 
			
		||||
umount mountpoint
 | 
			
		||||
rmdir mountpoint
 | 
			
		||||
 | 
			
		||||
install_grub
 | 
			
		||||
 | 
			
		||||
clean_loops
 | 
			
		||||
trap - EXIT
 | 
			
		||||
							
								
								
									
										16
									
								
								live-build/ubuntu-cpc/hooks/040-qcow2-image.binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								live-build/ubuntu-cpc/hooks/040-qcow2-image.binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
#!/bin/bash -ex
 | 
			
		||||
 | 
			
		||||
apt-get install -qqy qemu-utils
 | 
			
		||||
 | 
			
		||||
convert_image() {
 | 
			
		||||
    src="$1"
 | 
			
		||||
    destination="$2"
 | 
			
		||||
    qemu-img convert -c -O qcow2 -o compat=0.10 "$src" "$destination"
 | 
			
		||||
    qemu-img info "$destination"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
convert_image binary/boot/disk.ext4 livecd.ubuntu-cpc.disk1.img
 | 
			
		||||
 | 
			
		||||
if [ -f binary/boot/disk-uefi.ext4 ]; then
 | 
			
		||||
    convert_image binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.uefi1.img
 | 
			
		||||
fi
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#!/bin/bash -x
 | 
			
		||||
rootd="${1:-/}"
 | 
			
		||||
root_fs_label=cloudimg-rootfs
 | 
			
		||||
set -ex
 | 
			
		||||
@ -147,7 +147,6 @@ if [ "$arch" = "i386" -o "$arch" = "amd64" ]; then
 | 
			
		||||
   add_serial_console ttyS0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
psuedo_grub_probe() {
 | 
			
		||||
   cat <<"PSUEDO_GRUB_PROBE"
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
@ -248,7 +247,7 @@ _xchroot "${rootd}" env DEBIAN_FRONTEND=noninteractive \
 | 
			
		||||
 | 
			
		||||
grub2cfg="${rootd}/boot/grub/grub.cfg"
 | 
			
		||||
[ ! -f "${grub2cfg}" ] ||
 | 
			
		||||
   sed -i -e "s,root=/dev/sda1,root=LABEL=${root_fs_label}," "${grub2cfg}"
 | 
			
		||||
   sed -i -e "s,root=/dev/[hs]da1,root=LABEL=${root_fs_label}," "${grub2cfg}"
 | 
			
		||||
 | 
			
		||||
[ ${moved} -eq 0 ] || mv "${gprobe}.dist" "${gprobe}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user