[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#70880] [PATCH v2 8/8] gnu: prusa-slicer: Update to 2.7.4.
From: |
Maxim Cournoyer |
Subject: |
[bug#70880] [PATCH v2 8/8] gnu: prusa-slicer: Update to 2.7.4. |
Date: |
Tue, 09 Jul 2024 22:42:22 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hello,
"Artyom V. Poptsov" <poptsov.artyom@gmail.com> writes:
> * gnu/packages/engineering.scm (prusa-slicer): Update to 2.7.4. [source]:
> Remove "prusa-slicer-boost-fixes.patch" and
Nitpick: no need for hanging indent :-)
> "prusa-slicer-with-cereal-1.3.1.patch". Move some part of the snippet code
> to custom build phases.
> [arguments]: In configure flags add paths to external libraries.
> Add "fix-include-paths" phase.
Suggestion: I'd use either directly [configure-flags] or [arguments]
<configure-flags> to make description of change more terse.
> [native-inputs]: Add "catch2".
> [inputs]: Use "prusa-wxwidgets" instead of "wxwidgets" to fix segfaults.
> Ad "qhull", "nanosvg", "heatshrink" and "prusa-libbgcode".
Nitpick: variable names are not typically quoted in the ChangeLog.
> * gnu/packages/patches/prusa-slicer-boost-fixes.patch,
> gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch: Remove unused
> patches.
> * gnu/local.mk (dist_patch_DATA): De-register "prusa-slicer-boost-fixes.patch"
> and "prusa-slicer-with-cereal-1.3.1.patch".
>
> Change-Id: I15e85d63c9ad6c731c8040ef2d8ec8b2f31f2ab7
> ---
> gnu/local.mk | 2 -
> gnu/packages/engineering.scm | 53 ++++++----
> .../patches/prusa-slicer-boost-fixes.patch | 97 -------------------
> .../prusa-slicer-with-cereal-1.3.1.patch | 52 ----------
> 4 files changed, 35 insertions(+), 169 deletions(-)
> delete mode 100644 gnu/packages/patches/prusa-slicer-boost-fixes.patch
> delete mode 100644 gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 29107a618b..d9760557df 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -1839,9 +1839,7 @@ dist_patch_DATA =
> \
> %D%/packages/patches/pokerth-boost.patch \
> %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
> %D%/packages/patches/procps-strtod-test.patch \
> - %D%/packages/patches/prusa-slicer-boost-fixes.patch \
> %D%/packages/patches/prusa-slicer-fix-tests.patch \
> - %D%/packages/patches/prusa-slicer-with-cereal-1.3.1.patch \
> %D%/packages/patches/prusa-wxwidgets-makefile-fix.patch \
> %D%/packages/patches/pthreadpool-system-libraries.patch \
> %D%/packages/patches/python-3.12-fix-tests.patch \
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index de4b4a5825..2a3671b01d 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -3802,7 +3802,7 @@ (define-public prusa-libbgcode
> (define-public prusa-slicer
> (package
> (name "prusa-slicer")
> - (version "2.5.2")
> + (version "2.7.4")
> (source
> (origin
> (method git-fetch)
> @@ -3811,13 +3811,11 @@ (define-public prusa-slicer
> (url "https://github.com/prusa3d/PrusaSlicer")
> (commit (string-append "version_" version))))
> (file-name (git-file-name name version))
> - (sha256 (base32
> "02qcrw3fa0d8ldbp73hp14l1qxbp3f4608j4csc07ny00ra42151"))
> - (patches (search-patches "prusa-slicer-boost-fixes.patch"
> - "prusa-slicer-fix-tests.patch"
> - "prusa-slicer-with-cereal-1.3.1.patch"))
> + (sha256 (base32
> "0s1cfvhfilyv0y98asr61c6rwlgyr1hf5v5hg8q9zwmzm2bkcql3"))
> + (patches (search-patches "prusa-slicer-fix-tests.patch"))
> (modules '((guix build utils)))
> (snippet
> - '(begin
> + `(begin
> ;; Prusa slicer bundles a lot of dependencies in src/ directory.
> ;; Most of them contain prusa-specific modifications (e.g.
> avrdude),
> ;; but others do not. Here we replace the latter with Guix
> packages.
> @@ -3825,10 +3823,12 @@ (define-public prusa-slicer
> (delete-file-recursively "src/hidapi")
> (delete-file-recursively "src/eigen")
> (delete-file-recursively "src/libigl/igl")
> + (substitute* "CMakeLists.txt"
> + (("add_library\\(libexpat INTERFACE\\)")
> + ""))
> + (substitute* "src/libigl/CMakeLists.txt"
> + (("target_link_libraries\\(libigl INTERFACE igl::core\\)") ""))
> (substitute* "src/CMakeLists.txt"
> - (("add_subdirectory\\(libigl\\)" all)
> - (string-append
> - all "\ninclude_directories(libigl INTERFACE libigl::core)"))
> (("add_subdirectory\\(hidapi\\)")
> "pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)")
> (("include_directories\\(hidapi/include\\)")
> @@ -3841,13 +3841,26 @@ (define-public prusa-slicer
> (("\\bhidapi\\b") "${HIDAPI_LIBRARIES}"))))))
> (build-system cmake-build-system)
> (arguments
> - `(#:configure-flags
> - '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
> - "-DSLIC3R_GTK=3" ;; Use GTK+
> - ;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support
> enforcers.
> - "-DSLIC3R_WX_STABLE=1")))
> + (list #:configure-flags
> + #~(list "-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
> + "-DSLIC3R_GTK=3" ;; Use GTK+
> + ;; Use wxWidgets 3.0.x.x to prevent GUI crashes when
> adding support enforcers.
> + "-DSLIC3R_WX_STABLE=1"
> + (format #f "-Dlibigl_DIR=~a"
> + (search-input-directory %build-inputs
> + "lib/cmake/igl/"))
> + (format #f "-DCatch2_DIR=~a"
> + (search-input-directory %build-inputs
> + "lib/cmake/Catch2/")))
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'fix-include-paths
> + (lambda _
> + (substitute*
> "tests/libslic3r/test_quadric_edge_collapse.cpp"
> + (("#include <libigl/igl/qslim.h>")
> + "#include <igl/qslim.h>")))))))
> (native-inputs
> - (list pkg-config))
> + (list pkg-config catch2))
> (inputs
> (list boost
> cereal
> @@ -3873,9 +3886,13 @@ (define-public prusa-slicer
> pango
> tbb
> eudev
> - ;; prusa-slicer 2.5 segfaults on startup with wxwidgets 3.2
> - ;; See https://github.com/prusa3d/PrusaSlicer/issues/8299
> - wxwidgets-3.0
> + qhull
> + nanosvg
> + heatshrink
> + ;; XXX: Using Prusa wxWidgets fork as PrusaSlicer segfaults when
> compiled
> + ;; with regular wxwidgets.
> + prusa-wxwidgets
> + prusa-libbgcode
Please sort inputs alphabetically.
The rest LGTM. Could you please resubmit a v3 with the small things
I've spotted in my reading of v2? Sorry for missing some of these
things in v1.
--
Thanks,
Maxim