commit 94f188de92054d236d966f7413b89d635f5918771500ab384fbe36242f441c13
Author: Fridrich Strba <fstrba@suse.com>
Date:   Wed Jan 15 12:20:05 2025 +0000

    - Add upstream change to fix failure with -Werror=undef:
      * 0001-Fix-_WIN32-is-not-defined-when-not-on-Windows.patch
    
    OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libixion?expand=0&rev=56

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..9b03811
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,23 @@
+## Default LFS
+*.7z filter=lfs diff=lfs merge=lfs -text
+*.bsp filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gem filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.lz filter=lfs diff=lfs merge=lfs -text
+*.lzma filter=lfs diff=lfs merge=lfs -text
+*.obscpio filter=lfs diff=lfs merge=lfs -text
+*.oxt filter=lfs diff=lfs merge=lfs -text
+*.pdf filter=lfs diff=lfs merge=lfs -text
+*.png filter=lfs diff=lfs merge=lfs -text
+*.rpm filter=lfs diff=lfs merge=lfs -text
+*.tbz filter=lfs diff=lfs merge=lfs -text
+*.tbz2 filter=lfs diff=lfs merge=lfs -text
+*.tgz filter=lfs diff=lfs merge=lfs -text
+*.ttf filter=lfs diff=lfs merge=lfs -text
+*.txz filter=lfs diff=lfs merge=lfs -text
+*.whl filter=lfs diff=lfs merge=lfs -text
+*.xz filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.zst filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..57affb6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.osc
diff --git a/0001-Fix-_WIN32-is-not-defined-when-not-on-Windows.patch b/0001-Fix-_WIN32-is-not-defined-when-not-on-Windows.patch
new file mode 100644
index 0000000..33f8316
--- /dev/null
+++ b/0001-Fix-_WIN32-is-not-defined-when-not-on-Windows.patch
@@ -0,0 +1,25 @@
+From 7b1df6fc2b989d8a64edaa47fe04edea95c45174 Mon Sep 17 00:00:00 2001
+From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
+Date: Thu, 25 Jul 2024 08:21:38 +0000
+Subject: [PATCH] Fix "_WIN32" is not defined when not on Windows.
+
+---
+ include/ixion/env.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/ixion/env.hpp b/include/ixion/env.hpp
+index 92812e3..7fee070 100644
+--- a/include/ixion/env.hpp
++++ b/include/ixion/env.hpp
+@@ -33,7 +33,7 @@
+   #define IXION_DLLPUBLIC_VAR IXION_DLLPUBLIC extern
+ #endif
+ 
+-#if _WIN32
++#ifdef _WIN32
+ #define IXION_MOD_EXPORT __declspec(dllexport)
+ #else
+ #define IXION_MOD_EXPORT __attribute__ ((visibility ("default")))
+-- 
+2.47.1
+
diff --git a/libixion-0.19.0.tar.xz b/libixion-0.19.0.tar.xz
new file mode 100644
index 0000000..8e3cdb2
--- /dev/null
+++ b/libixion-0.19.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4864d7a55351a09adbe9be44e5c65b1d417e80e946c947951d0e8428b9dcd15
+size 536540
diff --git a/libixion-boost-system.patch b/libixion-boost-system.patch
new file mode 100644
index 0000000..e27dffc
--- /dev/null
+++ b/libixion-boost-system.patch
@@ -0,0 +1,22 @@
+--- libixion-0.17.0/src/Makefile.am	2022-01-27 14:11:13.211161581 +0100
++++ libixion-0.17.0/src/Makefile.am	2022-01-27 14:11:40.751322069 +0100
+@@ -19,7 +19,7 @@
+ 	table_handler.cpp
+ 
+ ixion_parser_LDADD = libixion/libixion-@IXION_API_VERSION@.la \
+-	$(BOOST_PROGRAM_OPTIONS_LIBS)
++	$(BOOST_PROGRAM_OPTIONS_LIBS) $(BOOST_SYSTEM_LIBS)
+ 
+ ixion_sorter_SOURCES = \
+ 	ixion_sorter.cpp \
+--- libixion-0.17.0/src/python/Makefile.am	2022-01-27 14:11:13.215161603 +0100
++++ libixion-0.17.0/src/python/Makefile.am	2022-01-27 14:20:51.778555056 +0100
+@@ -16,7 +16,7 @@
+ ixion_la_CPPFLAGS = -I$(top_srcdir)/include $(PYTHON_CFLAGS) $(MDDS_CFLAGS)
+ ixion_la_LIBADD = \
+ 	../libixion/libixion-@IXION_API_VERSION@.la \
+-	$(PYTHON_LIBS)
++	$(PYTHON_LIBS) $(BOOST_SYSTEM_LIBS)
+ 
+ if OSX
+ 
diff --git a/libixion.changes b/libixion.changes
new file mode 100644
index 0000000..1d4be5c
--- /dev/null
+++ b/libixion.changes
@@ -0,0 +1,269 @@
+-------------------------------------------------------------------
+Tue Jan 14 00:51:43 UTC 2025 - Christophe Marin <christophe@krop.fr>
+
+- Add upstream change to fix failure with -Werror=undef:
+  * 0001-Fix-_WIN32-is-not-defined-when-not-on-Windows.patch
+
+-------------------------------------------------------------------
+Thu Feb 29 16:51:10 UTC 2024 - pgajdos@suse.com
+
+- Use %autosetup macro. Allows to eliminate the usage of deprecated
+  %patchN
+
+-------------------------------------------------------------------
+Mon Jan  8 16:54:41 UTC 2024 - Danilo Spinella <danilo.spinella@suse.com>
+
+- Update to 0.19.0:
+  * C++ API
+    * added support for renaming sheets after they have been created.
+  * formula interpreter
+    * added support for inline arrays.
+
+-------------------------------------------------------------------
+Thu Jun 29 13:27:14 UTC 2023 - Danilo Spinella <danilo.spinella@suse.com>
+
+- Update to 0.18.1:
+  * fixed a 32-bit Linux build issue as discovered on Debian, due to a clash on
+  two 32-bit unsigned integer types being used with std::variant.
+- Update to 0.18.0:
+  * removed the formula_model_access interface from model_context, and switched
+    to using model_context directly everywhere.
+  * revised formula_tokens_t type to remove use of std::unique_ptr for each
+    formula_token instance.  This should improve memory locality when
+    iterating through an array of formula token values.  A similar change has
+    also been made to lexer_tokens_t and lexer_token types.
+  * added 41 built-in functions
+  * added support for multi-sheet references in Excel A1 and Excel R1C1
+    grammers.
+
+-------------------------------------------------------------------
+Thu Mar  2 10:52:36 UTC 2023 - Martin Liška <mliska@suse.cz>
+
+- Use -fexcess-precision=fast as GCC 13 changes the default
+for C++ compiler and without the change some tests fail on i586.
+
+-------------------------------------------------------------------
+Fri Mar  4 13:07:03 UTC 2022 - Danilo Spinella <danilo.spinella@suse.com>
+
+- Fix build on SLE-12-SP5
+- Remove unneeded vulkan dependency
+
+-------------------------------------------------------------------
+Thu Jan 27 13:22:22 UTC 2022 - Fridrich Strba <fstrba@suse.com>
+
+- Added patch:
+  * libixion-boost-system.patch
+    + fix missing symbols from boost_system library
+
+-------------------------------------------------------------------
+Thu Nov 18 18:01:23 UTC 2021 - Danilo Spinella <danilo.spinella@suse.com>
+
+- update to 0.17.0:
+  * set the baseline C++ version to 17.
+  * mdds has been internalized so that the public header no longer contains
+    references to mdds.  With this change, the users can use different API
+    versions of mdds between the ixion build and run-time use.
+  * cleaned up public API to make use of std::string_view and std::variant
+    where appropriate.
+  * implemented built-in LEFT() function in the formula interpreter.
+  * it is no longer required to set the size of void* at build time to ensure
+    the binaries to be fully functional.
+  * fixed a bug where named expressions with names containing invalid
+    characters were still allowed in.
+
+-------------------------------------------------------------------
+Wed May 19 14:49:56 UTC 2021 - Fridrich Strba <fstrba@suse.com>
+
+- Define conditionally make_build to fix build on systems that do
+  not have that macro
+
+-------------------------------------------------------------------
+Mon Sep 28 18:15:56 UTC 2020 - Dirk Mueller <dmueller@suse.com>
+
+- update to 0.16.1:
+  * fixed a build issue on 32-bit linux platforms, caused by slicing of integer
+  string ID values.
+  * worked around floating point rounding errors which prevented two
+  theoretically-equal numeric values from being evaluated as equal in test
+  code.
+  * added new function to allow printing of single formula tokens.
+  * added method for setting cached results on formula cells in
+    model_context.
+  * changed the model_context design to ensure that all sheets are of the same
+    size.
+  * added an accessor method to formula_model_access interface (and implicitly
+    in model_context) that directly returns a string value from cell.
+  * added cell_access class for querying of cell states without knowing its
+    type ahead of time.
+  * added document class which provides a layer on top of model_context, to
+    abstract away the handling of formula calculations.
+  * deprecated model_context::erase_cell() in favor of empty_cell().
+  * added support for 3D references - references that contain multiple sheets.
+  * added support for the exponent (^) and concatenation (&) operators.
+  * fixed incorrect handling of range references containing whole columns such
+    as A:A.
+  * added support for unordered range references - range references whose
+    start row or column is greater than their end position counterparts, such
+    as A3:A1.
+  * fixed a bug that prevented nested formula functions from working properly.
+  * implemented Calc A1 style reference resolver.
+  * formula results now directly store the string values when the results are
+    of string type.  They previously stored string ID values after interning
+    the original strings.
+  * removed build-time dependency on spdlog. 
+
+-------------------------------------------------------------------
+Thu Aug 15 21:35:46 UTC 2019 - Jonathan Brielmaier <jbrielmaier@suse.de>
+
+- Update to 0.15.0
+  * Update for new liborcus
+  * Switched to spdlog for compile-time debug log outputs
+  * Various fixes
+- Add spdlog build dependency
+
+-------------------------------------------------------------------
+Thu Mar  7 10:05:25 UTC 2019 - Adam Majer <adam.majer@suse.de>
+
+- Add missing dependency on libboost_system-devel
+
+-------------------------------------------------------------------
+Thu Nov 15 13:48:27 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
+
+- Update to 0.14.1:
+  * Update for new orcus
+  * Various 23bit build issues
+  * Various coverity fixes
+
+-------------------------------------------------------------------
+Thu Feb 15 08:19:15 UTC 2018 - tchvatal@suse.com
+
+- Rename python3 package to match up naming conventions
+- Install license file
+
+-------------------------------------------------------------------
+Wed Nov 29 12:44:50 UTC 2017 - tchvatal@suse.com
+
+- Version update to 0.13.0:
+  * Step lock update with orcus
+  * Various fixes / fuzzer crashes resolved
+
+-------------------------------------------------------------------
+Wed Feb  1 12:54:11 UTC 2017 - adam.majer@suse.de
+
+- use individual libboost-*-devel packages instead of boost-devel
+
+-------------------------------------------------------------------
+Sat Dec  3 13:44:31 UTC 2016 - tchvatal@suse.com
+
+- Version update to 0.12.1:
+  * Update to be in sync with orcus
+  * Small fixes around
+
+-------------------------------------------------------------------
+Wed May 25 11:55:37 UTC 2016 - tchvatal@suse.com
+
+- Version update to 0.11.1:
+  * Switch to mdds-1.2
+  * Few small fixes
+
+-------------------------------------------------------------------
+Mon Mar  7 12:43:06 UTC 2016 - tchvatal@suse.com
+
+- Version update to 0.11.0:
+  * Switch to mdds-1.0
+  * Various fixes
+  * Python3 bindings obsoleted python2 ones
+
+-------------------------------------------------------------------
+Mon Apr 13 10:47:29 UTC 2015 - tchvatal@suse.com
+
+- Version bump to 0.9.1:
+  * various triv bugfixes
+  * Build with tests and work this time
+
+-------------------------------------------------------------------
+Tue Mar 24 14:16:41 UTC 2015 - tchvatal@suse.com
+
+- Drop copy&pasto from fedora
+
+-------------------------------------------------------------------
+Tue Mar 24 10:09:15 UTC 2015 - tchvatal@suse.com
+
+- Version bump to 0.9.0:
+  * Needed for new orcus
+  * Python bindings are around now
+- Update homepage
+- Add python subpackage
+- Tests fail with this release, next one will fix it again
+
+-------------------------------------------------------------------
+Mon May 26 21:22:15 UTC 2014 - fstrba@suse.com
+
+- Upgrade to upstream version 0.7.0
+  * needed by libreoffice 4.3.x
+- Add pkgconfig(mdds) dependency instead of mdds-devel
+
+-------------------------------------------------------------------
+Sun Jan 26 08:57:36 UTC 2014 - tchvatal@suse.com
+
+- Cleanup with spec-cleaner and make the outputs verbose.
+
+-------------------------------------------------------------------
+Wed May 15 11:42:14 UTC 2013 - cfarrell@suse.com
+
+- license update: MIT
+  The SPDX shortname for the license described in the COPYING file is MIT
+
+-------------------------------------------------------------------
+Sat Apr 20 11:44:14 UTC 2013 - tchvatal@suse.com
+
+- Add URL path for the download.
+- Update the package to be matching the released tarball.
+- Do not force autoreconf as it is not really needed with released
+  package.
+
+-------------------------------------------------------------------
+Wed Mar 27 13:58:07 UTC 2013 - kyoshida@suse.com
+
+- Updated the package which includes the boost patch and several 
+  others.
+- Removed distro-specific patch.
+
+-------------------------------------------------------------------
+Tue Mar 26 17:11:53 UTC 2013 - tchvatal@suse.com
+
+- Cleanup a bit more for factory inclusion.
+
+-------------------------------------------------------------------
+Tue Mar 26 14:58:20 UTC 2013 - jengelh@inai.de
+
+- Fix wrong order of patch application and broken sed substitution
+  in %prep stage
+- Runtime boost dependency is automatic and not needed
+
+-------------------------------------------------------------------
+Tue Mar 26 13:31:04 UTC 2013 - tchvatal@suse.com
+
+- Beautify a bit.
+
+-------------------------------------------------------------------
+Tue Mar 26 13:26:03 UTC 2013 - tchvatal@suse.com
+
+- Fix boost m4 macro to pass configure stage.
+
+-------------------------------------------------------------------
+Tue Mar 26 05:03:03 UTC 2013 - kyoshida@suse.com
+
+- Updated to the 0.5.0 pre-release version.
+
+-------------------------------------------------------------------
+Tue Jan 31 16:52:01 UTC 2012 - jengelh@medozas.de
+
+- Remove redundant tags/sections per specfile guideline suggestions
+- Add autotools BuildRequires for factory/12.2
+
+-------------------------------------------------------------------
+Thu Oct 27 02:57:02 UTC 2011 - kyoshida@suse.com
+
+- Initial package.
+
diff --git a/libixion.spec b/libixion.spec
new file mode 100644
index 0000000..ba05729
--- /dev/null
+++ b/libixion.spec
@@ -0,0 +1,130 @@
+#
+# spec file for package libixion
+#
+# Copyright (c) 2024 SUSE LLC
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+
+
+%{!?make_build:%global make_build make %{?_smp_mflags}}
+%define libname libixion-0_18-0
+Name:           libixion
+Version:        0.19.0
+Release:        0
+Summary:        Threaded multi-target formula parser & interpreter
+License:        MIT
+URL:            https://gitlab.com/ixion/ixion
+Source:         http://kohei.us/files/ixion/src/%{name}-%{version}.tar.xz
+Patch0:         libixion-boost-system.patch
+# PATCH-FIX-UPSTREAM
+Patch1:         0001-Fix-_WIN32-is-not-defined-when-not-on-Windows.patch
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  coreutils
+BuildRequires:  gcc-c++
+BuildRequires:  libstdc++-devel
+BuildRequires:  libtool
+BuildRequires:  libtool
+BuildRequires:  pkgconfig
+BuildRequires:  pkgconfig(mdds-2.1)
+BuildRequires:  pkgconfig(python3)
+BuildRequires:  pkgconfig(spdlog) >= 0.16.0
+%if 0%{?suse_version} > 1325
+BuildRequires:  libboost_filesystem-devel
+BuildRequires:  libboost_program_options-devel
+BuildRequires:  libboost_system-devel
+%else
+BuildRequires:  boost-devel
+BuildRequires:  gcc11
+BuildRequires:  gcc11-c++
+%endif
+
+%description
+Ixion is a general purpose formula parser & interpreter that can calculate
+multiple named targets, or "cells".
+
+%package -n %{libname}
+Summary:        Threaded multi-target formula parser & interpreter
+
+%description -n %{libname}
+Ixion is a general purpose formula parser & interpreter that can calculate
+multiple named targets, or "cells".
+
+%package devel
+Summary:        Threaded multi-target formula parser & interpreter
+Requires:       %{libname} = %{version}
+
+%description devel
+Ixion is a general purpose formula parser & interpreter that can calculate
+multiple named targets, or "cells".
+
+%package tools
+Summary:        Spreadsheet file processing library
+Requires:       %{libname} = %{version}
+
+%description tools
+Tools to use ixion parser and interpreter from cli.
+
+%package -n python3-%{name}
+Summary:        Python bindings for libixion
+Obsoletes:      %{name}-python
+# Renamed in 15.0
+Provides:       %{name}-python3 = %{version}
+
+%description -n python3-%{name}
+Python 3 bindings for %{name}.
+
+%prep
+%autosetup -p1
+
+%build
+%global optflags %optflags -fexcess-precision=fast
+libtoolize --force --copy
+autoreconf -fi
+%if 0%{?suse_version} < 1500
+export CC=gcc-11
+export CXX=g++-11
+%endif
+%configure \
+	--disable-silent-rules \
+	--disable-static \
+    --disable-vulkan \
+	--docdir=%{_docdir}/%{name}
+%make_build
+
+%check
+%make_build check
+
+%install
+%make_install
+find %{buildroot} -type f -name "*.la" -delete -print
+
+%post -n %{libname} -p /sbin/ldconfig
+%postun -n %{libname} -p /sbin/ldconfig
+
+%files -n %{libname}
+%license LICENSE
+%{_libdir}/*.so.*
+
+%files devel
+%{_includedir}/*
+%{_libdir}/*.so
+%{_libdir}/pkgconfig/*.pc
+
+%files tools
+%{_bindir}/*
+
+%files -n python3-%{name}
+%{python3_sitearch}/ixion.so
+
+%changelog