diff --git a/doc/manual/rl-next/impersonate-linux-26-removed.md b/doc/manual/rl-next/impersonate-linux-26-removed.md new file mode 100644 index 000000000..e16a1f57f --- /dev/null +++ b/doc/manual/rl-next/impersonate-linux-26-removed.md @@ -0,0 +1,14 @@ +--- +synopsis: "`impersonate-linux-26` setting removed" +cls: [5047] +category: "Miscellany" +credits: [horrors] +--- + +Linux 3.0 was released 15 years ago. The `impersonate-linux-26` setting was added +14 years ago with no mention of it being necessary to build anything, only saying +that it improves determinism—which isn't accurate since impersonating Linux 2.6.x +still allows the version string to change, and the final component of the version +does still change with each Linux release. Since this setting should be no longer +necessary in modern systems and workarounds for building old code exist (by using +e.g. `setarch --uname-2.6` to wrap builds) we are removing this setting from Lix. diff --git a/lix/libstore/build/personality.cc b/lix/libstore/build/personality.cc index a9ccc568e..d459ea817 100644 --- a/lix/libstore/build/personality.cc +++ b/lix/libstore/build/personality.cc @@ -28,13 +28,6 @@ void setPersonality(std::string_view system) throw SysError("cannot set 32-bit personality"); } - /* Impersonate a Linux 2.6 machine to get some determinism in - builds that depend on the kernel version. */ - if ((system == "i686-linux" || system == "x86_64-linux") && settings.impersonateLinux26) { - int cur = personality(0xffffffff); - if (cur != -1) personality(cur | 0x0020000 /* == UNAME26 */); - } - /* Disable address space randomization for improved determinism. */ int cur = personality(0xffffffff); diff --git a/lix/libstore/build/personality.hh b/lix/libstore/build/personality.hh index 5b0a2edcc..9834902ca 100644 --- a/lix/libstore/build/personality.hh +++ b/lix/libstore/build/personality.hh @@ -1,10 +1,8 @@ #pragma once ///@file -#include +#include namespace nix { - void setPersonality(std::string_view system); - } diff --git a/lix/libstore/meson.build b/lix/libstore/meson.build index 40eb42aba..fc5ce38d5 100644 --- a/lix/libstore/meson.build +++ b/lix/libstore/meson.build @@ -100,7 +100,6 @@ libstore_setting_definitions = files( 'settings/hashed-mirrors.md', 'settings/id-count.md', 'settings/ignored-acls.md', - 'settings/impersonate-linux-26.md', 'settings/keep-build-log.md', 'settings/keep-derivations.md', 'settings/keep-env-derivations.md', diff --git a/lix/libstore/settings/impersonate-linux-26.md b/lix/libstore/settings/impersonate-linux-26.md deleted file mode 100644 index 620423401..000000000 --- a/lix/libstore/settings/impersonate-linux-26.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: impersonate-linux-26 -internalName: impersonateLinux26 -platforms: [linux] -type: bool -default: false -aliases: [build-impersonate-linux-26] ---- -Whether to impersonate a Linux 2.6 machine on newer kernels.