New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
curaLulzbot: 15.02.1-1.03-5064 -> 3.6.18 #61054
Merged
Merged
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,58 +1,66 @@ | ||
{ stdenv, fetchurl, dpkg, bash, python27Packages }: | ||
{ lib, fetchgit, curaengineLulzbot, cmake, jq, python3Packages, qtbase, qtquickcontrols2 }: | ||
|
||
let | ||
py = python27Packages; | ||
# 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"; | ||
}; | ||
curaengine = curaengineLulzbot; | ||
libarcus = python3Packages.libarcusLulzbot; | ||
uranium = python3Packages.uraniumLulzbot; | ||
libsavitar = python3Packages.libsavitarLulzbot; | ||
in | ||
stdenv.mkDerivation rec { | ||
python3Packages.buildPythonApplication 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 ]; | ||
version = "3.6.18"; | ||
|
||
phases = [ "unpackPhase" "installPhase" ]; | ||
unpackPhase = "dpkg-deb -x ${src} ./"; | ||
src = fetchgit { | ||
url = https://code.alephobjects.com/source/cura-lulzbot.git; | ||
rev = "71f1ac5a2b9f535175a3858a565930348358a9ca"; | ||
sha256 = "0by06fpxvdgy858lwhsccbmvkdq67j2s1cz8v6jnrnjrsxk7vzka"; | ||
}; | ||
|
||
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' "{}" \; | ||
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 ] ++ [ libsavitar uranium libarcus ]; # numpy-stl | ||
nativeBuildInputs = [ cmake python3Packages.wrapPython ]; | ||
|
||
cat <<EOT > $out/bin/cura | ||
#!${bash}/bin/bash | ||
PYTHONPATH=$PYTHONPATH:$out/share/cura ${py.python}/bin/python $out/share/cura/cura.py "\$@" | ||
EOT | ||
cmakeFlags = [ | ||
"-DURANIUM_DIR=${uranium.src}" | ||
"-DCURA_VERSION=${version}" | ||
]; | ||
|
||
chmod 555 $out/bin/cura | ||
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 | ||
''; | ||
|
||
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. | ||
''; | ||
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 "${uranium}/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 = libarcus.version; | ||
libsavitar = libsavitar.version; | ||
uranium = uranium.version; | ||
}} | ||
EOF | ||
''; | ||
|
||
homepage = https://www.lulzbot.com/cura/; | ||
license = licenses.agpl3; | ||
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; [ pjones ]; | ||
maintainers = with maintainers; [ chaduffy ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ stdenv, 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 ]; | ||
}; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ 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 ]; | ||
}; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ 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 ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
{ stdenv, 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 = [ ./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 ]; | ||
}; | ||
} | ||
|
16 changes: 16 additions & 0 deletions
16
pkgs/development/python-modules/uranium/qt512-support.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
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__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we don't want to use these python packages in any other place, it might be better to copy them to
pkgs/applications/misc/cura/lulzbot
and just reference them here locally.The reason is that having different versions of a python library will collide in
PYTHONPATH
, which is why we want to avoid having different versions of the same library for python.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Mic92, is 784c69a in line with your suggestion here?