;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Ludovic Courtès ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2022 Morgan Smith ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages printers) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages libffi) #:use-module (gnu packages libusb) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) ;; This is a module for packages related to printer-like devices, but not ;; related to CUPS. (define-public robocut (package (name "robocut") (version "1.0.11") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Timmmm/robocut") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0dp9cssyik63yvkk35s51v94a873x751iqg93qzd8dpqkmz5z8gn")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "Robocut.pro" (("/usr/") (string-append out "/"))) (invoke "qmake" (string-append "PREFIX=" out)) #t)))))) (inputs `(("libusb" ,libusb) ("qt" ,qtbase-5) ("qtsvg-5" ,qtsvg-5))) (native-inputs `(("pkg-config" ,pkg-config) ("qmake" ,qtbase-5))) (synopsis "Graphical program to drive plotting cutters") (description "Robocut is a simple graphical program that allows you to cut graphics with Graphtec and Sihouette plotting cutters using an SVG file as its input.") (home-page "http://robocut.org") (license license:gpl3+))) (define-public printrun (package (name "printrun") (version "2.0.0rc8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/kliment/Printrun") (commit (string-append "printrun-" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0bvwrfhmn2km03fp343bd9ddjxv8sp3d0qdxk786rflw4yksbxgn")))) (build-system python-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-files (lambda _ (substitute* "requirements.txt" (("== 4.1.0") ">= 4.0.0") (("dbus-python.*") "")) (delete-file "printrun/power/osx.py") (delete-file "printrun/packer.py") (substitute* "printrun/utils.py" (("shared_pronterface_images_dir = .*") (string-append "shared_pronterface_images_dir = \"" #$output "/share/pronterface/images\"\n")) (("shared_pixmaps_dir = .*") (string-append "shared_pixmaps_dir = \"" #$output "/share/pixmaps\"\n")) (("shared_pronterface_dir = .*") (string-append "shared_pixmaps_dir = \"" #$output "/share/pronterface\"\n"))))) (add-before 'check 'setup-display (lambda* (#:key tests? #:allow-other-keys) (when tests? (system "Xvfb :1 &") (setenv "DISPLAY" ":1"))))))) (inputs (list python-appdirs python-cairocffi python-cairosvg python-cffi python-dbus python-lxml python-numpy python-psutil python-pyglet python-pyserial python-wxpython)) (native-inputs (list python-cython xorg-server-for-tests)) (home-page "https://github.com/kliment/Printrun/") (synopsis "Printrun is a full suite of host interfaces for 3D printers and CNC") (description "Printrun consists of printcore, pronsole and pronterface, and a small collection of helpful scripts.") (license license:gpl3+)))