Commit 720ba727 authored by Jörg Thalheim's avatar Jörg Thalheim
Browse files

spdk: 21.10 -> 23.09

parent cd14b733
Loading
Loading
Loading
Loading
+38 −34
Original line number Diff line number Diff line
{ lib, stdenv
, fetchpatch
, fetchFromGitHub
, ncurses
, python3
@@ -10,65 +9,70 @@
, libuuid
, numactl
, openssl
, fetchurl
, pkg-config
, zlib
, libpcap
, libnl
, libelf
, jansson
, ensureNewerSourcesForZipFilesHook
}:

let
  # The old version has some CVEs howver they should not affect SPDK's usage of the framework: https://github.com/NixOS/nixpkgs/pull/171648#issuecomment-1121964568
  dpdk' = dpdk.overrideAttrs (old: rec {
    name = "dpdk-21.11";
    src = fetchurl {
      url = "https://fast.dpdk.org/rel/${name}.tar.xz";
      sha256 = "sha256-Mkbj7WjuKzaaXYviwGzxCKZp4Vf01Bxby7sha/Wr06E=";
    };
  });
in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
  pname = "spdk";
  version = "21.10";

  version = "23.09";

  src = fetchFromGitHub {
    owner = "spdk";
    repo = "spdk";
    rev = "v${version}";
    sha256 = "sha256-pFynTbbSF1g58VD9bOhe3c4oCozeqE+35kECTQwDBDM=";
    sha256 = "sha256-P10NDa+MIEY8B3bu34Dq2keyuv2a24XV5Wf+Ah701b8=";
    fetchSubmodules = true;
  };

  patches = [
    # Backport of upstream patch for ncurses-6.3 support.
    # Will be in next release after 21.10.
    ./ncurses-6.3.patch

    # DPDK 21.11 compatibility.
    (fetchpatch {
      url = "https://github.com/spdk/spdk/commit/f72cab94dd35d7b45ec5a4f35967adf3184ca616.patch";
      sha256 = "sha256-sSetvyNjlM/hSOUsUO3/dmPzAliVcteNDvy34yM5d4A=";
    })
  ];

  nativeBuildInputs = [
    python3
    python3.pkgs.setuptools
    pkg-config
    ensureNewerSourcesForZipFilesHook
  ];

  buildInputs = [
    cunit dpdk' libaio libbsd libuuid numactl openssl ncurses
    cunit
    dpdk
    jansson
    libaio
    libbsd
    libelf
    libuuid
    libpcap
    libnl
    numactl
    openssl
    ncurses
    zlib
  ];

  patches = [
    # https://review.spdk.io/gerrit/c/spdk/spdk/+/20394
    ./setuptools.patch
  ];

  postPatch = ''
    patchShebangs .

    # glibc-2.36 adds arc4random, so we don't need the custom implementation
    # here anymore. Fixed upstream in https://github.com/spdk/spdk/commit/43a3984c6c8fde7201d6c8dfe1b680cb88237269,
    # but the patch doesn't apply here.
    sed -i -e '1i #define HAVE_ARC4RANDOM 1' lib/iscsi/iscsi.c
  '';

  enableParallelBuilding = true;

  configureFlags = [ "--with-dpdk=${dpdk'}" ];
  configureFlags = [
    "--with-dpdk=${dpdk}"
    "--pydir=${placeholder "out"}/${python3.sitePackages}"
  ];

  env.NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
  # otherwise does not find strncpy when compiling
  NIX_LDFLAGS = "-lbsd";
  env.NIX_LDFLAGS = "-lbsd";

  meta = with lib; {
    description = "Set of libraries for fast user-mode storage";
+0 −48
Original line number Diff line number Diff line
Backport of upstream https://review.spdk.io/gerrit/c/spdk/spdk/+/10300
--- a/app/spdk_top/spdk_top.c
+++ b/app/spdk_top/spdk_top.c
@@ -1012 +1012 @@ print_max_len(WINDOW *win, int row, uint16_t col, uint16_t max_len, enum str_ali
-	mvwprintw(win, row, col, tmp_str);
+	mvwprintw(win, row, col, "%s", tmp_str);
@@ -1944 +1944 @@ display_thread(struct rpc_thread_info *thread_info)
-	mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 6, "%" PRIu64,
+	mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 6, "%d",
@@ -1949 +1949 @@ display_thread(struct rpc_thread_info *thread_info)
-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, idle_time);
+		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, "%s", idle_time);
@@ -1951 +1951 @@ display_thread(struct rpc_thread_info *thread_info)
-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, busy_time);
+		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, "%s", busy_time);
@@ -1954 +1954 @@ display_thread(struct rpc_thread_info *thread_info)
-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, idle_time);
+		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, "%s", idle_time);
@@ -1956 +1956 @@ display_thread(struct rpc_thread_info *thread_info)
-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, busy_time);
+		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, "%s", busy_time);
@@ -2111 +2111 @@ show_core(uint8_t current_page)
-	mvwprintw(core_win, 5, CORE_WIN_FIRST_COL + 20, idle_time);
+	mvwprintw(core_win, 5, CORE_WIN_FIRST_COL + 20, "%s", idle_time);
@@ -2118 +2118 @@ show_core(uint8_t current_page)
-	mvwprintw(core_win, 7, CORE_WIN_FIRST_COL + 20, busy_time);
+	mvwprintw(core_win, 7, CORE_WIN_FIRST_COL + 20, "%s", busy_time);
@@ -2124 +2124 @@ show_core(uint8_t current_page)
-		mvwprintw(core_win, i + 10, 1, core_info->threads.thread[i].name);
+		mvwprintw(core_win, i + 10, 1, "%s", core_info->threads.thread[i].name);
@@ -2137 +2137 @@ show_core(uint8_t current_page)
-				mvwprintw(core_win, i + 10, 1, core_info->threads.thread[i].name);
+				mvwprintw(core_win, i + 10, 1, "%s", core_info->threads.thread[i].name);
@@ -2214 +2214 @@ show_poller(uint8_t current_page)
-	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL,
+	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL, "%s",
@@ -2216 +2216 @@ show_poller(uint8_t current_page)
-	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL + 23, poller->thread_name);
+	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL + 23, "%s", poller->thread_name);
@@ -2231 +2231 @@ show_poller(uint8_t current_page)
-		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, poller_period);
+		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, "%s", poller_period);
@@ -2264 +2264 @@ print_bottom_error_message(char *msg)
-	mvprintw(g_max_row - 1, g_max_col - strlen(msg) - 2, msg);
+	mvprintw(g_max_row - 1, g_max_col - strlen(msg) - 2, "%s", msg);
@@ -2434 +2434 @@ show_stats(pthread_t *data_thread)
-			mvprintw(g_max_row - 1, 1, current_page_str);
+			mvprintw(g_max_row - 1, 1, "%s", current_page_str);
+25 −0
Original line number Diff line number Diff line
From 3a72290ba7e2d71ca887225fc0eb8792ca863be2 Mon Sep 17 00:00:00 2001
From: Jörg Thalheim <joerg@thalheim.io>
Date: Tue, 24 Oct 2023 14:30:53 +0200
Subject: [PATCH] python: drop deprecated distutils

This is scheduled for removal in python 3.12: https://docs.python.org/3/whatsnew/3.12.html

Change-Id: I728dc0cf4ed20f22016d3d58cca8aee3af2bcd8b
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
---

diff --git a/python/setup.py b/python/setup.py
index 47e2104..ae4dff7 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -2,8 +2,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright (C) 2023 Intel Corporation.  All rights reserved.
 
-from distutils.core import setup
-from setuptools import find_packages
+from setuptools import setup, find_packages
 from spdk import __version__