Comment 50 for bug 2033308

Revision history for this message
Catherine Redfield (catred) wrote :

FOCAL

# Pull unpatched live-build
catred@canonical:~/code/live-build$ git status
On branch applied/ubuntu/focal
Your branch is up to date with 'origin/applied/ubuntu/focal'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
 lb_chroot_archives-preferences_test.patch

nothing added to commit but untracked files present (use "git add" to track)
catred@canonical:~/code/live-build$ quilt import lb_chroot_archives-preferences_test.patch
Importing patch lb_chroot_archives-preferences_test.patch (stored as patches/lb_chroot_archives-preferences_test.patch)
catred@canonical:~/code/live-build$ quilt push
Applying patch patches/lb_chroot_archives-preferences_test.patch
patching file scripts/build/lb_chroot
patching file scripts/build/lb_chroot_create_preferences

Now at patch patches/lb_chroot_archives-preferences_test.patch

# Create an image using unpatched live-build
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ export LIVECD_ROOTFS_DIR="/home/catred/code/livecd-rootfs"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ export LIVECD_ROOTFS_LOCAL_DIR="/home/catred/code/livecd-rootfs"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ export LIVE_BUILD_DIR="/home/catred/code/live-build"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ ubuntu-bartender --build-provider aws --livecd-rootfs-branch ubuntu/focalmaster -- --series focal --project ubuntu-cpc --image-target disk-image --subproject minimized
Sourcing configuration file: /home/catred/.ubuntu-bartender.rc
Creating ruling-imp-ubuntu-bartender on AWS... with profile default in region us-east-1 using catred-cpc-jenkins keypair
Preparing ingredients... in /home/catred/ubuntu-bartender-multipass.ZG9BxVoBmL
LIVECD_ROOTFS_DIR is set, copying /home/catred/code/livecd-rootfs to /home/catred/ubuntu-bartender-multipass.ZG9BxVoBmL/livecd-rootfs ...
LIVE_BUILD_DIR is set, copying /home/catred/code/live-build to /home/catred/ubuntu-bartender-multipass.ZG9BxVoBmL/live-build ...
UBUNTU_OLD_FASHIONED_DIR is set, copying /home/catred/code/ubuntu-old-fashioned to /home/catred/ubuntu-bartender-multipass.ZG9BxVoBmL/ubuntu-old-fashioned ...
uploading ingredients.tar.gz to ruling-imp-ubuntu-bartender ...
extracting ingredients.tar.gz in ruling-imp-ubuntu-bartender ...
remove ingredients.tar.gz in ruling-imp-ubuntu-bartender as it is no longer required ...
removed 'ingredients.tar.gz'
Mixing drink...
(See progress in ruling-imp-ubuntu-bartender.log)
Pouring ruling-imp-ubuntu-on-the-rocks.tar.gz...
Cleaning up...
Destroying ruling-imp-ubuntu-bartender on AWS...
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ grep 'Creating dummy preferences' ruling-imp-ubuntu-bartender.log
+ Echo_message Creating dummy preferences.d files...
+ STRING=Creating dummy preferences.d files...
P:+ printf Creating dummy preferences.d files...\n
 Creating dummy preferences.d files...

# Download and extract the patched live-build
# Add testing patch to live-build so behaviour is apparent
catred@canonical:~/packaging/cpc3057backport/focal/live-build$ quilt import ~/code/live-build/lb_chroot_archives-preferences_test.patch
Importing patch /home/catred/code/live-build/lb_chroot_archives-preferences_test.patch (stored as patches/lb_chroot_archives-preferences_test.patch)
catred@canonical:~/packaging/cpc3057backport/focal/live-build$ quilt push
Applying patch patches/lb_chroot_archives-preferences_test.patch
patching file scripts/build/lb_chroot
patching file scripts/build/lb_chroot_create_preferences

Now at patch patches/lb_chroot_archives-preferences_test.patch

# Create an image using unpatched live-build
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ export LIVECD_ROOTFS_DIR="/home/catred/code/livecd-rootfs"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ export LIVECD_ROOTFS_LOCAL_DIR="/home/catred/code/livecd-rootfs"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ export LIVE_BUILD_DIR="/home/catred/packaging/cpc3057backport/focal/live-build"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ ubuntu-bartender --build-provider aws --livecd-rootfs-branch ubuntu/focalmaster -- --series focal --project ubuntu-cpc --image-target disk-image --subproject minimized
Sourcing configuration file: /home/catred/.ubuntu-bartender.rc
Creating in-lamb-ubuntu-bartender on AWS... with profile default in region us-east-1 using catred-cpc-jenkins keypair
Preparing ingredients... in /home/catred/ubuntu-bartender-multipass.gUiLmIJ8iM
LIVECD_ROOTFS_DIR is set, copying /home/catred/code/livecd-rootfs to /home/catred/ubuntu-bartender-multipass.gUiLmIJ8iM/livecd-rootfs ...
LIVE_BUILD_DIR is set, copying /home/catred/packaging/cpc3057backport/focal/live-build to /home/catred/ubuntu-bartender-multipass.gUiLmIJ8iM/live-build ...
UBUNTU_OLD_FASHIONED_DIR is set, copying /home/catred/code/ubuntu-old-fashioned to /home/catred/ubuntu-bartender-multipass.gUiLmIJ8iM/ubuntu-old-fashioned ...
uploading ingredients.tar.gz to in-lamb-ubuntu-bartender ...
extracting ingredients.tar.gz in in-lamb-ubuntu-bartender ...
remove ingredients.tar.gz in in-lamb-ubuntu-bartender as it is no longer required ...
removed 'ingredients.tar.gz'
Mixing drink...
(See progress in in-lamb-ubuntu-bartender.log)
Pouring in-lamb-ubuntu-on-the-rocks.tar.gz...
Cleaning up...
Destroying in-lamb-ubuntu-bartender on AWS...
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ grep 'Creating dummy preferences' in-lamb-ubuntu-bartender.log
+ Echo_message Creating dummy preferences.d files...
+ STRING=Creating dummy preferences.d files...
P:+ printf Creating dummy preferences.d files...\n
 Creating dummy preferences.d files...

# Mount the two images
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ tar xvzf ruling-imp-ubuntu-on-the-rocks.tar.gz
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ mv build.output build.output-unpatched
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ tar xvzf in-lamb-ubuntu-on-the-rocks.tar.gz
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ mv build.output build.output-patched
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ mkdir --parents --verbose ./mount-unpatched && sudo mount ./build.output-unpatched/livecd.ubuntu-cpc.ext4 ./mount-unpatched
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ mkdir --parents --verbose ./mount-patched && sudo mount ./build.output-patched/livecd.ubuntu-cpc.ext4 ./mount-patched

# Diff manifests (should be identical -- they were)
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ diff build.output-patched/livecd.ubuntu-cpc.manifest build.output-unpatched/livecd.ubuntu-cpc.manifest

# Create and diff filelists (patched version will have /etc/apt/preferences.d/99dummy; unpatched will not)
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ (cd "./mount-unpatched" && sudo find -xdev) > "unpatched.filelist"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ sort unpatched.filelist > unpatched.filelist.sorted
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ (cd "./mount-patched" && sudo find -xdev) > "patched.filelist"
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ sort patched.filelist > patched.filelist.sorted
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ diff patched.filelist.sorted unpatched.filelist.sorted
230d229
< ./etc/apt/preferences.d/99dummy

# Collect artifacts
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ sudo umount ./mount-unpatched
catred@canonical:~/builds/live-build-3057/patch_validation/focal$ sudo umount ./mount-patched
catred@canonical:~/builds/live-build-3057/patch_validation$ tar czf lp2033308-focal-validation.tar.gz focal