diff options
author | 7c6f434c <7c6f434c@mail.ru> | 2022-04-05 12:06:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-05 12:06:48 +0000 |
commit | e2fd6015148c26a7180d68416dc262fb952217a8 (patch) | |
tree | 7c6ff91d48e325ce912435b352ac83d337e342af /pkgs/os-specific/linux | |
parent | 0c7c76fa9e2f5c7b446c1182c79eabac08588392 (diff) | |
parent | 4b3ebfb126c3652dda4a1ca9d43647d88fe6ae1d (diff) |
Merge pull request #154981 from helsinki-systems/feat/lvm2-vdo
(k)vdo: init
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r-- | pkgs/os-specific/linux/kvdo/default.nix | 31 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/common.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/linux/vdo/default.nix | 64 |
3 files changed, 101 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/kvdo/default.nix b/pkgs/os-specific/linux/kvdo/default.nix new file mode 100644 index 0000000000000..74895e11bd5aa --- /dev/null +++ b/pkgs/os-specific/linux/kvdo/default.nix @@ -0,0 +1,31 @@ +{ stdenv, lib, fetchFromGitHub, vdo, kernel }: + +stdenv.mkDerivation rec { + inherit (vdo) version; + pname = "kvdo"; + + src = fetchFromGitHub { + owner = "dm-vdo"; + repo = "kvdo"; + rev = version; + sha256 = "1xl7dwcqx00w1gbpb6vlkn8nchyfj1fsc8c06vgda0sgxp7qs5gn"; + }; + + dontConfigure = true; + enableParallelBuilding = true; + + KSRC = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + INSTALL_MOD_PATH = placeholder "out"; + + preBuild = '' + makeFlags="$makeFlags -C ${KSRC} M=$(pwd)" +''; + installTargets = [ "modules_install" ]; + + meta = with lib; { + inherit (vdo.meta) license maintainers; + homepage = "https://github.com/dm-vdo/kvdo"; + description = "A pair of kernel modules which provide pools of deduplicated and/or compressed block storage"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix index 07e8c9cb02da2..7ba08e7d90342 100644 --- a/pkgs/os-specific/linux/lvm2/common.nix +++ b/pkgs/os-specific/linux/lvm2/common.nix @@ -11,6 +11,7 @@ , enableDmeventd ? false , udevSupport ? !stdenv.hostPlatform.isStatic, udev ? null , onlyLib ? stdenv.hostPlatform.isStatic +, enableVDO ? false, vdo ? null , nixosTests }: @@ -18,7 +19,7 @@ assert enableDmeventd -> enableCmdlib; stdenv.mkDerivation rec { - pname = "lvm2" + lib.optionalString enableDmeventd "-with-dmeventd"; + pname = "lvm2" + lib.optionalString enableDmeventd "-with-dmeventd" + lib.optionalString enableVDO "-with-vdo"; inherit version; src = fetchurl { @@ -33,6 +34,8 @@ stdenv.mkDerivation rec { udev ] ++ lib.optionals (!onlyLib) [ libuuid + ] ++ lib.optionals enableVDO [ + vdo ]; configureFlags = [ @@ -58,6 +61,8 @@ stdenv.mkDerivation rec { "--enable-udev_sync" ] ++ lib.optionals stdenv.hostPlatform.isStatic [ "--enable-static_link" + ] ++ lib.optionals enableVDO [ + "--enable-vdo" ]; preConfigure = '' diff --git a/pkgs/os-specific/linux/vdo/default.nix b/pkgs/os-specific/linux/vdo/default.nix new file mode 100644 index 0000000000000..1904445d4c2c5 --- /dev/null +++ b/pkgs/os-specific/linux/vdo/default.nix @@ -0,0 +1,64 @@ +{ lib, stdenv +, fetchFromGitHub +, installShellFiles +, libuuid +, lvm2_dmeventd # <libdevmapper-event.h> +, zlib +, python3 +}: + +stdenv.mkDerivation rec { + pname = "vdo"; + version = "8.1.1.360"; # kvdo uses this! + + src = fetchFromGitHub { + owner = "dm-vdo"; + repo = pname; + rev = version; + sha256 = "1zp8aaw0diramnlx5z96jcpbm6x0r204xf1vwq6k21rzcazczkwv"; + }; + + nativeBuildInputs = [ + installShellFiles + ]; + + buildInputs = [ + libuuid + lvm2_dmeventd + zlib + python3.pkgs.wrapPython + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pyyaml + ]; + + pythonPath = propagatedBuildInputs; + + makeFlags = [ + "DESTDIR=${placeholder "out"}" + "INSTALLOWNER=" + # all of these paths are relative to DESTDIR and have defaults that don't work for us + "bindir=/bin" + "defaultdocdir=/share/doc" + "mandir=/share/man" + "python3_sitelib=${python3.sitePackages}" + ]; + + enableParallelBuilding = true; + + postInstall = '' + installShellCompletion --bash $out/bash_completion.d/* + rm -r $out/bash_completion.d + + wrapPythonPrograms + ''; + + meta = with lib; { + homepage = "https://github.com/dm-vdo/vdo"; + description = "A set of userspace tools for managing pools of deduplicated and/or compressed block storage"; + platforms = platforms.linux; + license = with licenses; [ gpl2Plus ]; + maintainers = with maintainers; [ ajs124 ]; + }; +} |