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;
 }


Reply via email to