diff options
48 files changed, 279 insertions, 99 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3f534813908c..030de4b76eee 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1330,6 +1330,12 @@ githubId = 55833; name = "Troels Henriksen"; }; + athre0z = { + email = "joel@zyantific.com"; + github = "athre0z"; + githubId = 6553158; + name = "Joel Höner"; + }; atila = { name = "Átila Saraiva"; email = "atilasaraiva@gmail.com"; diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix index 3eca901bdbf7..aa5861107be2 100644 --- a/nixos/modules/installer/tools/nix-fallback-paths.nix +++ b/nixos/modules/installer/tools/nix-fallback-paths.nix @@ -1,7 +1,7 @@ { - x86_64-linux = "/nix/store/h88w1442c7hzkbw8sgpcsbqp4lhz6l5p-nix-2.12.0"; - i686-linux = "/nix/store/j23527l1c3hfx17nssc0v53sq6c741zs-nix-2.12.0"; - aarch64-linux = "/nix/store/zgzmdymyh934y3r4vqh8z337ba4cwsjb-nix-2.12.0"; - x86_64-darwin = "/nix/store/wnlrzllazdyg1nrw9na497p4w0m7i7mm-nix-2.12.0"; - aarch64-darwin = "/nix/store/7n5yamgzg5dpp5vb6ipdqgfh6cf30wmn-nix-2.12.0"; + x86_64-linux = "/nix/store/vggs4ndlda1bhnldjrs4nm5a2walsnl6-nix-2.13.1"; + i686-linux = "/nix/store/5g6w3p8l8k2mfghxrg48w7fcqbmr3c2p-nix-2.13.1"; + aarch64-linux = "/nix/store/pkbg60qv1w387c80g4xnb6w06461vw3i-nix-2.13.1"; + x86_64-darwin = "/nix/store/jahjn6dvlw5kygqhg6da1b2ydcdak4lx-nix-2.13.1"; + aarch64-darwin = "/nix/store/2qalrx6py8r640wqsldmdf2zsaf8cpsg-nix-2.13.1"; } diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh index 9f609cefe6ea..20fec525e70b 100755 --- a/nixos/modules/installer/tools/nixos-install.sh +++ b/nixos/modules/installer/tools/nixos-install.sh @@ -188,17 +188,6 @@ nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \ mkdir -m 0755 -p "$mountPoint/etc" touch "$mountPoint/etc/NIXOS" -# Create a bind mount for each of the mount points inside the target file -# system. This preserves the validity of their absolute paths after changing -# the root with `nixos-enter`. -# Without this the bootloader installation may fail due to options that -# contain paths referenced during evaluation, like initrd.secrets. -if (( EUID == 0 )); then - mount --rbind --mkdir "$mountPoint" "$mountPoint$mountPoint" - mount --make-rslave "$mountPoint$mountPoint" - trap 'umount -R "$mountPoint$mountPoint" && rmdir "$mountPoint$mountPoint"' EXIT -fi - # Switch to the new system configuration. This will install Grub with # a menu default pointing at the kernel/initrd/etc of the new # configuration. @@ -206,7 +195,20 @@ if [[ -z $noBootLoader ]]; then echo "installing the boot loader..." # Grub needs an mtab. ln -sfn /proc/mounts "$mountPoint"/etc/mtab - NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -- /run/current-system/bin/switch-to-configuration boot + export mountPoint + NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -c "$(cat <<'EOF' + # Create a bind mount for each of the mount points inside the target file + # system. This preserves the validity of their absolute paths after changing + # the root with `nixos-enter`. + # Without this the bootloader installation may fail due to options that + # contain paths referenced during evaluation, like initrd.secrets. + # when not root, re-execute the script in an unshared namespace + mount --rbind --mkdir / "$mountPoint" + mount --make-rslave "$mountPoint" + /run/current-system/bin/switch-to-configuration boot + umount -R "$mountPoint" && rmdir "$mountPoint" +EOF +)" fi # Ask the user to set a root password, but only if the passwd command diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index ea3577f138c2..6741e9d8452b 100755 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -42,7 +42,7 @@ def system_dir(profile: Optional[str], generation: int, specialisation: Optional else: return d -BOOT_ENTRY = """title @distroName@{profile}{specialisation} +BOOT_ENTRY = """title {title} version Generation {generation} {description} linux {kernel} initrd {initrd} @@ -106,14 +106,29 @@ def describe_generation(generation_dir: str) -> str: return description -def write_entry(profile: Optional[str], generation: int, specialisation: Optional[str], machine_id: str) -> None: +def write_entry(profile: Optional[str], generation: int, specialisation: Optional[str], + machine_id: str, current: bool) -> None: kernel = copy_from_profile(profile, generation, specialisation, "kernel") initrd = copy_from_profile(profile, generation, specialisation, "initrd") + + title = "@distroName@{profile}{specialisation}".format( + profile=" [" + profile + "]" if profile else "", + specialisation=" (%s)" % specialisation if specialisation else "") + try: append_initrd_secrets = profile_path(profile, generation, specialisation, "append-initrd-secrets") subprocess.check_call([append_initrd_secrets, "@efiSysMountPoint@%s" % (initrd)]) except FileNotFoundError: pass + except subprocess.CalledProcessError: + if current: + print("failed to create initrd secrets!", file=sys.stderr) + sys.exit(1) + else: + print("warning: failed to create initrd secrets " + f'for "{title} - Configuration {generation}", an older generation', file=sys.stderr) + print("note: this is normal after having removed " + "or renamed a file in `boot.initrd.secrets`", file=sys.stderr) entry_file = "@efiSysMountPoint@/loader/entries/%s" % ( generation_conf_filename(profile, generation, specialisation)) generation_dir = os.readlink(system_dir(profile, generation, specialisation)) @@ -123,8 +138,7 @@ def write_entry(profile: Optional[str], generation: int, specialisation: Optiona with open("%s/kernel-params" % (generation_dir)) as params_file: kernel_params = kernel_params + params_file.read() with open(tmp_path, 'w') as f: - f.write(BOOT_ENTRY.format(profile=" [" + profile + "]" if profile else "", - specialisation=" (%s)" % specialisation if specialisation else "", + f.write(BOOT_ENTRY.format(title=title, generation=generation, kernel=kernel, initrd=initrd, @@ -281,10 +295,11 @@ def main() -> None: remove_old_entries(gens) for gen in gens: try: - write_entry(*gen, machine_id) + is_default = os.readlink(system_dir(*gen)) == args.default_config + write_entry(*gen, machine_id, current=is_default) for specialisation in get_specialisations(*gen): - write_entry(*specialisation, machine_id) - if os.readlink(system_dir(*gen)) == args.default_config: + write_entry(*specialisation, machine_id, current=is_default) + if is_default: write_loader_conf(*gen) except OSError as e: profile = f"profile '{gen.profile}'" if gen.profile else "default profile" diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 50b85560e12c..3adfa979edcc 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -51,7 +51,7 @@ let boot.loader.systemd-boot.enable = true; ''} - boot.initrd.secrets."/etc/secret" = /etc/nixos/secret; + boot.initrd.secrets."/etc/secret" = ./secret; users.users.alice = { isNormalUser = true; diff --git a/pkgs/applications/science/misc/openmvs/default.nix b/pkgs/applications/science/misc/openmvs/default.nix new file mode 100644 index 000000000000..031f1655b0af --- /dev/null +++ b/pkgs/applications/science/misc/openmvs/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, eigen, opencv, cgal, ceres-solver, boost, vcg, glfw, zstd }: + +let + boostWithZstd = boost.overrideAttrs (old: { + buildInputs = old.buildInputs ++ [ zstd ]; + }); +in +stdenv.mkDerivation rec { + version = "2.1.0"; + pname = "openmvs"; + + src = fetchFromGitHub { + owner = "cdcseacave"; + repo = "openmvs"; + rev = "v${version}"; + sha256 = "sha256-eqNprBgR0hZnbLKLZLJqjemKxHhDtGblmaSxYlmegsc="; + fetchSubmodules = true; + }; + + # SSE is enabled by default + cmakeFlags = lib.optional (!stdenv.isx86_64) "-DOpenMVS_USE_SSE=OFF"; + + buildInputs = [ eigen opencv cgal ceres-solver vcg glfw boostWithZstd ]; + + nativeBuildInputs = [ cmake pkg-config ]; + + meta = { + description = "Open Multi-View Stereo reconstruction library"; + homepage = "https://github.com/cdcseacave/openMVS"; + license = lib.licenses.agpl3Only; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ bouk ]; + }; +} diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix index ea06107ed7ca..174094dedea4 100644 --- a/pkgs/applications/version-management/fossil/default.nix +++ b/pkgs/applications/version-management/fossil/default.nix @@ -3,6 +3,7 @@ , tcl , libiconv , fetchurl +, buildPackages , zlib , openssl , readline @@ -23,6 +24,9 @@ stdenv.mkDerivation rec { sha256 = "1knff50rr8f39myxj50fprb9ya87cslmwz7zzfya56l33r7i7jh3"; }; + # required for build time tool `./tools/translate.c` + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ installShellFiles tcl tcllib ]; buildInputs = [ zlib openssl readline which ed ] diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix index 894f14ba440a..b1373a7098b1 100644 --- a/pkgs/applications/version-management/gitea/default.nix +++ b/pkgs/applications/version-management/gitea/default.nix @@ -15,12 +15,12 @@ buildGoPackage rec { pname = "gitea"; - version = "1.18.1"; + version = "1.18.2"; # not fetching directly from the git repo, because that lacks several vendor files for the web UI src = fetchurl { url = "https://dl.gitea.io/gitea/${version}/gitea-src-${version}.tar.gz"; - sha256 = "sha256-FUliQ77P0WiwB1dWHDY3FjeJdHhUAcs/97JKXBdEdl0="; + hash = "sha256-NqlY5s3tZT9HO6X0knlTPwoY6tMsYm9SyH3CEZpIcy0="; }; patches = [ diff --git a/pkgs/applications/window-managers/fvwm/3.nix b/pkgs/applications/window-managers/fvwm/3.nix index 2e458c84f5f6..a0cddeff23ac 100644 --- a/pkgs/applications/window-managers/fvwm/3.nix +++ b/pkgs/applications/window-managers/fvwm/3.nix @@ -31,13 +31,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "fvwm3"; - version = "1.0.5"; + version = "1.0.6a"; src = fetchFromGitHub { owner = "fvwmorg"; repo = "fvwm3"; rev = finalAttrs.version; - hash = "sha256-/2Ssl/sgKCXbUCtKj2WIcvEC3B16h5/1Jp87AggKxJo="; + hash = "sha256-uYkIuMzhaWeCZm5aJF4oBYD72OLgwCBuUhDqpg6HQUM="; }; nativeBuildInputs = [ diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index 6b9d6e905bf2..45ae3eba9b44 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -25,6 +25,7 @@ , nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" , propagateDoc ? bintools != null && bintools ? man , extraPackages ? [], extraBuildCommands ? "" +, isGNU ? bintools.isGNU or false, isLLVM ? bintools.isLLVM or false , buildPackages ? {} , targetPackages ? {} , useMacosReexportHack ? false @@ -108,7 +109,7 @@ stdenv.mkDerivation { passthru = { inherit targetPrefix suffixSalt; - inherit bintools libc nativeTools nativeLibc nativePrefix; + inherit bintools libc nativeTools nativeLibc nativePrefix isGNU isLLVM; emacsBufferSetup = pkgs: '' ; We should handle propagation here too diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index b2c2ac9875aa..2751501901f2 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -13,7 +13,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , gnatboot ? null @@ -202,7 +202,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl enableLTO enableMultilib diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix index 0724eedc29c8..265e696523da 100644 --- a/pkgs/development/compilers/gcc/11/default.nix +++ b/pkgs/development/compilers/gcc/11/default.nix @@ -13,7 +13,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , gnatboot ? null @@ -206,7 +206,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl enableLTO enableMultilib diff --git a/pkgs/development/compilers/gcc/12/default.nix b/pkgs/development/compilers/gcc/12/default.nix index 4287e4d67d45..7e1847ebba98 100644 --- a/pkgs/development/compilers/gcc/12/default.nix +++ b/pkgs/development/compilers/gcc/12/default.nix @@ -13,7 +13,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , libucontext ? null @@ -250,7 +250,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl enableLTO enableMultilib diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index e0c30f35a13d..042e561a2e36 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -12,7 +12,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , cloog ? null, isl ? null # optional, for the Graphite optimization framework. , zlib ? null, boehmgc ? null , zip ? null, unzip ? null, pkg-config ? null @@ -207,7 +207,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl cloog enableLTO diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index d886cc84ecaf..8420cfdde7d5 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -12,7 +12,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , cloog ? null, isl ? null # optional, for the Graphite optimization framework. , zlib ? null, boehmgc ? null , zip ? null, unzip ? null, pkg-config ? null @@ -227,7 +227,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl cloog enableLTO diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index f82070153b78..66b53c6d5b5e 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -14,7 +14,7 @@ , texinfo ? null , flex , perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null, boehmgc ? null , gnatboot ? null @@ -238,7 +238,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl enableLTO enableMultilib diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index 076eec21a142..8fd990f95ffb 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -11,7 +11,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , enableMultilib ? false @@ -206,7 +206,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - gmp mpfr libmpc isl + binutils gmp mpfr libmpc isl enableLTO enableMultilib diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index 18054c8c19b9..2dc141b529fc 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -11,7 +11,7 @@ , enableLTO ? !stdenv.hostPlatform.isStatic , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf +, gmp, mpfr, libmpc, gettext, which, patchelf, binutils , isl ? null # optional, for the Graphite optimization framework. , zlib ? null , enableMultilib ? false @@ -188,7 +188,7 @@ stdenv.mkDerivation ({ crossStageStatic libcCross threadsCross version - |