From a2267f6341b9673fdef3931e6751c5766f2152ee Mon Sep 17 00:00:00 2001 From: ajs124 Date: Fri, 25 Dec 2020 22:06:59 +0100 Subject: [PATCH] xfsprogs: 4.19 -> 5.10 --- nixos/doc/manual/release-notes/rl-2103.xml | 8 +++++ pkgs/tools/filesystems/xfsprogs/default.nix | 40 ++++++++------------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml index 38262b50899..17817b506aa 100644 --- a/nixos/doc/manual/release-notes/rl-2103.xml +++ b/nixos/doc/manual/release-notes/rl-2103.xml @@ -168,6 +168,14 @@ /var/lib/powerdns to /run/pdns. + + + xfsprogs was update from 4.19 to 5.10. It now enables reflink support by default on filesystem creation. + Support for reflinks was added with an experimental status to kernel 4.9 and deemed stable in kernel 4.16. + If you want to be able to mount XFS filesystems created with this release of xfsprogs on kernel releases older than those, you need to format them + with mkfs.xfs -m reflink=0. + + btc1 has been abandoned upstream, and removed. diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix index 95e95ff6a18..2b0e6048741 100644 --- a/pkgs/tools/filesystems/xfsprogs/default.nix +++ b/pkgs/tools/filesystems/xfsprogs/default.nix @@ -1,22 +1,14 @@ -{ stdenv, buildPackages, fetchpatch, fetchgit, autoconf, automake, gettext, libtool, pkgconfig -, icu, libuuid, readline +{ stdenv, buildPackages, fetchpatch, fetchurl, autoconf, automake, gettext, libtool, pkgconfig +, icu, libuuid, readline, inih }: -let - gentooPatch = name: sha256: fetchpatch { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/xfsprogs/files/${name}?id=2517dd766cf84d251631f4324f7ec4bce912abb9"; - inherit sha256; - }; -in - stdenv.mkDerivation rec { pname = "xfsprogs"; - version = "4.19.0"; + version = "5.10.0"; - src = fetchgit { - url = "https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git"; - rev = "v${version}"; - sha256 = "18728hzfxr1bg4bdzqlxjs893ac1zwlfr7nmc2q4a1sxs0sphd1d"; + src = fetchurl { + url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz"; + sha256 = "1schqzjx836jd54l10pqds7hyli2m77df3snk95xbr23dpj1fh70"; }; outputs = [ "bin" "dev" "out" "doc" ]; @@ -26,26 +18,24 @@ stdenv.mkDerivation rec { autoconf automake libtool gettext pkgconfig libuuid # codegen tool uses libuuid ]; - buildInputs = [ readline icu ]; + buildInputs = [ readline icu inih ]; propagatedBuildInputs = [ libuuid ]; # Dev headers include enableParallelBuilding = true; - # Why is all this garbage needed? Why? Why? - patches = [ - (gentooPatch "xfsprogs-4.15.0-sharedlibs.patch" "0bv2naxpiw7vcsg8p1v2i47wgfda91z1xy1kfwydbp4wmb4nbyyv") - (gentooPatch "xfsprogs-4.15.0-docdir.patch" "1srgdidvq2ka0rmfdwpqp92fapgh53w1h7rajm4nnby5vp2v8dfr") - (gentooPatch "xfsprogs-4.9.0-underlinking.patch" "1r7l8jphspy14i43zbfnjrnyrdm4cpgyfchblascxylmans0gci7") - ]; - + # @sbindir@ is replaced with /run/current-system/sw/bin to fix dependency cycles preConfigure = '' - sed -i Makefile -e '/cp include.install-sh/d' + for file in scrub/{xfs_scrub_all.cron.in,xfs_scrub@.service.in,xfs_scrub_all.service.in}; do + substituteInPlace "$file" \ + --replace '@sbindir@' '/run/current-system/sw/bin' + done make configure + patchShebangs ./install-sh ''; configureFlags = [ "--disable-lib64" - "--enable-readline" + "--with-systemd-unit-dir=${placeholder "out"}/lib/systemd/system" ]; installFlags = [ "install-dev" ]; @@ -60,6 +50,6 @@ stdenv.mkDerivation rec { description = "SGI XFS utilities"; license = licenses.lgpl21; platforms = platforms.linux; - maintainers = with maintainers; [ dezgeg ]; + maintainers = with maintainers; [ dezgeg ajs124 ]; }; }