Hello community, here is the log from the commit of package nvml for openSUSE:Factory checked in at 2016-07-14 09:44:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nvml (Old) and /work/SRC/openSUSE:Factory/.nvml.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nvml" Changes: -------- --- /work/SRC/openSUSE:Factory/nvml/nvml.changes 2016-04-08 09:39:53.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.nvml.new/nvml.changes 2016-07-14 09:44:50.000000000 +0200 @@ -1,0 +2,32 @@ +Thu Jul 7 08:37:13 UTC 2016 - jthumsh...@suse.com + +- Fix 32 Bit overflow in resulting in flying writes (bsc#986657) + + 0001-libpmemblk-cast-translation-entry-to-uint64_t-when-calculating-data-offset.patch + +------------------------------------------------------------------- +Sun Jun 26 22:58:04 UTC 2016 - krzysztof.czur...@intel.com + +- Update to upstream version 1.1 +* A new version of libpmemobj pool layout is introduced. +* Internal undo log structure has been modified to improve + performance of pmemobj transactions. +* Memory pools created with older versions of the libpmemobj + library must be converted to the new format using "pmempool + convert" command. See pmempool-convert(1) for details. +* A new "libpmempool" library is available, providing support for + off-line pool management and diagnostics. Initially, it + provides only "check" and "repair" operations for log and blk + memory pools, and for BTT devices. +* pmem: deprecate PCOMMIT +* blk: match BTT Flog initialization with Linux NVDIMM BTT +* pmem: defer pmem_is_pmem() initialization +* cpp: clarify polymorphism in persistent_ptr +* obj: let the "before" flag be any non-zero value +* obj: fix compare array pptr to nullptr +* log/blk: set errno if replica section is specified +- Remove libuuid dependency +- Update link to source tarball (x.y.tar.gz => nvml-x.y.tar.gz) +- Add libpmempool subpackage +- Add new BuildRequires: pkg-config, glibc-devel + +------------------------------------------------------------------- Old: ---- 1.0.tar.gz New: ---- 0001-libpmemblk-cast-translation-entry-to-uint64_t-when-calculating-data-offset.patch nvml-1.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nvml.spec ++++++ --- /var/tmp/diff_new_pack.AN3wPn/_old 2016-07-14 09:44:51.000000000 +0200 +++ /var/tmp/diff_new_pack.AN3wPn/_new 2016-07-14 09:44:51.000000000 +0200 @@ -2,6 +2,7 @@ # spec file for package nvml # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright 2016, Intel Corporation # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,20 +18,31 @@ Name: nvml -Version: 1.0 -Release: 0 +Version: 1.1 +Release: 1 Summary: Non-Volatile Memory Library License: BSD-3-Clause Group: Development/Libraries/C and C++ Url: http://pmem.io/nvml/ #Git-Clone: git://github.com/pmem/nvml -Source: https://github.com/pmem/nvml/archive/%version.tar.gz +Source: https://github.com/pmem/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: 0001-libpmemblk-cast-translation-entry-to-uint64_t-when-calculating-data-offset.patch BuildRequires: autoconf -BuildRequires: libuuid-devel +BuildRequires: automake BuildRequires: man +BuildRequires: glibc-devel +BuildRequires: pkg-config + BuildRoot: %{_tmppath}/%{name}-%{version}-build -# Depends on xmmintrin + +# By design, NVML does not support any 32-bit architecture. +# Due to dependency on xmmintrin.h and some inline assembly, it can be +# compiled only for x86_64 at the moment. +# 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. ExclusiveArch: x86_64 %description @@ -183,26 +195,51 @@ This subpackage contains libraries and header files for developing applications that want to specifically make use of libvmmalloc. +%package -n libpmempool1 +Summary: Persistent Memory pool management library +Group: System/Libraries + +%description -n libpmempool1 +The libpmempool library provides a set of utilities for off-line administration, +analysis, diagnostics and repair of persistent memory pools created +by libpmemlog, libpemblk and libpmemobj libraries. + +%package -n libpmempool-devel +Summary: Development files for Persistent Memory pool management library +Group: Development/Libraries/C and C++ +Requires: libpmempool1 = %version + +%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, libpemblk and libpmemobj libraries. + %prep %setup -q +%patch0 -p1 %build +# Currently, NVML makefiles do not allow to easily override CFLAGS, +# so the build flags are passed via EXTRA_CFLAGS. For debug build +# selected flags are overriden to disable compiler optimizations. +# # remaining issues: # * jemalloc attempts to use __builtin_clz, this might not always work -# * .map files look flakey: they lack a monotonically increasing identifier -# * stupid Makefiles: setting CFLAGS breaks the build -# +EXTRA_CFLAGS_RELEASE="%{optflags}" \ +EXTRA_CFLAGS_DEBUG="%{optflags} -Wp,-U_FORTIFY_SOURCE -O0" \ +EXTRA_CXXFLAGS="%{optflags}" \ make %{?_smp_mflags} BINDIR="%_bindir" +# Override LIB_AR with empty string to skip installation of static libraries %install b="%buildroot" -make install DESTDIR="$b" prefix="%_prefix"\ +make install DESTDIR="$b" LIB_AR= \ + prefix="%_prefix"\ libdir="%{_libdir}"\ includedir="%{_includedir}"\ mandir="%{_mandir}"\ bindir="%{_bindir}"\ sysconfdir="%{_sysconfdir}" -rm -f "$b/%_libdir"/*.a "$b/%_libdir/nvml_debug"/*.a mkdir -p "$b/%_datadir/nvml" cp utils/nvml.magic "$b/%_datadir/nvml/" @@ -222,6 +259,8 @@ %postun -n libvmem1 -p /sbin/ldconfig %post -n libvmmalloc1 -p /sbin/ldconfig %postun -n libvmmalloc1 -p /sbin/ldconfig +%post -n libpmempool1 -p /sbin/ldconfig +%postun -n libpmempool1 -p /sbin/ldconfig %files %defattr(-,root,root) @@ -237,6 +276,7 @@ %_mandir/man1/pmempool-dump.1* %_mandir/man1/pmempool-check.1* %_mandir/man1/pmempool-rm.1* +%_mandir/man1/pmempool-convert.1* %doc LICENSE %files -n libpmem1 @@ -317,4 +357,17 @@ %_includedir/libvmmalloc.h %_mandir/man3/libvmmalloc.3* +%files -n libpmempool1 +%defattr(-,root,root) +%_libdir/libpmempool.so.1* + +%files -n libpmempool-devel +%defattr(-,root,root) +%_libdir/libpmempool.so +%_libdir/pkgconfig/libpmempool.pc +%dir %_libdir/nvml_debug +%_libdir/nvml_debug/libpmempool.so* +%_includedir/libpmempool.h +%_mandir/man3/libpmempool.3* + %changelog ++++++ 0001-libpmemblk-cast-translation-entry-to-uint64_t-when-calculating-data-offset.patch ++++++ From: Brian Boylston <brian.boyls...@hpe.com> Date: Tue, 14 Jun 2016 09:31:29 -0500 Subject: libpmemblk: cast translation entry to uint64_t when calculating data offset Git-repo: http://github.com/pmem/nvml.git Git-commit: 81a4e5e472f6ec74b6f2cda160a90e6488ae30ce References: bsc#986657 Acked-by: Johannes Thumshirn <jthumsh...@suse.com> --- src/libpmemblk/btt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libpmemblk/btt.c b/src/libpmemblk/btt.c index af8c3f3..08e5c31 100644 --- a/src/libpmemblk/btt.c +++ b/src/libpmemblk/btt.c @@ -1583,7 +1583,7 @@ btt_read(struct btt *bttp, unsigned lane, uint64_t lba, void *buf) * block from getting re-allocated to something else by a write. */ uint64_t data_block_off = - arenap->dataoff + (entry & BTT_MAP_ENTRY_LBA_MASK) * + arenap->dataoff + (uint64_t)(entry & BTT_MAP_ENTRY_LBA_MASK) * arenap->internal_lbasize; int readret = (*bttp->ns_cbp->nsread)(bttp->ns, lane, buf, bttp->lbasize, data_block_off); @@ -1748,7 +1748,7 @@ btt_write(struct btt *bttp, unsigned lane, uint64_t lba, const void *buf) /* it is now safe to perform write to the free block */ uint64_t data_block_off = arenap->dataoff + - (free_entry & BTT_MAP_ENTRY_LBA_MASK) * + (uint64_t)(free_entry & BTT_MAP_ENTRY_LBA_MASK) * arenap->internal_lbasize; if ((*bttp->ns_cbp->nswrite)(bttp->ns, lane, buf, bttp->lbasize, data_block_off) < 0)