From da6bfeee123d493d726da240eb03e67227eae804 Mon Sep 17 00:00:00 2001 From: ajs124 Date: Fri, 13 Oct 2023 12:59:26 +0200 Subject: [PATCH] xfsprogs: 6.4.0 -> 6.6.0 https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?id=7a7b09c2b027b6f45de61c6e56b36154c1138c0c --- nixos/doc/manual/release-notes/rl-2405.section.md | 4 ++++ nixos/tests/lvm2/default.nix | 7 ++++++- nixos/tests/lvm2/systemd-stage-1.nix | 6 +++--- nixos/tests/lvm2/thinpool.nix | 5 +++-- nixos/tests/lvm2/vdo.nix | 4 ++-- pkgs/tools/filesystems/xfsprogs/default.nix | 4 ++-- 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index b6af5fc6c3cc..11be524225e6 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -148,6 +148,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - `services.archisteamfarm` no longer uses the abbreviation `asf` for its state directory (`/var/lib/asf`), user and group (both `asf`). Instead the long name `archisteamfarm` is used. Configurations with `system.stateVersion` 23.11 or earlier, default to the old stateDirectory until the 24.11 release and must either set the option explicitly or move the data to the new directory. +- `xfsprogs` was updated to version 6.6.0, which enables reverse mapping (rmapbt) and large extent counts (nrext64) by default. + Support for these features was added in kernel 4.9 and 5.19 and nrext64 was deemed stable in kernel 6.5. + Format your filesystems with `mkfs.xfs -i nrext64=0`, if they need to be readable by GRUB2 before 2.12 or kernels older than 5.19. + - `networking.iproute2.enable` now does not set `environment.etc."iproute2/rt_tables".text`. Setting `environment.etc."iproute2/{CONFIG_FILE_NAME}".text` will override the whole configuration file instead of appending it to the upstream configuration file. diff --git a/nixos/tests/lvm2/default.nix b/nixos/tests/lvm2/default.nix index e0358ec2806f..84f24cbc3859 100644 --- a/nixos/tests/lvm2/default.nix +++ b/nixos/tests/lvm2/default.nix @@ -36,9 +36,14 @@ lib.listToAttrs ( lib.flip lib.concatMap kernelVersionsToTest (version: let v' = lib.replaceStrings [ "." ] [ "_" ] version; + mkXfsFlags = lib.optionalString (lib.versionOlder version "5.10") " -m bigtime=0 -m inobtcount=0 " + + lib.optionalString (lib.versionOlder version "5.19") " -i nrext64=0 "; in lib.flip lib.mapAttrsToList tests (name: t: - lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test ({ kernelPackages = pkgs."linuxPackages_${v'}"; } // builtins.removeAttrs t [ "test" "kernelFilter" ]))) + lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test ({ + kernelPackages = pkgs."linuxPackages_${v'}"; + inherit mkXfsFlags; + } // builtins.removeAttrs t [ "test" "kernelFilter" ]))) ) ) ) diff --git a/nixos/tests/lvm2/systemd-stage-1.nix b/nixos/tests/lvm2/systemd-stage-1.nix index 1c95aadfcb3f..7f106e1b0dd6 100644 --- a/nixos/tests/lvm2/systemd-stage-1.nix +++ b/nixos/tests/lvm2/systemd-stage-1.nix @@ -1,4 +1,4 @@ -{ kernelPackages ? null, flavour }: let +{ kernelPackages ? null, flavour, mkXfsFlags ? "" }: let preparationCode = { raid = '' machine.succeed("vgcreate test_vg /dev/vdb /dev/vdc") @@ -71,7 +71,7 @@ in import ../make-test-python.nix ({ pkgs, lib, ... }: { boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - environment.systemPackages = with pkgs; [ e2fsprogs ]; # for mkfs.ext4 + environment.systemPackages = with pkgs; [ xfsprogs ]; boot = { initrd.systemd = { enable = true; @@ -88,7 +88,7 @@ in import ../make-test-python.nix ({ pkgs, lib, ... }: { machine.wait_for_unit("multi-user.target") # Create a VG for the root ${preparationCode} - machine.succeed("mkfs.ext4 /dev/test_vg/test_lv") + machine.succeed("mkfs.xfs ${mkXfsFlags} /dev/test_vg/test_lv") machine.succeed("mkdir -p /mnt && mount /dev/test_vg/test_lv /mnt && echo hello > /mnt/test && umount /mnt") # Boot from LVM diff --git a/nixos/tests/lvm2/thinpool.nix b/nixos/tests/lvm2/thinpool.nix index f49c8980613c..325bb87460b7 100644 --- a/nixos/tests/lvm2/thinpool.nix +++ b/nixos/tests/lvm2/thinpool.nix @@ -1,4 +1,4 @@ -{ kernelPackages ? null }: +{ kernelPackages ? null, mkXfsFlags ? "" }: import ../make-test-python.nix ({ pkgs, lib, ... }: { name = "lvm2-thinpool"; meta.maintainers = lib.teams.helsinki-systems.members; @@ -18,7 +18,8 @@ import ../make-test-python.nix ({ pkgs, lib, ... }: { }; testScript = let - mkXfsFlags = lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.10") "-m bigtime=0 -m inobtcount=0"; + mkXfsFlags = lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.10") " -m bigtime=0 -m inobtcount=0 " + + lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.19") " -i nrext64=0 "; in '' machine.succeed("vgcreate test_vg /dev/vdb") machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool") diff --git a/nixos/tests/lvm2/vdo.nix b/nixos/tests/lvm2/vdo.nix index 75c1fc094e97..18d25b7b366d 100644 --- a/nixos/tests/lvm2/vdo.nix +++ b/nixos/tests/lvm2/vdo.nix @@ -1,4 +1,4 @@ -{ kernelPackages ? null }: +{ kernelPackages ? null, mkXfsFlags ? "" }: import ../make-test-python.nix ({ pkgs, lib, ... }: { name = "lvm2-vdo"; meta.maintainers = lib.teams.helsinki-systems.members; @@ -17,7 +17,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }: { testScript = '' machine.succeed("vgcreate test_vg /dev/vdb") machine.succeed("lvcreate --type vdo -n vdo_lv -L 6G -V 12G test_vg/vdo_pool_lv") - machine.succeed("mkfs.xfs -K /dev/test_vg/vdo_lv") + machine.succeed("mkfs.xfs ${mkXfsFlags} -K /dev/test_vg/vdo_lv") machine.succeed("mkdir /mnt; mount /dev/test_vg/vdo_lv /mnt") assert "/dev/mapper/test_vg-vdo_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip() machine.succeed("umount /mnt") diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix index c8c80e5ff777..ed37898d7198 100644 --- a/pkgs/tools/filesystems/xfsprogs/default.nix +++ b/pkgs/tools/filesystems/xfsprogs/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "xfsprogs"; - version = "6.4.0"; + version = "6.6.0"; src = fetchurl { url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz"; - hash = "sha256-wxhoQYv79Jo6nEf8cM3/3p2W9P8AUb0EoIgeZlRkgQQ="; + hash = "sha256-UMovRnbfj6tMtMPvPdUS1VUeaETUCmWjHVuOA1k9It8="; }; outputs = [ "bin" "dev" "out" "doc" ];