git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #107597 from helsinki-systems/upd/xfsprogs

xfsprogs: 4.19 -> 5.10

commite78177e55e84f2863b3f7d37da2c3213f6d81917 authorajs124 <ajs124@users.noreply.github.com> dateSat 2 Jan 2021, 23:55 (6 years ago) parentcef3df2a2267f6
2 files changed+23−25
nixos/doc/manual/release-notes/rl-2103.xml+8 pkgs/tools/filesystems/xfsprogs/default.nix+15−25
nixos/doc/manual/release-notes/rl-2103.xml+8
@@ -168,6 +168,14 @@
168168 <literal>/var/lib/powerdns</literal> to <literal>/run/pdns</literal>.
169169 </para>
170170 </listitem>
171+ <listitem>
172+ <para>
173+ xfsprogs was update from 4.19 to 5.10. It now enables reflink support by default on filesystem creation.
174+ Support for reflinks was added with an experimental status to kernel 4.9 and deemed stable in kernel 4.16.
175+ 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
176+ with <literal>mkfs.xfs -m reflink=0</literal>.
177+ </para>
178+ </listitem>
171179 <listitem>
172180 <para>
173181 <package>btc1</package> has been abandoned upstream, and removed.
pkgs/tools/filesystems/xfsprogs/default.nix+15−25
@@ -1,22 +1,14 @@
1−{ stdenv, buildPackages, fetchpatch, fetchgit, autoconf, automake, gettext, libtool, pkgconfig
2−, icu, libuuid, readline
1+{ stdenv, buildPackages, fetchpatch, fetchurl, autoconf, automake, gettext, libtool, pkgconfig
2+, icu, libuuid, readline, inih
33}:
44
5−let
6− gentooPatch = name: sha256: fetchpatch {
7− url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/xfsprogs/files/${name}?id=2517dd766cf84d251631f4324f7ec4bce912abb9";
8− inherit sha256;
9− };
10−in
11−
125stdenv.mkDerivation rec {
136 pname = "xfsprogs";
14− version = "4.19.0";
7+ version = "5.10.0";
158
16− src = fetchgit {
17− url = "https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git";
18− rev = "v${version}";
19− sha256 = "18728hzfxr1bg4bdzqlxjs893ac1zwlfr7nmc2q4a1sxs0sphd1d";
9+ src = fetchurl {
10+ url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
11+ sha256 = "1schqzjx836jd54l10pqds7hyli2m77df3snk95xbr23dpj1fh70";
2012 };
2113
2214 outputs = [ "bin" "dev" "out" "doc" ];
@@ -26,26 +18,24 @@ stdenv.mkDerivation rec {
2618 autoconf automake libtool gettext pkgconfig
2719 libuuid # codegen tool uses libuuid
2820 ];
29− buildInputs = [ readline icu ];
21+ buildInputs = [ readline icu inih ];
3022 propagatedBuildInputs = [ libuuid ]; # Dev headers include <uuid/uuid.h>
3123
3224 enableParallelBuilding = true;
3325
34− # Why is all this garbage needed? Why? Why?
35− patches = [
36− (gentooPatch "xfsprogs-4.15.0-sharedlibs.patch" "0bv2naxpiw7vcsg8p1v2i47wgfda91z1xy1kfwydbp4wmb4nbyyv")
37− (gentooPatch "xfsprogs-4.15.0-docdir.patch" "1srgdidvq2ka0rmfdwpqp92fapgh53w1h7rajm4nnby5vp2v8dfr")
38− (gentooPatch "xfsprogs-4.9.0-underlinking.patch" "1r7l8jphspy14i43zbfnjrnyrdm4cpgyfchblascxylmans0gci7")
39− ];
40−
26+ # @sbindir@ is replaced with /run/current-system/sw/bin to fix dependency cycles
4127 preConfigure = ''
42− sed -i Makefile -e '/cp include.install-sh/d'
28+ for file in scrub/{xfs_scrub_all.cron.in,xfs_scrub@.service.in,xfs_scrub_all.service.in}; do
29+ substituteInPlace "$file" \
30+ --replace '@sbindir@' '/run/current-system/sw/bin'
31+ done
4332 make configure
33+ patchShebangs ./install-sh
4434 '';
4535
4636 configureFlags = [
4737 "--disable-lib64"
48− "--enable-readline"
38+ "--with-systemd-unit-dir=${placeholder "out"}/lib/systemd/system"
4939 ];
5040
5141 installFlags = [ "install-dev" ];
@@ -60,6 +50,6 @@ stdenv.mkDerivation rec {
6050 description = "SGI XFS utilities";
6151 license = licenses.lgpl21;
6252 platforms = platforms.linux;
63− maintainers = with maintainers; [ dezgeg ];
53+ maintainers = with maintainers; [ dezgeg ajs124 ];
6454 };
6555}