From 3e84134af426cd1d1a06452b6f09ccb949212844 Mon Sep 17 00:00:00 2001 From: Charles Duffy Date: Sat, 23 Oct 2021 08:19:57 -0500 Subject: [PATCH] curaLulzbot: remove Per previous discussion, agreeing to remove this package if upstream did not fix compatibility with a modern dependency chain prior to ZHF for 21.11. --- .../lulzbot/curaengine-openmp-compat.patch | 47 ----------- .../misc/cura/lulzbot/curaengine.nix | 27 ------ .../misc/cura/lulzbot/default.nix | 82 ------------------- .../misc/cura/lulzbot/libarcus.nix | 33 -------- .../misc/cura/lulzbot/libsavitar.nix | 33 -------- .../misc/cura/lulzbot/uranium.nix | 38 --------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 8 files changed, 1 insertion(+), 262 deletions(-) delete mode 100644 pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch delete mode 100644 pkgs/applications/misc/cura/lulzbot/curaengine.nix delete mode 100644 pkgs/applications/misc/cura/lulzbot/default.nix delete mode 100644 pkgs/applications/misc/cura/lulzbot/libarcus.nix delete mode 100644 pkgs/applications/misc/cura/lulzbot/libsavitar.nix delete mode 100644 pkgs/applications/misc/cura/lulzbot/uranium.nix diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch b/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch deleted file mode 100644 index 3826e92440f0..000000000000 --- a/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch +++ /dev/null @@ -1,47 +0,0 @@ -# Notes by Charles Duffy -- -# -# - The new version of OpenMP does not allow outside variables to be referenced -# *at all* without an explicit declaration of how they're supposed to be -# handled. Thus, this was an outright build failure beforehand. The new -# pragmas copy the initial value from the outer scope into each parallel -# thread. Since these variables are all constant within the loops, this is -# clearly correct. (Not sure it's *optimal*, but quite sure it isn't -# *wrong*). -# - Upstream has been contacted -- I'm a Lulzbot customer with an active -# support contract and sent them the patch. That said, they're in the middle -# of some major corporate churn (sold themselves out of near-bankruptcy to an -# out-of-state business entity formed as a holding company; moved to that -# state; have been slowly restaffing after), so a response may take a while. -# - The patch is purely my own work. - ---- curaengine/src/support.cpp.orig 2020-03-28 10:38:01.953912363 -0500 -+++ curaengine/src/support.cpp 2020-03-28 10:45:28.999791908 -0500 -@@ -854,7 +854,7 @@ - const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle - xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance); - // for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area -- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) -+ #pragma omp parallel for default(none) firstprivate(layer_count, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top, tan_angle, xy_distance, xy_distance_overhang) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) - for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++) - { - Polygons outlines = storage.getLayerOutlines(layer_idx, false); -@@ -1054,7 +1054,7 @@ - const int max_checking_layer_idx = std::min(static_cast(storage.support.supportLayers.size()) - , static_cast(layer_count - (layer_z_distance_top - 1))); - const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx); --#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic) -+#pragma omp parallel for default(none) firstprivate(max_checking_idx_size_t, layer_z_distance_top) shared(support_areas, storage) schedule(dynamic) - for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++) - { - support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false)); ---- curaengine/src/layerPart.cpp.orig 2020-03-28 10:36:40.381023651 -0500 -+++ curaengine/src/layerPart.cpp 2020-03-28 10:39:54.584140465 -0500 -@@ -49,7 +49,7 @@ - { - const auto total_layers = slicer->layers.size(); - assert(mesh.layers.size() == total_layers); --#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic) -+#pragma omp parallel for default(none) firstprivate(total_layers) shared(mesh, slicer) schedule(dynamic) - for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++) - { - SliceLayer& layer_storage = mesh.layers[layer_nr]; diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/pkgs/applications/misc/cura/lulzbot/curaengine.nix deleted file mode 100644 index 5d1df20e224b..000000000000 --- a/pkgs/applications/misc/cura/lulzbot/curaengine.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, gcc8Stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }: - -gcc8Stdenv.mkDerivation rec { - pname = "curaengine-lulzBot"; - version = "3.6.21"; - - src = fetchgit { - url = "https://code.alephobjects.com/source/curaengine-lulzbot.git"; - rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d"; - sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8"; - }; - - patches = [ ./curaengine-openmp-compat.patch ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ libarcusLulzbot stb protobuf ]; - - cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ]; - - meta = with lib; { - description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction"; - homepage = "https://code.alephobjects.com/source/curaengine-lulzbot/"; - license = licenses.agpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ chaduffy ]; - }; -} diff --git a/pkgs/applications/misc/cura/lulzbot/default.nix b/pkgs/applications/misc/cura/lulzbot/default.nix deleted file mode 100644 index 360ef47ecf1d..000000000000 --- a/pkgs/applications/misc/cura/lulzbot/default.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ lib, mkDerivation, wrapQtAppsHook, callPackage, fetchgit, cmake, jq, python3, qtbase, qtquickcontrols2 }: - -let - # admittedly, we're using (printer firmware) blobs when we could compile them ourselves. - curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others. - curaBinaryData = fetchgit { - url = "https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git"; - rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e"; - sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4"; - }; - - libarcusLulzbot = callPackage ./libarcus.nix { - inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder; - }; - libsavitarLulzbot = callPackage ./libsavitar.nix { - inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder; - }; - - inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; - curaengine = callPackage ./curaengine.nix { - inherit libarcusLulzbot; - }; - uraniumLulzbot = callPackage ./uranium.nix { - inherit callPackage libarcusLulzbot; - inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; - }; -in -mkDerivation rec { - pname = "cura-lulzbot"; - version = "3.6.21"; - - src = fetchgit { - url = "https://code.alephobjects.com/source/cura-lulzbot.git"; - rev = "7faeb18604c83004846a02c60cb240708db0034f"; - sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq"; - }; - - buildInputs = [ qtbase qtquickcontrols2 ]; - # numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415 - propagatedBuildInputs = with python3.pkgs; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl - nativeBuildInputs = [ cmake python3.pkgs.wrapPython ]; - - cmakeFlags = [ - "-DURANIUM_DIR=${uraniumLulzbot.src}" - "-DCURA_VERSION=${version}" - ]; - - postPatch = '' - sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt - sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py - ''; - - preFixup = '' - substituteInPlace "$out/bin/cura-lulzbot" --replace 'import cura.CuraApplication' 'import Savitar; import cura.CuraApplication' - ln -sT "${curaBinaryData}/cura/resources/firmware" "$out/share/cura/resources/firmware" - ln -sT "${uraniumLulzbot}/share/uranium" "$out/share/uranium" - ${jq}/bin/jq --arg out "$out" '.build=$out' >"$out/version.json" <<'EOF' - ${builtins.toJSON { - cura = version; - cura_version = version; - binarydata = curaBinaryDataVersion; - engine = curaengine.version; - libarcus = libarcusLulzbot.version; - libsavitar = libsavitarLulzbot.version; - uranium = uraniumLulzbot.version; - }} - EOF - ''; - - postFixup = '' - wrapPythonPrograms - wrapQtApp "$out/bin/cura-lulzbot" - ''; - - meta = with lib; { - description = "3D printer / slicing GUI built on top of the Uranium framework"; - homepage = "https://code.alephobjects.com/diffusion/CURA/"; - license = licenses.agpl3; # a partial relicense to LGPL has happened, but not certain that all AGPL bits are expunged - platforms = platforms.linux; - maintainers = with maintainers; [ chaduffy ]; - }; -} diff --git a/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/pkgs/applications/misc/cura/lulzbot/libarcus.nix deleted file mode 100644 index 15e221a8f743..000000000000 --- a/pkgs/applications/misc/cura/lulzbot/libarcus.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, buildPythonPackage, fetchgit, fetchurl, cmake, sip_4, protobuf, pythonOlder }: - -buildPythonPackage { - pname = "libarcus"; - version = "3.6.21"; - format = "other"; - - src = fetchgit { - url = "https://code.alephobjects.com/source/arcus.git"; - rev = "aeda02d7727f45b657afb72cef203283fbf09325"; - sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99"; - }; - - disabled = pythonOlder "3.4.0"; - - propagatedBuildInputs = [ sip_4 ]; - nativeBuildInputs = [ cmake ]; - buildInputs = [ protobuf ]; - - postPatch = '' - # To workaround buggy SIP detection which overrides PYTHONPATH - sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake - ''; - - meta = with lib; { - description = "Communication library between internal components for Ultimaker software"; - homepage = "https://code.alephobjects.com/source/arcus/"; - license = licenses.lgpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ chaduffy ]; - }; -} - diff --git a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix deleted file mode 100644 index dd84173ffce1..000000000000 --- a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, buildPythonPackage, pythonOlder, fetchgit, cmake, sip_4 }: - -buildPythonPackage { - pname = "libsavitar-lulzbot"; - name = "libsavitar-lulzbot"; - version = "3.6.21"; - format = "other"; - - src = fetchgit { - url = "https://code.alephobjects.com/source/savitar.git"; - rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234"; - sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j"; - }; - - postPatch = '' - # To workaround buggy SIP detection which overrides PYTHONPATH - sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake - ''; - - nativeBuildInputs = [ cmake ]; - - propagatedBuildInputs = [ sip_4 ]; - - disabled = pythonOlder "3.4.0"; - - meta = with lib; { - description = "C++ implementation of 3mf loading with SIP python bindings"; - homepage = "https://github.com/Ultimaker/libSavitar"; - license = licenses.lgpl3Plus; - platforms = platforms.unix; - maintainers = with maintainers; [ chaduffy ]; - }; -} diff --git a/pkgs/applications/misc/cura/lulzbot/uranium.nix b/pkgs/applications/misc/cura/lulzbot/uranium.nix deleted file mode 100644 index 01166092b2b5..000000000000 --- a/pkgs/applications/misc/cura/lulzbot/uranium.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, callPackage, fetchurl, fetchgit, buildPythonPackage, fetchFromGitHub, python, cmake -, pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }: - -buildPythonPackage { - version = "3.6.21"; - pname = "uranium"; - name = "uraniumLulzbot"; - format = "other"; - - src = fetchgit { - url = "https://code.alephobjects.com/diffusion/U/uranium.git"; - rev = "54d911edd2551c5875c554928896122835a0dd6c"; - sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i"; - }; - - disabled = pythonOlder "3.5.0"; - - buildInputs = [ python gettext ]; - propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ]; - nativeBuildInputs = [ cmake doxygen ]; - - postPatch = '' - sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt - sed -i \ - -e "s,Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,Resources.addSearchPath(\"$out/share/uranium/resources\")," \ - -e "s,self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,self._plugin_registry.addPluginLocation(\"$out/lib/uranium/plugins\")," \ - UM/Application.py - ''; - - meta = with lib; { - description = "A Python framework for building Desktop applications"; - homepage = "https://code.alephobjects.com/diffusion/U/"; - license = licenses.lgpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ chaduffy ]; - }; -} - diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eb5abb37d382..fdb08d8989e8 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -164,6 +164,7 @@ mapAliases ({ cupsBjnp = cups-bjnp; # added 2016-01-02 cups_filters = cups-filters; # added 2016-08 cups-googlecloudprint = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006"; + curaLulzbot = throw "curaLulzbot has been removed due to insufficient upstream support for a modern dependency chain"; # added 2021-10-23 cquery = throw "cquery has been removed because it is abandoned by upstream. Consider switching to clangd or ccls instead."; # added 2020-06-15 cv = progress; # added 2015-09-06 cvs_fast_export = cvs-fast-export; # added 2021-06-10 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a85d84501faf..2cfdcf014b2c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27858,8 +27858,6 @@ with pkgs; curaPlugins = callPackage ../applications/misc/cura/plugins.nix { }; - curaLulzbot = libsForQt5.callPackage ../applications/misc/cura/lulzbot/default.nix { }; - curaByDagoma = callPackage ../applications/misc/curabydagoma { }; peru = callPackage ../applications/version-management/peru {};