New Upstream Release - liberasurecode
Ready changes
Summary
Merged new upstream version: 1.6.3 (was: 1.6.2).
Resulting package
Built on 2022-11-23T07:49 (took 8m1s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases liberasurecode-devapt install -t fresh-releases liberasurecode1-dbgsymapt install -t fresh-releases liberasurecode1
Lintian Result
Diff
diff --git a/.zuul.yaml b/.zuul.yaml
index 219c389..82ff46a 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -5,6 +5,14 @@
Build and run test and valgrind-test for liberasurecode.
run: playbooks/unittests/run.yaml
+- job:
+ name: liberasurecode-unittests-arm64
+ parent: liberasurecode-unittests
+ nodeset: ubuntu-focal-arm64
+ description: |
+ Build and run test and valgrind-test for liberasurecode
+ on arm64.
+
- job:
name: liberasurecode-unittests-centos-7
parent: liberasurecode-unittests
@@ -14,21 +22,46 @@
This job runs on CentOS-7.
- job:
- name: liberasurecode-unittests-centos-8
+ name: liberasurecode-unittests-centos-8-stream
+ parent: liberasurecode-unittests
+ nodeset: centos-8-stream
+ description: |
+ Build and run test and valgrind-test for liberasurecode.
+ This job runs on CentOS 8 Stream.
+
+- job:
+ name: liberasurecode-unittests-centos-8-stream-fips
+ parent: liberasurecode-unittests-centos-8-stream
+ pre-run: playbooks/enable-fips.yaml
+ description: |
+ Build and run test and valgrind-test for liberasurecode.
+ This job runs on a FIPS-enabled CentOS 8 Stream system.
+
+- job:
+ name: liberasurecode-unittests-centos-8-stream-arm64
parent: liberasurecode-unittests
- nodeset: centos-8
+ nodeset:
+ nodes:
+ - name: libec-centos-8-stream-arm64
+ label: centos-8-stream-arm64
description: |
Build and run test and valgrind-test for liberasurecode.
- This job runs on CentOS-8.
+ This job runs on CentOS 8 Stream on arm64.
- project:
check:
jobs:
- liberasurecode-unittests
- liberasurecode-unittests-centos-7
- - liberasurecode-unittests-centos-8
+ - liberasurecode-unittests-centos-8-stream
+ - liberasurecode-unittests-centos-8-stream-fips
+ check-arm64:
+ jobs:
+ - liberasurecode-unittests-arm64
+ - liberasurecode-unittests-centos-8-stream-arm64
gate:
jobs:
- liberasurecode-unittests
- liberasurecode-unittests-centos-7
- - liberasurecode-unittests-centos-8
+ - liberasurecode-unittests-centos-8-stream
+ - liberasurecode-unittests-centos-8-stream-fips
diff --git a/ChangeLog b/ChangeLog
index 30f0fa4..e1ba6f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Release 1.6.3
+-------------
+
+ . Fixed an underflow error when using flat_xor_hd.
+ . Added a build option to allow a suffix to be added to library names passed
+ to dlopen(). To use, define LIBERASURECODE_SO_SUFFIX via CFLAGS when
+ building. This is useful when renaming libraries for PyEClib wheels, for
+ example, so they don't conflict with system packages that may be installed.
+
Release 1.6.2
-------------
@@ -94,7 +103,7 @@ Release 1.0.9
. Minor bugfixes including removing offending MAJOR/MINOR version macros
. Enforce upper limit 32 on the number of erasure coding fragments
- (#data + #chunks) < 32
+ (#data + #chunks) < 32
Release 1.0.8
-------------
diff --git a/README.md b/README.md
index bb8469c..5c80211 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,15 @@ top-level directory:
----
+Getting Help
+============
+
+- Bugs: https://bugs.launchpad.net/liberasurecode/
+- Mailing List: http://lists.openstack.org/pipermail/openstack-discuss/ (use tag `[swift][liberasurecode]`)
+- IRC: #openstack-swift on OFTC
+
+----
+
References
==========
diff --git a/debian/changelog b/debian/changelog
index 19e668e..37b5b2e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+liberasurecode (1.6.3-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk> Wed, 23 Nov 2022 07:42:42 -0000
+
liberasurecode (1.6.2-1) unstable; urgency=medium
* New upstream release.
diff --git a/include/erasurecode/erasurecode_version.h b/include/erasurecode/erasurecode_version.h
index 21a511b..5f06cd7 100644
--- a/include/erasurecode/erasurecode_version.h
+++ b/include/erasurecode/erasurecode_version.h
@@ -27,11 +27,15 @@
#define _MAJOR 1
#define _MINOR 6
-#define _REV 2
+#define _REV 3
#define _VERSION(x, y, z) ((x << 16) | (y << 8) | (z))
#define LIBERASURECODE_VERSION _VERSION(_MAJOR, _MINOR, _REV)
+#ifndef LIBERASURECODE_SO_SUFFIX
+#define LIBERASURECODE_SO_SUFFIX ""
+#endif // LIBERASURECODE_SO_SUFFIX
+
#endif // _ERASURECODE_VERSION_H_
diff --git a/playbooks/enable-fips.yaml b/playbooks/enable-fips.yaml
new file mode 100644
index 0000000..bc1dc04
--- /dev/null
+++ b/playbooks/enable-fips.yaml
@@ -0,0 +1,3 @@
+- hosts: all
+ roles:
+ - enable-fips
diff --git a/roles/install_isal/tasks/main.yaml b/roles/install_isal/tasks/main.yaml
index 62ea807..6dd8a99 100644
--- a/roles/install_isal/tasks/main.yaml
+++ b/roles/install_isal/tasks/main.yaml
@@ -23,7 +23,7 @@
set -e
set -x
cd $WORKSPACE
- git clone git://github.com/01org/isa-l.git
+ git clone https://github.com/intel/isa-l.git -b v2.30.0
cd isa-l
./autogen.sh
./configure
diff --git a/src/backends/isa-l/isa_l_rs_cauchy.c b/src/backends/isa-l/isa_l_rs_cauchy.c
index 3ab927e..2c9e117 100644
--- a/src/backends/isa-l/isa_l_rs_cauchy.c
+++ b/src/backends/isa-l/isa_l_rs_cauchy.c
@@ -38,9 +38,9 @@
#define ISA_L_RS_CAUCHY_LIB_VER_STR "2.14"
#define ISA_L_RS_CAUCHY_LIB_NAME "isa_l_rs_cauchy"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define ISA_L_RS_CAUCHY_SO_NAME "libisal.dylib"
+#define ISA_L_RS_CAUCHY_SO_NAME "libisal" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define ISA_L_RS_CAUCHY_SO_NAME "libisal.so.2"
+#define ISA_L_RS_CAUCHY_SO_NAME "libisal" LIBERASURECODE_SO_SUFFIX ".so.2"
#endif
/* Forward declarations */
diff --git a/src/backends/isa-l/isa_l_rs_vand.c b/src/backends/isa-l/isa_l_rs_vand.c
index ca176cb..6e65747 100644
--- a/src/backends/isa-l/isa_l_rs_vand.c
+++ b/src/backends/isa-l/isa_l_rs_vand.c
@@ -37,9 +37,9 @@
#define ISA_L_RS_VAND_LIB_VER_STR "2.13"
#define ISA_L_RS_VAND_LIB_NAME "isa_l_rs_vand"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define ISA_L_RS_VAND_SO_NAME "libisal.dylib"
+#define ISA_L_RS_VAND_SO_NAME "libisal" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define ISA_L_RS_VAND_SO_NAME "libisal.so.2"
+#define ISA_L_RS_VAND_SO_NAME "libisal" LIBERASURECODE_SO_SUFFIX ".so.2"
#endif
/* Forward declarations */
diff --git a/src/backends/jerasure/jerasure_rs_cauchy.c b/src/backends/jerasure/jerasure_rs_cauchy.c
index 82d796a..793504a 100644
--- a/src/backends/jerasure/jerasure_rs_cauchy.c
+++ b/src/backends/jerasure/jerasure_rs_cauchy.c
@@ -40,9 +40,9 @@
#define JERASURE_RS_CAUCHY_LIB_VER_STR "2.0"
#define JERASURE_RS_CAUCHY_LIB_NAME "jerasure_rs_cauchy"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure.dylib"
+#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure.so.2"
+#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure" LIBERASURECODE_SO_SUFFIX ".so.2"
#endif
/* Forward declarations */
diff --git a/src/backends/jerasure/jerasure_rs_vand.c b/src/backends/jerasure/jerasure_rs_vand.c
index 9395046..c2676ee 100644
--- a/src/backends/jerasure/jerasure_rs_vand.c
+++ b/src/backends/jerasure/jerasure_rs_vand.c
@@ -40,9 +40,9 @@
#define JERASURE_RS_VAND_LIB_VER_STR "2.0"
#define JERASURE_RS_VAND_LIB_NAME "jerasure_rs_vand"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define JERASURE_RS_VAND_SO_NAME "libJerasure.dylib"
+#define JERASURE_RS_VAND_SO_NAME "libJerasure" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define JERASURE_RS_VAND_SO_NAME "libJerasure.so.2"
+#define JERASURE_RS_VAND_SO_NAME "libJerasure" LIBERASURECODE_SO_SUFFIX ".so.2"
#endif
/* Forward declarations */
diff --git a/src/backends/null/null.c b/src/backends/null/null.c
index abc925b..85aa8fe 100644
--- a/src/backends/null/null.c
+++ b/src/backends/null/null.c
@@ -37,9 +37,9 @@
#define NULL_LIB_VER_STR "1.0"
#define NULL_LIB_NAME "null"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define NULL_SO_NAME "libnullcode.dylib"
+#define NULL_SO_NAME "libnullcode" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define NULL_SO_NAME "libnullcode.so.1"
+#define NULL_SO_NAME "libnullcode" LIBERASURECODE_SO_SUFFIX ".so.1"
#endif
/* Forward declarations */
struct ec_backend null;
diff --git a/src/backends/phazrio/libphazr.c b/src/backends/phazrio/libphazr.c
index 41ed74e..0dfd1fb 100644
--- a/src/backends/phazrio/libphazr.c
+++ b/src/backends/phazrio/libphazr.c
@@ -39,9 +39,9 @@
#define LIBPHAZR_LIB_VER_STR "1.0.0"
#define LIBPHAZR_LIB_NAME "libphazr"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define LIBPHAZR_SO_NAME "libphazr.dylib"
+#define LIBPHAZR_SO_NAME "libphazr" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define LIBPHAZR_SO_NAME "libphazr.so.1"
+#define LIBPHAZR_SO_NAME "libphazr" LIBERASURECODE_SO_SUFFIX ".so.1"
#endif
/* Forward declarations */
diff --git a/src/backends/rs_vand/liberasurecode_rs_vand.c b/src/backends/rs_vand/liberasurecode_rs_vand.c
index cc84b65..c17dde1 100644
--- a/src/backends/rs_vand/liberasurecode_rs_vand.c
+++ b/src/backends/rs_vand/liberasurecode_rs_vand.c
@@ -38,9 +38,9 @@
#define LIBERASURECODE_RS_VAND_LIB_VER_STR "1.0"
#define LIBERASURECODE_RS_VAND_LIB_NAME "liberasurecode_rs_vand"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define LIBERASURECODE_RS_VAND_SO_NAME "liberasurecode_rs_vand.dylib"
+#define LIBERASURECODE_RS_VAND_SO_NAME "liberasurecode_rs_vand" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define LIBERASURECODE_RS_VAND_SO_NAME "liberasurecode_rs_vand.so.1"
+#define LIBERASURECODE_RS_VAND_SO_NAME "liberasurecode_rs_vand" LIBERASURECODE_SO_SUFFIX ".so.1"
#endif
/* Forward declarations */
diff --git a/src/backends/shss/shss.c b/src/backends/shss/shss.c
index 51622f2..75e24b6 100644
--- a/src/backends/shss/shss.c
+++ b/src/backends/shss/shss.c
@@ -63,9 +63,9 @@ struct shss_descriptor {
#define SHSS_LIB_VER_STR "1.0"
#define SHSS_LIB_NAME "shss"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define SHSS_SO_NAME "libshss.dylib"
+#define SHSS_SO_NAME "libshss" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define SHSS_SO_NAME "libshss.so.1"
+#define SHSS_SO_NAME "libshss" LIBERASURECODE_SO_SUFFIX ".so.1"
#endif
#define DEFAULT_W 128
#define METADATA 32
diff --git a/src/backends/xor/flat_xor_hd.c b/src/backends/xor/flat_xor_hd.c
index dbc1d7f..62a1bd9 100644
--- a/src/backends/xor/flat_xor_hd.c
+++ b/src/backends/xor/flat_xor_hd.c
@@ -39,9 +39,9 @@
#define FLAT_XOR_LIB_VER_STR "1.0"
#define FLAT_XOR_LIB_NAME "flat_xor_hd"
#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define FLAT_XOR_SO_NAME "libXorcode.dylib"
+#define FLAT_XOR_SO_NAME "libXorcode" LIBERASURECODE_SO_SUFFIX ".dylib"
#else
-#define FLAT_XOR_SO_NAME "libXorcode.so.1"
+#define FLAT_XOR_SO_NAME "libXorcode" LIBERASURECODE_SO_SUFFIX ".so.1"
#endif
#define DEFAULT_W 32
diff --git a/src/builtin/xor_codes/xor_hd_code.c b/src/builtin/xor_codes/xor_hd_code.c
index 9e41ad1..ae9607a 100644
--- a/src/builtin/xor_codes/xor_hd_code.c
+++ b/src/builtin/xor_codes/xor_hd_code.c
@@ -155,19 +155,21 @@ static int fragments_needed_three_data(xor_code_t *code_desc, int *missing_data,
remove_from_missing_list(data_index, missing_data);
- // Include all data elements except for this one
- *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]);
-
- // Include this parity element
if (parity_index > -1) {
+ // Include this parity element
*parity_bm |= (1 << (parity_index-code_desc->k));
+ // Include all data elements except for this one
+ *data_bm |= code_desc->parity_bms[parity_index-code_desc->k];
} else {
+ // Include both parity elements
*parity_bm |= (1 << (contains_2d-code_desc->k));
*parity_bm |= (1 << (contains_3d-code_desc->k));
+ // And all other data elements that didn't cancel out
+ *data_bm |= tmp_parity_bm;
}
ret = fragments_needed_two_data(code_desc, missing_data, missing_parity, data_bm, parity_bm);
-
+
*data_bm &= ~((unsigned int)1 << data_index);
return ret;
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/lib/debug/.build-id/20/a31f3d5f0a9e5c97d8d0c7be81eb9cb7cd9765.debug -rw-r--r-- root/root /usr/lib/debug/.build-id/21/86c665a2f18df9675fb9ac167baee92a0fa62c.debug -rw-r--r-- root/root /usr/lib/debug/.build-id/4d/e8f1e8e64ec9d454967acf9c496640757d8c75.debug -rw-r--r-- root/root /usr/lib/debug/.build-id/d2/00446ba41fe155f8548126d8a7835d82117c2e.debug -rw-r--r-- root/root /usr/lib/x86_64-linux-gnu/liberasurecode.so.1.6.3 lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/liberasurecode.so -> liberasurecode.so.1.6.3 lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/liberasurecode.so.1 -> liberasurecode.so.1.6.3
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/lib/debug/.build-id/67/5f541d018301e5039206af2e315c1bff288064.debug -rw-r--r-- root/root /usr/lib/debug/.build-id/6a/c7e5476ddb0c73af3a3ed71383a5d81261e448.debug -rw-r--r-- root/root /usr/lib/debug/.build-id/78/e9d0ba3ac1ad9c7dbad30ed63732ba97f75390.debug -rw-r--r-- root/root /usr/lib/debug/.build-id/fe/9c2ffe62a6240093d253d0fab63a5b14a80631.debug -rw-r--r-- root/root /usr/lib/x86_64-linux-gnu/liberasurecode.so.1.6.2 lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/liberasurecode.so -> liberasurecode.so.1.6.2 lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/liberasurecode.so.1 -> liberasurecode.so.1.6.2
No differences were encountered between the control files of package liberasurecode-dev
No differences were encountered between the control files of package liberasurecode1
Control files of package liberasurecode1-dbgsym: lines which differ (wdiff format)
Build-Ids: 675f541d018301e5039206af2e315c1bff288064 6ac7e5476ddb0c73af3a3ed71383a5d81261e448 78e9d0ba3ac1ad9c7dbad30ed63732ba97f75390 fe9c2ffe62a6240093d253d0fab63a5b14a80631 20a31f3d5f0a9e5c97d8d0c7be81eb9cb7cd9765 2186c665a2f18df9675fb9ac167baee92a0fa62c 4de8f1e8e64ec9d454967acf9c496640757d8c75 d200446ba41fe155f8548126d8a7835d82117c2e