Hello community, here is the log from the commit of package liborcus for openSUSE:Factory checked in at 2019-08-22 15:03:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/liborcus (Old) and /work/SRC/openSUSE:Factory/.liborcus.new.7948 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "liborcus" Thu Aug 22 15:03:58 2019 rev:29 rq:724021 version:0.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/liborcus/liborcus.changes 2019-03-12 09:50:47.791569376 +0100 +++ /work/SRC/openSUSE:Factory/.liborcus.new.7948/liborcus.changes 2019-08-22 15:11:30.582442075 +0200 @@ -1,0 +2,18 @@ +Fri Aug 16 10:27:44 UTC 2019 - Tomáš Chvátal <[email protected]> + +- Fix building on SLE12 +- Add patches to fix 32bit build: + * fix-linking.patch + * 32bit.patch + +------------------------------------------------------------------- +Thu Aug 15 21:40:35 UTC 2019 - Jonathan Brielmaier <[email protected]> + +- Update to version 0.15.0: + * Various performance improvements + * Multiple parser issues fixed + * Map and structure mode added to orcus-json + * Other improvements and fixes +- bump required versions of mdds and libixion + +------------------------------------------------------------------- Old: ---- liborcus-0.14.1.tar.xz New: ---- 32bit.patch fix-linking.patch liborcus-0.15.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ liborcus.spec ++++++ --- /var/tmp/diff_new_pack.EBr2Uv/_old 2019-08-22 15:11:31.014441963 +0200 +++ /var/tmp/diff_new_pack.EBr2Uv/_new 2019-08-22 15:11:31.018441963 +0200 @@ -12,29 +12,36 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define libname liborcus-0_14-0 +%define libname liborcus-0_15-0 Name: liborcus -Version: 0.14.1 +Version: 0.15.0 Release: 0 Summary: Spreadsheet file processing library License: MPL-2.0 Group: Productivity/Publishing/Word -Url: https://gitlab.com/orcus/orcus/ +URL: https://gitlab.com/orcus/orcus/ Source: http://kohei.us/files/orcus/src/%{name}-%{version}.tar.xz +Patch0: fix-linking.patch +Patch1: 32bit.patch BuildRequires: coreutils -BuildRequires: gcc-c++ BuildRequires: libstdc++-devel BuildRequires: pkgconfig BuildRequires: python3-xml -BuildRequires: pkgconfig(libixion-0.14) -BuildRequires: pkgconfig(mdds-1.4) +BuildRequires: pkgconfig(libixion-0.15) +BuildRequires: pkgconfig(mdds-1.5) BuildRequires: pkgconfig(python3) BuildRequires: pkgconfig(zlib) -%if 0%{?suse_version} > 1325 +%if 0%{?suse_version} >= 1500 +BuildRequires: gcc-c++ +%else +BuildRequires: gcc8 +BuildRequires: gcc8-c++ +%endif +%if 0%{?suse_version} >= 1500 BuildRequires: libboost_date_time-devel BuildRequires: libboost_filesystem-devel BuildRequires: libboost_iostreams-devel @@ -84,8 +91,13 @@ %prep %setup -q +%autopatch -p1 %build +%if 0%{?suse_version} < 1500 +export CC=gcc-8 +export CXX=g++-8 +%endif %configure \ --disable-silent-rules \ --disable-static \ @@ -95,7 +107,9 @@ make %{?_smp_mflags} %check +%if 0%{?suse_version} >= 1500 make check %{?_smp_mflags} +%endif %install %make_install ++++++ 32bit.patch ++++++ >From a55f15cb9fd63a9b37e2c181c57e90c570292948 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida <[email protected]> Date: Tue, 13 Aug 2019 21:58:27 -0400 Subject: [PATCH] Use std::deque here to avoid strange segfault issue on 32-bit debian... The original code (with vector) for some reason crashes only on 32-bit debian platforms. No such issue with deque. --- src/liborcus/xml_map_tree.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: liborcus-0.15.0/src/liborcus/xml_map_tree.hpp =================================================================== --- liborcus-0.15.0.orig/src/liborcus/xml_map_tree.hpp +++ liborcus-0.15.0/src/liborcus/xml_map_tree.hpp @@ -20,6 +20,7 @@ #include <ostream> #include <map> #include <vector> +#include <deque> #include <memory> namespace orcus { @@ -77,7 +78,7 @@ public: struct element; struct linkable; - typedef std::vector<std::unique_ptr<element>> element_store_type; + typedef std::deque<std::unique_ptr<element>> element_store_type; typedef std::vector<element*> element_list_type; typedef std::vector<const element*> const_element_list_type; Index: liborcus-0.15.0/src/liborcus/common_test.cpp =================================================================== --- liborcus-0.15.0.orig/src/liborcus/common_test.cpp +++ liborcus-0.15.0/src/liborcus/common_test.cpp @@ -130,7 +130,8 @@ void test_measurement_conversion_2() for (const check& c : checks) { - double observed = convert(c.original, c.from, c.to); + // without volatile, sometimes the following assert evaluates to false on 32-bit debian platforms. + volatile double observed = convert(c.original, c.from, c.to); assert(observed == c.expected); } } Index: liborcus-0.15.0/src/parser/parser_global_test.cpp =================================================================== --- liborcus-0.15.0.orig/src/parser/parser_global_test.cpp +++ liborcus-0.15.0/src/parser/parser_global_test.cpp @@ -41,7 +41,7 @@ void test_parse_numbers() for (const test_case& test_data : test_cases) { const char* str = test_data.str; - double val = orcus::parse_numeric(str, std::strlen(test_data.str)); + volatile double val = orcus::parse_numeric(str, std::strlen(test_data.str)); if (std::isnan(test_data.val)) { assert(std::isnan(val)); ++++++ fix-linking.patch ++++++ >From 1e024e37c59574965e1b07bc5097c014d4625227 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann <[email protected]> Date: Thu, 15 Aug 2019 15:40:14 +0200 Subject: [PATCH] Fix linking of newly created element (see downstream <https://gerrit.libreoffice.org/#/c/77519/> "Fix linking of newly created element in liborcus 0.15.0") --- src/liborcus/xml_map_tree.cpp | 39 ++++++++++++++--------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/src/liborcus/xml_map_tree.cpp b/src/liborcus/xml_map_tree.cpp index 166eb8b9..d6fa5c47 100644 --- a/src/liborcus/xml_map_tree.cpp +++ b/src/liborcus/xml_map_tree.cpp @@ -723,34 +723,27 @@ xml_map_tree::linked_node_type xml_map_tree::get_linked_node(const pstring& xpat element* elem = r.first; bool created = r.second; - if (created) - { - // No element of that name exists. - elem->elem_type = element_linked; - elem->ref_type = ref_type; - } - else + if (!created) { // This element already exists. Check if this is already linked. if (elem->ref_type != reference_unknown || elem->elem_type != element_unlinked) throw xpath_error("This element is already linked. You can't link the same element twice."); + } - // Turn this existing non-linked element into a linked one. - delete elem->child_elements; - elem->elem_type = element_linked; - elem->ref_type = ref_type; - switch (ref_type) - { - case reference_cell: - elem->cell_ref = new cell_reference; - break; - case reference_range_field: - elem->field_ref = new field_in_range; - break; - default: - throw general_error("Unknown reference type in xml_map_tree::get_element_stack."); - } - + // Turn this existing non-linked element into a linked one. + delete elem->child_elements; + elem->elem_type = element_linked; + elem->ref_type = ref_type; + switch (ref_type) + { + case reference_cell: + elem->cell_ref = new cell_reference; + break; + case reference_range_field: + elem->field_ref = new field_in_range; + break; + default: + throw general_error("Unknown reference type in xml_map_tree::get_element_stack."); } ret.elem_stack.push_back(elem); -- 2.22.0 ++++++ liborcus-0.14.1.tar.xz -> liborcus-0.15.0.tar.xz ++++++ ++++ 34760 lines of diff (skipped)
