Merge pull request #260867 from helsinki-systems/upd/xfsprogs

xfsprogs: 6.4.0 -> 6.6.0
This commit is contained in:
ajs124 2024-03-29 14:00:29 +01:00 committed by GitHub
commit b2d16906b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 20 additions and 10 deletions

View File

@ -284,6 +284,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.

View File

@ -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" ])))
)
)
)

View File

@ -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

View File

@ -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")

View File

@ -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")

View File

@ -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" ];