unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#74315] [PATCH 0/1] gnu: Add ptouch-print.
@ 2024-11-12  3:18 Fredrik Salomonsson
  2024-11-12  3:28 ` [bug#74315] [PATCH 1/1] " Fredrik Salomonsson
  0 siblings, 1 reply; 2+ messages in thread
From: Fredrik Salomonsson @ 2024-11-12  3:18 UTC (permalink / raw)
  To: 74315; +Cc: Fredrik Salomonsson

Hi Guix,

Adding a package to be able to print labels with a Brother P-touch printer.  I
tested this with a P700 and it worked fine.  It installs the udev rules that
should allow any user to use this CLI tool without needing sudo.  But I could
not get that to work.  Might be my setup or that Guix System does not properly
support the uaccess tag.  E.g. see the Arch Wiki [0] on what the uaccess tag
is suppose to trigger.

[0] https://wiki.archlinux.org/title/Udev#Allowing_regular_users_to_use_devices

Fredrik Salomonsson (1):
  gnu: Add ptouch-print.

 gnu/packages/printers.scm | 55 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)


base-commit: b790db7589858fc77989b4d1f369c52bca6d6e7c
-- 
2.46.0





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [bug#74315] [PATCH 1/1] gnu: Add ptouch-print.
  2024-11-12  3:18 [bug#74315] [PATCH 0/1] gnu: Add ptouch-print Fredrik Salomonsson
@ 2024-11-12  3:28 ` Fredrik Salomonsson
  0 siblings, 0 replies; 2+ messages in thread
From: Fredrik Salomonsson @ 2024-11-12  3:28 UTC (permalink / raw)
  To: 74315; +Cc: Fredrik Salomonsson

* gnu/packages/printers.scm (ptouch-print): New variable.

Change-Id: I2ab2a80b80932af8566f6c5879e63e7b0bced747
---
 gnu/packages/printers.scm | 55 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 0069494b4d..995af76359 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -22,14 +22,18 @@ (define-module (gnu packages printers)
   #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages gd)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages man)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages qt))
 
 ;; This is a module for packages related to printer-like devices, but not
@@ -69,6 +73,57 @@ (define-public ipp-usb
 simply relay a TCP connection to USB do not work.")
     (license license:bsd-2)))
 
+(define-public ptouch-print
+  (let ((commit "740b20e150e030aa2e75086d1202064f9c4c4090")
+        (revision "0"))
+    (package
+      (name "ptouch-print")
+      (version (git-version "1.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://git.familie-radermacher.ch/linux/ptouch-print.git")
+               (commit commit)))
+         (sha256
+          (base32 "17lw6gyb9hqdzdlypm98bdpnfjn74a3jrdd0rwic63a7072iqnzr"))
+         (file-name (git-file-name name version))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:tests? #f ;no test target
+         #:phases (modify-phases %standard-phases
+                    (add-before 'configure 'patch-cmakefile
+                      (lambda _
+                        (substitute* "CMakeLists.txt"
+                          ;; Remove the internal override of CMAKE_INSTALL_PREFIX
+                          (("set\\(CMAKE_INSTALL_PREFIX /usr\\)")
+                           "")
+                          ;; Remove hard coded udev install steps, installing it in the
+                          ;; install-udev-rules phase
+                          (("if\\(EXISTS /etc/udev/rules.d\\)
+\tinstall\\(FILES udev/90-usb-ptouch-permissions.rules DESTINATION /etc/udev/rules.d\\)
+\tinstall\\(CODE \"execute_process(COMMAND udevadm control --reload-rules)\"\\)
+endif\\(\\)
+")
+                           "")) #t))
+                    (add-after 'install 'install-udev-rules
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (rules (string-append out "/lib/udev/rules.d/")))
+                          (install-file
+                           "../source/udev/90-usb-ptouch-permissions.rules"
+                           rules)))))))
+      (native-inputs (list gd git gettext-minimal libusb pkg-config))
+      (synopsis "CLI tool to print labels on Brother P-Touch printers")
+      (description
+       "A command line tool to print labels on Brother P-Touch
+printers on Linux.  Note that there is no need to install the printer via CUPS, the
+printer is accessed directly via libusb.")
+      (home-page
+       "https://dominic.familie-radermacher.ch/projekte/ptouch-print/")
+      (license license:gpl3))))
+
 (define-public robocut
   (package
     (name "robocut")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-11-12  3:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-12  3:18 [bug#74315] [PATCH 0/1] gnu: Add ptouch-print Fredrik Salomonsson
2024-11-12  3:28 ` [bug#74315] [PATCH 1/1] " Fredrik Salomonsson

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).