Name: CuraEngine Epoch: 1 Version: 5.4.0 Release: %autorelease Summary: Engine for processing 3D models into G-code instructions for 3D printers License: AGPL-3.0-or-later URL: https://github.com/Ultimaker/%{name} Source0: %{url}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz # Cmake bits taken from 4.13.1, before upstream went nuts with conan Source2: FindGMock.cmake Source3: FindPolyclipping.cmake Source4: FindStb.cmake Source5: CMakeLists.txt Source6: CPackConfig.cmake # This is some kind of "public" layer of a private logging thing :/ # It's header-only and not usable as a system library, # so I (churchyard) decided to bundle it for now. Shame on me. # It's AGPL-3.0-or-later. %global scripta_version c378c837eeb505146ab67abe0904bfed2099128f Source7: https://github.com/Ultimaker/Scripta_public/archive/%{scripta_version}/Scripta_public-%{scripta_version}.tar.gz Provides: bundled(scripta) = %{scripta_version} BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libarcus-devel >= 5.2.2 BuildRequires: polyclipping-devel >= 6.1.2 BuildRequires: protobuf-devel BuildRequires: rapidjson-devel BuildRequires: cmake BuildRequires: git-core BuildRequires: boost-devel BuildRequires: range-v3-devel BuildRequires: fmt-devel BuildRequires: spdlog-devel # Header-only package; -static version is for tracking per guidelines # Enforce the the minimum EVR to contain fixes for all of: # CVE-2021-28021 # CVE-2021-42715 # CVE-2021-42716 # CVE-2022-28041 # CVE-2023-43898 # CVE-2023-45661 # CVE-2023-45662 # CVE-2023-45663 # CVE-2023-45664 # CVE-2023-45666 # CVE-2023-45667 # Upstream issues #1860, #1861 BuildRequires: stb_image-static >= 2.30^20251025gitf1c79c0-2 Patch0: %{name}-static-libstdcpp.patch # Patch for fmtlib 10, from https://github.com/Ultimaker/CuraEngine/commit/5a4ca90594f965b6a5e6af626a5c508185277162 Patch1: CuraEngine-5.4.0-fmt10.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} %description %{name} is a C++ console application for 3D printing G-code generation. It has been made as a better and faster alternative to the old Skeinforge engine. This is just a console application for G-code generation. For a full graphical application look at cura with is the graphical frontend for %{name}. %prep %setup -q mkdir cmake cp -a %{SOURCE2} %{SOURCE3} %{SOURCE4} cmake rm -rf CMakeLists.txt cp -a %{SOURCE5} %{SOURCE6} . tar xf %{SOURCE7} mv Scripta_public-%{scripta_version}/include/scripta/ include/ %patch -P0 -p1 %patch -P1 -p1 # bundled libraries rm -rf libs # The -DCURA_ENGINE_VERSION does not work, so we sed-change the default value # sed -i 's/"DEV"/"%{version}"/' src/settings/Settings.h %build %cmake \ -DSET_RPATH:BOOL=OFF \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DCURA_ENGINE_VERSION:STRING=%{version} \ -DUSE_SYSTEM_LIBS:BOOL=ON \ -DCMAKE_CXX_FLAGS_RELEASE_INIT:STRING="%{optflags} -fPIC" \ -DStb_INCLUDE_DIRS:PATH=%{_includedir} %cmake_build %install %cmake_install %check # Smoke test %{buildroot}%{_bindir}/%{name} help %files %doc LICENSE README.md %{_bindir}/%{name} %changelog %autochangelog