summaryrefslogtreecommitdiffstats
path: root/pkgs
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-10-13 00:20:24 +0200
committerGitHub <noreply@github.com>2020-10-13 00:20:24 +0200
commit399a2ab9542d95623f4097b501f01523c04513b4 (patch)
tree6e37bd58dbef13921dfbeca9566ed17b352bfabc /pkgs
parent58b8ae4127b7ce3103c97ae2d68f71546b2bd494 (diff)
parent97eadef0c38c0b45d3cfa2287bc270000daed667 (diff)
Merge pull request #98917 from lovesegfault/klipper-init
klipper: init at 0.8.0
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/servers/klipper/default.nix49
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
new file mode 100644
index 000000000000..0b4fa745460e
--- /dev/null
+++ b/pkgs/servers/klipper/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python2
+}:
+stdenv.mkDerivation rec {
+ name = "klipper";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "KevinOConnor";
+ repo = "klipper";
+ rev = "v${version}";
+ sha256 = "1ijy2ij9yii5hms10914i614wkjpsy0k4rbgnm6l594gphivdfm7";
+ };
+
+ sourceRoot = "source/klippy";
+
+ # there is currently an attempt at moving it to Python 3, but it will remain
+ # Python 2 for the foreseeable future.
+ # c.f. https://github.com/KevinOConnor/klipper/pull/3278
+ # NB: This is needed for the postBuild step
+ nativeBuildInputs = [ (python2.withPackages ( p: with p; [ cffi ] )) ];
+
+ buildInputs = [ (python2.withPackages (p: with p; [ cffi pyserial greenlet jinja2 ])) ];
+
+ # we need to run this to prebuild the chelper.
+ postBuild = "python2 ./chelper/__init__.py";
+
+ # NB: We don't move the main entry point into `/bin`, or even symlink it,
+ # because it uses relative paths to find necessary modules. We could wrap but
+ # this is used 99% of the time as a service, so it's not worth the effort.
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/lib/klipper
+ cp -r ./* $out/lib/klipper
+
+ chmod 755 $out/lib/klipper/klippy.py
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "The Klipper 3D printer firmware";
+ homepage = "https://github.com/KevinOConnor/klipper";
+ maintainers = with maintainers; [ lovesegfault ];
+ platforms = platforms.linux;
+ license = licenses.gpl3Only;
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 78dd13023808..fcd3461f7909 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2168,6 +2168,8 @@ in
kramdown-rfc2629 = callPackage ../tools/text/kramdown-rfc2629 { };
+ klipper = callPackage ../servers/klipper { };
+
lcdproc = callPackage ../servers/monitoring/lcdproc { };
languagetool = callPackage ../tools/text/languagetool { };