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
This commit is contained in:
Dmitry Roshchin 2024-11-27 10:09:09 +00:00 committed by Git OBS Bridge
commit 966729d9a2
9 changed files with 579 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,24 @@
From 83336f5ce831da0686df3d40a7b97d756a25248a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
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 <iomanip>
namespace cura
{
--
2.47.0

199
CuraEngine.1 Normal file
View File

@ -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 <http://www.gnu.org/licenses/>.
.PP
usage:
CuraEngine help
.IP
Show this help message
.PP
CuraEngine connect <host>[:<port>] [\-j <settings.def.json>]
.HP
\fB\-\-connect\fR <host>[:<port>]
.IP
Connect to <host> 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<thread_count>
.IP
Set the desired number of threads. Supports only a single digit.
.PP
CuraEngine slice [\-v] [\-p] [\-j <settings.json>] [\-s <settingkey>=<value>] [\-g] [\-e<extruder_nr>] [\-o <output.gcode>] [\-l <model.stl>] [\-\-next]
.HP
\fB\-v\fR
.IP
Increase the verbose level (show log messages).
.HP
\fB\-m\fR<thread_count>
.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 <setting>=<value>
.IP
Set a setting to a value for the last supplied object,
extruder train, or general settings.
.HP
\fB\-l\fR <model_file>
.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<extruder_nr>
.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 <output_file>
.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 <http://www.gnu.org/licenses/>.
[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 <host>[:<port>] [\-j <settings.def.json>]
.HP
\fB\-\-connect\fR <host>[:<port>]
.IP
Connect to <host> 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<thread_count>
.IP
Set the desired number of threads. Supports only a single digit.
.PP
CuraEngine slice [\-v] [\-p] [\-j <settings.json>] [\-s <settingkey>=<value>] [\-g] [\-e<extruder_nr>] [\-o <output.gcode>] [\-l <model.stl>] [\-\-next]
.HP
\fB\-v\fR
.IP
Increase the verbose level (show log messages).
.HP
\fB\-m\fR<thread_count>
.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 <setting>=<value>
.IP
Set a setting to a value for the last supplied object,
extruder train, or general settings.
.HP
\fB\-l\fR <model_file>
.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<extruder_nr>
.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 <output_file>
.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.

12
add-missing-include.patch Normal file
View File

@ -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 <cstdint>
#include <cmath>

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:283f62326c6072cdcef9d9b84cb8141a6072747f08e1cae6534d08ad85b1c657
size 1727935

214
cura-engine.changes Normal file
View File

@ -0,0 +1,214 @@
-------------------------------------------------------------------
Wed Nov 27 05:47:22 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <bjorn.lie@gmail.com>
- Add add-missing-include.patch: Add missing include <cstdint>
-------------------------------------------------------------------
Sun Feb 6 21:52:59 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <guillaume.gardet@opensuse.org>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <stefan.bruens@rwth-aachen.de>
- Update URL to use https
-------------------------------------------------------------------
Fri Jan 18 09:48:08 UTC 2019 - Adrian Schröter <adrian@suse.de>
- define version explicit for reporting in gcode files
-------------------------------------------------------------------
Wed Jan 2 12:50:27 UTC 2019 - Adrian Schröter <adrian@suse.de>
- fix build with stb in subdirectory
* obsoletes fix-build.patch
-------------------------------------------------------------------
Fri Nov 16 13:35:50 UTC 2018 - Adrian Schröter <adrian@suse.de>
- 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 <adrian@suse.de>
- 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

80
cura-engine.spec Normal file
View File

@ -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 <cstdint>
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

23
fix-build.patch Normal file
View File

@ -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()