GNU bug report logs - #58403
[PATCH 0/2] Add sc-controller (steam controller and steam deck driver)

Previous Next

Package: guix-patches;

Reported by: Morgan.J.Smith <at> outlook.com

Date: Sun, 9 Oct 2022 22:19:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 58403 AT debbugs.gnu.org.

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#58403; Package guix-patches. (Sun, 09 Oct 2022 22:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Morgan.J.Smith <at> outlook.com:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 09 Oct 2022 22:19:02 GMT) Full text and rfc822 format available.

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

From: Morgan.J.Smith <at> outlook.com
To: guix-patches <at> gnu.org
Subject: [PATCH 0/2] Add sc-controller (steam controller and steam deck driver)
Date: Sun,  9 Oct 2022 18:13:04 -0400
Hello!

This will allow users to use and configure some gaming controllers.

[PATCH 1/2] gnu: Add python-vdf.
[PATCH 2/2] gnu: Add sc-controller.

Thanks,

Morgan





Information forwarded to guix-patches <at> gnu.org:
bug#58403; Package guix-patches. (Sun, 09 Oct 2022 22:25:01 GMT) Full text and rfc822 format available.

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

From: Morgan.J.Smith <at> outlook.com
To: 58403 <at> debbugs.gnu.org
Cc: Morgan Smith <Morgan.J.Smith <at> outlook.com>
Subject: [PATCH 1/2] gnu: Add python-vdf.
Date: Sun,  9 Oct 2022 18:24:30 -0400
From: Morgan Smith <Morgan.J.Smith <at> outlook.com>

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

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 60870f5447..51f24e59a9 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2466,6 +2466,22 @@ (define-public python-case
 some helpful Python 2 compatibility convenience methods.")
     (license license:bsd-3)))
 
+(define-public python-vdf
+  (package
+    (name "python-vdf")
+    (version "3.4")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "vdf" version))
+              (sha256
+               (base32
+                "1bz2gn04pl6rj2mawlzlirz1ygg4rdypq0pxbyg018873vs1jm7x"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/ValvePython/vdf")
+    (synopsis "Library for working with Valve's VDF text format")
+    (description "Library for working with Valve's VDF text format")
+    (license license:expat)))
+
 (define-public python-verboselogs
   (package
     (name "python-verboselogs")
-- 
2.37.3





Information forwarded to guix-patches <at> gnu.org:
bug#58403; Package guix-patches. (Sun, 09 Oct 2022 22:26:02 GMT) Full text and rfc822 format available.

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

From: Morgan.J.Smith <at> outlook.com
To: 58403 <at> debbugs.gnu.org
Cc: Morgan Smith <Morgan.J.Smith <at> outlook.com>
Subject: [PATCH 2/2] gnu: Add sc-controller.
Date: Sun,  9 Oct 2022 18:24:32 -0400
From: Morgan Smith <Morgan.J.Smith <at> outlook.com>

* gnu/packages/games.scm (sc-controller): New variable.
---
 gnu/packages/games.scm | 117 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 246472c699..809fbc9ef7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -74,6 +74,7 @@
 ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared <at> gmail.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2022 Hendursaga <hendursaga <at> aol.com>
+;;; Copyright © 2022 Morgan Smith <Morgan.J.Smith <at> outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -100,6 +101,7 @@ (define-module (gnu packages games)
   #:use-module (guix svn-download)
   #:use-module (guix gexp)
   #:use-module (gnu packages)
+  #:use-module (gnu packages acl)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
@@ -162,6 +164,7 @@ (define-module (gnu packages games)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunwind)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
@@ -185,6 +188,7 @@ (define-module (gnu packages games)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
@@ -11160,6 +11164,119 @@ (define-public freerct
 and unsafe rides.  Which path will you take?")
     (license license:gpl2)))
 
+(define-public sc-controller
+  (package
+    (name "sc-controller")
+    (version "0.4.8.9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Ryochan7/sc-controller")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1410yj6947yq43wwrj3cwllalalggzmd74sad70jd1niwj85yvna"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (delete 'sanity-check) ;; XXX: no clue how python works
+                        (add-after 'unpack 'remove-bundled-libraries
+                          (lambda _
+                            (with-directory-excursion "scc/lib"
+                              (for-each delete-file
+                                        '("enum.py" "jsonencoder.py"
+                                          "libusb1.py" "usb1.py")))
+                            ;; libusb1 fixes
+                            (substitute* '("scc/uinput.py"
+                                           "scc/drivers/usb.py"
+                                           "scc/drivers/steamdeck.py"
+                                           "scc/drivers/sc_by_cable.py")
+                              (("scc\\.lib\\.libusb1")
+                               "libusb1")
+                              (("scc\\.lib\\.usb1")
+                               "usb1")
+                              (("from scc\\.lib import usb1")
+                               "import usb1"))
+                            ;; enum fixes
+                            (substitute* "scc/cemuhook_server.py"
+                              (("scc\\.lib\\.enum")
+                               "enum"))
+                            ;; simplejson fixes
+                            (substitute* "scc/profile.py"
+                              (("from scc\\.lib\\.jsonencoder")
+                               "from simplejson"))))
+                        (add-after 'unpack 'fix-paths
+                          (lambda _
+                            (substitute* "scc/lib/xwrappers.py"
+                              (("libXfixes.so")
+                               (string-append (assoc-ref %build-inputs
+                                                         "libxfixes")
+                                              "/lib/libXfixes.so"))
+                              (("libXext.so")
+                               (string-append (assoc-ref %build-inputs
+                                                         "libxext")
+                                              "/lib/libXext.so")))
+                            (substitute* "scc/lib/eudevmonitor.py"
+                              (("libudev.so")
+                               (string-append (assoc-ref %build-inputs "eudev")
+                                              "/lib/libudev.so")))
+                            (substitute* "scc/uinput.py"
+                              (("/usr/include")
+                               (string-append (assoc-ref %build-inputs
+                                               "linux-libre-headers")
+                                              "/include")))
+                            (substitute* '("scc/gui/app.py"
+                                           "scc/osd/inputdisplay.py"
+                                           "scc/paths.py")
+                              (("/usr/share/scc")
+                               (string-append #$output "/share/scc")))))
+                        (add-after 'wrap 'gi-wrap
+                          (lambda _
+                            (for-each (lambda (prog)
+                                        (wrap-program (string-append #$output
+                                                                     "/bin/"
+                                                                     prog)
+                                                      `("GI_TYPELIB_PATH" =
+                                                        (,(getenv
+                                                           "GI_TYPELIB_PATH")))))
+                                      '("sc-controller" "scc"
+                                        "scc-daemon"
+                                        "scc-osd-dialog"
+                                        "scc-osd-keyboard"
+                                        "scc-osd-launcher"
+                                        "scc-osd-menu"
+                                        "scc-osd-message"
+                                        "scc-osd-radial-menu"
+                                        "scc-osd-show-bindings")))))))
+    (inputs (list bash-minimal
+                  gtk+
+                  gtk-layer-shell
+                  eudev
+                  libxext
+                  libxfixes
+                  linux-libre-headers
+                  python-pycairo
+                  python-evdev
+                  python-libusb1
+                  python-pylibacl
+                  python-pygobject
+                  python-simplejson
+                  python-vdf
+                  zlib))
+    (home-page "https://github.com/Ryochan7/sc-controller")
+    (synopsis "Driver and configuration tool for game controllers")
+    (description
+     "Driver and configuration tool for game controllers such as
+the Steam Controller, Steam Deck, and Dual Shock 4.  Install the included udev
+rules to solve permissions issues.")
+    (license (list
+              ;; lib/enum.py, lib/usb1.py, and lib/libusb1.py are deleted but
+              ;; do have other licenses.
+              license:cc0 ; images/*, default_profiles/*, profile_examples/*, default_menus/*
+              license:zlib ; scripts/gamecontrollerdb.txt
+              license:gpl2)))) ; everything else
+
 (define-public steam-devices-udev-rules
   ;; Last release from 2019-04-10
   (let ((commit "d87ef558408c5e7a1a793d738db4c9dc2cb5f8fa")
-- 
2.37.3





Information forwarded to guix-patches <at> gnu.org:
bug#58403; Package guix-patches. (Fri, 05 Apr 2024 00:48:02 GMT) Full text and rfc822 format available.

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

From: nathan <nathan_mail <at> nborghese.com>
To: Morgan.J.Smith <at> outlook.com, guix-patches <at> gnu.org
Subject: [bug#58403] [PATCH 2/2] gnu: Add sc-controller
Date: Fri, 5 Apr 2024 00:46:52 +0000
tested the package with my steam controller (wired) and it just works.

i didn't test the udev rules, i guess i already had some on my system 
that worked for this.

thanks





Information forwarded to guix-patches <at> gnu.org:
bug#58403; Package guix-patches. (Sat, 06 Apr 2024 02:51:02 GMT) Full text and rfc822 format available.

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

From: Fredrik Salomonsson <plattfot <at> posteo.net>
To: 58403 <at> debbugs.gnu.org
Subject: [PATCH 0/2] Add sc-controller (steam controller and steam deck driver)
Date: Sat, 06 Apr 2024 02:49:48 +0000
Hi,

I tested the patches with my steam controller.  It is connected wireless
using the usb dongle.  And yeah it just works.

I was hoping to test this with my steam deck as well but having issues
booting into my guix partition.  If I get that running I'll report back,
but I would expect it to just works for that also.

Thanks

-- 
s/Fred[re]+i[ck]+/Fredrik/g




This bug report was last modified 20 days ago.

Previous Next


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