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)


Reply via email to