Change:
Is there a way to install a more recent version of cura-lulzbot edition?
I guess the pool of people that could update and test this is very limited so feel free to tackle it yourself :) We can help. How old is the current nixpkgs version vs upstream ?
Can you test ?
Happy to, not 100% sure on the process for testing that pull request. do in build off a local version of nixpkgs with that pull applied. Can you point me in the right direction?
The one-line command to try this out would be: You could also manually clone the git repository of the PR and build it: But , so please wait a bit. EDIT: the cura binary is apparently called
you want to try the instructions gebner provided, I just updated the PR to roll the patch behind the now-broken link inline.
...FYI, the PR is now updated to 3.6.15. I'm using it happily myself, but reports (of success or failure) would be very welcome.

Discussion:
<del> { stdenv, fetchurl, dpkg, bash, python27Packages }: let py = python27Packages; in stdenv.mkDerivation rec { name = "cura-lulzbot-${version}"; version = "15.02.1-1.03-5064"; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://download.alephobjects.com/ao/aodeb/dists/jessie/main/binary-amd64/cura_${version}_amd64.deb"; sha256 = "1gsfidg3gim5pjbl82vkh0cw4ya253m4p7nirm8nr6yjrsirkzxg"; } else if stdenv.hostPlatform.system == "i686-linux" then fetchurl { url = "http://download.alephobjects.com/ao/aodeb/dists/jessie/main/binary-i386/cura_${version}_i386.deb"; sha256 = "0xd3df6bxq4rijgvsqvps454jkc1nzhxbdzzj6j2w317ppsbhyc1"; } else throw "${name} is not supported on ${stdenv.hostPlatform.system}"; python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ]; pythonPath = python_deps; propagatedBuildInputs = python_deps; buildInputs = [ dpkg bash py.wrapPython ]; phases = [ "unpackPhase" "installPhase" ]; unpackPhase = "dpkg-deb -x ${src} ./"; installPhase = '' mkdir -p $out/bin cp -r usr/share $out/share find $out/share -type f -exec sed -i 's|/usr/share/cura|$out/share/cura|g' "{}" ; cat <<EOT > $out/bin/cura #!${bash}/bin/bash PYTHONPATH=$PYTHONPATH:$out/share/cura ${py.python}/bin/python $out/share/cura/cura.py "$@" EOT chmod 555 $out/bin/cura ''; meta = with stdenv.lib; { description = "3D printing host software for the Lulzbot"; longDescription = '' Cura LulzBot Edition is a fork of the 3D printing/slicing software from Ultimaker, with changes to support 3D printers from Aleph Objects. ''; homepage = https://www.lulzbot.com/cura/; license = licenses.agpl3; platforms = platforms.linux; maintainers = with maintainers; [ pjones ]; }; } </del>

<ins> { stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }: stdenv.mkDerivation rec { name = "curaengine-lulzBot-${version}"; version = "3.6.18"; src = fetchgit { url = https://code.alephobjects.com/source/curaengine-lulzbot.git; rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d"; sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8"; }; nativeBuildInputs = [ cmake ]; buildInputs = [ libarcusLulzbot stb protobuf ]; cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ]; meta = with stdenv.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 ]; }; } </ins>

<ins> { lib, callPackage, fetchgit, cmake, jq, python3Packages, qtbase, qtquickcontrols2 }: let # admittedly, we're using (printer firmware) blobs when we could compile them ourselves. curaBinaryDataVersion = "3.6.18"; # Marlin v2.0.0.144. Keep this accurate wrt. the below. curaBinaryData = fetchgit { url = https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git; rev = "cdc046494bbfe1f65bfb34659a257eef9a0100a0"; sha256 = "0v0s036gxdjiglas2yzw95alv60sw3pq5k1zrrhmw9mxr4irrblb"; }; libarcusLulzbot = callPackage ./libarcus.nix { inherit (python3Packages) buildPythonPackage sip pythonOlder; }; libsavitarLulzbot = callPackage ./libsavitar.nix { inherit (python3Packages) buildPythonPackage sip pythonOlder; }; inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; curaengine = callPackage ./curaengine.nix { inherit libarcusLulzbot; }; uraniumLulzbot = callPackage ./uranium.nix { inherit callPackage libarcusLulzbot; inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; }; in python3Packages.buildPythonApplication rec { name = "cura-lulzbot-${version}"; version = "3.6.18"; src = fetchgit { url = https://code.alephobjects.com/source/cura-lulzbot.git; rev = "71f1ac5a2b9f535175a3858a565930348358a9ca"; sha256 = "0by06fpxvdgy858lwhsccbmvkdq67j2s1cz8v6jnrnjrsxk7vzka"; }; format = "other"; # using cmake to build buildInputs = [ qtbase qtquickcontrols2 ]; # numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415 propagatedBuildInputs = with python3Packages; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl nativeBuildInputs = [ cmake python3Packages.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 ''; 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 ]; }; } </ins>

<ins> { stdenv, buildPythonPackage, fetchgit, fetchurl, cmake, sip, protobuf, pythonOlder }: buildPythonPackage rec { pname = "libarcus"; version = "3.6.18"; format = "other"; src = fetchgit { url = https://code.alephobjects.com/source/arcus.git; rev = "c795c0644591703ce04e1fd799fc97b1539031aa"; sha256 = "1yap9wbqxbjx3kqyqcsldny4mlcm33ywiwpdjlfgs0wjahfg4ip0"; }; disabled = pythonOlder "3.4.0"; propagatedBuildInputs = [ sip ]; nativeBuildInputs = [ cmake ]; buildInputs = [ protobuf ]; postPatch = '' # To workaround buggy SIP detection which overrides PYTHONPATH sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake ''; meta = with stdenv.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 ]; }; } </ins>

<ins> { stdenv, buildPythonPackage, pythonOlder, fetchgit, cmake, sip }: buildPythonPackage rec { pname = "libsavitar-lulzbot"; name = "libsavitar-lulzbot"; version = "3.6.18"; format = "other"; src = fetchgit { url = https://code.alephobjects.com/source/savitar.git; rev = "988a26d35b2a1d042f8c38938ccda77ab146af7d"; sha256 = "146agw3a92azkgs5ahmn2rrck4an78m2r3pcss6ihmb60lx165k7"; }; postPatch = '' # To workaround buggy SIP detection which overrides PYTHONPATH sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake ''; nativeBuildInputs = [ cmake ]; propagatedBuildInputs = [ sip ]; disabled = pythonOlder "3.4.0"; meta = with stdenv.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 ]; }; } </ins>

<ins> diff --git a/UM/Qt/Bindings/i18nCatalogProxy.py b/UM/Qt/Bindings/i18nCatalogProxy.py index 7e2bb16c..cec70dd6 100644 --- a/UM/Qt/Bindings/i18nCatalogProxy.py +++ b/UM/Qt/Bindings/i18nCatalogProxy.py @@ -86,9 +86,9 @@ class i18nCatalogProxy(QObject): # [CodeStyle: Ultimaker code style requires cla #   todo Move this to a more generic place so more things can use it. def _wrapFunction(self, engine, this_object, function): # JavaScript code that wraps the Python method call in a closure -        wrap_js = """function(this_object) {{ +        wrap_js = """(function(this_object) {{ return function({args}) {{ return this_object.{function}({args}) }} -        }}""" +        }})""" # Get the function name and argument list. function_name = function.__name__ </ins>

<ins> { stdenv, callPackage, fetchurl, fetchgit, buildPythonPackage, fetchFromGitHub, python, cmake , pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }: buildPythonPackage rec { version = "3.6.18"; pname = "uranium"; name = "uraniumLulzbot"; format = "other"; src = fetchgit { url = https://code.alephobjects.com/diffusion/U/uranium.git; rev = "33df88a7414375ac924ac761113baa48d2ced2b4"; sha256 = "109cbv7y105crbrzfp70lmcr9n20ap5c97i5qd46fmxbx86yj7f8"; }; disabled = pythonOlder "3.5.0"; buildInputs = [ python gettext ]; propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ]; nativeBuildInputs = [ cmake doxygen ]; # Qt 5.12+ support; see https://code.alephobjects.com/rU70b73ba0a270799b9eacf78e400aa8b8ab3fb2ee patches = [ ./uranium-qt512-support.patch ]; 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 stdenv.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 ]; }; } </ins>

curaengine = curaengine_stable; }; <del> curaengine = callPackage ../applications/misc/curaengine { inherit (python3.pkgs) libarcus; }; </del> <ins> curaengine = callPackage ../applications/misc/curaengine { inherit (python3.pkgs) libarcus; }; </ins> cura = qt5.callPackage ../applications/misc/cura { }; curaPlugins = callPackage ../applications/misc/cura/plugins.nix { }; <del> curaLulzbot = callPackage ../applications/misc/cura/lulzbot.nix { }; </del> <ins> curaLulzbot = qt5.callPackage ../applications/misc/cura/lulzbot/default.nix { }; </ins> curaByDagoma = callPackage ../applications/misc/curabydagoma { };