From e54c7174db82aa7dad34dfd6f521a680fc885787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ulc?= Date: Fri, 3 Jan 2025 15:43:11 +0100 Subject: [PATCH] media-gfx/prusaslicer: bump to 2.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: https://bugs.gentoo.org/946720 Signed-off-by: Miroslav Ć ulc --- media-gfx/prusaslicer/Manifest | 1 + .../prusaslicer-2.9.0-arrange-static.patch | 46 +++++++ .../files/prusaslicer-2.9.0-fpic-all.patch | 18 --- .../files/prusaslicer-2.9.0-fpic.patch | 57 --------- ...aslicer-2.9.0-slic3r-arrange-wrapper.patch | 18 --- .../prusaslicer-2.9.0-slic3r-arrange.patch | 18 --- .../prusaslicer/prusaslicer-2.9.0.ebuild | 113 ++++++++++++++++++ media-gfx/prusaslicer/prusaslicer-9999.ebuild | 8 +- 8 files changed, 163 insertions(+), 116 deletions(-) create mode 100644 media-gfx/prusaslicer/files/prusaslicer-2.9.0-arrange-static.patch delete mode 100644 media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch delete mode 100644 media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic.patch delete mode 100644 media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch delete mode 100644 media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch create mode 100644 media-gfx/prusaslicer/prusaslicer-2.9.0.ebuild diff --git a/media-gfx/prusaslicer/Manifest b/media-gfx/prusaslicer/Manifest index 070d14534a751..4e2171fa73fbd 100644 --- a/media-gfx/prusaslicer/Manifest +++ b/media-gfx/prusaslicer/Manifest @@ -1 +1,2 @@ DIST prusaslicer-2.8.1.tar.gz 69409077 BLAKE2B dd3ee810ea00d03f1790386d1fe1fd044c038429700cd33f21299abdf5def12902f7a07c23aa3d2a6cfc5e18d1e2534080889d4a33beefb493a504978a742453 SHA512 0471fa579a494d66e6b49c0bc1a9fa91f3a5f9147d8b7fa8133c6f03391f8daddddb19ed222d1be44f6f22e2de3021f3fb839331e3c3ccdf5643caa8a61d6912 +DIST prusaslicer-2.9.0.tar.gz 70604482 BLAKE2B 14480ad6e4257d052e65f7158e14e6eb57f2e51c5c7ce3a6545b36a47007cb528aa38a1ff00eacd70374dfaef4ba7efd185dd5add1a6807f79148a124320126a SHA512 554099ba827f8b4af37727d4e99ad6b2f339c530f35a4f8e63f0c5aaf455a5fc3261b983939c487f76964c522ea8ecd13527efea7f881749f907a039cfe7ef89 diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-arrange-static.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-arrange-static.patch new file mode 100644 index 0000000000000..6bc8af73d03a7 --- /dev/null +++ b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-arrange-static.patch @@ -0,0 +1,46 @@ +From a7c15a3ae9877dcf7da8c8fd80de8b128251db2b Mon Sep 17 00:00:00 2001 +From: Yuri D'Elia +Date: Fri, 3 Jan 2025 00:07:50 +0100 +Subject: [PATCH] Build libslic3r-arrange/wrapper as static + +Fix build on linux without SLIC3R_STATIC (these are for internal use +only). + +- Avoids the need for installation (fixes + https://github.com/prusa3d/PrusaSlicer/pull/13812) +- Fixes build without PIC (fixes + https://github.com/prusa3d/PrusaSlicer/pull/13810, + https://github.com/prusa3d/PrusaSlicer/issues/13694), which would + still result in broken behavior (duplicate static initialization + crashing on startup). +--- + src/slic3r-arrange-wrapper/CMakeLists.txt | 2 +- + src/slic3r-arrange/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/slic3r-arrange-wrapper/CMakeLists.txt b/src/slic3r-arrange-wrapper/CMakeLists.txt +index 3f723e5aed1..34b64fc2969 100644 +--- a/src/slic3r-arrange-wrapper/CMakeLists.txt ++++ b/src/slic3r-arrange-wrapper/CMakeLists.txt +@@ -1,7 +1,7 @@ + project(slic3r-arrange-wrapper) + cmake_minimum_required(VERSION 3.13) + +-add_library(slic3r-arrange-wrapper ++add_library(slic3r-arrange-wrapper STATIC + include/arrange-wrapper/Arrange.hpp + include/arrange-wrapper/ArrangeSettingsDb_AppCfg.hpp + include/arrange-wrapper/ArrangeSettingsView.hpp +diff --git a/src/slic3r-arrange/CMakeLists.txt b/src/slic3r-arrange/CMakeLists.txt +index 98ab2470535..36a54ca5985 100644 +--- a/src/slic3r-arrange/CMakeLists.txt ++++ b/src/slic3r-arrange/CMakeLists.txt +@@ -1,7 +1,7 @@ + project(slic3r-arrange) + cmake_minimum_required(VERSION 3.13) + +-add_library(slic3r-arrange ++add_library(slic3r-arrange STATIC + include/arrange/Beds.hpp + include/arrange/ArrangeItemTraits.hpp + include/arrange/PackingContext.hpp diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch deleted file mode 100644 index f71a5b9884243..0000000000000 --- a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch +++ /dev/null @@ -1,18 +0,0 @@ -From a48acef85b34b52085378b8ee39a79f7eaeac0fa Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Fri, 20 Dec 2024 20:49:23 +0100 -Subject: [PATCH] cmake: Turn on position independent code for all targets - -Fixes: #13694 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -1,6 +1,9 @@ - cmake_minimum_required(VERSION 3.13) - project(PrusaSlicer-native) - -+# This enables -fPIC for shared libaries and -fpie for binaries -+set(CMAKE_POSITION_INDEPENDENT_CODE ON) -+ - add_subdirectory(clipper) - find_package(Qhull 7.2 REQUIRED) - add_library(qhull INTERFACE) diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic.patch deleted file mode 100644 index ea6e297e96dbb..0000000000000 --- a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- a/bundled_deps/admesh/CMakeLists.txt -+++ b/bundled_deps/admesh/CMakeLists.txt -@@ -14,3 +14,4 @@ add_library(admesh STATIC - target_include_directories(admesh PUBLIC .) - target_link_libraries(admesh PRIVATE boost_headeronly localesutils) - target_link_libraries(admesh PUBLIC Eigen3::Eigen) -+set_target_properties(admesh PROPERTIES POSITION_INDEPENDENT_CODE ON) ---- a/bundled_deps/glu-libtess/CMakeLists.txt -+++ b/bundled_deps/glu-libtess/CMakeLists.txt -@@ -34,3 +34,4 @@ if(UNIX) - endif(UNIX) - - target_include_directories(glu-libtess PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -+set_target_properties(glu-libtess PROPERTIES POSITION_INDEPENDENT_CODE ON) ---- a/bundled_deps/miniz/CMakeLists.txt -+++ b/bundled_deps/miniz/CMakeLists.txt -@@ -7,6 +7,7 @@ add_library(miniz_static STATIC - miniz.c - miniz.h - ) -+set_target_properties(miniz_static PROPERTIES POSITION_INDEPENDENT_CODE ON) - - if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") - target_compile_definitions(miniz_static PRIVATE _GNU_SOURCE) ---- a/bundled_deps/CMakeLists.txt -+++ b/bundled_deps/CMakeLists.txt -@@ -33,6 +33,7 @@ add_library(localesutils STATIC - ) - target_include_directories(localesutils PUBLIC localesutils) - target_link_libraries(localesutils PRIVATE fastfloat) -+set_target_properties(localesutils PROPERTIES POSITION_INDEPENDENT_CODE ON) - - add_library(ankerl INTERFACE) - target_include_directories(ankerl INTERFACE ankerl) ---- a/src/libslic3r/CMakeLists.txt -+++ b/src/libslic3r/CMakeLists.txt -@@ -532,6 +532,7 @@ add_library(libslic3r_cgal STATIC - TryCatchSignal.hpp TryCatchSignal.cpp - Triangulation.hpp Triangulation.cpp - ) -+set_target_properties(libslic3r_cgal PROPERTIES POSITION_INDEPENDENT_CODE ON) - target_include_directories(libslic3r_cgal PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - target_include_directories(libslic3r_cgal PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..) - -@@ -622,3 +623,5 @@ endif () - if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) - add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE) - endif () -+ -+set_target_properties(libslic3r PROPERTIES POSITION_INDEPENDENT_CODE ON) ---- a/src/clipper/CMakeLists.txt -+++ b/src/clipper/CMakeLists.txt -@@ -12,3 +12,4 @@ add_library(clipper STATIC - target_link_libraries(clipper PRIVATE TBB::tbb TBB::tbbmalloc int128) - target_link_libraries(clipper PUBLIC Eigen3::Eigen) - target_include_directories(clipper PUBLIC .) -+set_target_properties(clipper PROPERTIES POSITION_INDEPENDENT_CODE ON) diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch deleted file mode 100644 index a5a77d8fc3707..0000000000000 --- a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 09c89be8732d4b11f64980c7ac5368cd506847dd Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Fri, 20 Dec 2024 20:15:51 +0100 -Subject: [PATCH] cmake: Install slic3r-arrange-wrapper - -Fixes #13805 ---- a/src/slic3r-arrange-wrapper/CMakeLists.txt -+++ b/src/slic3r-arrange-wrapper/CMakeLists.txt -@@ -33,3 +33,9 @@ add_library(slic3r-arrange-wrapper - target_include_directories(slic3r-arrange-wrapper PRIVATE src) - target_include_directories(slic3r-arrange-wrapper PUBLIC include) - target_link_libraries(slic3r-arrange-wrapper PUBLIC slic3r-arrange) -+ -+if (WIN32) -+ install(TARGETS slic3r-arrange-wrapper LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}) -+else() -+ install(TARGETS slic3r-arrange-wrapper LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+endif() diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch deleted file mode 100644 index 7198d11f74643..0000000000000 --- a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 5f450dc269ff99af3f0e056ae4b30d254789500b Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Fri, 20 Dec 2024 20:14:52 +0100 -Subject: [PATCH] cmake: Install slic3r-arrange - -Fixes #13805 ---- a/src/slic3r-arrange/CMakeLists.txt -+++ b/src/slic3r-arrange/CMakeLists.txt -@@ -32,3 +32,9 @@ add_library(slic3r-arrange - target_include_directories(slic3r-arrange PRIVATE src) - target_include_directories(slic3r-arrange PUBLIC include) - target_link_libraries(slic3r-arrange PUBLIC libslic3r) -+ -+if (WIN32) -+ install(TARGETS slic3r-arrange LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}) -+else() -+ install(TARGETS slic3r-arrange LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+endif() diff --git a/media-gfx/prusaslicer/prusaslicer-2.9.0.ebuild b/media-gfx/prusaslicer/prusaslicer-2.9.0.ebuild new file mode 100644 index 0000000000000..2f4ebe6ec2af4 --- /dev/null +++ b/media-gfx/prusaslicer/prusaslicer-2.9.0.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +WX_GTK_VER="3.2-gtk3" +MY_PN="PrusaSlicer" +MY_PV="$(ver_rs 3 -)" + +inherit cmake wxwidgets xdg + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/prusa3d/prusaslicer.git" +else + SRC_URI="https://github.com/prusa3d/PrusaSlicer/archive/refs/tags/version_${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" + S="${WORKDIR}/${MY_PN}-version_${MY_PV}" +fi + +DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)" +HOMEPAGE="https://www.prusa3d.com/prusaslicer/" + +LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT" +SLOT="0" +IUSE="test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-cpp/eigen:3 + dev-cpp/tbb:= + dev-libs/boost:=[nls] + dev-libs/cereal + dev-libs/expat + dev-libs/glib:2 + dev-libs/gmp:= + dev-libs/mpfr:= + media-gfx/openvdb:= + media-gfx/libbgcode + net-misc/curl[adns] + media-libs/glew:0= + media-libs/libjpeg-turbo:= + media-libs/libpng:0= + media-libs/qhull:= + net-libs/webkit-gtk:4.1 + sci-libs/libigl + sci-libs/nlopt + sci-libs/opencascade:= + sci-mathematics/cgal:= + sys-apps/dbus + sys-libs/zlib:= + virtual/opengl + x11-libs/gtk+:3 + >=x11-libs/wxGTK-3.2.2.1-r3:${WX_GTK_VER}[X,opengl,webkit] + media-libs/nanosvg:= +" +DEPEND="${RDEPEND} + media-libs/qhull[static-libs] + test? ( =dev-cpp/catch-2* ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.6.0-dont-force-link-to-wayland-and-x11.patch" + "${FILESDIR}/${PN}-2.8.0-wxwidgets-3.2.4.patch" + "${FILESDIR}/${PN}-2.8.1-cgal-6.0.patch" + "${FILESDIR}/${PN}-2.8.1-fstream.patch" + "${FILESDIR}/${PN}-2.8.1-fix-libsoup-double-linking.patch" + "${FILESDIR}/${PN}-2.8.1-boost-1.87.patch" + "${FILESDIR}/${PN}-2.9.0-missing-includes.patch" + "${FILESDIR}/${PN}-2.9.0-arrange-static.patch" +) + +src_prepare() { + if has_version ">=sci-libs/opencascade-7.8.0"; then + eapply "${FILESDIR}/prusaslicer-2.8.1-opencascade-7.8.0.patch" + fi + + sed -i -e 's/PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN/PrusaSlicer-${SLIC3R_VERSION}+Gentoo/g' version.inc || die + + sed -i -e 's/find_package(OpenCASCADE 7.6.[0-9] REQUIRED)/find_package(OpenCASCADE REQUIRED)/g' \ + src/occt_wrapper/CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + CMAKE_BUILD_TYPE="Release" + + setup-wxwidgets + + local mycmakeargs=( + -DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB" + + -DSLIC3R_BUILD_TESTS=$(usex test) + -DSLIC3R_FHS=ON + -DSLIC3R_GTK=3 + -DSLIC3R_GUI=ON + -DSLIC3R_PCH=OFF + -DSLIC3R_STATIC=OFF + -DSLIC3R_WX_STABLE=ON + -Wno-dev + ) + + cmake_src_configure +} + +src_test() { + CMAKE_SKIP_TESTS=( + "^libslic3r_tests$" + ) + cmake_src_test +} diff --git a/media-gfx/prusaslicer/prusaslicer-9999.ebuild b/media-gfx/prusaslicer/prusaslicer-9999.ebuild index 2fcf6ded9e4e9..2f4ebe6ec2af4 100644 --- a/media-gfx/prusaslicer/prusaslicer-9999.ebuild +++ b/media-gfx/prusaslicer/prusaslicer-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -66,11 +66,9 @@ PATCHES=( "${FILESDIR}/${PN}-2.8.1-cgal-6.0.patch" "${FILESDIR}/${PN}-2.8.1-fstream.patch" "${FILESDIR}/${PN}-2.8.1-fix-libsoup-double-linking.patch" + "${FILESDIR}/${PN}-2.8.1-boost-1.87.patch" "${FILESDIR}/${PN}-2.9.0-missing-includes.patch" - "${FILESDIR}/${PN}-2.9.0-fpic.patch" - "${FILESDIR}/${PN}-2.9.0-fpic-all.patch" - "${FILESDIR}/${PN}-2.9.0-slic3r-arrange.patch" - "${FILESDIR}/${PN}-2.9.0-slic3r-arrange-wrapper.patch" + "${FILESDIR}/${PN}-2.9.0-arrange-static.patch" ) src_prepare() {