From b30d1cad9bdf925b976b5d038a3ad741a70267c6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 6 Jan 2021 11:59:53 +0100 Subject: mkarchiso: add version information To date the iso version was used for iso volume information and iso file name. In my custom builds I do use it a lot more: * Inside the root fs: The system knows about its own version. I use this to: -> report the version to a server (poor man's inventory) -> let the system update itself * On the iso fs: The files are served via rsync, running systems transfer version file first to check for available update. * A grub environment file on the iso fs: Booting the iso from grub allows to create cow directory per version: loopback loop archlinux.iso load_env -f (loop)/arch/grubenv linux (loop)/arch/boot/x86_64/vmlinuz-linux ... \ cow_directory=archlinux/${VERSION} ... So let's just create these files. --- archiso/mkarchiso | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'archiso') diff --git a/archiso/mkarchiso b/archiso/mkarchiso index b83f104..edad3a8 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -834,11 +834,19 @@ _set_overrides() { _msg_info "Done!" } - _export_gpg_publickey() { gpg --batch --output "${work_dir}/pubkey.gpg" --export "${gpg_key}" } +_make_version() { + install -d -m 0755 -- "${isofs_dir}/${install_dir}" + _msg_info "Creating files with iso version..." + printf '%s\n' "${iso_version}" > "${airootfs_dir}/version" + printf '%s\n' "${iso_version}" > "${isofs_dir}/${install_dir}/version" + printf '%.1024s' "$(printf '# GRUB Environment Block\nVERSION=%s\n%s' "${iso_version}" \ + "$(printf '%0.1s' "#"{1..1024})")" > "${isofs_dir}/${install_dir}/grubenv" + _msg_info "Done!" +} _make_pkglist() { install -d -m 0755 -- "${isofs_dir}/${install_dir}" @@ -867,6 +875,7 @@ _build_profile() { [[ -n "${gpg_key}" ]] && _run_once _export_gpg_publickey _run_once _make_custom_airootfs _run_once _make_packages + _run_once _make_version _run_once _make_customize_airootfs _run_once _make_pkglist _make_bootmodes -- cgit v1.2.3-70-g09d2