From 00ccef7a0725d96f8a18d6c3cbb76100945ae7ab Mon Sep 17 00:00:00 2001 From: "Gerd v. Egidy" Date: Wed, 23 Nov 2022 22:46:05 +0100 Subject: [PATCH] add sysresccd/.imageinfo file to the iso image, allows systemrescue-usbwriter to determine compatibility The upcoming systemrescue-usbwriter should work mostly independent of SystemRescue .iso version and one systemrescue-usbwriter version should work for a wide range of SystemRescue versions. For this to work, it has to exactly determine compatibility without any crude guesswork. The necessary info for this is stored in the imageinfo file. It also contains a "FORMAT_EPOCH" field that allows to explicitly declare incompatibility to older versions of systemrescue-usbwriter in case automatic compatibility detection based on syslinux version etc. doesn't work. --- build.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/build.sh b/build.sh index 33cfc05..12a5f96 100755 --- a/build.sh +++ b/build.sh @@ -12,6 +12,7 @@ iso_label="RESCUE${iso_mainver//.}" iso_publisher="SystemRescue " iso_application="SystemRescue" install_dir=sysresccd +image_info_file="${install_dir}/.imageinfo" work_dir=work out_dir=out gpg_key= @@ -385,6 +386,20 @@ make_prepare() { # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps) } +# Create the .imageinfo file, used by systemrescue-usbwriter to check compatibility +make_imageinfo() { + local syslinux_ver=$(grep -E "^syslinux " "${work_dir}/${arch}/airootfs/root/packages-list.txt" | sed -e "s#syslinux \(.*\)#\1#") + + echo "# SystemRescue imageinfo - used by systemrescue-usbwriter to check compatibility" >"${work_dir}/iso/${image_info_file}" + echo "NAME=SystemRescue" >>"${work_dir}/iso/${image_info_file}" + echo "VERSION=${iso_version}" >>"${work_dir}/iso/${image_info_file}" + echo "ARCH=${arch}" >>"${work_dir}/iso/${image_info_file}" + echo "SYSLINUX_VERSION=${syslinux_ver}" >>"${work_dir}/iso/${image_info_file}" + echo "" >>"${work_dir}/iso/${image_info_file}" + echo "# FORMAT_EPOCH can be used to explicitly declare incompatibility" >>"${work_dir}/iso/${image_info_file}" + echo "FORMAT_EPOCH=1" >>"${work_dir}/iso/${image_info_file}" +} + # Build ISO make_iso() { # Copy version file @@ -451,4 +466,5 @@ run_once make_isolinux run_once make_efi run_once make_efiboot run_once make_prepare +run_once make_imageinfo run_once make_iso