From 08b8734576eb198a27a8f5c6ba0dfbb74843071e Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 19 Sep 2013 22:41:33 -0400 Subject: [PATCH] deploy: Remove checksum from generated loader entries The actual deployment checksum shouldn't be in there, because we may just swap bootlinks, rendering the name of the old bootloader entry file invalid. Thankfully nothing actually parsed the names of these files, so let's just use the index. --- src/libostree/ostree-sysroot-deploy.c | 5 ++--- tests/test-admin-deploy-1.sh | 16 ++++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index 8a6fd4ea..e0232dd2 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -850,10 +850,9 @@ install_deployment_kernel (OstreeSysroot *sysroot, bootcsumdir = ot_gfile_resolve_path_printf (bootdir, "ostree/%s-%s", osname, bootcsum); - bootconfpath = ot_gfile_resolve_path_printf (bootdir, "loader.%d/entries/ostree-%s-%s-%d.conf", + bootconfpath = ot_gfile_resolve_path_printf (bootdir, "loader.%d/entries/ostree-%s-%d.conf", new_bootversion, osname, - ostree_deployment_get_csum (deployment), - ostree_deployment_get_bootserial (deployment)); + ostree_deployment_get_index (deployment)); if (!gs_file_ensure_directory (bootcsumdir, TRUE, cancellable, error)) goto out; diff --git a/tests/test-admin-deploy-1.sh b/tests/test-admin-deploy-1.sh index 78d6ce7e..d02752dd 100755 --- a/tests/test-admin-deploy-1.sh +++ b/tests/test-admin-deploy-1.sh @@ -41,9 +41,9 @@ echo "ok deploy command" assert_not_has_dir sysroot/boot/loader.0 assert_has_dir sysroot/boot/loader.1 assert_has_dir sysroot/ostree/boot.1.1 -assert_has_file sysroot/boot/loader/entries/ostree-testos-${rev}-0.conf -assert_file_has_content sysroot/boot/loader/entries/ostree-testos-${rev}-0.conf 'options.* root=LABEL=MOO' -assert_file_has_content sysroot/boot/loader/entries/ostree-testos-${rev}-0.conf 'options.* quiet' +assert_has_file sysroot/boot/loader/entries/ostree-testos-0.conf +assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'options.* root=LABEL=MOO' +assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'options.* quiet' assert_file_has_content sysroot/boot/ostree/testos-${bootcsum}/vmlinuz-3.6.0 'a kernel' assert_file_has_content sysroot/ostree/deploy/testos/deploy/${rev}.0/etc/os-release 'NAME=TestOS' assert_file_has_content sysroot/ostree/boot.1/testos/${bootcsum}/0/etc/os-release 'NAME=TestOS' @@ -60,7 +60,7 @@ assert_not_has_dir sysroot/ostree/boot.0.0 assert_not_has_dir sysroot/ostree/boot.1.0 assert_not_has_dir sysroot/ostree/boot.1.1 # Ensure we propagated kernel arguments from previous deployment -assert_file_has_content sysroot/boot/loader/entries/ostree-testos-${rev}-0.conf 'options.* root=LABEL=MOO' +assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'options.* root=LABEL=MOO' assert_file_has_content sysroot/ostree/deploy/testos/deploy/${rev}.1/etc/os-release 'NAME=TestOS' assert_file_has_content sysroot/ostree/boot.0/testos/${bootcsum}/0/etc/os-release 'NAME=TestOS' ostree admin --sysroot=sysroot status @@ -81,8 +81,8 @@ echo "ok third deploy (swap)" ostree admin --sysroot=sysroot deploy --os=otheros testos/buildmaster/x86_64-runtime assert_not_has_dir sysroot/boot/loader.0 assert_has_dir sysroot/boot/loader.1 -assert_has_file sysroot/boot/loader/entries/ostree-testos-${rev}-0.conf -assert_has_file sysroot/boot/loader/entries/ostree-otheros-${rev}-0.conf +assert_has_file sysroot/boot/loader/entries/ostree-testos-1.conf +assert_has_file sysroot/boot/loader/entries/ostree-otheros-0.conf assert_file_has_content sysroot/ostree/deploy/testos/deploy/${rev}.1/etc/os-release 'NAME=TestOS' assert_file_has_content sysroot/ostree/deploy/otheros/deploy/${rev}.0/etc/os-release 'NAME=TestOS' ostree admin --sysroot=sysroot status @@ -92,9 +92,9 @@ echo "ok independent deploy" ostree admin --sysroot=sysroot deploy --retain --os=testos testos:testos/buildmaster/x86_64-runtime assert_has_dir sysroot/boot/loader.0 assert_not_has_dir sysroot/boot/loader.1 -assert_has_file sysroot/boot/loader/entries/ostree-testos-${rev}-0.conf +assert_has_file sysroot/boot/loader/entries/ostree-testos-0.conf assert_file_has_content sysroot/ostree/deploy/testos/deploy/${rev}.2/etc/os-release 'NAME=TestOS' -assert_has_file sysroot/boot/loader/entries/ostree-testos-${rev}-2.conf +assert_has_file sysroot/boot/loader/entries/ostree-testos-2.conf assert_file_has_content sysroot/ostree/deploy/testos/deploy/${rev}.3/etc/os-release 'NAME=TestOS' ostree admin --sysroot=sysroot status