diff --git a/pkgs/os-specific/linux/dpdk-kmods/default.nix b/pkgs/os-specific/linux/dpdk-kmods/default.nix index a3e4f6663860..1dc026125c3d 100644 --- a/pkgs/os-specific/linux/dpdk-kmods/default.nix +++ b/pkgs/os-specific/linux/dpdk-kmods/default.nix @@ -2,20 +2,13 @@ stdenv.mkDerivation rec { pname = "dpdk-kmods"; - version = "2022-08-29"; + version = "2023-02-05"; src = fetchzip { - url = "https://git.dpdk.org/dpdk-kmods/snapshot/dpdk-kmods-4a589f7bed00fc7009c93d430bd214ac7ad2bb6b.tar.xz"; - sha256 = "sha256-l9asJuw2nl63I1BxK6udy2pNunRiMJxyoXeg9V5+WgI="; + url = "https://git.dpdk.org/dpdk-kmods/snapshot/dpdk-kmods-e721c733cd24206399bebb8f0751b0387c4c1595.tar.xz"; + sha256 = "sha256-AG5Lthp+CPR4R7I23DUmoWAmET8gLEFHHdjk2TUbQn4="; }; - patches = [ - (fetchpatch { - url = "https://git.launchpad.net/ubuntu/+source/dpdk-kmods/plain/debian/patches/0001-support-linux-5.18.patch?id=9d628c02c169d8190bc2cb6afd81e4d364c382cd"; - sha256 = "sha256-j4kpx1DOnmf5lFxOhaVFNT7prEy1jrJERX2NFaybTPU="; - }) - ]; - hardeningDisable = [ "pic" ]; makeFlags = kernel.makeFlags ++ [ @@ -39,5 +32,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2Only; maintainers = [ maintainers.mic92 ]; platforms = platforms.linux; + broken = kernel.isHardened; }; } diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix index 5c20e45ec354..bd5d9db661a8 100644 --- a/pkgs/os-specific/linux/dpdk/default.nix +++ b/pkgs/os-specific/linux/dpdk/default.nix @@ -1,5 +1,4 @@ { stdenv, lib -, kernel , fetchurl , pkg-config, meson, ninja, makeWrapper , libbsd, numactl, libbpf, zlib, elfutils, jansson, openssl, libpcap, rdma-core @@ -13,16 +12,13 @@ ) }: -let - mod = kernel != null; - dpdkVersion = "23.07"; -in stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "dpdk"; - version = "${dpdkVersion}" + lib.optionalString mod "-${kernel.version}"; + version = "23.11"; src = fetchurl { - url = "https://fast.dpdk.org/rel/dpdk-${dpdkVersion}.tar.xz"; - sha256 = "sha256-4IYU6K65KUB9c9cWmZKJpE70A0NSJx8JOX7vkysjs9Y="; + url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; + sha256 = "sha256-ZPpY/fyelRDo5BTjvt0WW9PUykZaIxsoAyP4PNU/2GU="; }; nativeBuildInputs = [ @@ -44,7 +40,7 @@ in stdenv.mkDerivation { openssl.dev zlib python3 - ] ++ lib.optionals mod kernel.moduleBuildDependencies; + ]; propagatedBuildInputs = [ # Propagated to support current DPDK users in nixpkgs which statically link @@ -56,21 +52,15 @@ in stdenv.mkDerivation { postPatch = '' patchShebangs config/arm buildtools - '' + lib.optionalString mod '' - # kernel_install_dir is hardcoded to `/lib/modules`; patch that. - sed -i "s,kernel_install_dir *= *['\"].*,kernel_install_dir = '$kmod/lib/modules/${kernel.modDirVersion}'," kernel/linux/meson.build ''; mesonFlags = [ "-Dtests=false" "-Denable_docs=true" - "-Denable_kmods=${lib.boolToString mod}" + "-Ddeveloper_mode=disabled" ] - # kni kernel driver is currently not compatble with 5.11 - ++ lib.optional (mod && kernel.kernelOlder "5.11") "-Ddisable_drivers=kni" ++ [(if shared then "-Ddefault_library=shared" else "-Ddefault_library=static")] ++ lib.optional (machine != null) "-Dmachine=${machine}" - ++ lib.optional mod "-Dkernel_dir=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ++ lib.optional (withExamples != []) "-Dexamples=${builtins.concatStringsSep "," withExamples}"; postInstall = '' @@ -87,7 +77,6 @@ in stdenv.mkDerivation { outputs = [ "out" "doc" ] - ++ lib.optional mod "kmod" ++ lib.optional (withExamples != []) "examples"; meta = with lib; { @@ -96,6 +85,5 @@ in stdenv.mkDerivation { license = with licenses; [ lgpl21 gpl2 bsd2 ]; platforms = platforms.linux; maintainers = with maintainers; [ magenbluten orivej mic92 zhaofengli ]; - broken = mod && kernel.isHardened; }; } diff --git a/pkgs/os-specific/linux/pktgen/default.nix b/pkgs/os-specific/linux/pktgen/default.nix index b81bf74a3d9e..66971444e71a 100644 --- a/pkgs/os-specific/linux/pktgen/default.nix +++ b/pkgs/os-specific/linux/pktgen/default.nix @@ -18,23 +18,15 @@ stdenv.mkDerivation rec { pname = "pktgen"; - version = "22.07.1"; + version = "23.10.0"; src = fetchFromGitHub { owner = "pktgen"; repo = "Pktgen-DPDK"; rev = "pktgen-${version}"; - sha256 = "sha256-wBLGwVdn3ymUTVv7J/kbQYz4WNIgV246PHg51+FStUo="; + sha256 = "sha256-eujVEU+XkxF1kIGQJoBW3oXXNSqBEzx6mwR2XYoHinM="; }; - patches = [ - (fetchpatch { - # Ealier DPDK deprecated some macros, which were finally removed in >= 22.11 - url = "https://github.com/pktgen/Pktgen-DPDK/commit/089ef94ac04629f7380f5e618443bcacb2cef5ab.patch"; - sha256 = "sha256-ITU/dIfu7QPpdIVYuCuDhDG9rVF+n8i1YYn9bFmQUME="; - }) - ]; - nativeBuildInputs = [ meson ninja pkg-config ]; buildInputs = [ @@ -47,9 +39,7 @@ stdenv.mkDerivation rec { GUI = lib.optionalString withGtk "true"; env.NIX_CFLAGS_COMPILE = toString [ - # Needed with GCC 12 - "-Wno-error=address" - "-Wno-error=use-after-free" + "-Wno-error=sign-compare" ]; # requires symbols from this file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9992f36f040d..c21673e4ff58 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27683,9 +27683,7 @@ with pkgs; cryptodev = linuxPackages.cryptodev; - dpdk = callPackage ../os-specific/linux/dpdk { - kernel = null; # dpdk modules are in linuxPackages.dpdk.kmod - }; + dpdk = callPackage ../os-specific/linux/dpdk { }; keyutils = callPackage ../os-specific/linux/keyutils { }; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index afcec5061a36..4cfba7c9c724 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -309,6 +309,7 @@ in { inherit (pkgs) odp-dpdk pktgen; # added 2018-05 inherit (pkgs) bcc bpftrace; # added 2021-12 inherit (pkgs) oci-seccomp-bpf-hook; # added 2022-11 + inherit (pkgs) dpdk; # added 2024-03 acpi_call = callPackage ../os-specific/linux/acpi-call {}; @@ -345,8 +346,6 @@ in { dpdk-kmods = callPackage ../os-specific/linux/dpdk-kmods { }; - dpdk = pkgs.dpdk.override { inherit kernel; }; - exfat-nofuse = if lib.versionOlder kernel.version "5.8" then callPackage ../os-specific/linux/exfat { } else null; evdi = callPackage ../os-specific/linux/evdi { };