summary refs log tree commit diff
path: root/pkgs/applications/misc/cura/lulzbot.nix
blob: f3f1972f6e6ec49b17ad95ab08a5379069b2d826 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{ 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 ];
  };
}