go-musicfox: 4.5.7 -> 4.6.0 (#364326)
[NixPkgs.git] / pkgs / os-specific / linux / udisks / 2-default.nix
blob9672e77615422893e2536a774f882adee3352358
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   substituteAll,
6   pkg-config,
7   gnused,
8   autoreconfHook,
9   gtk-doc,
10   acl,
11   systemd,
12   glib,
13   libatasmart,
14   polkit,
15   coreutils,
16   bash,
17   which,
18   expat,
19   libxslt,
20   docbook_xsl,
21   util-linux,
22   mdadm,
23   libgudev,
24   libblockdev,
25   parted,
26   gobject-introspection,
27   docbook_xml_dtd_412,
28   docbook_xml_dtd_43,
29   xfsprogs,
30   f2fs-tools,
31   dosfstools,
32   e2fsprogs,
33   btrfs-progs,
34   exfat,
35   nilfs-utils,
36   ntfs3g,
37   nixosTests,
40 stdenv.mkDerivation rec {
41   pname = "udisks";
42   version = "2.10.1";
44   src = fetchFromGitHub {
45     owner = "storaged-project";
46     repo = "udisks";
47     rev = "${pname}-${version}";
48     sha256 = "sha256-L8jr1+SJWsCizkPXC8VKDy2eVa7/FpqdB8SkBYq6vwc=";
49   };
51   outputs = [
52     "out"
53     "man"
54     "dev"
55   ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "devdoc";
57   patches = [
58     (substituteAll {
59       src = ./fix-paths.patch;
60       bash = "${bash}/bin/bash";
61       false = "${coreutils}/bin/false";
62       mdadm = "${mdadm}/bin/mdadm";
63       mkswap = "${util-linux}/bin/mkswap";
64       sed = "${gnused}/bin/sed";
65       sh = "${bash}/bin/sh";
66       sleep = "${coreutils}/bin/sleep";
67       swapon = "${util-linux}/bin/swapon";
68       true = "${coreutils}/bin/true";
69     })
70     (substituteAll {
71       src = ./force-path.patch;
72       path = lib.makeBinPath [
73         btrfs-progs
74         coreutils
75         dosfstools
76         e2fsprogs
77         exfat
78         f2fs-tools
79         nilfs-utils
80         xfsprogs
81         ntfs3g
82         parted
83         util-linux
84       ];
85     })
86   ];
88   strictDeps = true;
89   # pkg-config had to be in both to find gtk-doc and gobject-introspection
90   depsBuildBuild = [ pkg-config ];
91   nativeBuildInputs = [
92     autoreconfHook
93     which
94     gobject-introspection
95     pkg-config
96     gtk-doc
97     libxslt
98     docbook_xml_dtd_412
99     docbook_xml_dtd_43
100     docbook_xsl
101   ];
103   postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
104     substituteInPlace udisks/udisksclient.c \
105       --replace 'defined( __GNUC_PREREQ)' 1 \
106       --replace '__GNUC_PREREQ(4,6)' 1
107   '';
109   buildInputs = [
110     expat
111     libgudev
112     libblockdev
113     acl
114     systemd
115     glib
116     libatasmart
117     polkit
118     util-linux
119   ];
121   preConfigure = "NOCONFIGURE=1 ./autogen.sh";
123   configureFlags = [
124     (lib.enableFeature (stdenv.buildPlatform == stdenv.hostPlatform) "gtk-doc")
125     "--sysconfdir=/etc"
126     "--localstatedir=/var"
127     "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
128     "--with-udevdir=$(out)/lib/udev"
129     "--with-tmpfilesdir=no"
130   ];
132   makeFlags = [
133     "INTROSPECTION_GIRDIR=$(dev)/share/gir-1.0"
134     "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
135   ];
137   installFlags = [
138     "sysconfdir=${placeholder "out"}/etc"
139   ];
141   enableParallelBuilding = true;
143   doCheck = true;
145   passthru = {
146     inherit libblockdev;
147     tests.vm = nixosTests.udisks2;
148   };
150   meta = with lib; {
151     description = "Daemon, tools and libraries to access and manipulate disks, storage devices and technologies";
152     homepage = "https://www.freedesktop.org/wiki/Software/udisks/";
153     license = with licenses; [
154       lgpl2Plus
155       gpl2Plus
156     ]; # lgpl2Plus for the library, gpl2Plus for the tools & daemon
157     maintainers = teams.freedesktop.members ++ (with maintainers; [ johnazoidberg ]);
158     platforms = platforms.linux;
159   };