diff --git a/.gitignore b/.gitignore index e69de29..9ce9b6b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,3 @@ +/pmdk-1.8.tar.gz +/pmdk-1.9.tar.gz +/pmdk-1.9.1.tar.gz diff --git a/0001-test-fix-symbol-format-in-the-scope-tests.patch b/0001-test-fix-symbol-format-in-the-scope-tests.patch new file mode 100644 index 0000000..6e11074 --- /dev/null +++ b/0001-test-fix-symbol-format-in-the-scope-tests.patch @@ -0,0 +1,491 @@ +From e4228cd230f846e55407687a9553ac4b7f56498b Mon Sep 17 00:00:00 2001 +From: Weronika Lewandowska +Date: Thu, 6 Aug 2020 13:39:34 +0200 +Subject: [PATCH] test: fix symbol format in the scope tests + +--- + src/test/scope/out13.log.match | 74 +++++------ + src/test/scope/out2.log.match | 50 ++++---- + src/test/scope/out3.log.match | 36 +++--- + src/test/scope/out4.log.match | 36 +++--- + src/test/scope/out5.log.match | 222 ++++++++++++++++----------------- + src/test/scope/out6.log.match | 26 ++-- + 6 files changed, 222 insertions(+), 222 deletions(-) + +diff --git a/src/test/scope/out13.log.match b/src/test/scope/out13.log.match +index 5fab789af..925fa482d 100644 +--- a/src/test/scope/out13.log.match ++++ b/src/test/scope/out13.log.match +@@ -1,37 +1,37 @@ +-pmem2_badblock_clear +-pmem2_badblock_context_delete +-pmem2_badblock_context_new +-pmem2_badblock_next +-pmem2_config_clear_address +-pmem2_config_delete +-pmem2_config_new +-pmem2_config_set_address +-pmem2_config_set_length +-pmem2_config_set_offset +-pmem2_config_set_protection +-pmem2_config_set_required_store_granularity +-pmem2_config_set_sharing +-pmem2_config_set_vm_reservation +-pmem2_deep_flush +-pmem2_errormsg +-pmem2_get_drain_fn +-pmem2_get_flush_fn +-pmem2_get_memcpy_fn +-pmem2_get_memmove_fn +-pmem2_get_memset_fn +-pmem2_get_persist_fn +-pmem2_map +-pmem2_map_get_address +-pmem2_map_get_size +-pmem2_map_get_store_granularity +-pmem2_perror +-pmem2_source_alignment +-pmem2_source_delete +-pmem2_source_device_id +-pmem2_source_device_usc +-pmem2_source_from_anon +-pmem2_source_from_fd +-pmem2_source_size +-pmem2_unmap +-pmem2_vm_reservation_delete +-pmem2_vm_reservation_new ++pmem2_badblock_clear$(nW) ++pmem2_badblock_context_delete$(nW) ++pmem2_badblock_context_new$(nW) ++pmem2_badblock_next$(nW) ++pmem2_config_clear_address$(nW) ++pmem2_config_delete$(nW) ++pmem2_config_new$(nW) ++pmem2_config_set_address$(nW) ++pmem2_config_set_length$(nW) ++pmem2_config_set_offset$(nW) ++pmem2_config_set_protection$(nW) ++pmem2_config_set_required_store_granularity$(nW) ++pmem2_config_set_sharing$(nW) ++pmem2_config_set_vm_reservation$(nW) ++pmem2_deep_flush$(nW) ++pmem2_errormsg$(nW) ++pmem2_get_drain_fn$(nW) ++pmem2_get_flush_fn$(nW) ++pmem2_get_memcpy_fn$(nW) ++pmem2_get_memmove_fn$(nW) ++pmem2_get_memset_fn$(nW) ++pmem2_get_persist_fn$(nW) ++pmem2_map$(nW) ++pmem2_map_get_address$(nW) ++pmem2_map_get_size$(nW) ++pmem2_map_get_store_granularity$(nW) ++pmem2_perror$(nW) ++pmem2_source_alignment$(nW) ++pmem2_source_delete$(nW) ++pmem2_source_device_id$(nW) ++pmem2_source_device_usc$(nW) ++pmem2_source_from_anon$(nW) ++pmem2_source_from_fd$(nW) ++pmem2_source_size$(nW) ++pmem2_unmap$(nW) ++pmem2_vm_reservation_delete$(nW) ++pmem2_vm_reservation_new$(nW) +diff --git a/src/test/scope/out2.log.match b/src/test/scope/out2.log.match +index 7e7331180..50225a08d 100644 +--- a/src/test/scope/out2.log.match ++++ b/src/test/scope/out2.log.match +@@ -1,25 +1,25 @@ +-pmem_check_version +-pmem_deep_drain +-pmem_deep_flush +-pmem_deep_persist +-pmem_drain +-pmem_errormsg +-$(OPT)pmem_fault_injection_enabled +-pmem_flush +-pmem_has_auto_flush +-pmem_has_hw_drain +-$(OPT)pmem_inject_fault_at +-pmem_is_pmem +-pmem_map_file +-pmem_memcpy +-pmem_memcpy_nodrain +-pmem_memcpy_persist +-pmem_memmove +-pmem_memmove_nodrain +-pmem_memmove_persist +-pmem_memset +-pmem_memset_nodrain +-pmem_memset_persist +-pmem_msync +-pmem_persist +-pmem_unmap ++pmem_check_version$(nW) ++pmem_deep_drain$(nW) ++pmem_deep_flush$(nW) ++pmem_deep_persist$(nW) ++pmem_drain$(nW) ++pmem_errormsg$(nW) ++$(OPT)pmem_fault_injection_enabled$(nW) ++pmem_flush$(nW) ++pmem_has_auto_flush$(nW) ++pmem_has_hw_drain$(nW) ++$(OPT)pmem_inject_fault_at$(nW) ++pmem_is_pmem$(nW) ++pmem_map_file$(nW) ++pmem_memcpy$(nW) ++pmem_memcpy_nodrain$(nW) ++pmem_memcpy_persist$(nW) ++pmem_memmove$(nW) ++pmem_memmove_nodrain$(nW) ++pmem_memmove_persist$(nW) ++pmem_memset$(nW) ++pmem_memset_nodrain$(nW) ++pmem_memset_persist$(nW) ++pmem_msync$(nW) ++pmem_persist$(nW) ++pmem_unmap$(nW) +diff --git a/src/test/scope/out3.log.match b/src/test/scope/out3.log.match +index 179ac11de..74ce8a329 100644 +--- a/src/test/scope/out3.log.match ++++ b/src/test/scope/out3.log.match +@@ -1,18 +1,18 @@ +-pmemlog_append +-pmemlog_appendv +-pmemlog_check +-pmemlog_check_version +-pmemlog_close +-pmemlog_create +-pmemlog_ctl_exec +-pmemlog_ctl_get +-pmemlog_ctl_set +-pmemlog_errormsg +-$(OPT)pmemlog_fault_injection_enabled +-$(OPT)pmemlog_inject_fault_at +-pmemlog_nbyte +-pmemlog_open +-pmemlog_rewind +-pmemlog_set_funcs +-pmemlog_tell +-pmemlog_walk ++pmemlog_append$(nW) ++pmemlog_appendv$(nW) ++pmemlog_check$(nW) ++pmemlog_check_version$(nW) ++pmemlog_close$(nW) ++pmemlog_create$(nW) ++pmemlog_ctl_exec$(nW) ++pmemlog_ctl_get$(nW) ++pmemlog_ctl_set$(nW) ++pmemlog_errormsg$(nW) ++$(OPT)pmemlog_fault_injection_enabled$(nW) ++$(OPT)pmemlog_inject_fault_at$(nW) ++pmemlog_nbyte$(nW) ++pmemlog_open$(nW) ++pmemlog_rewind$(nW) ++pmemlog_set_funcs$(nW) ++pmemlog_tell$(nW) ++pmemlog_walk$(nW) +diff --git a/src/test/scope/out4.log.match b/src/test/scope/out4.log.match +index a5ff56c55..3c3fc9bc3 100644 +--- a/src/test/scope/out4.log.match ++++ b/src/test/scope/out4.log.match +@@ -1,18 +1,18 @@ +-pmemblk_bsize +-pmemblk_check +-pmemblk_check_version +-pmemblk_close +-pmemblk_create +-pmemblk_ctl_exec +-pmemblk_ctl_get +-pmemblk_ctl_set +-pmemblk_errormsg +-$(OPT)pmemblk_fault_injection_enabled +-$(OPT)pmemblk_inject_fault_at +-pmemblk_nblock +-pmemblk_open +-pmemblk_read +-pmemblk_set_error +-pmemblk_set_funcs +-pmemblk_set_zero +-pmemblk_write ++pmemblk_bsize$(nW) ++pmemblk_check$(nW) ++pmemblk_check_version$(nW) ++pmemblk_close$(nW) ++pmemblk_create$(nW) ++pmemblk_ctl_exec$(nW) ++pmemblk_ctl_get$(nW) ++pmemblk_ctl_set$(nW) ++pmemblk_errormsg$(nW) ++$(OPT)pmemblk_fault_injection_enabled$(nW) ++$(OPT)pmemblk_inject_fault_at$(nW) ++pmemblk_nblock$(nW) ++pmemblk_open$(nW) ++pmemblk_read$(nW) ++pmemblk_set_error$(nW) ++pmemblk_set_funcs$(nW) ++pmemblk_set_zero$(nW) ++pmemblk_write$(nW) +diff --git a/src/test/scope/out5.log.match b/src/test/scope/out5.log.match +index 4506d9b43..3ad10d144 100644 +--- a/src/test/scope/out5.log.match ++++ b/src/test/scope/out5.log.match +@@ -1,111 +1,111 @@ +-_pobj_cache_invalidate +-_pobj_cached_pool +-_pobj_debug_notice +-pmemobj_alloc +-pmemobj_alloc_usable_size +-pmemobj_cancel +-pmemobj_check +-pmemobj_check_version +-pmemobj_close +-pmemobj_cond_broadcast +-pmemobj_cond_signal +-pmemobj_cond_timedwait +-pmemobj_cond_wait +-pmemobj_cond_zero +-pmemobj_create +-pmemobj_ctl_exec +-pmemobj_ctl_get +-pmemobj_ctl_set +-pmemobj_defer_free +-pmemobj_defrag +-pmemobj_direct +-pmemobj_drain +-pmemobj_errormsg +-$(OPT)pmemobj_fault_injection_enabled +-pmemobj_first +-pmemobj_flush +-pmemobj_free +-pmemobj_get_user_data +-$(OPT)pmemobj_inject_fault_at +-pmemobj_list_insert +-pmemobj_list_insert_new +-pmemobj_list_move +-pmemobj_list_remove +-pmemobj_memcpy +-pmemobj_memcpy_persist +-pmemobj_memmove +-pmemobj_memset +-pmemobj_memset_persist +-pmemobj_mutex_lock +-pmemobj_mutex_timedlock +-pmemobj_mutex_trylock +-pmemobj_mutex_unlock +-pmemobj_mutex_zero +-pmemobj_next +-pmemobj_oid +-pmemobj_open +-pmemobj_persist +-pmemobj_pool_by_oid +-pmemobj_pool_by_ptr +-pmemobj_publish +-pmemobj_realloc +-pmemobj_reserve +-pmemobj_root +-pmemobj_root_construct +-pmemobj_root_size +-pmemobj_rwlock_rdlock +-pmemobj_rwlock_timedrdlock +-pmemobj_rwlock_timedwrlock +-pmemobj_rwlock_tryrdlock +-pmemobj_rwlock_trywrlock +-pmemobj_rwlock_unlock +-pmemobj_rwlock_wrlock +-pmemobj_rwlock_zero +-pmemobj_set_funcs +-pmemobj_set_user_data +-pmemobj_set_value +-pmemobj_strdup +-pmemobj_tx_abort +-pmemobj_tx_add_range +-pmemobj_tx_add_range_direct +-pmemobj_tx_alloc +-pmemobj_tx_begin +-pmemobj_tx_commit +-pmemobj_tx_end +-pmemobj_tx_errno +-pmemobj_tx_free +-pmemobj_tx_get_failure_behavior +-pmemobj_tx_get_user_data +-pmemobj_tx_lock +-pmemobj_tx_log_append_buffer +-pmemobj_tx_log_auto_alloc +-pmemobj_tx_log_intents_max_size +-pmemobj_tx_log_snapshots_max_size +-pmemobj_tx_process +-pmemobj_tx_publish +-pmemobj_tx_realloc +-pmemobj_tx_set_failure_behavior +-pmemobj_tx_set_user_data +-pmemobj_tx_stage +-pmemobj_tx_strdup +-pmemobj_tx_wcsdup +-pmemobj_tx_xadd_range +-pmemobj_tx_xadd_range_direct +-pmemobj_tx_xalloc +-pmemobj_tx_xfree +-pmemobj_tx_xlock +-pmemobj_tx_xlog_append_buffer +-pmemobj_tx_xpublish +-pmemobj_tx_xstrdup +-pmemobj_tx_xwcsdup +-pmemobj_tx_zalloc +-pmemobj_tx_zrealloc +-pmemobj_type_num +-pmemobj_volatile +-pmemobj_wcsdup +-pmemobj_xalloc +-pmemobj_xflush +-pmemobj_xpersist +-pmemobj_xreserve +-pmemobj_zalloc +-pmemobj_zrealloc ++_pobj_cache_invalidate$(nW) ++_pobj_cached_pool$(nW) ++_pobj_debug_notice$(nW) ++pmemobj_alloc$(nW) ++pmemobj_alloc_usable_size$(nW) ++pmemobj_cancel$(nW) ++pmemobj_check$(nW) ++pmemobj_check_version$(nW) ++pmemobj_close$(nW) ++pmemobj_cond_broadcast$(nW) ++pmemobj_cond_signal$(nW) ++pmemobj_cond_timedwait$(nW) ++pmemobj_cond_wait$(nW) ++pmemobj_cond_zero$(nW) ++pmemobj_create$(nW) ++pmemobj_ctl_exec$(nW) ++pmemobj_ctl_get$(nW) ++pmemobj_ctl_set$(nW) ++pmemobj_defer_free$(nW) ++pmemobj_defrag$(nW) ++pmemobj_direct$(nW) ++pmemobj_drain$(nW) ++pmemobj_errormsg$(nW) ++$(OPT)pmemobj_fault_injection_enabled$(nW) ++pmemobj_first$(nW) ++pmemobj_flush$(nW) ++pmemobj_free$(nW) ++pmemobj_get_user_data$(nW) ++$(OPT)pmemobj_inject_fault_at$(nW) ++pmemobj_list_insert$(nW) ++pmemobj_list_insert_new$(nW) ++pmemobj_list_move$(nW) ++pmemobj_list_remove$(nW) ++pmemobj_memcpy$(nW) ++pmemobj_memcpy_persist$(nW) ++pmemobj_memmove$(nW) ++pmemobj_memset$(nW) ++pmemobj_memset_persist$(nW) ++pmemobj_mutex_lock$(nW) ++pmemobj_mutex_timedlock$(nW) ++pmemobj_mutex_trylock$(nW) ++pmemobj_mutex_unlock$(nW) ++pmemobj_mutex_zero$(nW) ++pmemobj_next$(nW) ++pmemobj_oid$(nW) ++pmemobj_open$(nW) ++pmemobj_persist$(nW) ++pmemobj_pool_by_oid$(nW) ++pmemobj_pool_by_ptr$(nW) ++pmemobj_publish$(nW) ++pmemobj_realloc$(nW) ++pmemobj_reserve$(nW) ++pmemobj_root$(nW) ++pmemobj_root_construct$(nW) ++pmemobj_root_size$(nW) ++pmemobj_rwlock_rdlock$(nW) ++pmemobj_rwlock_timedrdlock$(nW) ++pmemobj_rwlock_timedwrlock$(nW) ++pmemobj_rwlock_tryrdlock$(nW) ++pmemobj_rwlock_trywrlock$(nW) ++pmemobj_rwlock_unlock$(nW) ++pmemobj_rwlock_wrlock$(nW) ++pmemobj_rwlock_zero$(nW) ++pmemobj_set_funcs$(nW) ++pmemobj_set_user_data$(nW) ++pmemobj_set_value$(nW) ++pmemobj_strdup$(nW) ++pmemobj_tx_abort$(nW) ++pmemobj_tx_add_range$(nW) ++pmemobj_tx_add_range_direct$(nW) ++pmemobj_tx_alloc$(nW) ++pmemobj_tx_begin$(nW) ++pmemobj_tx_commit$(nW) ++pmemobj_tx_end$(nW) ++pmemobj_tx_errno$(nW) ++pmemobj_tx_free$(nW) ++pmemobj_tx_get_failure_behavior$(nW) ++pmemobj_tx_get_user_data$(nW) ++pmemobj_tx_lock$(nW) ++pmemobj_tx_log_append_buffer$(nW) ++pmemobj_tx_log_auto_alloc$(nW) ++pmemobj_tx_log_intents_max_size$(nW) ++pmemobj_tx_log_snapshots_max_size$(nW) ++pmemobj_tx_process$(nW) ++pmemobj_tx_publish$(nW) ++pmemobj_tx_realloc$(nW) ++pmemobj_tx_set_failure_behavior$(nW) ++pmemobj_tx_set_user_data$(nW) ++pmemobj_tx_stage$(nW) ++pmemobj_tx_strdup$(nW) ++pmemobj_tx_wcsdup$(nW) ++pmemobj_tx_xadd_range$(nW) ++pmemobj_tx_xadd_range_direct$(nW) ++pmemobj_tx_xalloc$(nW) ++pmemobj_tx_xfree$(nW) ++pmemobj_tx_xlock$(nW) ++pmemobj_tx_xlog_append_buffer$(nW) ++pmemobj_tx_xpublish$(nW) ++pmemobj_tx_xstrdup$(nW) ++pmemobj_tx_xwcsdup$(nW) ++pmemobj_tx_zalloc$(nW) ++pmemobj_tx_zrealloc$(nW) ++pmemobj_type_num$(nW) ++pmemobj_volatile$(nW) ++pmemobj_wcsdup$(nW) ++pmemobj_xalloc$(nW) ++pmemobj_xflush$(nW) ++pmemobj_xpersist$(nW) ++pmemobj_xreserve$(nW) ++pmemobj_zalloc$(nW) ++pmemobj_zrealloc$(nW) +diff --git a/src/test/scope/out6.log.match b/src/test/scope/out6.log.match +index 9778c0af5..4275c73ef 100644 +--- a/src/test/scope/out6.log.match ++++ b/src/test/scope/out6.log.match +@@ -1,13 +1,13 @@ +-pmempool_check +-pmempool_check_end +-pmempool_check_init +-pmempool_check_version +-pmempool_errormsg +-$(OPT)pmempool_fault_injection_enabled +-pmempool_feature_disable +-pmempool_feature_enable +-pmempool_feature_query +-$(OPT)pmempool_inject_fault_at +-pmempool_rm +-pmempool_sync +-pmempool_transform ++pmempool_check$(nW) ++pmempool_check_end$(nW) ++pmempool_check_init$(nW) ++pmempool_check_version$(nW) ++pmempool_errormsg$(nW) ++$(OPT)pmempool_fault_injection_enabled$(nW) ++pmempool_feature_disable$(nW) ++pmempool_feature_enable$(nW) ++pmempool_feature_query$(nW) ++$(OPT)pmempool_inject_fault_at$(nW) ++pmempool_rm$(nW) ++pmempool_sync$(nW) ++pmempool_transform$(nW) +-- +2.28.0 + diff --git a/0001-test-py-add-require_free_space.patch b/0001-test-py-add-require_free_space.patch new file mode 100644 index 0000000..1be4bfe --- /dev/null +++ b/0001-test-py-add-require_free_space.patch @@ -0,0 +1,70 @@ +From 2bfc80d85248ed0014e396c2cab4b8ffb60e470e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= +Date: Tue, 18 Feb 2020 15:51:12 +0100 +Subject: [PATCH] test: (py) add require_free_space + +--- + src/test/obj_defrag_advanced/TESTS.py | 4 ++++ + src/test/unittest/context.py | 11 ++++++++--- + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/src/test/obj_defrag_advanced/TESTS.py b/src/test/obj_defrag_advanced/TESTS.py +index 8979af4a5..daf7d8ecc 100755 +--- a/src/test/obj_defrag_advanced/TESTS.py ++++ b/src/test/obj_defrag_advanced/TESTS.py +@@ -49,6 +49,8 @@ class ObjDefragAdvanced(t.BaseTest): + min_root_size = 0 + + def run(self, ctx): ++ ctx.require_free_space(self.pool_size) ++ + path = ctx.create_holey_file(self.pool_size, 'testfile') + dump1 = 'dump1.log' + dump2 = 'dump2.log' +@@ -98,6 +100,8 @@ class ObjDefragAdvancedMt(ObjDefragAdvanced): + ncycles = 2 + + def run(self, ctx): ++ ctx.require_free_space(self.pool_size) ++ + path = ctx.create_holey_file(self.pool_size, 'testfile') + + ctx.exec('obj_defrag_advanced', +diff --git a/src/test/unittest/context.py b/src/test/unittest/context.py +index 00a35fba3..2b326ebce 100644 +--- a/src/test/unittest/context.py ++++ b/src/test/unittest/context.py +@@ -1,5 +1,5 @@ + # +-# Copyright 2019, Intel Corporation ++# Copyright 2019-2020, Intel Corporation + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions +@@ -136,9 +136,9 @@ class ContextBase: + return int(proc.stdout) + futils.fail('Could not get size of the file, it is inaccessible or does not exist') + +- def get_free_space(self): ++ def get_free_space(self, dir="."): + """Returns free space for current file system""" +- _, _, free = shutil.disk_usage(".") ++ _, _, free = shutil.disk_usage(dir) + return free + + +@@ -187,6 +187,11 @@ class Context(ContextBase): + os.chmod(filepath, mode) + return filepath + ++ def require_free_space(self, space): ++ if self.get_free_space(self.testdir) < space: ++ futils.skip('Not enough free space (' + str(space / 1024 / 1024) + ++ ' MiB required)') ++ + def mkdirs(self, path, mode=None): + """ + Creates directory along with all parent directories required. In the +-- +2.17.2 + diff --git a/0002-test-Fix-obj_zones-for-ppc64le.patch b/0002-test-Fix-obj_zones-for-ppc64le.patch new file mode 100644 index 0000000..19f4d54 --- /dev/null +++ b/0002-test-Fix-obj_zones-for-ppc64le.patch @@ -0,0 +1,38 @@ +From 0d72150d0f1e6d52c3b8888500fbcce64c751362 Mon Sep 17 00:00:00 2001 +From: "Lucas A. M. Magalhaes" +Date: Fri, 21 Feb 2020 09:40:28 -0300 +Subject: [PATCH] test: Fix obj_zones for ppc64le + +This test was timing out because of intensive page_fault +handling. By allocating more by each loop we minimize this +issue. + +Signed-off-by: Lucas A. M. Magalhaes +--- + src/test/obj_zones/obj_zones.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/test/obj_zones/obj_zones.c b/src/test/obj_zones/obj_zones.c +index c1d84268a..3cc796beb 100644 +--- a/src/test/obj_zones/obj_zones.c ++++ b/src/test/obj_zones/obj_zones.c +@@ -36,6 +36,7 @@ + */ + + #include ++#include + + #include "unittest.h" + +@@ -104,7 +105,7 @@ test_malloc_free(const char *path) + 0, S_IWUSR | S_IRUSR)) == NULL) + UT_FATAL("!pmemobj_create: %s", path); + +- size_t alloc_size = 128 * 1024; ++ size_t alloc_size = PMEM_PAGESIZE * 32; + size_t max_allocs = 1000000; + PMEMoid *oid = MALLOC(sizeof(PMEMoid) * max_allocs); + size_t n = 0; +-- +2.20.1 + diff --git a/0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch b/0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch new file mode 100644 index 0000000..58ff8a3 --- /dev/null +++ b/0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch @@ -0,0 +1,24 @@ +From ad2064dbb457482f9af9816f61ba721cc5aae126 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= +Date: Wed, 26 Feb 2020 15:54:19 +0100 +Subject: [PATCH] test: build obj_defrag_advanced with some optimizations + +On my machine it decreases TEST3 time from 52s to 20s +and TEST5 from 30s to 11s. +--- + src/test/obj_defrag_advanced/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/test/obj_defrag_advanced/Makefile b/src/test/obj_defrag_advanced/Makefile +index f2e8eda94..45fa851aa 100644 +--- a/src/test/obj_defrag_advanced/Makefile ++++ b/src/test/obj_defrag_advanced/Makefile +@@ -40,4 +40,4 @@ LIBPMEMOBJ=y + + include ../Makefile.inc + +-CFLAGS += -DDEBUG ++CFLAGS += -DDEBUG -Og +-- +2.20.1 + diff --git a/nvml-gcc11.patch b/nvml-gcc11.patch new file mode 100644 index 0000000..10dda34 --- /dev/null +++ b/nvml-gcc11.patch @@ -0,0 +1,13 @@ +diff --git a/src/test/util_badblock/util_badblock.c b/src/test/util_badblock/util_badblock.c +index a2274c7..0ee4479 100644 +--- a/src/test/util_badblock/util_badblock.c ++++ b/src/test/util_badblock/util_badblock.c +@@ -104,7 +104,7 @@ static void + do_open(const char *path) + { + struct pool_set *set; +- const struct pool_attr attr; ++ const struct pool_attr attr = { 0 }; + unsigned nlanes = 1; + + if (util_pool_open(&set, path, MIN_PART, diff --git a/nvml.rpmlintrc b/nvml.rpmlintrc new file mode 100644 index 0000000..8e06947 --- /dev/null +++ b/nvml.rpmlintrc @@ -0,0 +1,4 @@ +# SPELLING ERRORS + +addFilter(r'spelling-error .* en_US (libpmemobj|libpmemblk|libpmemlog|librpmem|transactional|pmdk|pmem)') +addFilter(r'spelling-error .*\(en_US\) (libpmemobj|libpmemblk|libpmemlog|librpmem|transactional|pmdk|pmem)') diff --git a/nvml.spec b/nvml.spec new file mode 100644 index 0000000..4286f0e --- /dev/null +++ b/nvml.spec @@ -0,0 +1,765 @@ + +# rpmbuild options: +# --with | --without fabric +# --with | --without ndctl + +# do not terminate build if files in the $RPM_BUILD_ROOT +# directory are not found in %%files (without fabric case) +%define _unpackaged_files_terminate_build 0 + +# disable 'make check' on suse +%if %{defined suse_version} + %define _skip_check 1 + %define dist .suse%{suse_version} +%endif + +%if (0%{?suse_version} > 1315) || (0%{?fedora} >= 27) || (0%{?rhel} >= 7) +%bcond_without fabric +%else +%bcond_with fabric +%endif + +# by default build with ndctl, unless explicitly disabled +%bcond_without ndctl + +# by default build without pmemcheck, unless explicitly enabled +# pmemcheck is not packaged by Fedora +%bcond_with pmemcheck + +%define min_libfabric_ver 1.4.2 +%define min_ndctl_ver 60.1 +%define upstreamversion 1.9.1 + +Name: nvml +Version: 1.9.1 +Release: 1%{?dist} +Summary: Persistent Memory Development Kit (formerly NVML) +License: BSD +URL: http://pmem.io/pmdk + +Source0: https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{upstreamversion}.tar.gz +Patch0: 0001-test-fix-symbol-format-in-the-scope-tests.patch +Patch1: nvml-gcc11.patch + +BuildRequires: gcc +BuildRequires: make +BuildRequires: glibc-devel +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: man +BuildRequires: pkgconfig +BuildRequires: python3 +BuildRequires: pandoc +BuildRequires: groff + +%if %{with ndctl} +BuildRequires: ndctl-devel >= %{min_ndctl_ver} +BuildRequires: daxctl-devel >= %{min_ndctl_ver} +%endif + +%if %{with fabric} +BuildRequires: libfabric-devel >= %{min_libfabric_ver} +%endif + +# for tests +BuildRequires: gdb +BuildRequires: bc +BuildRequires: libunwind-devel +#BuildRequires: valgrind + +# Debug variants of the libraries should be filtered out of the provides. +%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$ + +# By design, PMDK does not support any 32-bit architecture. +# Due to dependency on some inline assembly, PMDK can be compiled only +# on these architectures: +# - x86_64 +# - ppc64le (experimental) +# - aarch64 (unmaintained, supporting hardware doesn't exist?) +# +# Other 64-bit architectures could also be supported, if only there is +# a request for that, and if somebody provides the arch-specific +# implementation of the low-level routines for flushing to persistent +# memory. + +# https://bugzilla.redhat.com/show_bug.cgi?id=1340634 +# https://bugzilla.redhat.com/show_bug.cgi?id=1340635 +# https://bugzilla.redhat.com/show_bug.cgi?id=1340637 + +ExclusiveArch: x86_64 ppc64le + +%description +The Persistent Memory Development Kit is a collection of libraries for +using memory-mapped persistence, optimized specifically for persistent memory. + + +%package -n libpmem +Summary: Low-level persistent memory support library +%description -n libpmem +The libpmem provides low level persistent memory support. In particular, +support for the persistent memory instructions for flushing changes +to pmem is provided. + +%files -n libpmem +%dir %{_datadir}/pmdk +%{_libdir}/libpmem.so.* +%{_datadir}/pmdk/pmdk.magic +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmem-devel +Summary: Development files for the low-level persistent memory library +Requires: libpmem = %{version}-%{release} +%description -n libpmem-devel +The libpmem provides low level persistent memory support. In particular, +support for the persistent memory instructions for flushing changes +to pmem is provided. + +This library is provided for software which tracks every store to +pmem and needs to flush those changes to durability. Most developers +will find higher level libraries like libpmemobj to be much more +convenient. + +%files -n libpmem-devel +%{_libdir}/libpmem.so +%{_libdir}/pkgconfig/libpmem.pc +%{_includedir}/libpmem.h +%{_mandir}/man7/libpmem.7.gz +%{_mandir}/man3/pmem_*.3.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmem-debug +Summary: Debug variant of the low-level persistent memory library +Requires: libpmem = %{version}-%{release} +%description -n libpmem-debug +The libpmem provides low level persistent memory support. In particular, +support for the persistent memory instructions for flushing changes +to pmem is provided. + +This sub-package contains debug variant of the library, providing +run-time assertions and trace points. The typical way to access the +debug version is to set the environment variable LD_LIBRARY_PATH to +/usr/lib64/pmdk_debug. + +%files -n libpmem-debug +%dir %{_libdir}/pmdk_debug +%{_libdir}/pmdk_debug/libpmem.so +%{_libdir}/pmdk_debug/libpmem.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemblk +Summary: Persistent Memory Resident Array of Blocks library +Requires: libpmem >= %{version}-%{release} +%description -n libpmemblk +The libpmemblk implements a pmem-resident array of blocks, all the same +size, where a block is updated atomically with respect to power +failure or program interruption (no torn blocks). + +%files -n libpmemblk +%{_libdir}/libpmemblk.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemblk-devel +Summary: Development files for the Persistent Memory Resident Array of Blocks library +Requires: libpmemblk = %{version}-%{release} +Requires: libpmem-devel = %{version}-%{release} +%description -n libpmemblk-devel +The libpmemblk implements a pmem-resident array of blocks, all the same +size, where a block is updated atomically with respect to power +failure or program interruption (no torn blocks). + +For example, a program keeping a cache of fixed-size objects in pmem +might find this library useful. This library is provided for cases +requiring large arrays of objects at least 512 bytes each. Most +developers will find higher level libraries like libpmemobj to be +more generally useful. + +%files -n libpmemblk-devel +%{_libdir}/libpmemblk.so +%{_libdir}/pkgconfig/libpmemblk.pc +%{_includedir}/libpmemblk.h +%{_mandir}/man7/libpmemblk.7.gz +%{_mandir}/man5/poolset.5.gz +%{_mandir}/man3/pmemblk_*.3.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemblk-debug +Summary: Debug variant of the Persistent Memory Resident Array of Blocks library +Requires: libpmemblk = %{version}-%{release} +%description -n libpmemblk-debug +The libpmemblk implements a pmem-resident array of blocks, all the same +size, where a block is updated atomically with respect to power +failure or program interruption (no torn blocks). + +This sub-package contains debug variant of the library, providing +run-time assertions and trace points. The typical way to access the +debug version is to set the environment variable LD_LIBRARY_PATH to +/usr/lib64/pmdk_debug. + +%files -n libpmemblk-debug +%dir %{_libdir}/pmdk_debug +%{_libdir}/pmdk_debug/libpmemblk.so +%{_libdir}/pmdk_debug/libpmemblk.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemlog +Summary: Persistent Memory Resident Log File library +Requires: libpmem >= %{version}-%{release} +%description -n libpmemlog +The libpmemlog library provides a pmem-resident log file. This is +useful for programs like databases that append frequently to a log +file. + +%files -n libpmemlog +%{_libdir}/libpmemlog.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemlog-devel +Summary: Development files for the Persistent Memory Resident Log File library +Requires: libpmemlog = %{version}-%{release} +Requires: libpmem-devel = %{version}-%{release} +%description -n libpmemlog-devel +The libpmemlog library provides a pmem-resident log file. This +library is provided for cases requiring an append-mostly file to +record variable length entries. Most developers will find higher +level libraries like libpmemobj to be more generally useful. + +%files -n libpmemlog-devel +%{_libdir}/libpmemlog.so +%{_libdir}/pkgconfig/libpmemlog.pc +%{_includedir}/libpmemlog.h +%{_mandir}/man7/libpmemlog.7.gz +%{_mandir}/man5/poolset.5.gz +%{_mandir}/man3/pmemlog_*.3.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemlog-debug +Summary: Debug variant of the Persistent Memory Resident Log File library +Requires: libpmemlog = %{version}-%{release} +%description -n libpmemlog-debug +The libpmemlog library provides a pmem-resident log file. This +library is provided for cases requiring an append-mostly file to +record variable length entries. Most developers will find higher +level libraries like libpmemobj to be more generally useful. + +This sub-package contains debug variant of the library, providing +run-time assertions and trace points. The typical way to access the +debug version is to set the environment variable LD_LIBRARY_PATH to +/usr/lib64/pmdk_debug. + +%files -n libpmemlog-debug +%dir %{_libdir}/pmdk_debug +%{_libdir}/pmdk_debug/libpmemlog.so +%{_libdir}/pmdk_debug/libpmemlog.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemobj +Summary: Persistent Memory Transactional Object Store library +Requires: libpmem >= %{version}-%{release} +%description -n libpmemobj +The libpmemobj library provides a transactional object store, +providing memory allocation, transactions, and general facilities for +persistent memory programming. + +%files -n libpmemobj +%{_libdir}/libpmemobj.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemobj-devel +Summary: Development files for the Persistent Memory Transactional Object Store library +Requires: libpmemobj = %{version}-%{release} +Requires: libpmem-devel = %{version}-%{release} +%description -n libpmemobj-devel +The libpmemobj library provides a transactional object store, +providing memory allocation, transactions, and general facilities for +persistent memory programming. Developers new to persistent memory +probably want to start with this library. + +%files -n libpmemobj-devel +%{_libdir}/libpmemobj.so +%{_libdir}/pkgconfig/libpmemobj.pc +%{_includedir}/libpmemobj.h +%dir %{_includedir}/libpmemobj +%{_includedir}/libpmemobj/*.h +%{_mandir}/man7/libpmemobj.7.gz +%{_mandir}/man5/poolset.5.gz +%{_mandir}/man3/pmemobj_*.3.gz +%{_mandir}/man3/pobj_*.3.gz +%{_mandir}/man3/oid_*.3.gz +%{_mandir}/man3/toid*.3.gz +%{_mandir}/man3/direct_*.3.gz +%{_mandir}/man3/d_r*.3.gz +%{_mandir}/man3/tx_*.3.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmemobj-debug +Summary: Debug variant of the Persistent Memory Transactional Object Store library +Requires: libpmemobj = %{version}-%{release} +%description -n libpmemobj-debug +The libpmemobj library provides a transactional object store, +providing memory allocation, transactions, and general facilities for +persistent memory programming. Developers new to persistent memory +probably want to start with this library. + +This sub-package contains debug variant of the library, providing +run-time assertions and trace points. The typical way to access the +debug version is to set the environment variable LD_LIBRARY_PATH to +/usr/lib64/pmdk_debug. + +%files -n libpmemobj-debug +%dir %{_libdir}/pmdk_debug +%{_libdir}/pmdk_debug/libpmemobj.so +%{_libdir}/pmdk_debug/libpmemobj.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmempool +Summary: Persistent Memory pool management library +Requires: libpmem >= %{version}-%{release} +%description -n libpmempool +The libpmempool library provides a set of utilities for off-line +administration, analysis, diagnostics and repair of persistent memory +pools created by libpmemlog, libpmemblk and libpmemobj libraries. + +%files -n libpmempool +%{_libdir}/libpmempool.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmempool-devel +Summary: Development files for Persistent Memory pool management library +Requires: libpmempool = %{version}-%{release} +Requires: libpmem-devel = %{version}-%{release} +%description -n libpmempool-devel +The libpmempool library provides a set of utilities for off-line +administration, analysis, diagnostics and repair of persistent memory +pools created by libpmemlog, libpmemblk and libpmemobj libraries. + +%files -n libpmempool-devel +%{_libdir}/libpmempool.so +%{_libdir}/pkgconfig/libpmempool.pc +%{_includedir}/libpmempool.h +%{_mandir}/man7/libpmempool.7.gz +%{_mandir}/man5/poolset.5.gz +%{_mandir}/man3/pmempool_*.3.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n libpmempool-debug +Summary: Debug variant of the Persistent Memory pool management library +Requires: libpmempool = %{version}-%{release} +%description -n libpmempool-debug +The libpmempool library provides a set of utilities for off-line +administration, analysis, diagnostics and repair of persistent memory +pools created by libpmemlog, libpmemblk and libpmemobj libraries. + +This sub-package contains debug variant of the library, providing +run-time assertions and trace points. The typical way to access the +debug version is to set the environment variable LD_LIBRARY_PATH to +/usr/lib64/pmdk_debug. + +%files -n libpmempool-debug +%dir %{_libdir}/pmdk_debug +%{_libdir}/pmdk_debug/libpmempool.so +%{_libdir}/pmdk_debug/libpmempool.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%if %{with fabric} + +%package -n librpmem +Summary: Remote Access to Persistent Memory library +Requires: libfabric >= %{min_libfabric_ver} +Requires: openssh-clients +%description -n librpmem +The librpmem library provides low-level support for remote access +to persistent memory utilizing RDMA-capable NICs. It can be used +to replicate persistent memory regions over RDMA protocol. + +%files -n librpmem +%{_libdir}/librpmem.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n librpmem-devel +Summary: Development files for the Remote Access to Persistent Memory library +Requires: librpmem = %{version}-%{release} +%description -n librpmem-devel +The librpmem library provides low-level support for remote access +to persistent memory utilizing RDMA-capable NICs. It can be used +to replicate persistent memory regions over RDMA protocol. + +This sub-package contains libraries and header files for developing +applications that want to specifically make use of librpmem. + +%files -n librpmem-devel +%{_libdir}/librpmem.so +%{_libdir}/pkgconfig/librpmem.pc +%{_includedir}/librpmem.h +%{_mandir}/man7/librpmem.7.gz +%{_mandir}/man3/rpmem_*.3.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n librpmem-debug +Summary: Debug variant of the Remote Access to Persistent Memory library +Requires: librpmem = %{version}-%{release} +%description -n librpmem-debug +The librpmem library provides low-level support for remote access +to persistent memory utilizing RDMA-capable NICs. It can be used +to replicate persistent memory regions over RDMA protocol. + +This sub-package contains debug variant of the library, providing +run-time assertions and trace points. The typical way to access the +debug version is to set the environment variable LD_LIBRARY_PATH to +/usr/lib64/pmdk_debug. + +%files -n librpmem-debug +%dir %{_libdir}/pmdk_debug +%{_libdir}/pmdk_debug/librpmem.so +%{_libdir}/pmdk_debug/librpmem.so.* +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%package -n rpmemd +Summary: Target node process executed by librpmem +Requires: libfabric >= %{min_libfabric_ver} +%description -n rpmemd +The rpmemd process is executed on a target node by librpmem library +and facilitates access to persistent memory over RDMA. + +%files -n rpmemd +%{_bindir}/rpmemd +%{_mandir}/man1/rpmemd.1.gz + +# _with_fabric +%endif + + +%package -n pmempool +Summary: Utilities for Persistent Memory +Requires: libpmem >= %{version}-%{release} +Requires: libpmemlog >= %{version}-%{release} +Requires: libpmemblk >= %{version}-%{release} +Requires: libpmemobj >= %{version}-%{release} +Requires: libpmempool >= %{version}-%{release} +Obsoletes: nvml-tools < %{version}-%{release} +%description -n pmempool +The pmempool is a standalone utility for management and off-line analysis +of Persistent Memory pools created by PMDK libraries. It provides a set +of utilities for administration and diagnostics of Persistent Memory pools. +The pmempool may be useful for troubleshooting by system administrators +and users of the applications based on PMDK libraries. + +%files -n pmempool +%{_bindir}/pmempool +%{_mandir}/man1/pmempool.1.gz +%{_mandir}/man1/pmempool-*.1.gz +%config(noreplace) %{_sysconfdir}/bash_completion.d/pmempool +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + + +%if %{with ndctl} + +%package -n daxio +Summary: Perform I/O on Device DAX devices or zero a Device DAX device +Requires: libpmem >= %{version}-%{release} +%description -n daxio +The daxio utility performs I/O on Device DAX devices or zero +a Device DAX device. Since the standard I/O APIs (read/write) cannot be used +with Device DAX, data transfer is performed on a memory-mapped device. +The daxio may be used to dump Device DAX data to a file, restore data from +a backup copy, move/copy data to another device or to erase data from +a device. + +%files -n daxio +%{_bindir}/daxio +%{_mandir}/man1/daxio.1.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + +# _with_ndctl +%endif + +%if %{with pmemcheck} +%package -n pmreorder +Summary: Consistency Checker for Persistent Memory +Requires: python3 +%description -n pmreorder +The pmreorder tool is a collection of python scripts designed to parse +and replay operations logged by pmemcheck - a persistent memory checking tool. +Pmreorder performs the store reordering between persistent memory barriers - +a sequence of flush-fence operations. It uses a consistency checking routine +provided in the command line options to check whether files are in a consistent state. + +%files -n pmreorder +%{_bindir}/pmreorder +%{_datadir}/pmreorder/*.py +%{_mandir}/man1/pmreorder.1.gz +%license LICENSE +%doc ChangeLog CONTRIBUTING.md README.md + +# _with_pmemcheck +%endif + +%prep +%setup -q -n pmdk-%{upstreamversion} +%patch0 -p1 +%patch1 -p1 + + +%build +# This package calls binutils components directly and would need to pass +# in flags to enable the LTO plugins +# Disable LTO +%define _lto_cflags %{nil} + +# For debug build default flags may be overriden to disable compiler +# optimizations. +CFLAGS="%{optflags}" \ +LDFLAGS="%{?__global_ldflags}" \ +make %{?_smp_mflags} NORPATH=1 + + +# Override LIB_AR with empty string to skip installation of static libraries +%install +make install DESTDIR=%{buildroot} \ + LIB_AR= \ + prefix=%{_prefix} \ + libdir=%{_libdir} \ + includedir=%{_includedir} \ + mandir=%{_mandir} \ + bindir=%{_bindir} \ + sysconfdir=%{_sysconfdir} \ + docdir=%{_docdir} +mkdir -p %{buildroot}%{_datadir}/pmdk +cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/ + + + +%check +%if 0%{?_skip_check} == 1 + echo "Check skipped" +%else + echo "PMEM_FS_DIR=/tmp" > src/test/testconfig.sh + echo "PMEM_FS_DIR_FORCE_PMEM=1" >> src/test/testconfig.sh + echo 'TEST_BUILD="debug nondebug"' >> src/test/testconfig.sh + echo "TM=1" >> src/test/testconfig.sh + + echo "config = {" > src/test/testconfig.py + echo " 'pmem_fs_dir': '/tmp'," >> src/test/testconfig.py + echo " 'fs_dir_force_pmem': 1," >> src/test/testconfig.py + echo " 'build': ['debug', 'release']," >> src/test/testconfig.py + echo " 'tm': 1," >> src/test/testconfig.py + echo " 'test_type': 'check'," >> src/test/testconfig.py + echo " 'fs': 'all'," >> src/test/testconfig.py + echo " 'unittest_log_level': 1," >> src/test/testconfig.py + echo " 'keep_going': False," >> src/test/testconfig.py + echo " 'timeout': '30m'," >> src/test/testconfig.py + echo " 'dump_lines': 30," >> src/test/testconfig.py + echo " 'force_enable': None," >> src/test/testconfig.py + echo " 'device_dax_path': []," >> src/test/testconfig.py + echo " 'granularity': 'cacheline'," >> src/test/testconfig.py + echo " 'enable_admin_tests': False," >> src/test/testconfig.py + echo " 'fail_on_skip': False," >> src/test/testconfig.py + echo " 'cacheline_fs_dir': '/tmp'," >> src/test/testconfig.py + echo " 'force_cacheline': True," >> src/test/testconfig.py + echo " 'granularity': 'cacheline'," >> src/test/testconfig.py + echo "}" >> src/test/testconfig.py + + make pycheck + make check +%endif + +%ldconfig_scriptlets -n libpmem +%ldconfig_scriptlets -n libpmemblk +%ldconfig_scriptlets -n libpmemlog +%ldconfig_scriptlets -n libpmemobj +%ldconfig_scriptlets -n libpmempool + +%if %{with fabric} +%ldconfig_scriptlets -n librpmem +%endif + +%if 0%{?__debug_package} == 0 +%debug_package +%endif + + +%changelog +* Fri Oct 2 2020 Adam Borowski - 1.9.1-1 +- Update to PMDK version 1.9.1 + +* Tue Sep 15 2020 Jeff Law - 1.9-5 +- Fix uninitialized variable in tests caught by gcc-11 + +* Tue Aug 18 2020 Adam Borowski - 1.9-4 +- Fix FTBFS with new binutils. + +* Sat Aug 01 2020 Fedora Release Engineering - 1.9-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 7 2020 Adam Borowski - 1.9-1 +- Update to PMDK version 1.9 +- Drop upstreamed patches. +- Add pandoc and groff to B-Reqs. +- Add required testconfig.py fields. +- Increase test timeout. + +* Tue Jun 30 2020 Jeff Law - 1.8-3 +Disable LTO + +* Wed Feb 26 2020 Marcin Ślusarz - 1.8-2 +- Enable PPC64LE packages + +* Wed Feb 12 2020 Marcin Ślusarz - 1.8-1 +- Update to PMDK version 1.8. This release stops shipping + libvmem & libvmmalloc. These libraries are now provided by vmem + package. + +* Wed Jan 29 2020 Fedora Release Engineering - 1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Oct 1 2019 Marcin Ślusarz - 1.7-1 +- Update to PMDK version 1.7 + +* Fri Aug 30 2019 Marcin Ślusarz - 1.6.1-1 +- Update to PMDK version 1.6.1 + +* Thu Jul 25 2019 Fedora Release Engineering - 1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Mar 26 2019 Marcin Ślusarz - 1.6-1 +- Update to PMDK version 1.6 + +* Mon Mar 18 2019 Marcin Ślusarz - 1.6-0.1.rc2 +- Update to PMDK version 1.6-rc2 + +* Fri Mar 08 2019 Marcin Ślusarz - 1.5.1-1 +- Update to PMDK version 1.5.1 + +* Fri Feb 01 2019 Fedora Release Engineering - 1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Dec 14 2018 Marcin Ślusarz - 1.5-2 +- Remove Group: tag and add ownership information for libpmemobj headers + directory. + +* Tue Nov 6 2018 Marcin Ślusarz - 1.5-1 +- Update to PMDK version 1.5 + libpmemobj C++ bindings moved to separate package (RHBZ #1647145) + pmempool convert is now a thin wrapper around pmdk-convert (RHBZ #1647147) + +* Fri Aug 17 2018 Marcin Ślusarz - 1.4.2-1 +- Update to PMDK version 1.4.2 (RHBZ #1589406) + +* Tue Aug 14 2018 Marcin Ślusarz - 1.4.2-0.2.rc1 +- Revert package name change + +* Tue Aug 14 2018 Marcin Ślusarz - 1.4.2-0.1.rc1 +- Update to PMDK version 1.4.2-rc1 (RHBZ #1589406) + +* Fri Jul 13 2018 Fedora Release Engineering - 1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Mar 30 2018 Krzysztof Czurylo - 1.4-3 +- Revert package name change +- Re-enable check + +* Thu Mar 29 2018 Krzysztof Czurylo - 1.4-2 +- Fix issues found by rpmlint + +* Thu Mar 29 2018 Krzysztof Czurylo - 1.4-1 +- Rename NVML project to PMDK +- Update to PMDK version 1.4 (RHBZ #1480578, #1539562, #1539564) + +* Thu Feb 08 2018 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 27 2018 Krzysztof Czurylo - 1.3.1-1 +- Update to NVML version 1.3.1 (RHBZ #1480578) + +* Thu Aug 03 2017 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 17 2017 Krzysztof Czurylo - 1.3-1 +- Update to NVML version 1.3 (RHBZ #1451741, RHBZ #1455216) +- Add librpmem and rpmemd sub-packages +- Force file system to appear as PMEM for make check + +* Fri Jun 16 2017 Krzysztof Czurylo - 1.2.3-2 +- Update to NVML version 1.2.3 (RHBZ #1451741) + +* Sat Apr 15 2017 Krzysztof Czurylo - 1.2.2-1 +- Update to NVML version 1.2.2 (RHBZ #1436820, RHBZ #1425038) + +* Thu Mar 16 2017 Krzysztof Czurylo - 1.2.1-1 +- Update to NVML version 1.2.1 (RHBZ #1425038) + +* Tue Feb 21 2017 Krzysztof Czurylo - 1.2-3 +- Fix compilation under gcc 7.0.x (RHBZ #1424004) + +* Sat Feb 11 2017 Fedora Release Engineering - 1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Dec 30 2016 Krzysztof Czurylo - 1.2-1 +- Update to NVML version 1.2 (RHBZ #1383467) +- Add libpmemobj C++ bindings + +* Thu Jul 14 2016 Krzysztof Czurylo - 1.1-3 +- Add missing package version requirements + +* Mon Jul 11 2016 Krzysztof Czurylo - 1.1-2 +- Move debug variants of the libraries to -debug subpackages + +* Sun Jun 26 2016 Krzysztof Czurylo - 1.1-1 +- NVML 1.1 release +- Update link to source tarball +- Add libpmempool subpackage +- Remove obsolete patches + +* Wed Jun 01 2016 Dan Horák - 1.0-3 +- switch to ExclusiveArch + +* Sun May 29 2016 Krzysztof Czurylo - 1.0-2 +- Exclude PPC architecture +- Add bug numbers for excluded architectures + +* Tue May 24 2016 Krzysztof Czurylo - 1.0-1 +- Initial RPM release diff --git a/sources b/sources new file mode 100644 index 0000000..053dac1 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (pmdk-1.9.1.tar.gz) = 6ca6c3033b30af7d8f8fc642566e5569a996905ec090fae71fe7036ca00641a4458bee36baa2e1bd85284573221cad92d9167dbb74928e8f7ed8c7b249fea548