PrusaSlicer/PrusaSlicer-2.8.1-pr13609-fix-build.patch
Benjamin Greiner f01114ea75 - Changelog for 2.8.1
* When using the wipe tower with "No sparse layers" option
    enabled, there would still be travels to the wipe tower
    location even for the skipped layers. This is a regression
    introduced in 2.8.1-rc1 (#13384).
  * A warning about inconsistent color profiles in PNGs used as
    Prusa Account avatar is now silently ignored (#12920).
  ## Improvements with respect to 2.8.0
  * Based on the feedback received after 2.8.0 release, the menu
    bar was reinstated and the menu no longer hides under a button.
    Thanks everyone for the feedback, it was very helpful and it
    will be taken into consideration during possible UI-related
    decisions in the future. #12943
  * When logging-in with the PrusaAccount using third party
    authorization (Google, Apple, Facebook), an external browser
    window is opened so the user is not forced to enter their
    credentials into windows created by PrusaSlicer.
  * The built-in web engine no longer remembers the user after
    logout.
  * There are two new parameters: Filaments->Advanced->Abrasive
    material and Printers->Extruder->High flow nozzle. Both flags
    will be used to check whether a sliced G-code is compatible
    with the given printer (abrasive material requires hardened
    nozzle) and also to ensure that "Set as current" function in
    PrusaSlicer-embedded Prusa Connect will select the suitable
    profile for the given configuration.
  * Note that this feature is supported since MINI/MK4/XL firmware
    version 6.2.0-alpha1, and that the implementation in Prusa
    Connect is not completely finished yet, meaning that the dialog
    where printer is selected does not use this information - it

OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=87
2024-12-08 16:54:52 +00:00

322 lines
10 KiB
Diff

From bf17924d6582b8a7baca5a58e59c604f3288cd19 Mon Sep 17 00:00:00 2001
From: randomtechguy <50642148+Rose-David@users.noreply.github.com>
Date: Fri, 12 Jul 2024 17:24:16 -0400
Subject: [PATCH 1/5] Update CMakeLists.txt to fix linux compile error
---
src/slic3r/CMakeLists.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index 82e91bb10b..b20583a5ba 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -391,6 +391,7 @@ set(SLIC3R_GUI_SOURCES
)
find_package(NanoSVG REQUIRED)
+find_package(OpenSSL REQUIRED)
if (APPLE)
list(APPEND SLIC3R_GUI_SOURCES
@@ -447,6 +448,8 @@ target_link_libraries(
NanoSVG::nanosvgrast
stb_dxt
fastfloat
+ OpenSSL::SSL
+ OpenSSL::Crypto
)
if (MSVC)
From da3587cea3c9b51f97f41e3eb09e4479d3b0492f Mon Sep 17 00:00:00 2001
From: Jonne Mickelin <jonne@ljhms.se>
Date: Wed, 20 Nov 2024 16:05:44 +0100
Subject: [PATCH 2/5] Update cmake/FindEigen3 to the one bundled with version
3.4.0
This solves the build error with the missing `Eigen3::Eigen` build
target.
Partially fixes #13608
---
cmake/modules/FindEigen3.cmake | 71 ++++++++++++++++++++++------------
1 file changed, 46 insertions(+), 25 deletions(-)
diff --git a/cmake/modules/FindEigen3.cmake b/cmake/modules/FindEigen3.cmake
index 1da37619ef..2dbed58384 100644
--- a/cmake/modules/FindEigen3.cmake
+++ b/cmake/modules/FindEigen3.cmake
@@ -9,6 +9,16 @@
# EIGEN3_FOUND - system has eigen lib with correct version
# EIGEN3_INCLUDE_DIR - the eigen include directory
# EIGEN3_VERSION - eigen version
+#
+# and the following imported target:
+#
+# Eigen3::Eigen - The header-only Eigen library
+#
+# This module reads hints about search locations from
+# the following environment variables:
+#
+# EIGEN3_ROOT
+# EIGEN3_ROOT_DIR
# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
@@ -18,16 +28,16 @@
if(NOT Eigen3_FIND_VERSION)
if(NOT Eigen3_FIND_VERSION_MAJOR)
set(Eigen3_FIND_VERSION_MAJOR 2)
- endif(NOT Eigen3_FIND_VERSION_MAJOR)
+ endif()
if(NOT Eigen3_FIND_VERSION_MINOR)
set(Eigen3_FIND_VERSION_MINOR 91)
- endif(NOT Eigen3_FIND_VERSION_MINOR)
+ endif()
if(NOT Eigen3_FIND_VERSION_PATCH)
set(Eigen3_FIND_VERSION_PATCH 0)
- endif(NOT Eigen3_FIND_VERSION_PATCH)
+ endif()
set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}")
-endif(NOT Eigen3_FIND_VERSION)
+endif()
macro(_eigen3_check_version)
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
@@ -42,45 +52,56 @@ macro(_eigen3_check_version)
set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION})
if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
set(EIGEN3_VERSION_OK FALSE)
- else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
+ else()
set(EIGEN3_VERSION_OK TRUE)
- endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})
+ endif()
if(NOT EIGEN3_VERSION_OK)
message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, "
"but at least version ${Eigen3_FIND_VERSION} is required")
- endif(NOT EIGEN3_VERSION_OK)
-endmacro(_eigen3_check_version)
+ endif()
+endmacro()
if (EIGEN3_INCLUDE_DIR)
# in cache already
_eigen3_check_version()
set(EIGEN3_FOUND ${EIGEN3_VERSION_OK})
-
-else (EIGEN3_INCLUDE_DIR)
-
- # specific additional paths for some OS
- if (WIN32)
- set(EIGEN_ADDITIONAL_SEARCH_PATHS ${EIGEN_ADDITIONAL_SEARCH_PATHS} "C:/Program Files/Eigen/include" "C:/Program Files (x86)/Eigen/include")
- endif(WIN32)
-
- find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
- PATHS
- ${CMAKE_INSTALL_PREFIX}/include
- ${EIGEN_ADDITIONAL_SEARCH_PATHS}
- ${KDE4_INCLUDE_DIR}
- PATH_SUFFIXES eigen3 eigen
- )
+ set(Eigen3_FOUND ${EIGEN3_VERSION_OK})
+
+else ()
+
+ # search first if an Eigen3Config.cmake is available in the system,
+ # if successful this would set EIGEN3_INCLUDE_DIR and the rest of
+ # the script will work as usual
+ find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET)
+
+ if(NOT EIGEN3_INCLUDE_DIR)
+ find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
+ HINTS
+ ENV EIGEN3_ROOT
+ ENV EIGEN3_ROOT_DIR
+ PATHS
+ ${CMAKE_INSTALL_PREFIX}/include
+ ${KDE4_INCLUDE_DIR}
+ PATH_SUFFIXES eigen3 eigen
+ )
+ endif()
if(EIGEN3_INCLUDE_DIR)
_eigen3_check_version()
- endif(EIGEN3_INCLUDE_DIR)
+ endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
mark_as_advanced(EIGEN3_INCLUDE_DIR)
-endif(EIGEN3_INCLUDE_DIR)
+endif()
+
+if(EIGEN3_FOUND AND NOT TARGET Eigen3::Eigen)
+ add_library(Eigen3::Eigen INTERFACE IMPORTED)
+ set_target_properties(Eigen3::Eigen PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR}")
+endif()
From 5c1fd3e489da10a6fb828681b2ee777736b45a61 Mon Sep 17 00:00:00 2001
From: Jonne Mickelin <jonne@ljhms.se>
Date: Wed, 20 Nov 2024 16:11:11 +0100
Subject: [PATCH 3/5] Replace FindDbus.cmake with the upstream module
This solves the build error with missing headers.
Partially fixes #13608.
---
CMakeLists.txt | 2 +-
cmake/modules/FindDBus.cmake | 59 ------------------------------------
src/slic3r/CMakeLists.txt | 2 +-
3 files changed, 2 insertions(+), 61 deletions(-)
delete mode 100644 cmake/modules/FindDBus.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31cb4c0ff3..42a9302a0d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -246,7 +246,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
- find_package(DBus REQUIRED)
+ find_package(DBus1 REQUIRED)
endif()
if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUXX)
diff --git a/cmake/modules/FindDBus.cmake b/cmake/modules/FindDBus.cmake
deleted file mode 100644
index d54d4e516c..0000000000
--- a/cmake/modules/FindDBus.cmake
+++ /dev/null
@@ -1,59 +0,0 @@
-# - Try to find DBus
-# Once done, this will define
-#
-# DBUS_FOUND - system has DBus
-# DBUS_INCLUDE_DIRS - the DBus include directories
-# DBUS_LIBRARIES - link these to use DBus
-#
-# Copyright (C) 2012 Raphael Kubo da Costa <rakuco@webkit.org>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
-# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-FIND_PACKAGE(PkgConfig)
-PKG_CHECK_MODULES(PC_DBUS QUIET dbus-1)
-
-FIND_LIBRARY(DBUS_LIBRARIES
- NAMES dbus-1
- HINTS ${PC_DBUS_LIBDIR}
- ${PC_DBUS_LIBRARY_DIRS}
-)
-
-FIND_PATH(DBUS_INCLUDE_DIR
- NAMES dbus/dbus.h
- HINTS ${PC_DBUS_INCLUDEDIR}
- ${PC_DBUS_INCLUDE_DIRS}
-)
-
-GET_FILENAME_COMPONENT(_DBUS_LIBRARY_DIR ${DBUS_LIBRARIES} PATH)
-FIND_PATH(DBUS_ARCH_INCLUDE_DIR
- NAMES dbus/dbus-arch-deps.h
- HINTS ${PC_DBUS_INCLUDEDIR}
- ${PC_DBUS_INCLUDE_DIRS}
- ${_DBUS_LIBRARY_DIR}
- ${DBUS_INCLUDE_DIR}
- PATH_SUFFIXES include
-)
-
-SET(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR})
-
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(DBus REQUIRED_VARS DBUS_INCLUDE_DIRS DBUS_LIBRARIES)
\ No newline at end of file
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index b20583a5ba..d1ce7b5b08 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -455,7 +455,7 @@ target_link_libraries(
if (MSVC)
target_link_libraries(libslic3r_gui PUBLIC Setupapi.lib)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- target_link_libraries(libslic3r_gui PUBLIC ${DBUS_LIBRARIES})
+ target_link_libraries(libslic3r_gui PUBLIC ${DBus1_LIBRARIES})
elseif (APPLE)
target_link_libraries(libslic3r_gui PUBLIC ${DISKARBITRATION_LIBRARY} ${COREWLAN_LIBRARY})
endif()
From f7a25cae1820444f4e999b429598ca477a35ccb8 Mon Sep 17 00:00:00 2001
From: Jonne Mickelin <jonne@ljhms.se>
Date: Wed, 20 Nov 2024 16:14:07 +0100
Subject: [PATCH 4/5] Link boost_headeronly in slic3r and libslic3r
This solves the linker error about missing `boost::log` symbols.
Fixes #13608.
---
src/libslic3r/CMakeLists.txt | 3 ++-
src/slic3r/CMakeLists.txt | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index ea669ee30c..d80b17a0bc 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -524,7 +524,7 @@ cmake_policy(SET CMP0011 NEW)
find_package(CGAL REQUIRED)
cmake_policy(POP)
-add_library(libslic3r_cgal STATIC
+add_library(libslic3r_cgal STATIC
CutSurface.hpp CutSurface.cpp
Geometry/VoronoiUtilsCgal.hpp Geometry/VoronoiUtilsCgal.cpp
IntersectionPoints.hpp IntersectionPoints.cpp
@@ -596,6 +596,7 @@ target_link_libraries(libslic3r PUBLIC
libigl
agg
ankerl
+ boost_headeronly
)
if (APPLE)
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index d1ce7b5b08..27c226120d 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -450,6 +450,7 @@ target_link_libraries(
fastfloat
OpenSSL::SSL
OpenSSL::Crypto
+ boost_headeronly
)
if (MSVC)