Merge pull request #166997 from Artturin/udiskss
This commit is contained in:
commit
aab655c554
|
@ -4,6 +4,13 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
settingsFormat = pkgs.formats.ini {
|
||||||
|
listToValue = concatMapStringsSep "," (generators.mkValueStringDefault {});
|
||||||
|
};
|
||||||
|
configFiles = mapAttrs (name: value: (settingsFormat.generate name value)) (mapAttrs' (name: value: nameValuePair name value ) config.services.udisks2.settings);
|
||||||
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
@ -21,6 +28,36 @@ with lib;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings = mkOption rec {
|
||||||
|
type = types.attrsOf settingsFormat.type;
|
||||||
|
apply = recursiveUpdate default;
|
||||||
|
default = {
|
||||||
|
"udisks2.conf" = {
|
||||||
|
udisks2 = {
|
||||||
|
modules = [ "*" ];
|
||||||
|
modules_load_preference = "ondemand";
|
||||||
|
};
|
||||||
|
defaults = {
|
||||||
|
encryption = "luks2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
example = literalExpression ''
|
||||||
|
{
|
||||||
|
"WDC-WD10EZEX-60M2NA0-WD-WCC3F3SJ0698.conf" = {
|
||||||
|
ATA = {
|
||||||
|
StandbyTimeout = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Options passed to udisksd.
|
||||||
|
See <link xlink:href="http://manpages.ubuntu.com/manpages/latest/en/man5/udisks2.conf.5.html">here</link> and
|
||||||
|
drive configuration in <link xlink:href="http://manpages.ubuntu.com/manpages/latest/en/man8/udisks.8.html">here</link> for supported options.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -32,6 +69,8 @@ with lib;
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.udisks2 ];
|
environment.systemPackages = [ pkgs.udisks2 ];
|
||||||
|
|
||||||
|
environment.etc = mapAttrs' (name: value: nameValuePair "udisks2/${name}" { source = value; } ) configFiles;
|
||||||
|
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
||||||
services.dbus.packages = [ pkgs.udisks2 ];
|
services.dbus.packages = [ pkgs.udisks2 ];
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, substituteAll, libtool, pkg-config, gettext, gnused
|
{ lib, stdenv, fetchFromGitHub, substituteAll, pkg-config, gnused, autoreconfHook
|
||||||
, gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash, which
|
, gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash, which
|
||||||
, expat, libxslt, docbook_xsl, util-linux, mdadm, libgudev, libblockdev, parted
|
, expat, libxslt, docbook_xsl, util-linux, mdadm, libgudev, libblockdev, parted
|
||||||
, gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43, autoconf, automake
|
, gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43
|
||||||
, xfsprogs, f2fs-tools, dosfstools, e2fsprogs, btrfs-progs, exfat, nilfs-utils, ntfs3g
|
, xfsprogs, f2fs-tools, dosfstools, e2fsprogs, btrfs-progs, exfat, nilfs-utils, ntfs3g
|
||||||
|
, nixosTests
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -41,8 +42,11 @@ stdenv.mkDerivation rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
# pkg-config had to be in both to find gtk-doc and gobject-introspection
|
||||||
|
depsBuildBuild = [ pkg-config ];
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
autoconf automake pkg-config libtool gettext which gobject-introspection
|
autoreconfHook which gobject-introspection pkg-config
|
||||||
gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl
|
gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -60,6 +64,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
(lib.enableFeature (stdenv.buildPlatform == stdenv.hostPlatform) "gtk-doc")
|
(lib.enableFeature (stdenv.buildPlatform == stdenv.hostPlatform) "gtk-doc")
|
||||||
|
"--sysconfdir=/etc"
|
||||||
"--localstatedir=/var"
|
"--localstatedir=/var"
|
||||||
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
|
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
|
||||||
"--with-udevdir=$(out)/lib/udev"
|
"--with-udevdir=$(out)/lib/udev"
|
||||||
|
@ -71,10 +76,16 @@ stdenv.mkDerivation rec {
|
||||||
"INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
|
"INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
installFlags = [
|
||||||
|
"sysconfdir=${placeholder "out"}/etc"
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
|
passthru.tests.vm = nixosTests.udisks2;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A daemon, tools and libraries to access and manipulate disks, storage devices and technologies";
|
description = "A daemon, tools and libraries to access and manipulate disks, storage devices and technologies";
|
||||||
homepage = "https://www.freedesktop.org/wiki/Software/udisks/";
|
homepage = "https://www.freedesktop.org/wiki/Software/udisks/";
|
||||||
|
|
Loading…
Reference in a new issue