Hello community, here is the log from the commit of package blosc for openSUSE:Factory checked in at 2018-08-22 14:21:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/blosc (Old) and /work/SRC/openSUSE:Factory/.blosc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "blosc" Wed Aug 22 14:21:18 2018 rev:12 rq:630788 version:1.14.4 Changes: -------- --- /work/SRC/openSUSE:Factory/blosc/blosc.changes 2018-07-06 10:42:32.111216217 +0200 +++ /work/SRC/openSUSE:Factory/.blosc.new/blosc.changes 2018-08-22 14:21:25.262503439 +0200 @@ -1,0 +2,18 @@ +Tue Aug 21 12:53:41 UTC 2018 - [email protected] + +- Update to version 1.14.4: + * Added a new DEACTIVATE_SSE2 option for cmake that is useful for + disabling SSE2 when doing cross-compilation (see #236). + * New check for detecting output buffers smaller than + BLOSC_MAX_OVERHEAD. + * The complib and version parameters for blosc_get_complib_info() + can be safely set to NULL now. This allows to call this + function even if the user is not interested in these parameters + (so no need to reserve memory for them). + * In some situations that a supposedly blosc chunk is passed to + blosc_decompress(), one might end with an Arithmetic exception. + This is probably due to the chunk not being an actual blosc + chunk, and divisions by zero might occur. A protection has been + added for this. + +------------------------------------------------------------------- Old: ---- blosc-1.14.3.tar.gz New: ---- blosc-1.14.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ blosc.spec ++++++ --- /var/tmp/diff_new_pack.zAW0SR/_old 2018-08-22 14:21:29.786514152 +0200 +++ /var/tmp/diff_new_pack.zAW0SR/_new 2018-08-22 14:21:29.786514152 +0200 @@ -19,7 +19,7 @@ %define major 1 %define libname lib%{name}%{major} Name: blosc -Version: 1.14.3 +Version: 1.14.4 Release: 0 Summary: A blocking, shuffling and lossless compression library License: MIT AND BSD-3-Clause AND BSD-2-Clause @@ -83,10 +83,10 @@ rm -rf %{buildroot}%{_libdir}/libblosc.a # Put .pc files in right directory -if [ "%{_libdir}" != "%{_prefix}/lib" ] ; then +if [ "%{_libdir}" != "%{_libexecdir}" ] ; then mkdir -p %{buildroot}%{_libdir} -mv %{buildroot}%{_prefix}/lib/pkgconfig %{buildroot}%{_libdir}/pkgconfig -rm -d %{buildroot}%{_prefix}/lib +mv %{buildroot}%{_libexecdir}/pkgconfig %{buildroot}%{_libdir}/pkgconfig +rm -d %{buildroot}%{_libexecdir} fi %check ++++++ blosc-1.14.3.tar.gz -> blosc-1.14.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/.travis.yml new/c-blosc-1.14.4/.travis.yml --- old/c-blosc-1.14.3/.travis.yml 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/.travis.yml 2018-07-30 12:56:38.000000000 +0200 @@ -13,9 +13,11 @@ python: "3.6" services: - docker + osx: &osx os: osx language: generic + matrix: include: - <<: *osx @@ -62,11 +64,13 @@ - <<: *linux env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=lasote/conanclang40 CONAN_CURRENT_PAGE=2 - before_script: - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; - brew upgrade python@3; + brew upgrade pyenv; + pyenv install 3.6.6; + eval "$(pyenv init -)"; + pyenv global 3.6.6; python3 --version; pip3 install --upgrade pip; fi @@ -74,4 +78,3 @@ script: - python3 build.py - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/ANNOUNCE.rst new/c-blosc-1.14.4/ANNOUNCE.rst --- old/c-blosc-1.14.3/ANNOUNCE.rst 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/ANNOUNCE.rst 2018-07-30 12:56:38.000000000 +0200 @@ -1,16 +1,15 @@ =============================================================== - Announcing C-Blosc 1.14.3 + Announcing C-Blosc 1.14.4 A blocking, shuffling and lossless compression library for C =============================================================== What is new? ============ -The main change for this release is that the pthreads library is -not needed on any Windows build anymore. Thanks to Steven G. Johnson. -Also, the internal Zstd sources have been updated to 1.3.4; expect -an important performance boost (can be up to 10%, specially for low -compression levels). +This is a maintenance release. Now it is possible to deactivate SSE2, +which can be useful e.g. when doing cross-compiling from an Intel box. +Also, there is better protection against passing small output buffers +for compression, and other improvements. For more info, please see the release notes in: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/CMakeLists.txt new/c-blosc-1.14.4/CMakeLists.txt --- old/c-blosc-1.14.3/CMakeLists.txt 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/CMakeLists.txt 2018-07-30 12:56:38.000000000 +0200 @@ -11,6 +11,8 @@ # build test programs and generates the "test" target # BUILD_BENCHMARKS: default ON # build the benchmark program +# DEACTIVATE_SSE2: default OFF +# do not attempt to build with SSE2 instructions # DEACTIVATE_AVX2: default OFF # do not attempt to build with AVX2 instructions # DEACTIVATE_LZ4: default OFF @@ -95,8 +97,10 @@ "Build test programs form the blosc compression library" ON) option(BUILD_BENCHMARKS "Build benchmark programs form the blosc compression library" ON) +option(DEACTIVATE_SSE2 + "Do not attempt to build with SSE2 instructions" OFF) option(DEACTIVATE_AVX2 - "Do not attempt to build with AVX2 instructions" OFF) + "Do not attempt to build with AVX2 instructions" OFF) option(DEACTIVATE_LZ4 "Do not include support for the LZ4 library." OFF) option(DEACTIVATE_SNAPPY @@ -245,6 +249,11 @@ message(WARNING "Unrecognized system processor ${CMAKE_SYSTEM_PROCESSOR}. Cannot determine which hardware features (${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}) supports, so hardware-accelerated implementations will not be available.") endif() +# disable SSE2 if specified (useful for cross-compiling, see #236) +if(DEACTIVATE_SSE2) + set(COMPILER_SUPPORT_SSE2 FALSE) +endif() + # disable AVX2 if specified if(DEACTIVATE_AVX2) set(COMPILER_SUPPORT_AVX2 FALSE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/RELEASE_NOTES.rst new/c-blosc-1.14.4/RELEASE_NOTES.rst --- old/c-blosc-1.14.3/RELEASE_NOTES.rst 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/RELEASE_NOTES.rst 2018-07-30 12:56:38.000000000 +0200 @@ -7,6 +7,26 @@ :URL: http://www.blosc.org +Changes from 1.14.3 to 1.14.4 +============================= + +- Added a new `DEACTIVATE_SSE2` option for cmake that is useful for disabling + SSE2 when doing cross-compilation (see #236). + +- New check for detecting output buffers smaller than BLOSC_MAX_OVERHEAD. + Fixes #234. + +- The `complib` and `version` parameters for `blosc_get_complib_info()` can be + safely set to NULL now. This allows to call this function even if the user is + not interested in these parameters (so no need to reserve memory for them). + Fixes #228. + +- In some situations that a supposedly blosc chunk is passed to + `blosc_decompress()`, one might end with an `Arithmetic exception`. This + is probably due to the chunk not being an actual blosc chunk, and divisions + by zero might occur. A protection has been added for this. See #237. + + Changes from 1.14.2 to 1.14.3 ============================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/blosc/blosc.c new/c-blosc-1.14.4/blosc/blosc.c --- old/c-blosc-1.14.3/blosc/blosc.c 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/blosc/blosc.c 2018-07-30 12:56:38.000000000 +0200 @@ -1075,11 +1075,15 @@ /* Check buffer size limits */ if (sourcesize > BLOSC_MAX_BUFFERSIZE) { - /* If buffer is too large, give up. */ fprintf(stderr, "Input buffer size cannot exceed %d bytes\n", BLOSC_MAX_BUFFERSIZE); return -1; } + if (destsize <= BLOSC_MAX_OVERHEAD) { + fprintf(stderr, "Output buffer size should be larger than %d bytes\n", + BLOSC_MAX_OVERHEAD); + return -1; + } /* Compression level */ if (clevel < 0 || clevel > 9) { @@ -1282,7 +1286,7 @@ /* Check if should initialize */ if (!g_initlib) blosc_init(); - /* Check for a BLOSC_CLEVEL environment variable */ + /* Check for environment variables */ envvar = getenv("BLOSC_CLEVEL"); if (envvar != NULL) { long value; @@ -1292,7 +1296,6 @@ } } - /* Check for a BLOSC_SHUFFLE environment variable */ envvar = getenv("BLOSC_SHUFFLE"); if (envvar != NULL) { if (strcmp(envvar, "NOSHUFFLE") == 0) { @@ -1306,7 +1309,6 @@ } } - /* Check for a BLOSC_TYPESIZE environment variable */ envvar = getenv("BLOSC_TYPESIZE"); if (envvar != NULL) { long value; @@ -1316,14 +1318,12 @@ } } - /* Check for a BLOSC_COMPRESSOR environment variable */ envvar = getenv("BLOSC_COMPRESSOR"); if (envvar != NULL) { result = blosc_set_compressor(envvar); if (result < 0) { return result; } } - /* Check for a BLOSC_COMPRESSOR environment variable */ envvar = getenv("BLOSC_BLOCKSIZE"); if (envvar != NULL) { long blocksize; @@ -1333,7 +1333,6 @@ } } - /* Check for a BLOSC_NTHREADS environment variable */ envvar = getenv("BLOSC_NTHREADS"); if (envvar != NULL) { long nthreads; @@ -1344,7 +1343,6 @@ } } - /* Check for a BLOSC_SPLITMODE environment variable */ envvar = getenv("BLOSC_SPLITMODE"); if (envvar != NULL) { if (strcmp(envvar, "FORWARD_COMPAT") == 0) { @@ -1422,6 +1420,11 @@ context->sourcesize = sw32_(context->src + 4); /* buffer size */ context->blocksize = sw32_(context->src + 8); /* block size */ + if (context->blocksize <= 0) { + fprintf(stderr, "blocksize cannot be negative or 0; corrupt header?"); + return -1; + } + if (version != BLOSC_VERSION_FORMAT) { /* Version from future */ return -1; @@ -2018,9 +2021,16 @@ clibversion = sbuffer; } #endif /* HAVE_ZSTD */ + else { + /* Unsupported library */ + if (complib != NULL) *complib = NULL; + if (version != NULL) *version = NULL; + return -1; + } + + if (complib != NULL) *complib = strdup(clibname); + if (version != NULL) *version = strdup(clibversion); - *complib = strdup(clibname); - *version = strdup(clibversion); return clibcode; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/blosc/blosc.h new/c-blosc-1.14.4/blosc/blosc.h --- old/c-blosc-1.14.3/blosc/blosc.h 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/blosc/blosc.h 2018-07-30 12:56:38.000000000 +0200 @@ -19,11 +19,11 @@ /* Version numbers */ #define BLOSC_VERSION_MAJOR 1 /* for major interface/format changes */ #define BLOSC_VERSION_MINOR 14 /* for minor interface/format changes */ -#define BLOSC_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */ +#define BLOSC_VERSION_RELEASE 4 /* for tweaks, bug-fixes, or development */ -#define BLOSC_VERSION_STRING "1.14.3" /* string version. Sync with above! */ +#define BLOSC_VERSION_STRING "1.14.4" /* string version. Sync with above! */ #define BLOSC_VERSION_REVISION "$Rev$" /* revision version */ -#define BLOSC_VERSION_DATE "$Date:: 2018-04-06 #$" /* date version */ +#define BLOSC_VERSION_DATE "$Date:: 2018-07-30 #$" /* date version */ #define BLOSCLZ_VERSION_STRING "1.1.0" /* the internal compressor version */ @@ -385,7 +385,8 @@ In `complib` and `version` you get a pointer to the compressor library name and the version in string format respectively. After using the name and version, you should free() them so as to avoid - leaks. + leaks. If any of `complib` and `version` are NULL, they will not be + assigned to anything, and the user should not need to free them. If the compressor is supported, it returns the code for the library (>=0). If it is not supported, this function returns -1. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/tests/test_api.c new/c-blosc-1.14.4/tests/test_api.c --- old/c-blosc-1.14.3/tests/test_api.c 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/tests/test_api.c 2018-07-30 12:56:38.000000000 +0200 @@ -34,6 +34,28 @@ return 0; } +static const char *test_get_complib_info(void) { + char *complib, *version; + int clibcode; + + clibcode = blosc_get_complib_info("blosclz", &complib, &version); + mu_assert("ERROR: complib incorrect", strcmp(complib, "BloscLZ") == 0); + mu_assert("ERROR: clibcode incorrect", clibcode == 0); + free(complib); + free(version); + clibcode = blosc_get_complib_info("non-existing", &complib, &version); + mu_assert("ERROR: complib should be NULL", complib == NULL); + mu_assert("ERROR: clibcode incorrect", clibcode == -1); + clibcode = blosc_get_complib_info("blosclz", NULL, NULL); + mu_assert("ERROR: clibcode incorrect", clibcode == 0); + clibcode = blosc_get_complib_info("blosclz", NULL, &version); + mu_assert("ERROR: clibcode incorrect", clibcode == 0); + clibcode = blosc_get_complib_info("blosclz", &complib, NULL); + mu_assert("ERROR: complib incorrect", strcmp(complib, "BloscLZ") == 0); + mu_assert("ERROR: clibcode incorrect", clibcode == 0); + return 0; +} + static const char *test_cbuffer_metainfo(void) { size_t typesize_; int flags; @@ -95,6 +117,7 @@ static const char *all_tests(void) { mu_run_test(test_cbuffer_sizes); + mu_run_test(test_get_complib_info); mu_run_test(test_cbuffer_metainfo); mu_run_test(test_cbuffer_versions); mu_run_test(test_cbuffer_complib); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc-1.14.3/tests/test_maxout.c new/c-blosc-1.14.4/tests/test_maxout.c --- old/c-blosc-1.14.3/tests/test_maxout.c 2018-04-06 11:27:51.000000000 +0200 +++ new/c-blosc-1.14.4/tests/test_maxout.c 2018-07-30 12:56:38.000000000 +0200 @@ -101,6 +101,26 @@ return 0; } +/* Check maxout with maxout <= BLOSC_MAX_OVERHEAD */ +static const char *test_max_overhead(void) { + blosc_init(); + cbytes = blosc_compress(0, doshuffle, typesize, size, src, dest, BLOSC_MAX_OVERHEAD); + mu_assert("ERROR: cbytes is not correct", cbytes < 0); + blosc_destroy(); + + blosc_init(); + cbytes = blosc_compress(0, doshuffle, typesize, size, src, dest, BLOSC_MAX_OVERHEAD - 2); + mu_assert("ERROR: cbytes is not correct", cbytes < 0); + blosc_destroy(); + + blosc_init(); + cbytes = blosc_compress(0, doshuffle, typesize, size, src, dest, 0); + mu_assert("ERROR: cbytes is not correct", cbytes < 0); + blosc_destroy(); + + return 0; +} + static const char *all_tests(void) { mu_run_test(test_maxout_less); @@ -109,6 +129,7 @@ mu_run_test(test_maxout_equal_memcpy); mu_run_test(test_maxout_great); mu_run_test(test_maxout_great_memcpy); + mu_run_test(test_max_overhead); return 0; }
