mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-10-31 17:04:10 +00:00 
			
		
		
		
	Merge branch 'jammy-cpc-sbom-everywhere' into ubuntu/jammy
This commit is contained in:
		
						commit
						a870c45621
					
				
							
								
								
									
										6
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							| @ -1,3 +1,9 @@ | |||||||
|  | livecd-rootfs (2.765.51) jammy; urgency=medium | ||||||
|  | 
 | ||||||
|  |   * add cpc-sbom to create_manifest calls to generate sboms (LP: #2077105)  | ||||||
|  | 
 | ||||||
|  |  -- jchittum <john.chittum@canonical.com>  Wed, 28 Aug 2024 07:57:11 -0400 | ||||||
|  | 
 | ||||||
| livecd-rootfs (2.765.50) jammy; urgency=medium | livecd-rootfs (2.765.50) jammy; urgency=medium | ||||||
| 
 | 
 | ||||||
|   * Replace some functionalities done by the windows launcher (which will |   * Replace some functionalities done by the windows launcher (which will | ||||||
|  | |||||||
| @ -37,6 +37,10 @@ create_empty_disk_image() { | |||||||
| create_manifest() { | create_manifest() { | ||||||
|     local chroot_root=${1} |     local chroot_root=${1} | ||||||
|     local target_file=${2} |     local target_file=${2} | ||||||
|  |     local base_default_sbom_name="ubuntu-cloud-image-$(grep "VERSION_ID" $chroot_root/etc/os-release | cut --delimiter "=" --field 2 | tr -d '"')-${ARCH}-$(date +%Y%m%dT%H:%M:%S)" | ||||||
|  |     local sbom_file_name=${3:-"${base_default_sbom_name}.spdx"} | ||||||
|  |     local sbom_document_name=${4:-"${base_default_sbom_name}"} | ||||||
|  |     local sbom_log=${sbom_document_name}.log | ||||||
|     echo "create_manifest chroot_root: ${chroot_root}" |     echo "create_manifest chroot_root: ${chroot_root}" | ||||||
|     dpkg-query --show --admindir="${chroot_root}/var/lib/dpkg" > ${target_file} |     dpkg-query --show --admindir="${chroot_root}/var/lib/dpkg" > ${target_file} | ||||||
|     echo "create_manifest call to dpkg-query finished." |     echo "create_manifest call to dpkg-query finished." | ||||||
| @ -45,7 +49,23 @@ create_manifest() { | |||||||
|     if [ "$PROJECT" = ubuntu-cpc ]; then |     if [ "$PROJECT" = ubuntu-cpc ]; then | ||||||
|         echo "create_manifest creating file listing." |         echo "create_manifest creating file listing." | ||||||
|         local target_filelist=${2%.manifest}.filelist |         local target_filelist=${2%.manifest}.filelist | ||||||
|         (cd "${chroot_root}" && find -xdev) > "${target_filelist}" |         (cd "${chroot_root}" && find -xdev) | sort > "${target_filelist}" | ||||||
|  |         # only creating sboms for CPC project at this time | ||||||
|  |         if [[ ! $(which cpc-sbom) ]]; then | ||||||
|  |             # ensure the tool is installed | ||||||
|  |             sudo snap install --classic --edge cpc-sbom | ||||||
|  |         fi | ||||||
|  |         # generate the SBOM | ||||||
|  |         cpc-sbom --rootdir ${chroot_root} --ignore-copyright-parsing-errors --ignore-copyright-file-not-found-errors --document-name ${sbom_document_name} >"${sbom_file_name}" 2>"${sbom_log}" | ||||||
|  |         SBOM_GENERATION_EXIT_CODE=$? | ||||||
|  |         if [[ ${SBOM_GENERATION_EXIT_CODE} !=  "0" ]]; then | ||||||
|  |         # check for failure and print log | ||||||
|  |             echo "ERROR: SBOM generation failed. See ${sbom_log}" | ||||||
|  |             cat "$sbom_log" | ||||||
|  |             exit 1 | ||||||
|  |         else | ||||||
|  |             echo "SBOM generation succeeded. see ${sbom_log} for details" | ||||||
|  |         fi     | ||||||
|     fi |     fi | ||||||
|     echo "create_manifest finished" |     echo "create_manifest finished" | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,6 +24,6 @@ rm -rf $rootfs_dir/boot/grub | |||||||
| # Keep this as some derivatives mount a tempfs here | # Keep this as some derivatives mount a tempfs here | ||||||
| mkdir -p $rootfs_dir/lib/modules | mkdir -p $rootfs_dir/lib/modules | ||||||
| 
 | 
 | ||||||
| teardown_mountpoint $rootfs_dir | create_manifest $rootfs_dir "livecd.ubuntu-cpc.rootfs.manifest" "livecd.ubuntu-cpc.rootfs.spdx"  "cloud-image-rootfs-$ARCH-$(date +%Y%m%dT%H:%M:%S)" | ||||||
| 
 | 
 | ||||||
| create_manifest "${rootfs_dir}" "${rootfs_dir}.manifest" | teardown_mountpoint $rootfs_dir | ||||||
|  | |||||||
| @ -75,6 +75,10 @@ make_ext4_partition "${rootfs_dev_mapper}" | |||||||
| mkdir mountpoint | mkdir mountpoint | ||||||
| mount "${rootfs_dev_mapper}" mountpoint | mount "${rootfs_dev_mapper}" mountpoint | ||||||
| cp -a chroot/* mountpoint/ | cp -a chroot/* mountpoint/ | ||||||
|  | 
 | ||||||
|  | # the image has been modified from its disk-image-uefi base so the manifest and filelist should be regenerated | ||||||
|  | create_manifest  "mountpoint/" "$PWD/livecd.ubuntu-cpc.disk-image.manifest" "$PWD/livecd.ubuntu-cpc.disk-image.spdx"  "cloud-image-$ARCH-$(date +Y%m%dT%H:%M:%S)" | ||||||
|  | 
 | ||||||
| umount mountpoint | umount mountpoint | ||||||
| rmdir mountpoint | rmdir mountpoint | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -452,6 +452,11 @@ EOF | |||||||
|     rm mountpoint/tmp/device.map |     rm mountpoint/tmp/device.map | ||||||
|     umount mountpoint/boot/efi |     umount mountpoint/boot/efi | ||||||
|     mount |     mount | ||||||
|  | 
 | ||||||
|  |     # create sorted filelist as the very last step before unmounting | ||||||
|  |     # explicitly generate manifest and sbom | ||||||
|  |     create_manifest  "mountpoint/" "$PWD/livecd.ubuntu-cpc.disk-uefi.manifest" "$PWD/livecd.ubuntu-cpc.disk-uefi.spdx"  "cloud-image-$ARCH-$(date +%Y%m%dT%H:%M:%S)" | ||||||
|  | 
 | ||||||
|     umount_partition mountpoint |     umount_partition mountpoint | ||||||
|     rmdir mountpoint |     rmdir mountpoint | ||||||
| } | } | ||||||
| @ -467,6 +472,7 @@ make_ext4_partition "${rootfs_dev_mapper}" | |||||||
| mkdir mountpoint | mkdir mountpoint | ||||||
| mount "${rootfs_dev_mapper}" mountpoint | mount "${rootfs_dev_mapper}" mountpoint | ||||||
| cp -a chroot/* mountpoint/ | cp -a chroot/* mountpoint/ | ||||||
|  | 
 | ||||||
| umount mountpoint | umount mountpoint | ||||||
| rmdir mountpoint | rmdir mountpoint | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -179,6 +179,8 @@ EOF | |||||||
|         $ZIPL_EXTRA_PARAMS |         $ZIPL_EXTRA_PARAMS | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | create_manifest  "mountpoint/" "$PWD/livecd.ubuntu-cpc.disk-image.manifest" "$PWD/livecd.ubuntu-cpc.disk-image.spdx"  "cloud-image-$ARCH-$(date +%Y%m%dT%H:%M:%S)" | ||||||
|  | 
 | ||||||
| if [ -n "$BOOT_MOUNTPOINT" ]; then | if [ -n "$BOOT_MOUNTPOINT" ]; then | ||||||
| 	umount "mountpoint/$BOOT_MOUNTPOINT" | 	umount "mountpoint/$BOOT_MOUNTPOINT" | ||||||
| fi | fi | ||||||
|  | |||||||
| @ -2,8 +2,17 @@ | |||||||
| 
 | 
 | ||||||
| . config/functions | . config/functions | ||||||
| 
 | 
 | ||||||
|  | qcow_file=${PWD}/livecd.ubuntu-cpc.qcow | ||||||
| if [ -f binary/boot/disk-uefi.ext4 ]; then | if [ -f binary/boot/disk-uefi.ext4 ]; then | ||||||
|     convert_to_qcow2 binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.img |     convert_to_qcow2 binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.img | ||||||
|  |     uefi_file="livecd.ubuntu-cpc.disk-uefi" | ||||||
|  |     cp ${uefi_file}.manifest ${qcow_file}.manifest | ||||||
|  |     cp ${uefi_file}.filelist ${qcow_file}.filelist | ||||||
|  |     cp ${uefi_file}.spdx ${qcow_file}.spdx | ||||||
| elif [ -f binary/boot/disk.ext4 ]; then | elif [ -f binary/boot/disk.ext4 ]; then | ||||||
|     convert_to_qcow2 binary/boot/disk.ext4 livecd.ubuntu-cpc.img |     convert_to_qcow2 binary/boot/disk.ext4 livecd.ubuntu-cpc.img | ||||||
|  |     disk_file="livecd.ubuntu-cpc.disk-image" | ||||||
|  |     cp ${disk_file}.manifest ${qcow_file}.manifest | ||||||
|  |     cp ${disk_file}.filelist ${qcow_file}.filelist | ||||||
|  |     cp ${disk_file}.spdx ${qcow_file}.spdx | ||||||
| fi | fi | ||||||
|  | |||||||
| @ -15,8 +15,11 @@ rootfs_dir=rootfs.dir | |||||||
| 
 | 
 | ||||||
| squashfs_f="$PWD/livecd.ubuntu-cpc.squashfs" | squashfs_f="$PWD/livecd.ubuntu-cpc.squashfs" | ||||||
| 
 | 
 | ||||||
| cp $rootfs_dir.manifest $squashfs_f.manifest | cp livecd.ubuntu-cpc.rootfs.manifest ${squashfs_f}.manifest | ||||||
|  | cp livecd.ubuntu-cpc.rootfs.filelist ${squashfs_f}.filelist | ||||||
|  | cp livecd.ubuntu-cpc.rootfs.spdx ${squashfs_f}.spdx | ||||||
|  | 
 | ||||||
| # fstab is omitted from the squashfs | # fstab is omitted from the squashfs | ||||||
| grep -v '^/etc/fstab$' $rootfs_dir.filelist >$squashfs_f.filelist | grep -v '^/etc/fstab$' livecd.ubuntu-cpc.rootfs.filelist >$squashfs_f.filelist | ||||||
| 
 | 
 | ||||||
| create_squashfs $rootfs_dir $squashfs_f | create_squashfs $rootfs_dir $squashfs_f | ||||||
|  | |||||||
| @ -11,6 +11,4 @@ fi | |||||||
| # This is the directory created by create-root-dir.binary | # This is the directory created by create-root-dir.binary | ||||||
| rootfs_dir=rootfs.dir | rootfs_dir=rootfs.dir | ||||||
| 
 | 
 | ||||||
| cp $rootfs_dir.manifest livecd.ubuntu-cpc.rootfs.manifest |  | ||||||
| cp $rootfs_dir.filelist livecd.ubuntu-cpc.rootfs.filelist |  | ||||||
| (cd $rootfs_dir/ && tar -c --sort=name --xattrs *) | xz > livecd.ubuntu-cpc.rootfs.tar.xz | (cd $rootfs_dir/ && tar -c --sort=name --xattrs *) | xz > livecd.ubuntu-cpc.rootfs.tar.xz | ||||||
|  | |||||||
| @ -8,3 +8,6 @@ provides livecd.ubuntu-cpc.kernel-generic | |||||||
| provides livecd.ubuntu-cpc.kernel-generic-lpae | provides livecd.ubuntu-cpc.kernel-generic-lpae | ||||||
| provides livecd.ubuntu-cpc.manifest | provides livecd.ubuntu-cpc.manifest | ||||||
| provides livecd.ubuntu-cpc.filelist | provides livecd.ubuntu-cpc.filelist | ||||||
|  | provides livecd.ubuntu-cpc.disk-image.manifest | ||||||
|  | provides livecd.ubuntu-cpc.disk-image.filelist | ||||||
|  | provides livecd.ubuntu-cpc.disk-image.spdx | ||||||
|  | |||||||
| @ -6,3 +6,6 @@ provides livecd.ubuntu-cpc.kernel-generic | |||||||
| provides livecd.ubuntu-cpc.kernel-generic-lpae | provides livecd.ubuntu-cpc.kernel-generic-lpae | ||||||
| provides livecd.ubuntu-cpc.manifest | provides livecd.ubuntu-cpc.manifest | ||||||
| provides livecd.ubuntu-cpc.filelist | provides livecd.ubuntu-cpc.filelist | ||||||
|  | provides livecd.ubuntu-cpc.disk-uefi.manifest | ||||||
|  | provides livecd.ubuntu-cpc.disk-uefi.filelist | ||||||
|  | provides livecd.ubuntu-cpc.disk-uefi.spdx | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
| depends disk-image | depends disk-image | ||||||
| base/qcow2-image.binary | base/qcow2-image.binary | ||||||
| provides livecd.ubuntu-cpc.img | provides livecd.ubuntu-cpc.img | ||||||
|  | provides livecd.ubuntu-cpc.qcow.manifest | ||||||
|  | provides livecd.ubuntu-cpc.qcow.filelist | ||||||
|  | provides livecd.ubuntu-cpc.qcow.spdx | ||||||
|  | |||||||
| @ -3,3 +3,4 @@ base/root-squashfs.binary | |||||||
| provides livecd.ubuntu-cpc.squashfs | provides livecd.ubuntu-cpc.squashfs | ||||||
| provides livecd.ubuntu-cpc.squashfs.manifest | provides livecd.ubuntu-cpc.squashfs.manifest | ||||||
| provides livecd.ubuntu-cpc.squashfs.filelist | provides livecd.ubuntu-cpc.squashfs.filelist | ||||||
|  | provides livecd.ubuntu-cpc.squashfs.spdx | ||||||
| @ -3,3 +3,4 @@ base/root-xz.binary | |||||||
| provides livecd.ubuntu-cpc.rootfs.tar.xz | provides livecd.ubuntu-cpc.rootfs.tar.xz | ||||||
| provides livecd.ubuntu-cpc.rootfs.manifest | provides livecd.ubuntu-cpc.rootfs.manifest | ||||||
| provides livecd.ubuntu-cpc.rootfs.filelist | provides livecd.ubuntu-cpc.rootfs.filelist | ||||||
|  | provides livecd.ubuntu-cpc.rootfs.spdx | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
| depends disk-image | depends disk-image | ||||||
| base/vagrant.binary | base/vagrant.binary | ||||||
| provides livecd.ubuntu-cpc.vagrant.box | provides livecd.ubuntu-cpc.vagrant.box | ||||||
|  | provides livecd.ubuntu-cpc.vagrant.manifest | ||||||
|  | provides livecd.ubuntu-cpc.vagrant.filelist | ||||||
|  | provides livecd.ubuntu-cpc.vagrant.spdx | ||||||
| @ -3,3 +3,6 @@ base/vmdk-image.binary | |||||||
| base/vmdk-ova-image.binary | base/vmdk-ova-image.binary | ||||||
| provides livecd.ubuntu-cpc.vmdk | provides livecd.ubuntu-cpc.vmdk | ||||||
| provides livecd.ubuntu-cpc.ova | provides livecd.ubuntu-cpc.ova | ||||||
|  | provides livecd.ubuntu-cpc.vmdk.manifest | ||||||
|  | provides livecd.ubuntu-cpc.vmdk.filelist | ||||||
|  | provides livecd.ubuntu-cpc.vmdk.spdx | ||||||
| @ -80,6 +80,8 @@ EOF | |||||||
| chroot ${mount_d} chown -R vagrant:vagrant /home/vagrant/.ssh | chroot ${mount_d} chown -R vagrant:vagrant /home/vagrant/.ssh | ||||||
| chroot ${mount_d} chmod 700 /home/vagrant/.ssh | chroot ${mount_d} chmod 700 /home/vagrant/.ssh | ||||||
| 
 | 
 | ||||||
|  | create_manifest $mount_d "livecd.ubuntu-cpc.vagrant.manifest" "livecd.ubuntu-cpc.vagrant.spdx"  "cloud-image-vagrant-$ARCH-$(date +%Y%m%dT%H:%M:%S)" | ||||||
|  | 
 | ||||||
| umount_disk_image "$mount_d" | umount_disk_image "$mount_d" | ||||||
| rmdir "$mount_d" | rmdir "$mount_d" | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -20,8 +20,18 @@ esac | |||||||
| 
 | 
 | ||||||
| . config/functions | . config/functions | ||||||
| 
 | 
 | ||||||
|  | vmdk_file="$PWD/livecd.ubuntu-cpc.vmdk" | ||||||
|  | 
 | ||||||
| if [ -e binary/boot/disk-uefi.ext4 ]; then | if [ -e binary/boot/disk-uefi.ext4 ]; then | ||||||
|     create_vmdk binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.vmdk |     create_vmdk binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.vmdk | ||||||
|  |     uefi_file="livecd.ubuntu-cpc.disk-uefi" | ||||||
|  |     cp ${uefi_file}.manifest ${vmdk_file}.manifest | ||||||
|  |     cp ${uefi_file}.filelist ${vmdk_file}.filelist | ||||||
|  |     cp ${uefi_file}.spdx ${vmdk_file}.spdx | ||||||
| elif [ -f binary/boot/disk.ext4 ]; then | elif [ -f binary/boot/disk.ext4 ]; then | ||||||
|     create_vmdk binary/boot/disk.ext4 livecd.ubuntu-cpc.vmdk |     create_vmdk binary/boot/disk.ext4 livecd.ubuntu-cpc.vmdk | ||||||
|  |     disk_file="livecd.ubuntu-cpc.disk-image" | ||||||
|  |     cp ${disk_file}.manifest ${vmdk_file}.manifest | ||||||
|  |     cp ${disk_file}.filelist ${vmdk_file}.filelist | ||||||
|  |     cp ${disk_file}.spdx ${vmdk_file}.spdx | ||||||
| fi | fi | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user