forked from mirrors/nixpkgs
Merge pull request #209829 from notgne2/fix/systemd-boot-always-profile-path
nixos/systemd-boot: always use profile_path() for system closure paths
This commit is contained in:
commit
ac93edb3ac
|
@ -85,18 +85,18 @@ def copy_from_profile(profile: Optional[str], generation: int, specialisation: O
|
||||||
return efi_file_path
|
return efi_file_path
|
||||||
|
|
||||||
|
|
||||||
def describe_generation(generation_dir: str) -> str:
|
def describe_generation(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
|
||||||
try:
|
try:
|
||||||
with open("%s/nixos-version" % generation_dir) as f:
|
with open(profile_path(profile, generation, specialisation, "nixos-version")) as f:
|
||||||
nixos_version = f.read()
|
nixos_version = f.read()
|
||||||
except IOError:
|
except IOError:
|
||||||
nixos_version = "Unknown"
|
nixos_version = "Unknown"
|
||||||
|
|
||||||
kernel_dir = os.path.dirname(os.path.realpath("%s/kernel" % generation_dir))
|
kernel_dir = os.path.dirname(profile_path(profile, generation, specialisation, "kernel"))
|
||||||
module_dir = glob.glob("%s/lib/modules/*" % kernel_dir)[0]
|
module_dir = glob.glob("%s/lib/modules/*" % kernel_dir)[0]
|
||||||
kernel_version = os.path.basename(module_dir)
|
kernel_version = os.path.basename(module_dir)
|
||||||
|
|
||||||
build_time = int(os.path.getctime(generation_dir))
|
build_time = int(os.path.getctime(system_dir(profile, generation, specialisation)))
|
||||||
build_date = datetime.datetime.fromtimestamp(build_time).strftime('%F')
|
build_date = datetime.datetime.fromtimestamp(build_time).strftime('%F')
|
||||||
|
|
||||||
description = "@distroName@ {}, Linux Kernel {}, Built on {}".format(
|
description = "@distroName@ {}, Linux Kernel {}, Built on {}".format(
|
||||||
|
@ -131,11 +131,10 @@ def write_entry(profile: Optional[str], generation: int, specialisation: Optiona
|
||||||
"or renamed a file in `boot.initrd.secrets`", file=sys.stderr)
|
"or renamed a file in `boot.initrd.secrets`", file=sys.stderr)
|
||||||
entry_file = "@efiSysMountPoint@/loader/entries/%s" % (
|
entry_file = "@efiSysMountPoint@/loader/entries/%s" % (
|
||||||
generation_conf_filename(profile, generation, specialisation))
|
generation_conf_filename(profile, generation, specialisation))
|
||||||
generation_dir = os.readlink(system_dir(profile, generation, specialisation))
|
|
||||||
tmp_path = "%s.tmp" % (entry_file)
|
tmp_path = "%s.tmp" % (entry_file)
|
||||||
kernel_params = "init=%s/init " % generation_dir
|
kernel_params = "init=%s " % profile_path(profile, generation, specialisation, "init")
|
||||||
|
|
||||||
with open("%s/kernel-params" % (generation_dir)) as params_file:
|
with open(profile_path(profile, generation, specialisation, "kernel-params")) as params_file:
|
||||||
kernel_params = kernel_params + params_file.read()
|
kernel_params = kernel_params + params_file.read()
|
||||||
with open(tmp_path, 'w') as f:
|
with open(tmp_path, 'w') as f:
|
||||||
f.write(BOOT_ENTRY.format(title=title,
|
f.write(BOOT_ENTRY.format(title=title,
|
||||||
|
@ -143,7 +142,7 @@ def write_entry(profile: Optional[str], generation: int, specialisation: Optiona
|
||||||
kernel=kernel,
|
kernel=kernel,
|
||||||
initrd=initrd,
|
initrd=initrd,
|
||||||
kernel_params=kernel_params,
|
kernel_params=kernel_params,
|
||||||
description=describe_generation(generation_dir)))
|
description=describe_generation(profile, generation, specialisation)))
|
||||||
if machine_id is not None:
|
if machine_id is not None:
|
||||||
f.write("machine-id %s\n" % machine_id)
|
f.write("machine-id %s\n" % machine_id)
|
||||||
os.rename(tmp_path, entry_file)
|
os.rename(tmp_path, entry_file)
|
||||||
|
@ -296,7 +295,7 @@ def main() -> None:
|
||||||
remove_old_entries(gens)
|
remove_old_entries(gens)
|
||||||
for gen in gens:
|
for gen in gens:
|
||||||
try:
|
try:
|
||||||
is_default = os.readlink(system_dir(*gen)) == args.default_config
|
is_default = os.path.dirname(profile_path(*gen, "init")) == args.default_config
|
||||||
write_entry(*gen, machine_id, current=is_default)
|
write_entry(*gen, machine_id, current=is_default)
|
||||||
for specialisation in get_specialisations(*gen):
|
for specialisation in get_specialisations(*gen):
|
||||||
write_entry(*specialisation, machine_id, current=is_default)
|
write_entry(*specialisation, machine_id, current=is_default)
|
||||||
|
|
Loading…
Reference in a new issue