commit 966729d9a2099a1a8668f58c8d473ab4e74c0de1412462703c492460bcab0eae Author: Dmitry Roshchin Date: Wed Nov 27 10:09:09 2024 +0000 Accepting request 1226794 from home:StefanBruens:branches:science - Fix build with latest GCC, add 0001-Fix-failing-build-due-to-missing-iomanip.h-include.patch - Minor spec file cleanup OBS-URL: https://build.opensuse.org/request/show/1226794 OBS-URL: https://build.opensuse.org/package/show/science/cura-engine?expand=0&rev=60 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-failing-build-due-to-missing-iomanip.h-include.patch b/0001-Fix-failing-build-due-to-missing-iomanip.h-include.patch new file mode 100644 index 0000000..7746009 --- /dev/null +++ b/0001-Fix-failing-build-due-to-missing-iomanip.h-include.patch @@ -0,0 +1,24 @@ +From 83336f5ce831da0686df3d40a7b97d756a25248a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Wed, 27 Nov 2024 06:42:18 +0100 +Subject: [PATCH] Fix failing build due to missing iomanip.h include + +--- + tests/utils/StringTest.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/utils/StringTest.cpp b/tests/utils/StringTest.cpp +index e6ade37..ab48e82 100644 +--- a/tests/utils/StringTest.cpp ++++ b/tests/utils/StringTest.cpp +@@ -5,6 +5,7 @@ + + #include <../src/utils/IntPoint.h> + #include <../src/utils/string.h> //The file under test. ++#include + + namespace cura + { +-- +2.47.0 + diff --git a/CuraEngine.1 b/CuraEngine.1 new file mode 100644 index 0000000..e45cd28 --- /dev/null +++ b/CuraEngine.1 @@ -0,0 +1,199 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.5. +.TH CURAENGINE "1" "February 2022" "CuraEngine " "User Commands" +.SH NAME +CuraEngine \- manual page for CuraEngine +.SH DESCRIPTION +Cura_SteamEngine version 4.13.1 +Copyright \(co 2021 Ultimaker +.PP +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +.PP +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. +.PP +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +.PP +usage: +CuraEngine help +.IP +Show this help message +.PP +CuraEngine connect [:] [\-j ] +.HP +\fB\-\-connect\fR [:] +.IP +Connect to via a command socket, +instead of passing information via the command line +.HP +\fB\-v\fR +.IP +Increase the verbose level (show log messages). +.HP +\fB\-m\fR +.IP +Set the desired number of threads. Supports only a single digit. +.PP +CuraEngine slice [\-v] [\-p] [\-j ] [\-s =] [\-g] [\-e] [\-o ] [\-l ] [\-\-next] +.HP +\fB\-v\fR +.IP +Increase the verbose level (show log messages). +.HP +\fB\-m\fR +.IP +Set the desired number of threads. +.HP +\fB\-p\fR +.IP +Log progress information. +.HP +\fB\-j\fR +.IP +Load settings.def.json file to register all settings and their defaults. +.HP +\fB\-s\fR = +.IP +Set a setting to a value for the last supplied object, +extruder train, or general settings. +.HP +\fB\-l\fR +.IP +Load an STL model. +.HP +\fB\-g\fR +.IP +Switch setting focus to the current mesh group only. +Used for one\-at\-a\-time printing. +.HP +\fB\-e\fR +.IP +Switch setting focus to the extruder train with the given number. +.HP +\fB\-\-next\fR +.IP +Generate gcode for the previously supplied mesh group and append that to +the gcode of further models for one\-at\-a\-time printing. +.HP +\fB\-o\fR +.IP +Specify a file to which to write the generated gcode. +.PP +The settings are appended to the last supplied object: +CuraEngine slice [general settings] +.HP +\fB\-g\fR [current group settings] +.HP +\fB\-e0\fR [extruder train 0 settings] +.HP +\fB\-l\fR obj_inheriting_from_last_extruder_train.stl [object settings] +.HP +\fB\-\-next\fR [next group settings] +.IP +\&... etc. +.PP +In order to load machine definitions from custom locations, you need to create the environment variable CURA_ENGINE_SEARCH_PATH, which should contain all search paths delimited by a (semi\-)colon. +.PP +Cura_SteamEngine version 4.13.1 +Copyright \(co 2021 Ultimaker +.PP +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +.PP +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. +.PP +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +[ERROR] Unknown command: \fB\-\-version\fR +[ERROR] Command called: +[ERROR] CuraEngine [ERROR] \fB\-\-version\fR [ERROR] +.PP +usage: +CuraEngine help +.IP +Show this help message +.PP +CuraEngine connect [:] [\-j ] +.HP +\fB\-\-connect\fR [:] +.IP +Connect to via a command socket, +instead of passing information via the command line +.HP +\fB\-v\fR +.IP +Increase the verbose level (show log messages). +.HP +\fB\-m\fR +.IP +Set the desired number of threads. Supports only a single digit. +.PP +CuraEngine slice [\-v] [\-p] [\-j ] [\-s =] [\-g] [\-e] [\-o ] [\-l ] [\-\-next] +.HP +\fB\-v\fR +.IP +Increase the verbose level (show log messages). +.HP +\fB\-m\fR +.IP +Set the desired number of threads. +.HP +\fB\-p\fR +.IP +Log progress information. +.HP +\fB\-j\fR +.IP +Load settings.def.json file to register all settings and their defaults. +.HP +\fB\-s\fR = +.IP +Set a setting to a value for the last supplied object, +extruder train, or general settings. +.HP +\fB\-l\fR +.IP +Load an STL model. +.HP +\fB\-g\fR +.IP +Switch setting focus to the current mesh group only. +Used for one\-at\-a\-time printing. +.HP +\fB\-e\fR +.IP +Switch setting focus to the extruder train with the given number. +.HP +\fB\-\-next\fR +.IP +Generate gcode for the previously supplied mesh group and append that to +the gcode of further models for one\-at\-a\-time printing. +.HP +\fB\-o\fR +.IP +Specify a file to which to write the generated gcode. +.PP +The settings are appended to the last supplied object: +CuraEngine slice [general settings] +.HP +\fB\-g\fR [current group settings] +.HP +\fB\-e0\fR [extruder train 0 settings] +.HP +\fB\-l\fR obj_inheriting_from_last_extruder_train.stl [object settings] +.HP +\fB\-\-next\fR [next group settings] +.IP +\&... etc. +.PP +In order to load machine definitions from custom locations, you need to create the environment variable CURA_ENGINE_SEARCH_PATH, which should contain all search paths delimited by a (semi\-)colon. diff --git a/add-missing-include.patch b/add-missing-include.patch new file mode 100644 index 0000000..9b7ddd1 --- /dev/null +++ b/add-missing-include.patch @@ -0,0 +1,12 @@ +Index: CuraEngine-4.13.1/src/utils/math.h +=================================================================== +--- CuraEngine-4.13.1.orig/src/utils/math.h ++++ CuraEngine-4.13.1/src/utils/math.h +@@ -4,6 +4,7 @@ + #ifndef UTILS_MATH_H + #define UTILS_MATH_H + ++#include + #include + + diff --git a/cura-engine-4.13.1.tar.gz b/cura-engine-4.13.1.tar.gz new file mode 100644 index 0000000..feb400b --- /dev/null +++ b/cura-engine-4.13.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:283f62326c6072cdcef9d9b84cb8141a6072747f08e1cae6534d08ad85b1c657 +size 1727935 diff --git a/cura-engine.changes b/cura-engine.changes new file mode 100644 index 0000000..7b40cd9 --- /dev/null +++ b/cura-engine.changes @@ -0,0 +1,214 @@ +------------------------------------------------------------------- +Wed Nov 27 05:47:22 UTC 2024 - Stefan Brüns + +- Fix build with latest GCC, add + 0001-Fix-failing-build-due-to-missing-iomanip.h-include.patch +- Minor spec file cleanup + +------------------------------------------------------------------- +Tue May 2 08:45:11 UTC 2023 - Bjørn Lie + +- Add add-missing-include.patch: Add missing include + +------------------------------------------------------------------- +Sun Feb 6 21:52:59 UTC 2022 - Stefan Brüns + +- Update to version 4.13.1 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.13.1 + +------------------------------------------------------------------- +Thu Jan 27 12:47:12 UTC 2022 - Guillaume GARDET + +- Update to version 4.13.0 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.13.0 +- Refresh patch: + * fix-build.patch + +------------------------------------------------------------------- +Mon Apr 26 19:40:33 UTC 2021 - Stefan Brüns + +- Update to version 4.9.0 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.9 + +------------------------------------------------------------------- +Tue Nov 10 18:19:18 UTC 2020 - Stefan Brüns + +- Update to version 4.8.0 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.8 +- Use system RapidJSON and polyclipping when available + +------------------------------------------------------------------- +Tue Sep 15 21:26:14 UTC 2020 - Stefan Brüns + +- Update to version 4.7.1 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.7.1 + * https://github.com/Ultimaker/Cura/releases/tag/4.7.0 + * https://github.com/Ultimaker/Cura/releases/tag/4.6.2 + +------------------------------------------------------------------- +Sun Jun 7 03:21:34 UTC 2020 - Stefan Brüns + +- Update to version 4.6.1 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.6.1 + * https://github.com/Ultimaker/Cura/releases/tag/4.6.0 + * https://github.com/Ultimaker/Cura/releases/tag/4.5.0 +- Clean up spec file + +------------------------------------------------------------------- +Thu Jan 2 14:04:22 UTC 2020 - Adrian Schröter + +- update to version 4.4.1 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/v4.4.1 + +------------------------------------------------------------------- +Fri Nov 22 14:04:45 UTC 2019 - Adrian Schröter + +- update to version 4.4.0 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/v4.4.0 + +------------------------------------------------------------------- +Fri Sep 27 06:27:13 UTC 2019 - Adrian Schröter + +- update to version 4.3.0 + Release notes: + * https://github.com/Ultimaker/Cura/releases/tag/4.3.0 +- obsoletes CuraEngine-gcc9.patch + +------------------------------------------------------------------- +Mon Aug 12 06:46:19 UTC 2019 - Adrian Schröter + +- update to version 4.2.0 + * https://ultimaker.com/en/blog/52912-ultimaker-cura-42-first-choice-for-3d-printing-professionals-worldwide + +------------------------------------------------------------------- +Thu Jun 13 06:53:55 UTC 2019 - Adrian Schröter + +- update to version 4.1.0 + * https://ultimaker.com/en/products/ultimaker-cura-software/release-notes +- enable tests +- some build fixes needed: + fix-build.patch + CuraEngine-gcc9.patch +- 32bit platform is unsupported on Linux + (builds, but testcases are failing) + +------------------------------------------------------------------- +Thu Apr 18 07:40:39 UTC 2019 - Adrian Schröter + +- sync spec file with -lulzbot variant +- enable test suite (requires fix-build.patch for libArcus interface) + +------------------------------------------------------------------- +Sat Mar 9 14:58:16 UTC 2019 - Stefan Brüns + +- Update URL to use https + +------------------------------------------------------------------- +Fri Jan 18 09:48:08 UTC 2019 - Adrian Schröter + +- define version explicit for reporting in gcode files + +------------------------------------------------------------------- +Wed Jan 2 12:50:27 UTC 2019 - Adrian Schröter + +- fix build with stb in subdirectory + * obsoletes fix-build.patch + +------------------------------------------------------------------- +Fri Nov 16 13:35:50 UTC 2018 - Adrian Schröter + +- update to version 3.6.0 + https://ultimaker.com/en/products/ultimaker-cura-software/release-notes + +------------------------------------------------------------------- +Wed Oct 17 07:07:33 UTC 2018 - Adrian Schröter + +- update to version 3.5.1 + https://ultimaker.com/en/products/ultimaker-cura-software/release-notes +- replaced fix-build.patch with new need + +------------------------------------------------------------------- +Thu Jul 26 14:38:35 UTC 2018 - jengelh@inai.de + +- Trim bias from description. + +------------------------------------------------------------------- +Mon Jul 16 06:26:08 UTC 2018 - adrian@suse.de + +- update to version 3.4.1 + https://ultimaker.com/en/products/ultimaker-cura-software/release-notes + +------------------------------------------------------------------- +Mon Jul 9 13:11:02 UTC 2018 - adrian@suse.de + +- update to version 3.3.0 + * No official release notes + +------------------------------------------------------------------- +Tue Apr 3 06:44:12 UTC 2018 - adrian@suse.de + +- update to version 3.2.1 + * new algorithm and lot's of smaller improvements + +------------------------------------------------------------------- +Sat Jan 27 21:49:49 UTC 2018 - stefan.bruens@rwth-aachen.de + +- Link private lib_CuraEngine statically to binary + +------------------------------------------------------------------- +Thu Jan 25 08:34:20 UTC 2018 - adrian@suse.de + +- update to version 3.1.0 + +------------------------------------------------------------------- +Fri Dec 8 17:52:22 UTC 2017 - stefan.bruens@rwth-aachen.de + +- Fix License, Cura 3.0 and libraries are LGPL-3.0 now + +------------------------------------------------------------------- +Thu Dec 7 01:02:03 UTC 2017 - stefan.bruens@rwth-aachen.de + +- Revert parts of the previous commit breaking build on anything + but Leap 42.3 + +------------------------------------------------------------------- +Fri Nov 3 07:20:42 UTC 2017 - adrian@suse.de + +- update to version 3.0.3 + +------------------------------------------------------------------- +Tue Sep 12 17:03:00 UTC 2017 - stefan.bruens@rwth-aachen.de + +- Fixed RPM Group +- Fix build on TW, parallel installation of gcc6/7 causes build errors +- Build CuraEngine as PIE + +------------------------------------------------------------------- +Mon Sep 4 05:48:30 UTC 2017 - adrian@suse.de + +- update to version 2.7.0 + +------------------------------------------------------------------- +Mon Jun 26 06:58:03 UTC 2017 - adrian@suse.de + +- update to version 2.6.0 + +------------------------------------------------------------------- +Fri Dec 23 10:06:38 UTC 2016 - adrian@suse.de + +- update to stable 15.04.6 release + (15.06 has changed interface which breaks all dependending tools atm) + +------------------------------------------------------------------- +Sat Oct 12 06:26:03 UTC 2013 - lzwang@suse.com + +- Initial package of CuraEngine + diff --git a/cura-engine.spec b/cura-engine.spec new file mode 100644 index 0000000..947774d --- /dev/null +++ b/cura-engine.spec @@ -0,0 +1,80 @@ +# +# spec file for package cura-engine +# +# 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/ +# + + +Name: cura-engine +%define sversion 4.13.1 +Version: 4.13.1 +Release: 0 +Summary: 3D printer control software +License: AGPL-3.0-only +Group: Hardware/Printing +URL: https://github.com/Ultimaker/CuraEngine +Source0: https://github.com/Ultimaker/CuraEngine/archive/%{sversion}.tar.gz#/%{name}-%{version}.tar.gz +Source1: CuraEngine.1 +# X-OPENSUSE-PATCH fix-build.patch follow openSUSE policies +Patch1: fix-build.patch +# PATCH-FIX-UPSTREAM add-missing-include.patch -- Add missing include +Patch2: add-missing-include.patch +# PATCH-FIX-OPENSUSE +Patch3: 0001-Fix-failing-build-due-to-missing-iomanip.h-include.patch +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: gmock +BuildRequires: gtest +BuildRequires: libArcus-devel >= %{version} +BuildRequires: stb-devel +BuildRequires: cmake(RapidJSON) +BuildRequires: pkgconfig(polyclipping) +# No 32bit support anymore +ExcludeArch: %ix86 %arm s390 + +%description +CuraEngine is an engine for processing 3D models into 3D printing +instruction for Ultimaker and other GCode-based 3D printers. +It is part of the larger project called "Cura". + +%prep +%autosetup -p1 -n CuraEngine-%sversion +# the test is hardcoding the version number +sed -i -e 's,"master","%{version}",' tests/GCodeExportTest.cpp + +%build +# make sure lib_CuraEngine is statically build and linked +%cmake -DCURA_ENGINE_VERSION=%version \ + -DCMAKE_POSITION_INDEPENDENT_CODE="true" \ + -DBUILD_SHARED_LIBS="false" \ + -DUSE_SYSTEM_LIBS=ON \ + -DBUILD_TESTS=ON +%cmake_build + +%install +%cmake_install + +install -Dm0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/CuraEngine.1 + +%check +# we don't use "make test" to get the output on failure +%ctest + +%files +%license LICENSE +%doc README.md +%_bindir/CuraEngine +%_mandir/man1/CuraEngine.1* + +%changelog diff --git a/fix-build.patch b/fix-build.patch new file mode 100644 index 0000000..e7d678b --- /dev/null +++ b/fix-build.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2717e987..edd2a93c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -61,7 +61,6 @@ if(SET_RPATH) + if(NOT DEFINED LIB_SUFFIX) + set(LIB_SUFFIX "") + endif() +- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") + endif() + + set(CURA_ENGINE_VERSION "master" CACHE STRING "Version name of Cura") +@@ -109,10 +108,6 @@ if (ENABLE_MORE_COMPILER_OPTIMIZATION_FL + endif() + endif () + +-if(NOT APPLE AND NOT WIN32) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++") +-endif() +- + if (WIN32) + add_definitions(-DNOMINMAX) + endif()