diff --git a/.gitignore b/.gitignore index 12601b4..a156c81 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /libnvme-1.5.tar.gz /libnvme-1.6.tar.gz /libnvme-1.7.1.tar.gz +/libnvme-1.9.tar.gz diff --git a/libnvme-1.10-linux-Fix-uninitialized-variables.patch b/libnvme-1.10-linux-Fix-uninitialized-variables.patch new file mode 100644 index 0000000..7368d5a --- /dev/null +++ b/libnvme-1.10-linux-Fix-uninitialized-variables.patch @@ -0,0 +1,40 @@ +From 91f7671ca54a200d652b9b9f34915325313511f5 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Fri, 3 May 2024 17:19:39 +0200 +Subject: [PATCH] linux: Fix uninitialized variables +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In file included from ../src/nvme/linux.c:40: +In function ‘freep’, + inlined from ‘nvme_get_telemetry_log’ at ../src/nvme/linux.c:169:23: +../src/nvme/cleanup.h:24:9: warning: ‘log’ may be used uninitialized [-Wmaybe-uninitialized] + 24 | free(*(void **)p); + | ^~~~~~~~~~~~~~~~~ +../src/nvme/linux.c: In function ‘nvme_get_telemetry_log’: +../src/nvme/linux.c:169:30: note: ‘log’ was declared here + 169 | _cleanup_free_ void *log; + | ^~~ + +Signed-off-by: Tomas Bzatek +--- + src/nvme/linux.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/nvme/linux.c b/src/nvme/linux.c +index 25196fd5..35976011 100644 +--- a/src/nvme/linux.c ++++ b/src/nvme/linux.c +@@ -166,7 +166,7 @@ int nvme_get_telemetry_log(int fd, bool create, bool ctrl, bool rae, size_t max_ + + struct nvme_telemetry_log *telem; + enum nvme_cmd_get_log_lid lid; +- _cleanup_free_ void *log; ++ _cleanup_free_ void *log = NULL; + void *tmp; + int err; + size_t dalb; +-- +2.44.0 + diff --git a/libnvme-1.8.0-initialize_autoclean_vars-2.patch b/libnvme-1.8.0-initialize_autoclean_vars-2.patch deleted file mode 100644 index 43ed32a..0000000 --- a/libnvme-1.8.0-initialize_autoclean_vars-2.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 74324a4120a44120556af41eb9480c5b2492d1fb Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 9 Feb 2024 17:38:45 +0100 -Subject: [PATCH] linux: Explicitly initialize auto-cleanup variables - -gcc complains about potentially uninitialized variables. - -Signed-off-by: Tomas Bzatek ---- - src/nvme/linux.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/nvme/linux.c b/src/nvme/linux.c -index f0723193..e29d9e72 100644 ---- a/src/nvme/linux.c -+++ b/src/nvme/linux.c -@@ -725,7 +725,7 @@ int nvme_gen_dhchap_key(char *hostnqn, enum nvme_hmac_alg hmac, - unsigned char *key) - { - const char hmac_seed[] = "NVMe-over-Fabrics"; -- _cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx; -+ _cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx = NULL; - const EVP_MD *md; - - ENGINE_load_builtin_engines(); -@@ -881,7 +881,7 @@ int nvme_gen_dhchap_key(char *hostnqn, enum nvme_hmac_alg hmac, - { - const char hmac_seed[] = "NVMe-over-Fabrics"; - OSSL_PARAM params[2], *p = params; -- _cleanup_ossl_lib_ctx_ OSSL_LIB_CTX *lib_ctx; -+ _cleanup_ossl_lib_ctx_ OSSL_LIB_CTX *lib_ctx = NULL; - _cleanup_evp_mac_ctx_ EVP_MAC_CTX *mac_ctx = NULL; - _cleanup_evp_mac_ EVP_MAC *mac = NULL; - char *progq = NULL; --- -2.43.0 - diff --git a/libnvme-1.8.0-initialize_autoclean_vars.patch b/libnvme-1.8.0-initialize_autoclean_vars.patch deleted file mode 100644 index 962b1aa..0000000 --- a/libnvme-1.8.0-initialize_autoclean_vars.patch +++ /dev/null @@ -1,222 +0,0 @@ -From ca3193cf4d2a756512007d2c23202d6844e1840d Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 29 Dec 2023 18:37:41 +0100 -Subject: [PATCH 1/4] fabrics: Explicitly initialize auto-cleanup variables -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -gcc complains about potentially uninitialized variables used -in the cleanup function even though such scenario is unlikely -to happen. Still, an explicit initializer makes the warnings -go away. - -E.g. - -../src/nvme/fabrics.c: In function ‘nvmf_hostnqn_generate’: -../src/nvme/fabrics.c:1297:30: note: ‘stream’ was declared here - 1297 | _cleanup_file_ FILE *stream; - | ^~~~~~ -In function ‘cleanup_fd’, - inlined from ‘uuid_from_device_tree’ at ../src/nvme/fabrics.c:1189:19, - inlined from ‘nvmf_hostnqn_generate’ at ../src/nvme/fabrics.c:1350:9: -../src/nvme/cleanup.h:37:17: warning: ‘f’ may be used uninitialized [-Wmaybe-uninitialized] - 37 | close(*fd); - | ^~~~~~~~~~ - -Signed-off-by: Tomas Bzatek ---- - src/nvme/fabrics.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/nvme/fabrics.c b/src/nvme/fabrics.c -index 4e042d84..20142116 100644 ---- a/src/nvme/fabrics.c -+++ b/src/nvme/fabrics.c -@@ -740,7 +740,7 @@ static int __nvmf_supported_options(nvme_root_t r) - - static int __nvmf_add_ctrl(nvme_root_t r, const char *argstr) - { -- _cleanup_fd_ int fd; -+ _cleanup_fd_ int fd = -1; - int ret, len = strlen(argstr); - char buf[0x1000], *options, *p; - -@@ -1186,7 +1186,7 @@ struct nvmf_discovery_log *nvmf_get_discovery_wargs(struct nvme_get_discovery_ar - static int uuid_from_device_tree(char *system_uuid) - { - ssize_t len; -- _cleanup_fd_ int f; -+ _cleanup_fd_ int f = -1; - - f = open(PATH_UUID_IBM, O_RDONLY); - if (f < 0) -@@ -1230,7 +1230,7 @@ static bool is_dmi_uuid_valid(const char *buf, size_t len) - static int uuid_from_dmi_entries(char *system_uuid) - { - int f; -- _cleanup_dir_ DIR *d; -+ _cleanup_dir_ DIR *d = NULL; - struct dirent *de; - char buf[512] = {0}; - -@@ -1294,7 +1294,7 @@ static int uuid_from_dmi_entries(char *system_uuid) - */ - static int uuid_from_product_uuid(char *system_uuid) - { -- _cleanup_file_ FILE *stream; -+ _cleanup_file_ FILE *stream = NULL; - ssize_t nread; - _cleanup_free_ char *line = NULL; - size_t len = 0; -@@ -1364,7 +1364,7 @@ char *nvmf_hostnqn_generate() - static char *nvmf_read_file(const char *f, int len) - { - char buf[len]; -- _cleanup_fd_ int fd; -+ _cleanup_fd_ int fd = -1; - int ret; - - fd = open(f, O_RDONLY); -@@ -1637,7 +1637,7 @@ static const char *dctype_str[] = { - */ - static int nvme_fetch_cntrltype_dctype_from_id(nvme_ctrl_t c) - { -- _cleanup_free_ struct nvme_id_ctrl *id; -+ _cleanup_free_ struct nvme_id_ctrl *id = NULL; - int ret; - - id = __nvme_alloc(sizeof(*id)); - -From fdb6415f5e9f7a18380633a1c797aca00d9daccb Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 29 Dec 2023 18:49:25 +0100 -Subject: [PATCH 2/4] linux: Explicitly initialize auto-cleanup variables - -gcc complains about potentially uninitialized variables. - -Signed-off-by: Tomas Bzatek ---- - src/nvme/linux.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/nvme/linux.c b/src/nvme/linux.c -index 163086ea..074c27e0 100644 ---- a/src/nvme/linux.c -+++ b/src/nvme/linux.c -@@ -124,7 +124,7 @@ int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset, - - int nvme_get_telemetry_max(int fd, enum nvme_telemetry_da *da, size_t *data_tx) - { -- _cleanup_free_ struct nvme_id_ctrl *id_ctrl; -+ _cleanup_free_ struct nvme_id_ctrl *id_ctrl = NULL; - int err; - - id_ctrl = __nvme_alloc(sizeof(*id_ctrl)); -@@ -385,7 +385,7 @@ int nvme_namespace_detach_ctrls(int fd, __u32 nsid, __u16 num_ctrls, - - int nvme_get_ana_log_len(int fd, size_t *analen) - { -- _cleanup_free_ struct nvme_id_ctrl *ctrl; -+ _cleanup_free_ struct nvme_id_ctrl *ctrl = NULL; - int ret; - - ctrl = __nvme_alloc(sizeof(*ctrl)); -@@ -405,7 +405,7 @@ int nvme_get_ana_log_len(int fd, size_t *analen) - - int nvme_get_logical_block_size(int fd, __u32 nsid, int *blksize) - { -- _cleanup_free_ struct nvme_id_ns *ns; -+ _cleanup_free_ struct nvme_id_ns *ns = NULL; - __u8 flbas; - int ret; - -@@ -426,7 +426,7 @@ int nvme_get_logical_block_size(int fd, __u32 nsid, int *blksize) - - static int __nvme_set_attr(const char *path, const char *value) - { -- _cleanup_fd_ int fd; -+ _cleanup_fd_ int fd = -1; - - fd = open(path, O_WRONLY); - if (fd < 0) { - -From 533edeb32027c43895c878149117173bba785dff Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 29 Dec 2023 18:49:36 +0100 -Subject: [PATCH 3/4] tree: Explicitly initialize auto-cleanup variables - -gcc complains about potentially uninitialized variables. - -Signed-off-by: Tomas Bzatek ---- - src/nvme/tree.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/nvme/tree.c b/src/nvme/tree.c -index 07a3c532..97bd3ef4 100644 ---- a/src/nvme/tree.c -+++ b/src/nvme/tree.c -@@ -122,7 +122,8 @@ static void cleanup_dirents(struct dirents *ents) - nvme_host_t nvme_default_host(nvme_root_t r) - { - struct nvme_host *h; -- _cleanup_free_ char *hostnqn, *hostid; -+ _cleanup_free_ char *hostnqn = NULL; -+ _cleanup_free_ char *hostid = NULL; - - hostnqn = nvmf_hostnqn_from_file(); - if (!hostnqn) -@@ -1853,7 +1854,7 @@ static nvme_ctrl_t nvme_ctrl_alloc(nvme_root_t r, nvme_subsystem_t s, - nvme_ctrl_t c, p; - _cleanup_free_ char *addr = NULL, *address = NULL; - char *a, *e; -- _cleanup_free_ char *transport; -+ _cleanup_free_ char *transport = NULL; - char *traddr = NULL, *trsvcid = NULL; - char *host_traddr = NULL, *host_iface = NULL; - int ret; - -From aa072f89c8a163780250fa1a2dd507de6b45ab49 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 29 Dec 2023 18:49:44 +0100 -Subject: [PATCH 4/4] util: Explicitly initialize auto-cleanup variables - -gcc complains about potentially uninitialized variables. - -Signed-off-by: Tomas Bzatek ---- - src/nvme/util.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/nvme/util.c b/src/nvme/util.c -index 45512ff9..3861c1ab 100644 ---- a/src/nvme/util.c -+++ b/src/nvme/util.c -@@ -757,7 +757,7 @@ char *kv_keymatch(const char *kv, const char *key) - static size_t read_file(const char * fname, char *buffer, size_t *bufsz) - { - char *p; -- _cleanup_file_ FILE *file; -+ _cleanup_file_ FILE *file = NULL; - size_t len; - - file = fopen(fname, "re"); -@@ -806,7 +806,7 @@ size_t get_entity_name(char *buffer, size_t bufsz) - - size_t get_entity_version(char *buffer, size_t bufsz) - { -- _cleanup_file_ FILE *file; -+ _cleanup_file_ FILE *file = NULL; - size_t num_bytes = 0; - - /* /proc/sys/kernel/ostype typically contains the string "Linux" */ -@@ -928,7 +928,7 @@ int nvme_uuid_from_string(const char *str, unsigned char uuid[NVME_UUID_LEN]) - - int nvme_uuid_random(unsigned char uuid[NVME_UUID_LEN]) - { -- _cleanup_fd_ int f; -+ _cleanup_fd_ int f = -1; - ssize_t n; - - f = open("/dev/urandom", O_RDONLY); diff --git a/libnvme-1.8.0-nbft-parser-fixes-766.patch b/libnvme-1.8.0-nbft-parser-fixes-766.patch deleted file mode 100644 index 233129c..0000000 --- a/libnvme-1.8.0-nbft-parser-fixes-766.patch +++ /dev/null @@ -1,279 +0,0 @@ -From 6761c7d71a3fa7c6d5c718fafb3423f9e51ab261 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 5 Jan 2024 14:42:11 +0100 -Subject: [PATCH 1/5] nbft: Fix (struct nbft_info_subsystem_ns).num_hfis - off-by-one - -The num_hfis field only reflected the number of Secondary HFI -Associations, resulting in the last parsed HFI being ignored -by users (nvme-cli). - -According to the NVM Express Boot Specification, Revision 1.0, -the Primary HFI Descriptor Index in the Subsystem Namespace -(SSNS) Descriptor contains this note: - - "If multiple HFIs are associated with this record, subsequent - interfaces should be populated in the Secondary HFI - Associations field." - -As both the primary and secondary HFIs are parsed into a single -array, it makes sense to reflect the proper number of elements. - -Signed-off-by: Tomas Bzatek ---- - src/nvme/nbft.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/nvme/nbft.c b/src/nvme/nbft.c -index 2c870880..06632323 100644 ---- a/src/nvme/nbft.c -+++ b/src/nvme/nbft.c -@@ -274,6 +274,7 @@ static int read_ssns(struct nbft_info *nbft, - ret = -EINVAL; - goto fail; - } -+ ssns->num_hfis = 1; - for (i = 0; i < le16_to_cpu(raw_ssns->secondary_hfi_assoc_obj.length); i++) { - ssns->hfis[i + 1] = hfi_from_index(nbft, ss_hfi_indexes[i]); - if (ss_hfi_indexes[i] && !ssns->hfis[i + 1]) - -From fc919080448a3b9cdb1eaa0e65f17d5b45f9e58d Mon Sep 17 00:00:00 2001 -From: Martin Wilck -Date: Thu, 11 Jan 2024 11:02:11 +0100 -Subject: [PATCH 2/5] nbft: avoid duplicate entries in ssns->hfis - -The NVMe boot specification does not disallow listing the primary -HFI index again in the secondary HFI list, or listing the same -index multiple times in the secondary HFI list. But such duplicate -entries aren't helpful for consumers of this data. In the worst -case, they might lead to confusion and misconfiguration. -Suppress them. - -Signed-off-by: Martin Wilck ---- - src/nvme/nbft.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/src/nvme/nbft.c b/src/nvme/nbft.c -index 06632323..f2ffc21e 100644 ---- a/src/nvme/nbft.c -+++ b/src/nvme/nbft.c -@@ -276,6 +276,27 @@ static int read_ssns(struct nbft_info *nbft, - } - ssns->num_hfis = 1; - for (i = 0; i < le16_to_cpu(raw_ssns->secondary_hfi_assoc_obj.length); i++) { -+ bool duplicate = false; -+ int j; -+ -+ for (j = 0; j < i; j++) { -+ if (ss_hfi_indexes[i] == ss_hfi_indexes[j]) { -+ duplicate = true; -+ break; -+ } -+ } -+ -+ if (!duplicate && -+ ss_hfi_indexes[i] == raw_ssns->primary_hfi_desc_index) -+ duplicate = true; -+ -+ if (duplicate) { -+ nvme_msg(NULL, LOG_DEBUG, -+ "file %s: SSNS %d skipping duplicate HFI index %d\n", -+ nbft->filename, ssns->index, ss_hfi_indexes[i]); -+ continue; -+ } -+ - ssns->hfis[i + 1] = hfi_from_index(nbft, ss_hfi_indexes[i]); - if (ss_hfi_indexes[i] && !ssns->hfis[i + 1]) - nvme_msg(NULL, LOG_DEBUG, - -From 68afe6d9055025aa54c351bb131c30e0d66e6976 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 5 Jan 2024 14:49:15 +0100 -Subject: [PATCH 3/5] tests: Fix diffs output for duplicate HFI entries - -With commit "nbft: avoid duplicate entries in ssns->hfis" applied, -nbft-dump will not see any duplicate HFI indices any more. -Fix the reference output for generating the diffs. - -Signed-off-by: Martin Wilck -Signed-off-by: Tomas Bzatek ---- - test/nbft/diffs/NBFT-auto-ipv6 | 1 - - test/nbft/diffs/NBFT-dhcp-ipv4 | 1 - - test/nbft/diffs/NBFT-dhcp-ipv6 | 1 - - test/nbft/diffs/NBFT-rhpoc | 1 - - test/nbft/diffs/NBFT-static-ipv4 | 1 - - test/nbft/diffs/NBFT-static-ipv4-discovery | 1 - - test/nbft/diffs/NBFT-static-ipv6 | 1 - - 7 files changed, 7 deletions(-) - -diff --git a/test/nbft/diffs/NBFT-auto-ipv6 b/test/nbft/diffs/NBFT-auto-ipv6 -index 32a8b607..83ee6430 100644 ---- a/test/nbft/diffs/NBFT-auto-ipv6 -+++ b/test/nbft/diffs/NBFT-auto-ipv6 -@@ -23,7 +23,6 @@ hfi_list[0]->tcp_info.dhcp_override=0 - subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=fd09:9a46:b5c1:1ff:5054:ff:fefd:9e66 - subsystem_ns_list[0]->trsvcid=4420 -diff --git a/test/nbft/diffs/NBFT-dhcp-ipv4 b/test/nbft/diffs/NBFT-dhcp-ipv4 -index cb280d9a..067079d9 100644 ---- a/test/nbft/diffs/NBFT-dhcp-ipv4 -+++ b/test/nbft/diffs/NBFT-dhcp-ipv4 -@@ -28,7 +28,6 @@ subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->discovery->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=192.168.49.10 - subsystem_ns_list[0]->trsvcid=4420 -diff --git a/test/nbft/diffs/NBFT-dhcp-ipv6 b/test/nbft/diffs/NBFT-dhcp-ipv6 -index b94cc394..11c974f6 100644 ---- a/test/nbft/diffs/NBFT-dhcp-ipv6 -+++ b/test/nbft/diffs/NBFT-dhcp-ipv6 -@@ -23,7 +23,6 @@ hfi_list[0]->tcp_info.dhcp_override=1 - subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=fddf:d:f:49::10 - subsystem_ns_list[0]->trsvcid=4420 -diff --git a/test/nbft/diffs/NBFT-rhpoc b/test/nbft/diffs/NBFT-rhpoc -index d4b4ad84..d849b6e1 100644 ---- a/test/nbft/diffs/NBFT-rhpoc -+++ b/test/nbft/diffs/NBFT-rhpoc -@@ -23,7 +23,6 @@ hfi_list[0]->tcp_info.dhcp_override=0 - subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=192.168.101.20 - subsystem_ns_list[0]->trsvcid=4420 -diff --git a/test/nbft/diffs/NBFT-static-ipv4 b/test/nbft/diffs/NBFT-static-ipv4 -index 715b30d2..a6f38597 100644 ---- a/test/nbft/diffs/NBFT-static-ipv4 -+++ b/test/nbft/diffs/NBFT-static-ipv4 -@@ -23,7 +23,6 @@ hfi_list[0]->tcp_info.dhcp_override=0 - subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=192.168.49.10 - subsystem_ns_list[0]->trsvcid=4420 -diff --git a/test/nbft/diffs/NBFT-static-ipv4-discovery b/test/nbft/diffs/NBFT-static-ipv4-discovery -index 67881b6c..5bf0e46f 100644 ---- a/test/nbft/diffs/NBFT-static-ipv4-discovery -+++ b/test/nbft/diffs/NBFT-static-ipv4-discovery -@@ -28,7 +28,6 @@ subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->discovery->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=192.168.49.10 - subsystem_ns_list[0]->trsvcid=4420 -diff --git a/test/nbft/diffs/NBFT-static-ipv6 b/test/nbft/diffs/NBFT-static-ipv6 -index a5b02c1d..c6ad844d 100644 ---- a/test/nbft/diffs/NBFT-static-ipv6 -+++ b/test/nbft/diffs/NBFT-static-ipv6 -@@ -23,7 +23,6 @@ hfi_list[0]->tcp_info.dhcp_override=0 - subsystem_ns_list[0]->index=1 - subsystem_ns_list[0]->num_hfis=1 - subsystem_ns_list[0]->hfis[0]->index=1 --subsystem_ns_list[0]->hfis[1]->index=1 - subsystem_ns_list[0]->transport=tcp - subsystem_ns_list[0]->traddr=fd09:9a46:b5c1:1fe::13f - subsystem_ns_list[0]->trsvcid=4420 - -From 0bc1985b3e78383cd842968e2adc16d019e784f1 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Fri, 5 Jan 2024 14:53:28 +0100 -Subject: [PATCH 4/5] tests: Add sample NBFT table from Dell PowerEdge R760 - -Covered by the Python tests already, let's include this -table in the other NBFT parser tests (which are all -QEMU dumps). - -Signed-off-by: Tomas Bzatek ---- - test/nbft/diffs/NBFT-Dell.PowerEdge.R760 | 60 +++++++++++++++++++++++ - test/nbft/meson.build | 1 + - test/nbft/tables/NBFT-Dell.PowerEdge.R760 | 1 + - 3 files changed, 62 insertions(+) - create mode 100644 test/nbft/diffs/NBFT-Dell.PowerEdge.R760 - create mode 120000 test/nbft/tables/NBFT-Dell.PowerEdge.R760 - -diff --git a/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 b/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 -new file mode 100644 -index 00000000..d7fab3f2 ---- /dev/null -+++ b/test/nbft/diffs/NBFT-Dell.PowerEdge.R760 -@@ -0,0 +1,60 @@ -+raw_nbft_size=1017 -+host.id=44454c4c34010368038b2c04f313233 -+host.nqn=nqn.1988-11.com.dell:PowerEdge.R760.1234567 -+host.host_id_configured=1 -+host.host_nqn_configured=1 -+host.primary=0 -+hfi_list[0]->index=1 -+hfi_list[0]->transport=tcp -+hfi_list[0]->tcp_info.pci_sbdf=16384 -+hfi_list[0]->tcp_info.mac_addr=b02628e87ce -+hfi_list[0]->tcp_info.vlan=0 -+hfi_list[0]->tcp_info.ip_origin=82 -+hfi_list[0]->tcp_info.ipaddr=100.71.245.232 -+hfi_list[0]->tcp_info.subnet_mask_prefix=24 -+hfi_list[0]->tcp_info.gateway_ipaddr=100.71.245.254 -+hfi_list[0]->tcp_info.route_metric=500 -+hfi_list[0]->tcp_info.primary_dns_ipaddr=100.64.0.5 -+hfi_list[0]->tcp_info.secondary_dns_ipaddr=100.64.0.6 -+hfi_list[0]->tcp_info.dhcp_server_ipaddr=100.71.245.254 -+hfi_list[0]->tcp_info.host_name=(null) -+hfi_list[0]->tcp_info.this_hfi_is_default_route=1 -+hfi_list[0]->tcp_info.dhcp_override=1 -+discovery_list[0]->index=1 -+discovery_list[0]->hfi->index=1 -+discovery_list[0]->uri=nvme+tcp://100.71.103.50:8009/ -+discovery_list[0]->nqn=nqn.2014-08.org.nvmexpress.discovery -+subsystem_ns_list[0]->index=1 -+subsystem_ns_list[0]->discovery->index=1 -+subsystem_ns_list[0]->num_hfis=1 -+subsystem_ns_list[0]->hfis[0]->index=1 -+subsystem_ns_list[0]->transport=tcp -+subsystem_ns_list[0]->traddr=100.71.103.48 -+subsystem_ns_list[0]->trsvcid=4420 -+subsystem_ns_list[0]->subsys_port_id=0 -+subsystem_ns_list[0]->nsid=148 -+subsystem_ns_list[0]->nid_type=2 -+subsystem_ns_list[0]->nid=c8244ed9c15f53b8ccf96802efca -+subsystem_ns_list[0]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:2a64abf1c5b81F6C4549 -+subsystem_ns_list[0]->pdu_header_digest_required=0 -+subsystem_ns_list[0]->data_digest_required=0 -+subsystem_ns_list[0]->controller_id=5 -+subsystem_ns_list[0]->asqsz=0 -+subsystem_ns_list[0]->dhcp_root_path_string=(null) -+subsystem_ns_list[1]->index=2 -+subsystem_ns_list[1]->discovery->index=1 -+subsystem_ns_list[1]->num_hfis=1 -+subsystem_ns_list[1]->hfis[0]->index=1 -+subsystem_ns_list[1]->transport=tcp -+subsystem_ns_list[1]->traddr=100.71.103.49 -+subsystem_ns_list[1]->trsvcid=4420 -+subsystem_ns_list[1]->subsys_port_id=0 -+subsystem_ns_list[1]->nsid=148 -+subsystem_ns_list[1]->nid_type=2 -+subsystem_ns_list[1]->nid=c8244ed9c15f53b8ccf96802efca -+subsystem_ns_list[1]->subsys_nqn=nqn.1988-11.com.dell:powerstore:00:2a64abf1c5b81F6C4549 -+subsystem_ns_list[1]->pdu_header_digest_required=0 -+subsystem_ns_list[1]->data_digest_required=0 -+subsystem_ns_list[1]->controller_id=4166 -+subsystem_ns_list[1]->asqsz=0 -+subsystem_ns_list[1]->dhcp_root_path_string=(null) diff --git a/libnvme.spec b/libnvme.spec index f1200e6..f2d2923 100644 --- a/libnvme.spec +++ b/libnvme.spec @@ -3,18 +3,14 @@ Name: libnvme Summary: Linux-native nvme device management library -Version: 1.7.1 -Release: 4%{?dist} +Version: 1.9 +Release: 1%{?dist} License: LGPL-2.1-or-later URL: https://github.com/linux-nvme/libnvme Source0: %{url}/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}.tar.gz -# https://github.com/linux-nvme/libnvme/pull/765 -Patch0: libnvme-1.8.0-initialize_autoclean_vars.patch -# https://github.com/linux-nvme/libnvme/pull/780 -Patch1: libnvme-1.8.0-initialize_autoclean_vars-2.patch -# https://github.com/linux-nvme/libnvme/pull/766 -Patch2: libnvme-1.8.0-nbft-parser-fixes-766.patch +# https://github.com/linux-nvme/libnvme/pull/833 +Patch0: libnvme-1.10-linux-Fix-uninitialized-variables.patch BuildRequires: gcc gcc-c++ BuildRequires: swig @@ -25,7 +21,7 @@ BuildRequires: json-c-devel >= 0.13 BuildRequires: openssl-devel BuildRequires: dbus-devel BuildRequires: keyutils-libs-devel -%if (0%{?rhel} == 0) +%if 0%{?fedora} || 0%{?rhel} > 9 BuildRequires: kernel-headers >= 5.15 %endif @@ -76,15 +72,16 @@ This package contains Python bindings for libnvme. mv %{buildroot}%{_pkgdocdir}/nvme/html %{buildroot}%{_pkgdocdir}/html rm -rf %{buildroot}%{_pkgdocdir}/nvme mv %{buildroot}/usr/*.rst %{buildroot}%{_pkgdocdir}/ +rm -r %{buildroot}%{_pkgdocdir}/html/{.buildinfo,.doctrees/} %ldconfig_scriptlets %files %license COPYING ccan/licenses/* %{_libdir}/libnvme.so.1 -%{_libdir}/libnvme.so.1.7.1 +%{_libdir}/libnvme.so.1.9.0 %{_libdir}/libnvme-mi.so.1 -%{_libdir}/libnvme-mi.so.1.7.1 +%{_libdir}/libnvme-mi.so.1.9.0 %files devel %{_libdir}/libnvme.so @@ -104,6 +101,15 @@ mv %{buildroot}/usr/*.rst %{buildroot}%{_pkgdocdir}/ %{python3_sitearch}/libnvme/* %changelog +* Fri May 03 2024 Tomas Bzatek - 1.9-1 +- Upstream v1.9 release + +* Wed Feb 28 2024 Davide Cavalca - 1.8-2 +- Do not package doctrees to make the package build reproducible + +* Wed Feb 14 2024 Tomas Bzatek - 1.8-1 +- Upstream v1.8 release + * Fri Feb 09 2024 Tomas Bzatek - 1.7.1-4 - nbft: Fix SSNS HFI indexes parsing - cleanup: Explicitly initialize auto-cleanup variables diff --git a/sources b/sources index fe491ff..7cf676e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libnvme-1.7.1.tar.gz) = aea986ae35eafa17482e07015228d5a7d529d41148f4cee9e4619adc2460abb5460d60cd91177462cbcaf2e94e5870026ff9e45548f91d9f90b65a6268eb3abb +SHA512 (libnvme-1.9.tar.gz) = 39a3346805143f93a17d00cfcb6fb75f82154658db6079134c09dfa989995ac5de79b1ce1ac091b4e997523d3216829ce9eac44110c9f59f9fd21636529c8b25