Package: guix-patches;
Reported by: Morgan.J.Smith <at> outlook.com
Date: Sun, 9 Oct 2022 22:19:02 UTC
Owned by: Steve George <steve <at> futurile.net>
Severity: normal
Tags: patch
Done: Andreas Enge <andreas <at> enge.fr>
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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.