diff options
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r-- | pkgs/os-specific/linux/apfs/default.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/busybox/default.nix | 10 | ||||
-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 |
5 files changed, 114 insertions, 4 deletions
diff --git a/pkgs/os-specific/linux/apfs/default.nix b/pkgs/os-specific/linux/apfs/default.nix index 98fd83ed5d518..eedaa9ef96872 100644 --- a/pkgs/os-specific/linux/apfs/default.nix +++ b/pkgs/os-specific/linux/apfs/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation { pname = "apfs"; - version = "unstable-2021-09-21-${kernel.version}"; + version = "unstable-2022-02-03-${kernel.version}"; src = fetchFromGitHub { owner = "linux-apfs"; repo = "linux-apfs-rw"; - rev = "362c4e32ab585b9234a26aa3e49f29b605612a31"; - sha256 = "sha256-Y8/PGPLirNrICF+Bum60v/DBPa1xpox5VBvt64myZzs="; + rev = "a0d6a4dca69b6eab3cabaaee4d4284807828a266"; + sha256 = "sha256-3T1BNc6g3SDTxb0VrronLUIp/CWbwnzXTsc8Qk5c4jY="; }; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix index 7aaedb5b1acdc..970129f97390f 100644 --- a/pkgs/os-specific/linux/busybox/default.nix +++ b/pkgs/os-specific/linux/busybox/default.nix @@ -65,6 +65,16 @@ stdenv.mkDerivation rec { patches = [ ./busybox-in-store.patch + (fetchurl { + name = "CVE-2022-28391.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4"; + sha256 = "sha256-yviw1GV+t9tbHbY7YNxEqPi7xEreiXVqbeRyf8c6Awo="; + }) + (fetchurl { + name = "CVE-2022-28391.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4"; + sha256 = "sha256-vl1wPbsHtXY9naajjnTicQ7Uj3N+EQ8pRNnrdsiow+w="; + }) ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch; separateDebugInfo = true; 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 ]; + }; +} |