nixpkgs-suyu/pkgs/applications/misc/curabydagoma/default.nix
Jörg Thalheim dadc7eb329
treewide: use runtimeShell instead of stdenv.shell whenever possible
Whenever we create scripts that are installed to $out, we must use runtimeShell
in order to get the shell that can be executed on the machine we create the
package for. This is relevant for cross-compiling. The only use case for
stdenv.shell are scripts that are executed as part of the build system.
Usages in checkPhase are borderline however to decrease the likelyhood
of people copying the wrong examples, I decided to use runtimeShell as well.
2019-02-26 14:10:49 +00:00

76 lines
2.4 KiB
Nix

{ stdenv, runtimeShell, lib, fetchurl, python, pythonPackages, unzip }:
# This package uses a precompiled "binary" distribution of CuraByDagoma,
# distributed by the editor.
#
# To update the package, follow the links on https://dist.dagoma.fr/:
# * Cura By Dagoma
# * Linux
# * 64 bits
# * Genric archive
#
# I made the arbitrary choice to compile this package only for x86_64.
# I guess people owning a 3D printer generally don't use i686.
# If, however, someone needs it, we certainly can find a solution.
stdenv.mkDerivation rec {
name = "curabydagoma-${version}";
# Version is the date, UNIX format
version = "1520506579";
# Hash of the user's choice: os, arch, package type...
hash = "58228cce5bbdcf764b7116850956f1e5";
src = fetchurl {
url = "https://dist.dagoma.fr/get/zip/CuraByDagoma/${version}/${hash}";
sha256 = "16wfipdyjkf6dq8awjzs4zgkmqk6230277mf3iz8swday9hns8pq";
};
unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
nativeBuildInputs = [ unzip ];
buildInputs = [ python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
# Compile all pyc files because the included pyc files may be older than the
# py files. However, Python doesn't realize that because the packages
# have all dates set to epoch.
buildPhase = ''
python -m compileall -f curabydago
'';
# * Simply copy the stuff there
# * Create an executable with the correct path etc
# * Create a .desktop file to have a launcher in the desktop environments
installPhase = ''
mkdir $out
cp -r * $out/
mkdir $out/bin
cat > $out/bin/curabydago <<EOF
#!${runtimeShell}
export PYTHONPATH=$PYTHONPATH
${python.out}/bin/python $out/curabydago/cura.py
EOF
chmod a+x $out/bin/curabydago
mkdir -p $out/share/applications
cat > $out/share/applications/curabydago.desktop <<EOF
[Desktop Entry]
Type=Application
Name=Cura-by-dagoma
Comment=CuraByDagoma is a fork of Legacy Cura made by Dagoma for its own printers.
Icon=$out/curabydago/resources/images/cura.ico
Exec=$out/bin/curabydago
Path=$out/
StartupNotify=true
Terminal=false
Categories=GNOME;GTK;Utility;
EOF
'';
meta = with lib; {
description = "Slicer for 3D printers built by Dagoma";
homepage = https://dagoma.fr/cura-by-dagoma.html;
license = licenses.agpl3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ tiramiseb ];
};
}