[PATCH 0/2] gnu: Add printrun.

  • Open
  • quality assurance status badge
Details
One participant
  • Morgan.J.Smith
Owner
unassigned
Submitted by
Morgan.J.Smith
Severity
normal
M
M
Morgan.J.Smith wrote on 25 Nov 2021 23:26
(address . guix-patches@gnu.org)
BYAPR05MB402374B9DB45FB4583BAE1B2C5629@BYAPR05MB4023.namprd05.prod.outlook.com
I've tested it and the GUI works great. It connects to my 3D printer just fine. I wish we had slic3r packaged but with prusa-slicer and now printrun, we do have a full 3D printing setup available

[PATCH 1/2] gnu: Add python-pyglet.
[PATCH 2/2] gnu: Add printrun.
M
M
Morgan.J.Smith wrote on 26 Nov 2021 01:58
[PATCH 1/2] gnu: Add python-pyglet.
(address . 52116@debbugs.gnu.org)(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)
BYAPR05MB4023765F4720BC3D7069A896C5639@BYAPR05MB4023.namprd05.prod.outlook.com
From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/python-xyz.scm (python-pyglet): New variable.
---
gnu/packages/python-xyz.scm | 55 +++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)

Toggle diff (65 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d33469815a..79677cccc5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -28174,3 +28174,58 @@ (define-public bmap-tools
;; contrib/bmap_write.py is gpl2+
;; The rest is gpl2
(license (list license:gpl2+ license:gpl2))))
+
+(define-public python-pyglet
+ (package
+ (name "python-pyglet")
+ (version "1.5.21")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyglet" version ".zip"))
+ (sha256
+ (base32
+ "1qi8jz8dbyyz3yjz7jm94mll1libda08sk9512xgkdn4dnqdvajs"))))
+ (build-system python-build-system)
+ (inputs
+ `(("mesa" ,mesa)
+ ("glu" ,glu)
+ ("freetype" ,freetype)
+ ("fontconfig" ,fontconfig)
+ ("libx11" ,libx11)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pillow" ,python-pillow)
+ ("xorg-server" ,xorg-server-for-tests)
+ ("unzip" ,unzip)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "pyglet/gl/lib_glx.py"
+ (("'GL'")
+ (string-append "'" (assoc-ref inputs "mesa") "/lib/libGL.so'"))
+ (("'GLU'")
+ (string-append "'" (assoc-ref inputs "glu") "/lib/libGLU.so'")))
+ (substitute* "pyglet/font/freetype_lib.py"
+ (("'freetype'")
+ (string-append "'" (assoc-ref inputs "freetype") "/lib/libfreetype.so'")))
+ (substitute* "pyglet/font/fontconfig.py"
+ (("'fontconfig'")
+ (string-append "'" (assoc-ref inputs "fontconfig") "/lib/libfontconfig.so'")))
+ (substitute* "pyglet/libs/x11/xlib.py"
+ (("'X11'")
+ (string-append "'" (assoc-ref inputs "libx11") "/lib/libX11.so'")))))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ (invoke "pytest" "tests/unit")))))))
+ (home-page "http://pyglet.readthedocs.io/en/latest/")
+ (synopsis "Cross-platform windowing and multimedia library")
+ (description "Cross-platform windowing and multimedia library")
+ (license license:bsd-3)))
--
2.34.0
M
M
Morgan.J.Smith wrote on 26 Nov 2021 01:58
[PATCH 2/2] gnu: Add printrun.
(address . 52116@debbugs.gnu.org)(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)
BYAPR05MB4023D4330B53BF414D91907EC5639@BYAPR05MB4023.namprd05.prod.outlook.com
From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/printers.scm (printrun): New variable.
---
gnu/packages/printers.scm | 66 +++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)

Toggle diff (97 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 619a2750e0..91ab1a0dfb 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -25,6 +25,7 @@ (define-module (gnu packages printers)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
+ #:use-module (guix build-system python)
#:use-module (guix build-system cmake)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages compression)
@@ -32,6 +33,7 @@ (define-module (gnu packages printers)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-science)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages libusb)
#:use-module (gnu packages elf)
#:use-module (gnu packages gcc)
@@ -46,6 +48,8 @@ (define-module (gnu packages printers)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages web)
+ #:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages qt))
@@ -288,3 +292,65 @@ (define-public slic3rapp
(synopsis "")
(description "")
(license #f)))
+
+(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
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "requirements.txt"
+ (("== 4.1.0") ">= 4.0.0") ;; wxPython
+ (("dbus-python.*") "")) ;; Not sure why it can't find dbus-python
+ (delete-file "printrun/power/osx.py")
+ (delete-file "printrun/packer.py") ;; Uses a non-free library
+
+ ;; Changing the value of python variables
+ (substitute* "printrun/utils.py"
+ (("shared_pronterface_images_dir = .*")
+ (string-append "shared_pronterface_images_dir = \"" (assoc-ref outputs "out")
+ "/share/pronterface/images\"\n"))
+ (("shared_pixmaps_dir = .*")
+ (string-append "shared_pixmaps_dir = \"" (assoc-ref outputs "out")
+ "/share/pixmaps\"\n"))
+ (("shared_pronterface_dir = .*")
+ (string-append "shared_pixmaps_dir = \"" (assoc-ref outputs "out")
+ "/share/pronterface\"\n")))))
+ (add-before 'check 'setup-display
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")))))))
+ (inputs
+ `(("python-appdirs" ,python-appdirs)
+ ("python-cairocffi" ,python-cairocffi)
+ ("python-cairosvg" ,python-cairosvg)
+ ("python-cffi" ,python-cffi)
+ ("python-dbus" ,python-dbus)
+ ("python-lxml" ,python-lxml)
+ ("python-numpy" ,python-numpy)
+ ("python-psutil" ,python-psutil)
+ ("python-pyglet" ,python-pyglet)
+ ("python-pyserial" ,python-pyserial)
+ ("python-wxpython" ,python-wxpython)))
+ (native-inputs
+ `(("python-cython" ,python-cython)
+ ("xvfb" ,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+)))
--
2.34.0
M
M
Morgan.J.Smith wrote on 24 Dec 2022 00:08
[PATCH v2 1/2] gnu: Add python-pyglet.
(address . 52116@debbugs.gnu.org)(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)
DM5PR03MB3163CBCF33AAAC92EE230DD6C5E99@DM5PR03MB3163.namprd03.prod.outlook.com
From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/python-xyz.scm (python-pyglet): New variable.
---

I updated the patches with the latest style. python-pyglet has released a version 2 but printrun doesn't work with that. Everything still works fine. I would appreciate a review

gnu/packages/python-xyz.scm | 58 +++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)

Toggle diff (71 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ee25a2d655..e609507032 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -4973,6 +4973,64 @@ (define-public python-doc8
text styles of documentation.")
(license license:asl2.0)))
+(define-public python-pyglet
+ (package
+ (name "python-pyglet")
+ (version "1.5.27")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyglet" version ".zip"))
+ (sha256
+ (base32
+ "01ghxgkaiw1m5gp498rd58vl8m5nvbyn95xna7yi0fqz8mky002d"))))
+ (build-system python-build-system)
+ (inputs (list mesa glu freetype fontconfig libx11))
+ (native-inputs (list python-pytest python-pytest-cov python-pillow
+ xorg-server-for-tests unzip))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "pyglet/gl/lib_glx.py"
+ (("'GL'")
+ (string-append "'"
+ (search-input-file inputs
+ "lib/libGL.so") "'"))
+ (("'GLU'")
+ (string-append "'"
+ (search-input-file inputs
+ "lib/libGLU.so")
+ "'")))
+ (substitute* "pyglet/font/freetype_lib.py"
+ (("'freetype'")
+ (string-append "'"
+ (search-input-file inputs
+ "lib/libfreetype.so") "'")))
+ (substitute* "pyglet/font/fontconfig.py"
+ (("'fontconfig'")
+ (string-append "'"
+ (search-input-file inputs
+ "lib/libfontconfig.so") "'")))
+ (substitute* "pyglet/libs/x11/xlib.py"
+ (("'X11'")
+ (string-append "'"
+ (search-input-file inputs
+ "lib/libX11.so")
+ "'")))))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ (invoke "pytest" "tests/unit")))))))
+ (home-page "http://pyglet.readthedocs.io/en/latest/")
+ (synopsis "Cross-platform windowing and multimedia library")
+ (description "Cross-platform windowing and multimedia library")
+ (license license:bsd-3)))
+
(define-public python-pygments
(package
(name "python-pygments")
--
2.38.1
M
M
Morgan.J.Smith wrote on 24 Dec 2022 00:08
[PATCH v2 2/2] gnu: Add printrun.
(address . 52116@debbugs.gnu.org)(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)
DM5PR03MB316315CB25C6017CCC5062B0C5E99@DM5PR03MB3163.namprd03.prod.outlook.com
From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/printers.scm (printrun): New variable.
---
gnu/packages/printers.scm | 72 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 71 insertions(+), 1 deletion(-)

Toggle diff (102 lines)
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index e7761070e0..1abc99d64d 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2022 Morgan Smith <Morgan.J.Smith@outlook.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,13 +19,20 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(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 qt))
+ #: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.
@@ -68,3 +76,65 @@ (define-public robocut
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+)))
--
2.38.1
?