GNU bug report logs - #40312
[PATCH 0/3]: Add Piper and libratbag

Previous Next

Package: guix-patches;

Reported by: Brendan Tildesley <mail <at> brendan.scot>

Date: Mon, 30 Mar 2020 02:36:18 UTC

Severity: normal

Tags: patch

Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 40312 in the body.
You can then email your comments to 40312 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#40312; Package guix-patches. (Mon, 30 Mar 2020 02:36:18 GMT) Full text and rfc822 format available.

Acknowledgement sent to Brendan Tildesley <mail <at> brendan.scot>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 30 Mar 2020 02:36:18 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Brendan Tildesley <mail <at> brendan.scot>
To: guix-patches <at> gnu.org
Subject: [PATCH 0/3]: Add Piper and libratbag
Date: Sun, 29 Mar 2020 21:12:21 +1100
So this program Piper is unique in that it is entirely useless without 
the the ratbagd daemon running. eventually, I'd like for a user to be 
able to install all that in 1 click from a GUI with just their sudo 
password if needed.

For now, I've included in the descriptions a simple service that makes 
it work.

With systemd systems, when Piper is opened and dbus automagically starts 
ratbagd, systemctl lists it as a ratbagd.service. systemctl stop 
ratbagd.service can the stop it if needed. With the simple service I've 
provided in the descriptions, herd status does not list it as a service 
and only reconfiguring can disable it... I think.

Is there a way I can write a service that shows ratbag in herd status, 
and can start/stop it correctly? Or does herd not have the ability to 
treat dbus services as first class services?

N.B, if you want to test the package you can just run sudo ratbagd, then 
open piper. if it says cannot find any devices, that means it working 
but you wont be able to use it without one of the supported devices to 
play with..





Information forwarded to guix-patches <at> gnu.org:
bug#40312; Package guix-patches. (Mon, 30 Mar 2020 04:18:01 GMT) Full text and rfc822 format available.

Message #8 received at 40312 <at> debbugs.gnu.org (full text, mbox):

From: Brendan Tildesley <mail <at> brendan.scot>
To: 40312 <at> debbugs.gnu.org
Subject: [PATCH 1/3] gnu: Add python-evdev.
Date: Mon, 30 Mar 2020 15:16:49 +1100
* gnu/packages/linux.scm (python-evdev): New variable.
---
 gnu/packages/linux.scm | 42 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8fec3352f3..0062e1d40f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -28,7 +28,7 @@
 ;;; Copyright © 2017 nee <nee-git <at> hidamari.blue>
 ;;; Copyright © 2017 Dave Love <fx <at> gnu.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr>
-;;; Copyright © 2018 Brendan Tildesley <mail <at> brendan.scot>
+;;; Copyright © 2018, 2020 Brendan Tildesley <mail <at> brendan.scot>
 ;;; Copyright © 2018 Manuel Graf <graf <at> init.at>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois <at> gmx.com>
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e <at> yahoo.com>
@@ -2922,6 +2922,46 @@ time.")
 (define-public eudev-with-hwdb
   (deprecated-package "eudev-with-hwdb" eudev))
 
+(define-public python-evdev
+  (package
+    (name "python-evdev")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "evdev" version))
+       (sha256
+        (base32
+         "0kb3636yaw9l8xi8s184w0r0n9ic5dw3b8hx048jf9fpzss4kimi"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("kernel-headers" ,linux-libre-headers)))
+    (arguments
+     `(#:tests? #f ;; No rule for tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'patch-patch
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "setup.py"
+               (("/usr/include/linux")
+                (string-append
+                 (assoc-ref inputs "kernel-headers") "/include/linux")))
+             #t)))))
+    (home-page
+     "https://python-evdev.readthedocs.io/en/latest/")
+    (synopsis
+     "Bindings to the Linux input handling subsystem")
+    (description
+     "@command{python-evdev} provides bindings to the generic input event
+interface in Linux.  The @command{evdev} interface serves the purpose of
+passing events generated in the kernel directly to userspace through character
+devices that are typically located in @command{/dev/input/}.
+
+This package also comes with bindings to @command{uinput}, the userspace input
+subsystem.  @command{uinput} allows userspace programs to create and handle
+input devices that can inject events directly into the input subsystem.")
+    (license license:bsd-3)))
+
 (define-public lvm2
   (package
     (name "lvm2")
-- 
2.25.2





Information forwarded to guix-patches <at> gnu.org:
bug#40312; Package guix-patches. (Mon, 30 Mar 2020 04:18:01 GMT) Full text and rfc822 format available.

Message #11 received at 40312 <at> debbugs.gnu.org (full text, mbox):

From: Brendan Tildesley <mail <at> brendan.scot>
To: 40312 <at> debbugs.gnu.org
Subject: [PATCH 2/3] gnu: Add libratbag.
Date: Mon, 30 Mar 2020 15:16:50 +1100
* gnu/packages/gnome.scm (libratbag): New variable.
---
 gnu/packages/gnome.scm | 71 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 70 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index bc78910c64..d44e9ea5e7 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2017, 2018 nee <nee-git <at> hidamari.blue>
 ;;; Copyright © 2017 Chris Marusich <cmmarusich <at> gmail.com>
 ;;; Copyright © 2017 Mohammed Sadiq <sadiq <at> sadiqpk.org>
-;;; Copyright © 2017 Brendan Tildesley <mail <at> brendan.scot>
+;;; Copyright © 2017, 2020 Brendan Tildesley <mail <at> brendan.scot>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling <at> mykolab.com>
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit <at> riseup.net>
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e <at> yahoo.com>
@@ -159,10 +159,12 @@
   #:use-module (gnu packages speech)
   #:use-module (gnu packages spice)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages virtualization)
@@ -9889,3 +9891,70 @@ to.")
               license:public-domain
               ;; snowball
               license:bsd-2))))
+
+(define-public libratbag
+  (package
+    (name "libratbag")
+    (version "0.13")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append
+                "https://github.com/libratbag/libratbag/archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1j8ryzrljqcp0c1wqzzpgr5fqdmwqr5z99avkxwfs7kqwm8ii9xh"))))
+    (build-system meson-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("check" ,check)
+                     ("swig" ,swig)
+                     ("valgrind" ,valgrind)))
+    (inputs `(("glib" ,glib)
+              ("json-glib" ,json-glib)
+              ("libevdev" ,libevdev)
+              ("udev" ,eudev)
+              ("libunistring" ,libunistring)
+              ("python-pygobject" ,python-pygobject)
+              ("python-evdev" ,python-evdev)
+              ("libsystemd" ,elogind)))
+    (arguments
+     `(#:configure-flags
+       (list "-Dsystemd=false"
+             "-Dlogind-provider=elogind")
+       #:phases
+       (modify-phases %standard-phases
+         ;; (add-after 'install 'wrap-python
+         ;;   (assoc-ref python:%standard-phases 'wrap))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (site (string-append
+                           "/lib/python"
+                           ,(version-major+minor (package-version python))
+                           "/site-packages"))
+                    (evdev (string-append
+                            (assoc-ref inputs "python-evdev") site))
+                    (pygo (string-append
+                           (assoc-ref inputs "python-pygobject") site))
+                    (python-wrap
+                     `("PYTHONPATH" = (,evdev ,pygo))))
+               (wrap-program (string-append out "/bin/" "ratbagctl")
+                 python-wrap)
+               #t))))))
+    (home-page "https://github.com/libratbag/libratbag")
+    (synopsis "DBus daemon and utility for configuring gaming mice")
+    (description "libratbag provides @command{ratbagd}, a DBus daemon to
+configure input devices, mainly gaming mice.  The daemon provides a generic
+way to access the various features exposed by these mice and abstracts away
+hardware-specific and kernel-specific quirks.  There is also the
+@command{ratbagctl} command line interface for configuring devices.
+
+libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
+Steelseries.
+
+The ratbagd dbus service can be enabled by adding the following service to
+your operating-system definition:
+(simple-service 'ratbagd dbus-root-service-type (list libratbag))
+")
+    (license license:expat)))
-- 
2.25.2





Information forwarded to guix-patches <at> gnu.org:
bug#40312; Package guix-patches. (Mon, 30 Mar 2020 04:18:02 GMT) Full text and rfc822 format available.

Message #14 received at 40312 <at> debbugs.gnu.org (full text, mbox):

From: Brendan Tildesley <mail <at> brendan.scot>
To: 40312 <at> debbugs.gnu.org
Subject: [PATCH 3/3] gnu: Add piper.
Date: Mon, 30 Mar 2020 15:16:51 +1100
* gnu/packages/gnome (piper): New variable.
---
 gnu/packages/gnome.scm | 63 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d44e9ea5e7..a98ffb2af5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -183,6 +183,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
+  #:use-module (guix build python-build-system)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -9958,3 +9959,65 @@ your operating-system definition:
 (simple-service 'ratbagd dbus-root-service-type (list libratbag))
 ")
     (license license:expat)))
+
+(define-public piper
+  (package
+    (name "piper")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://github.com/libratbag/piper/archive/"
+                       version ".tar.gz"))
+       (sha256
+        (base32
+         "0a7vbgj5g5pgkr8h8sd2pkhdnxrqy36i51jq2zxnql28jd8bfbfn"))))
+    (build-system meson-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("glib:bin" ,glib "bin")
+                     ("gobject-introspection" ,gobject-introspection)
+                     ("gettext" ,gettext-minimal)
+                     ("python-flake8" ,python-flake8)))
+    (inputs `(("gtk:bin" ,gtk+ "bin")
+              ("gtk" ,gtk+)
+              ("adwaita-icon-theme" ,adwaita-icon-theme)
+              ("librsvg" ,librsvg)
+              ("python-pygobject" ,python-pygobject)
+              ("python-lxml" ,python-lxml)
+              ("python-evdev" ,python-evdev)
+              ("python-pycairo" ,python-pycairo)))
+    (arguments
+     `(#:imported-modules ((guix build python-build-system)
+                           ,@%meson-build-system-modules)
+       #:modules (((guix build python-build-system) #:prefix python:)
+                  (guix build meson-build-system)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'dont-update-gtk-icon-cache
+           (lambda _
+             (substitute* "meson.build"
+               (("meson.add_install_script('meson_install.sh')") ""))
+             #t))
+         ;; TODO: Switch to wrap-script when it is fixed
+         (add-after 'install 'wrap-python
+           (assoc-ref python:%standard-phases 'wrap))
+         (add-after 'wrap-python 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (wrap-program
+                 (string-append (assoc-ref outputs "out" )"/bin/piper")
+               `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+             #t)))))
+    (home-page "https://github.com/libratbag/piper/")
+    (synopsis "Configure bindings and LEDs on gaming mice")
+    (description "Piper is a GTK+ application for configuring gaming mice with
+onboard configuration for key bindings via libratbag. Piper requires a
+@command{ratbagd} daemon running with root privileges. It can be run manually
+as root, but is preferably configured as a dbus service that can launch on
+demand.  This can be configured by enabling the following service, provided
+there is a dbus-service present:
+ (simple-service 'ratbagd dbus-root-service-type (list libratbag))
+
+")
+    (license license:gpl2)))
-- 
2.25.2





Information forwarded to guix-patches <at> gnu.org:
bug#40312; Package guix-patches. (Sun, 12 Apr 2020 05:28:02 GMT) Full text and rfc822 format available.

Message #17 received at 40312 <at> debbugs.gnu.org (full text, mbox):

From: Brendan Tildesley <mail <at> brendan.scot>
To: 40312 <at> debbugs.gnu.org
Subject: Re: ([PATCH 0/3]: Add Piper and libratbag -- New patch set; minor
 fixes.
Date: Sun, 12 Apr 2020 15:27:03 +1000
[Message part 1 (text/plain, inline)]
This patch set (all attached) corrects my sloppy use of texinfo format 
in the python-evdev patch, and uses git-fetch instead of github archive 
tarballs.

I originally sent these patches in when the mailing list was down so it 
all got lost to civilization I think.

If you looking at reviewing this but have no interest in 
Piper/libratbag, at least it would be good to add python-evdev, as there 
is at least one other user that wishes to use it.

Thanks.

[0001-gnu-Add-python-evdev.patch (text/x-patch, attachment)]
[0002-gnu-Add-libratbag.patch (text/x-patch, attachment)]
[0003-gnu-Add-piper.patch (text/x-patch, attachment)]

Reply sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
You have taken responsibility. (Wed, 22 Apr 2020 23:04:01 GMT) Full text and rfc822 format available.

Notification sent to Brendan Tildesley <mail <at> brendan.scot>:
bug acknowledged by developer. (Wed, 22 Apr 2020 23:04:01 GMT) Full text and rfc822 format available.

Message #22 received at 40312-done <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Brendan Tildesley <mail <at> brendan.scot>
Cc: 40312-done <at> debbugs.gnu.org
Subject: Re: [bug#40312] ([PATCH 0/3]: Add Piper and libratbag -- New patch
 set; minor fixes.
Date: Thu, 23 Apr 2020 01:02:58 +0200
Hello,

Brendan Tildesley <mail <at> brendan.scot> writes:

> This patch set (all attached) corrects my sloppy use of texinfo format
> in the python-evdev patch, and uses git-fetch instead of github
> archive tarballs.
>
> I originally sent these patches in when the mailing list was down so
> it all got lost to civilization I think.
>
> If you looking at reviewing this but have no interest in
> Piper/libratbag, at least it would be good to add python-evdev, as
> there is at least one other user that wishes to use it.

All applied. Thank you.

Regards,

-- 
Nicolas Goaziou




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 21 May 2020 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 313 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.