diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/spdk')
3 files changed, 65 insertions, 21 deletions
diff --git a/nixpkgs/pkgs/development/libraries/spdk/default.nix b/nixpkgs/pkgs/development/libraries/spdk/default.nix index ec20f68b6f48..e4884b85b4ae 100644 --- a/nixpkgs/pkgs/development/libraries/spdk/default.nix +++ b/nixpkgs/pkgs/development/libraries/spdk/default.nix @@ -1,7 +1,6 @@ { lib, stdenv -, fetchurl -, fetchFromGitHub , fetchpatch +, fetchFromGitHub , ncurses , python3 , cunit @@ -15,15 +14,27 @@ stdenv.mkDerivation rec { pname = "spdk"; - version = "21.07"; + version = "21.10"; src = fetchFromGitHub { owner = "spdk"; repo = "spdk"; rev = "v${version}"; - sha256 = "sha256-/hynuYVdzIfiHUUfuuOY8SBJ18DqJr2Fos2JjQQVvbg="; + sha256 = "sha256-pFynTbbSF1g58VD9bOhe3c4oCozeqE+35kECTQwDBDM="; }; + 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 ]; @@ -36,6 +47,8 @@ stdenv.mkDerivation rec { patchShebangs . ''; + enableParallelBuilding = true; + configureFlags = [ "--with-dpdk=${dpdk}" ]; NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile. diff --git a/nixpkgs/pkgs/development/libraries/spdk/ncurses-6.3.patch b/nixpkgs/pkgs/development/libraries/spdk/ncurses-6.3.patch new file mode 100644 index 000000000000..174c9b6435ef --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/spdk/ncurses-6.3.patch @@ -0,0 +1,48 @@ +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); diff --git a/nixpkgs/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch b/nixpkgs/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch deleted file mode 100644 index 9cc6d89ce50e..000000000000 --- a/nixpkgs/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch +++ /dev/null @@ -1,17 +0,0 @@ -1. dpdk built with meson generates rte_build_config.h rather than rte_config.h. -2. dpdk configured with libbsd requires that dependents link with libbsd. - ---- a/lib/env_dpdk/env.mk -+++ b/lib/env_dpdk/env.mk -@@ -140,6 +140,9 @@ endif - --ifneq (,$(wildcard $(DPDK_INC_DIR)/rte_config.h)) --ifneq (,$(shell grep -e "define RTE_LIBRTE_VHOST_NUMA 1" -e "define RTE_EAL_NUMA_AWARE_HUGEPAGES 1" $(DPDK_INC_DIR)/rte_config.h)) -+ifneq (,$(wildcard $(DPDK_INC_DIR)/rte_build_config.h)) -+ifneq (,$(shell grep -e "define RTE_LIBRTE_VHOST_NUMA 1" -e "define RTE_EAL_NUMA_AWARE_HUGEPAGES 1" $(DPDK_INC_DIR)/rte_build_config.h)) - ENV_LINKER_ARGS += -lnuma - endif -+ifneq (,$(shell grep -e "define RTE_USE_LIBBSD 1" $(DPDK_INC_DIR)/rte_build_config.h)) -+ENV_LINKER_ARGS += -lbsd -+endif - endif |