From 65f18db41f18a081c04d30e55a274edd6a17ca25 Mon Sep 17 00:00:00 2001 From: Charlie B Date: Wed, 20 Nov 2024 16:53:00 +0000 Subject: [PATCH 01/10] prusa-slicer: Update version and hash --- pkgs/applications/misc/prusa-slicer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index eb58f2f0c2f6..bf1734a363f8 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -80,13 +80,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "prusa-slicer"; - version = "2.8.0"; + version = "2.8.1"; inherit patches; src = fetchFromGitHub { owner = "prusa3d"; repo = "PrusaSlicer"; - hash = "sha256-A/uxNIEXCchLw3t5erWdhqFAeh6nudcMfASi+RoJkFg="; + hash = "sha256-nMLZvvZLIOChCLn8A9sOph1lqWsHb00eTG8z98/l0C8="; rev = "version_${finalAttrs.version}"; }; From 2e23ccf4e993fb3c8b7ba1e5f40f214766da811e Mon Sep 17 00:00:00 2001 From: Charlie B Date: Wed, 20 Nov 2024 17:50:33 +0000 Subject: [PATCH 02/10] prusa-slicer: Set opencascade version --- pkgs/applications/misc/prusa-slicer/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index bf1734a363f8..8fd37dc934a1 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -39,7 +39,15 @@ , wxGTK-override ? null }: let - opencascade-occt = opencascade-occt_7_6; + opencascade-occt = opencascade-occt_7_6.overrideAttrs (old: { + version = "7.6.1"; + src = fetchFromGitHub { + owner = "Open-Cascade-SAS"; + repo = "OCCT"; + rev = "V7_6_1"; + sha256 = "sha256-C02P3D363UwF0NM6R4D4c6yE5ZZxCcu5CpUaoTOxh7E="; + }; + }); wxGTK-prusa = wxGTK32.overrideAttrs (old: rec { pname = "wxwidgets-prusa3d-patched"; version = "3.2.0"; From beb95e68a37541d090682ae6e0dd43bd075aa481 Mon Sep 17 00:00:00 2001 From: Charlie B Date: Fri, 22 Nov 2024 20:15:24 +0000 Subject: [PATCH 03/10] prusa-slicer: Update dependency with version --- pkgs/applications/misc/prusa-slicer/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 8fd37dc934a1..9c9eb35f1037 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -35,6 +35,7 @@ , libbgcode , heatshrink , catch2 +, webkitgtk_4_0 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd , wxGTK-override ? null }: @@ -144,6 +145,7 @@ stdenv.mkDerivation (finalAttrs: { libbgcode heatshrink catch2 + webkitgtk_4_0 ] ++ lib.optionals withSystemd [ systemd ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ From 5056f66b03df74412e348190b3e9c3b436cb5986 Mon Sep 17 00:00:00 2001 From: Charlie B Date: Sat, 23 Nov 2024 08:29:37 +0000 Subject: [PATCH 04/10] prusa-slicer: Remove existing patches --- pkgs/applications/misc/prusa-slicer/default.nix | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 9c9eb35f1037..2ac668050318 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -77,14 +77,6 @@ let wxGTK-override' = if wxGTK-override == null then wxGTK-prusa else wxGTK-override; patches = [ - (fetchpatch { - url = "https://raw.githubusercontent.com/gentoo/gentoo/master/media-gfx/prusaslicer/files/prusaslicer-2.8.0-missing-includes.patch"; - hash = "sha256-/R9jv9zSP1lDW6IltZ8V06xyLdxfaYrk3zD6JRFUxHg="; - }) - (fetchpatch { - url = "https://raw.githubusercontent.com/gentoo/gentoo/master/media-gfx/prusaslicer/files/prusaslicer-2.8.0-fixed-linking.patch"; - hash = "sha256-G1JNdVH+goBelag9aX0NctHFVqtoYFnqjwK/43FVgvM="; - }) ]; in stdenv.mkDerivation (finalAttrs: { From 3e94f462f1e3e4f94a60fac0289c77bd74e2758c Mon Sep 17 00:00:00 2001 From: Charlie B Date: Tue, 26 Nov 2024 16:31:13 +0000 Subject: [PATCH 05/10] Add override for occt 7.6.1 --- pkgs/top-level/all-packages.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 530ba79d74f7..a888d31fe1c9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10272,6 +10272,17 @@ with pkgs; ]; }; + opencascade-occt_7_6_1 = opencascade-occt.overrideAttrs { + pname = "opencascade-occt"; + version = "7.6.1"; + src = fetchFromGitHub { + owner = "Open-Cascade-SAS"; + repo = "OCCT"; + rev = "V7_6_1"; + sha256 = "sha256-C02P3D363UwF0NM6R4D4c6yE5ZZxCcu5CpUaoTOxh7E="; + }; + }; + opencsg = callPackage ../development/libraries/opencsg { inherit (qt5) qmake; inherit (darwin.apple_sdk.frameworks) GLUT; From 29ddfaddecfe2edfd4a28179fb8dc4aa4e989167 Mon Sep 17 00:00:00 2001 From: Charlie B Date: Tue, 26 Nov 2024 16:32:15 +0000 Subject: [PATCH 06/10] prusa-slicer: Use new overriden occt vn --- pkgs/applications/misc/prusa-slicer/default.nix | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 2ac668050318..6c2d0c2c168f 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -25,7 +25,7 @@ , mpfr , nanosvg , nlopt -, opencascade-occt_7_6 +, opencascade-occt_7_6_1 , openvdb , pcre , qhull @@ -40,15 +40,6 @@ , wxGTK-override ? null }: let - opencascade-occt = opencascade-occt_7_6.overrideAttrs (old: { - version = "7.6.1"; - src = fetchFromGitHub { - owner = "Open-Cascade-SAS"; - repo = "OCCT"; - rev = "V7_6_1"; - sha256 = "sha256-C02P3D363UwF0NM6R4D4c6yE5ZZxCcu5CpUaoTOxh7E="; - }; - }); wxGTK-prusa = wxGTK32.overrideAttrs (old: rec { pname = "wxwidgets-prusa3d-patched"; version = "3.2.0"; @@ -127,7 +118,7 @@ stdenv.mkDerivation (finalAttrs: { mpfr nanosvg-fltk nlopt - opencascade-occt + opencascade-occt_7_6_1 openvdb_tbb_2021_8 pcre qhull From 5dfc53b6b2d255d39ab40ddd7dbd00ded356d368 Mon Sep 17 00:00:00 2001 From: Charlie B Date: Tue, 26 Nov 2024 16:38:16 +0000 Subject: [PATCH 07/10] prusa-slicer: Move boost log link from patch to args --- pkgs/applications/misc/prusa-slicer/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 6c2d0c2c168f..73464d609076 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -178,6 +178,7 @@ stdenv.mkDerivation (finalAttrs: { "-DSLIC3R_STATIC=0" "-DSLIC3R_FHS=1" "-DSLIC3R_GTK=3" + "-DCMAKE_CXX_FLAGS=-DBOOST_LOG_DYN_LINK" ]; postInstall = '' From 92d5a750321229ff930eb053288e8bd4edaff7ab Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Sun, 22 Dec 2024 13:37:24 +0000 Subject: [PATCH 08/10] prusa-slicer: 2.8.1 -> 2.9.0 At the same time fix the paths in a manual patch, and fix the version of Boost to meet the build requirements. --- pkgs/applications/misc/prusa-slicer/default.nix | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 73464d609076..61e924b5cc92 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -7,6 +7,7 @@ , pkg-config , wrapGAppsHook3 , boost +, boost183 , cereal , cgal , curl @@ -69,23 +70,31 @@ let patches = [ ]; + + # Build requires at least Boost v1.83. If the mainline package satisfies + # that, just use the mainline package, otherwise use an explicitly versioned + # package. + boost183OrBetter = + if lib.versionAtLeast boost.version "1.83" + then boost + else boost183; in stdenv.mkDerivation (finalAttrs: { pname = "prusa-slicer"; - version = "2.8.1"; + version = "2.9.0"; inherit patches; src = fetchFromGitHub { owner = "prusa3d"; repo = "PrusaSlicer"; - hash = "sha256-nMLZvvZLIOChCLn8A9sOph1lqWsHb00eTG8z98/l0C8="; + hash = "sha256-6BrmTNIiu6oI/CbKPKoFQIh1aHEVfJPIkxomQou0xKk="; rev = "version_${finalAttrs.version}"; }; # required for GCC 14 # (not applicable to super-slicer fork) postPatch = lib.optionalString (finalAttrs.pname == "prusa-slicer") '' - substituteInPlace src/libslic3r/Arrange/Core/DataStoreTraits.hpp \ + substituteInPlace src/slic3r-arrange/include/arrange/DataStoreTraits.hpp \ --replace-fail \ "WritableDataStoreTraits::template set" \ "WritableDataStoreTraits::set" @@ -100,7 +109,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ binutils - boost + boost183OrBetter cereal cgal curl From 763f17cccd37f0f5a3fb4a1dce73bf0201b47c0b Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Sun, 22 Dec 2024 14:58:39 +0000 Subject: [PATCH 09/10] super-slicer: handle missing postPatch When overriding the postPatch attribute from prusa-slicer, handle the scenario where prusa-slicer doesn't have a postPatch attribute, as well as the scenario where it does. --- pkgs/applications/misc/prusa-slicer/super-slicer.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix index 268e571b87d4..2d8e6ec35325 100644 --- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix +++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix @@ -59,7 +59,7 @@ let # - wxScintilla is not used on macOS # - Partially applied upstream changes cause a bug when trying to link against a nonexistent libexpat postPatch = - super.postPatch + (super.postPatch or "") + '' substituteInPlace src/CMakeLists.txt \ --replace "scintilla" "" \ From 1bd956fed27498ed808a365074eec752a69f5066 Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Tue, 31 Dec 2024 22:33:09 +0000 Subject: [PATCH 10/10] super-slicer: fix build broken by prusa-slicer update super-slicer is built by overriding prusa-slicer, and the updated libraries as part of the update of prusa-slicer to v2.9.0 broke super-slicer's pinned libraries. Ideally we'd split off super-slicer as a separate package rather than continuing to make changes in prusa-slicer then undo them in super-slicer, but that seems to be a much more substantial job, so stick with the simple approach for now. --- pkgs/applications/misc/prusa-slicer/default.nix | 4 +++- pkgs/applications/misc/prusa-slicer/super-slicer.nix | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index 61e924b5cc92..ce1b3521d046 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -39,6 +39,7 @@ , webkitgtk_4_0 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd , wxGTK-override ? null +, opencascade-override ? null }: let wxGTK-prusa = wxGTK32.overrideAttrs (old: rec { @@ -67,6 +68,7 @@ let }); openvdb_tbb_2021_8 = openvdb.override { tbb = tbb_2021_11; }; wxGTK-override' = if wxGTK-override == null then wxGTK-prusa else wxGTK-override; + opencascade-override' = if opencascade-override == null then opencascade-occt_7_6_1 else opencascade-override; patches = [ ]; @@ -127,7 +129,7 @@ stdenv.mkDerivation (finalAttrs: { mpfr nanosvg-fltk nlopt - opencascade-occt_7_6_1 + opencascade-override' openvdb_tbb_2021_8 pcre qhull diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix index 2d8e6ec35325..27bafc26db90 100644 --- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix +++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix @@ -6,6 +6,7 @@ wxGTK31, prusa-slicer, libspnav, + opencascade-occt_7_6, }: let appname = "SuperSlicer"; @@ -125,9 +126,12 @@ let fetchSubmodules = true; }; }); - prusa-slicer-wxGTK-override = prusa-slicer.override { wxGTK-override = wxGTK31-prusa; }; + prusa-slicer-deps-override = prusa-slicer.override { + wxGTK-override = wxGTK31-prusa; + opencascade-override = opencascade-occt_7_6; + }; allVersions = builtins.mapAttrs ( - _name: version: (prusa-slicer-wxGTK-override.overrideAttrs (override version)) + _name: version: (prusa-slicer-deps-override.overrideAttrs (override version)) ) versions; in allVersions.stable