spdk: 21.10 -> 23.09

This commit is contained in:
Jörg Thalheim
2023-10-24 15:10:09 +02:00
committed by Jörg Thalheim
parent cd14b7330b
commit 720ba727e6
3 changed files with 63 additions and 82 deletions
+38 -34
View File
@@ -1,5 +1,4 @@
{ 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";
@@ -1,48 +0,0 @@
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);
@@ -0,0 +1,25 @@
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__