summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2021-08-02 16:15:03 +0300
committerJoonas Niilola <juippis@gentoo.org>2021-08-02 16:16:39 +0300
commitd124cff10bbf1f7970b0e950c1f2eaba051c57a9 (patch)
tree4fcde8df1b19e2902d37c7b0ca43659bb3388e1f /games-util/xboxdrv
parentprofiles/*: Remove eapi file from otherwise empty dirs (diff)
downloadgentoo-d124cff10bbf1f7970b0e950c1f2eaba051c57a9.tar.gz
gentoo-d124cff10bbf1f7970b0e950c1f2eaba051c57a9.tar.bz2
gentoo-d124cff10bbf1f7970b0e950c1f2eaba051c57a9.zip
games-util/xboxdrv: update with new scons
- move back to non-forked upstream release, add patches so it builds. Closes: https://bugs.gentoo.org/806082 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'games-util/xboxdrv')
-rw-r--r--games-util/xboxdrv/Manifest1
-rw-r--r--games-util/xboxdrv/files/xboxdrv-0.8.8-Update-SConstruct-to-python3.patch79
-rw-r--r--games-util/xboxdrv/files/xboxdrv-0.8.8-Updating-python-code-to-python3.patch238
-rw-r--r--games-util/xboxdrv/files/xboxdrv-0.8.8-some-boost-fix.patch12
-rw-r--r--games-util/xboxdrv/xboxdrv-0.8.8_p20190118-r1.ebuild76
5 files changed, 406 insertions, 0 deletions
diff --git a/games-util/xboxdrv/Manifest b/games-util/xboxdrv/Manifest
index 3e0cab331729..484b4a26efbd 100644
--- a/games-util/xboxdrv/Manifest
+++ b/games-util/xboxdrv/Manifest
@@ -1 +1,2 @@
DIST xboxdrv-0.8.8_p20190118.tar.gz 322541 BLAKE2B ffa1021f974414ab9efebccf89e8be9137647ba7e1adf3bc9dad3b17b362b340f087fdac42c9b91a29a4cfe13295df6d3861fe953d9f96e80df08d4a6b1ce754 SHA512 ede650090c67642dc4729acc37630ae807f354d76f9bf31e23357668b6ae2b8d0261d2cf6e33090ab2120083b0664332dab22f1ed682bcdcbf1cac88b97e67af
+DIST xboxdrv-v0.8.8.tar.bz2 268046 BLAKE2B 3092a0e1e1cf1ee351879e791212445c567772f4115eb09eeb0c28bc1692b1951837ae7f6488091eb57d06cd38edae4e964502524606370f1ccd8fc39b307db8 SHA512 9b90f866ab322aaf3223215c78120a7aeacb56970fedf2e603f14704bd517b8316a3e28edb6a75e1a47729e9ced4cde5cac3a2f7a95d8514b83219b8821eb9db
diff --git a/games-util/xboxdrv/files/xboxdrv-0.8.8-Update-SConstruct-to-python3.patch b/games-util/xboxdrv/files/xboxdrv-0.8.8-Update-SConstruct-to-python3.patch
new file mode 100644
index 000000000000..accb4317fad4
--- /dev/null
+++ b/games-util/xboxdrv/files/xboxdrv-0.8.8-Update-SConstruct-to-python3.patch
@@ -0,0 +1,79 @@
+From 39a334fbc0482626455f417e97308e52aa8746a7 Mon Sep 17 00:00:00 2001
+From: Ingo Ruhnke <grumbel@gmail.com>
+Date: Sun, 24 Nov 2019 18:16:16 +0100
+Subject: [PATCH 1/3] Update SConstruct to python3
+
+---
+ SConstruct | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git SConstruct SConstruct
+index 4cd7970..54fa11f 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -15,7 +15,7 @@ def build_dbus_glue(target, source, env):
+ "--mode=glib-server",
+ "--prefix=" + env['DBUS_PREFIX'], source[0].get_path()],
+ stdout=subprocess.PIPE).communicate()[0]
+-
++ xml = xml.decode()
+ xml = re.sub(r"callback = \(([A-Za-z_]+)\) \(marshal_data \? marshal_data : cc->callback\);",
+ r"union { \1 fn; void* obj; } conv;\n "
+ "conv.obj = (marshal_data ? marshal_data : cc->callback);\n "
+@@ -29,14 +29,14 @@ def build_bin2h(target, source, env):
+ Takes a list of files and converts them into a C source that can be included
+ """
+ def c_escape(str):
+- return str.translate(string.maketrans("/.-", "___"))
++ return str.translate(str.maketrans("/.-", "___"))
+
+- print target
+- print source
++ print(target)
++ print(source)
+ with open(target[0].get_path(), "w") as fout:
+ fout.write("// autogenerated by scons Bin2H builder, do not edit by hand!\n\n")
+
+- if env.has_key("BIN2H_NAMESPACE"):
++ if "BIN2H_NAMESPACE" in env:
+ fout.write("namespace %s {\n\n" % env["BIN2H_NAMESPACE"])
+
+ # write down data
+@@ -45,8 +45,8 @@ def build_bin2h(target, source, env):
+ data = fin.read()
+ fout.write("// \"%s\"\n" % src.get_path())
+ fout.write("const char %s[] = {" % c_escape(src.get_path()))
+- bytes_arr = ["0x%02x" % ord(c) for c in data]
+- for i in xrange(len(bytes_arr)):
++ bytes_arr = ["0x%02x" % c for c in data]
++ for i in range(len(bytes_arr)):
+ if i % 13 == 0:
+ fout.write("\n ")
+ fout.write(bytes_arr[i])
+@@ -62,7 +62,7 @@ def build_bin2h(target, source, env):
+ for src in source], ",\n"))
+ fout.write("\n}\n\n")
+
+- if env.has_key("BIN2H_NAMESPACE"):
++ if "BIN2H_NAMESPACE" in env:
+ fout.write("} // namespace %s\n\n" % env["BIN2H_NAMESPACE"])
+
+ fout.write("/* EOF */\n")
+@@ -131,12 +131,12 @@ env.Append(CPPDEFINES = { 'PACKAGE_VERSION': "'\"%s\"'" % package_version })
+ conf = Configure(env)
+
+ if not conf.env['CXX']:
+- print "g++ must be installed!"
++ print("g++ must be installed!")
+ Exit(1)
+
+ # X11 checks
+ if not conf.CheckLibWithHeader('X11', 'X11/Xlib.h', 'C++'):
+- print 'libx11-dev must be installed!'
++ print('libx11-dev must be installed!')
+ Exit(1)
+
+ env = conf.Finish()
+--
+2.29.0.rc1
+
diff --git a/games-util/xboxdrv/files/xboxdrv-0.8.8-Updating-python-code-to-python3.patch b/games-util/xboxdrv/files/xboxdrv-0.8.8-Updating-python-code-to-python3.patch
new file mode 100644
index 000000000000..139336affd90
--- /dev/null
+++ b/games-util/xboxdrv/files/xboxdrv-0.8.8-Updating-python-code-to-python3.patch
@@ -0,0 +1,238 @@
+From e37d3558a1a8a36fbc5d693c53893127a288fd02 Mon Sep 17 00:00:00 2001
+From: Ingo Ruhnke <grumbel@gmail.com>
+Date: Sun, 24 Nov 2019 18:36:25 +0100
+Subject: [PATCH 3/3] Updating python code to python3
+
+---
+ examples/responsecurve-generator.py | 14 ++++-----
+ runxboxdrv/runxboxdrv | 46 ++++++++++++++---------------
+ xboxdrvctl | 8 ++---
+ 3 files changed, 34 insertions(+), 34 deletions(-)
+
+diff --git examples/responsecurve-generator.py examples/responsecurve-generator.py
+index c74e34d..942463b 100755
+--- a/examples/responsecurve-generator.py
++++ b/examples/responsecurve-generator.py
+@@ -1,14 +1,14 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+ import string
+
+ if len(sys.argv) != 3:
+- print "Usage:", sys.argv[0], "STEPS", "EQUATION"
+- print "Simple generator for generating responsecurve data from equations."
+- print ""
+- print "Example:"
+- print " ", sys.argv[0], "6 i**2"
++ print("Usage:", sys.argv[0], "STEPS", "EQUATION")
++ print("Simple generator for generating responsecurve data from equations.")
++ print("")
++ print("Example:")
++ print(" ", sys.argv[0], "6 i**2")
+ else:
+ steps = int(sys.argv[1])
+ equation = sys.argv[2]
+@@ -19,6 +19,6 @@ else:
+ left.reverse()
+ left = left[0:-1]
+
+- print string.join([str(x) for x in (left + right)], ":")
++ print(string.join([str(x) for x in (left + right)], ":"))
+
+ # EOF #
+diff --git runxboxdrv/runxboxdrv runxboxdrv/runxboxdrv
+index 360c836..6983496 100755
+--- a/runxboxdrv/runxboxdrv
++++ b/runxboxdrv/runxboxdrv
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation, either version 3 of the License, or
+@@ -409,7 +409,7 @@ class ProcessManager(object):
+ """
+ # Since reap() modifies __procs, we have to iterate over a copy
+ # of the keys in it. Thus, do not remove the .keys() call.
+- for procid in self.__procs.keys():
++ for procid in list(self.__procs.keys()):
+ self.reap(procid)
+
+
+@@ -445,7 +445,7 @@ import os, sys
+ import os.path
+ import fcntl
+ import time
+-import ConfigParser
++import configparser
+ from subprocess import check_call, Popen, PIPE
+ from signal import SIGINT, SIGKILL
+ from optparse import OptionParser
+@@ -482,7 +482,7 @@ class RunXBoxDrv(object):
+
+ @staticmethod
+ def runCommandAndGetOutput(command):
+- print command
++ print(command)
+ callcommand = Popen(command, shell=True, stdout=PIPE)
+ outputcommand = callcommand.communicate()
+ return outputcommand[0].split("\n")
+@@ -517,7 +517,7 @@ class RunXBoxDrv(object):
+ if RunXBoxDrv.which(RunXBoxDrv.sudo_command) is None:
+ raise Exception("Cannot find %s!" % RunXBoxDrv.sudo_command)
+ commandline = "%s %s" % (RunXBoxDrv.sudo_command, command)
+- print commandline
++ print(commandline)
+ callcommand = Popen(commandline, shell=True, stdout=PIPE)
+ outputcommand = callcommand.communicate()
+ return outputcommand[0]
+@@ -525,14 +525,14 @@ class RunXBoxDrv(object):
+ @staticmethod
+ def killExistingXBoxDrv(sig, signame):
+ for line in RunXBoxDrv.runCommandAndGetOutput("ps"):
+- print line
++ print(line)
+ fields = line.split()
+ if len(fields) < 4:
+ continue
+ pid = fields[0]
+ process = fields[3]
+ if process.find(XBOXDRVNAME) != -1:
+- print "Using %s on existing %s" % (signame, XBOXDRVNAME)
++ print("Using %s on existing %s" % (signame, XBOXDRVNAME))
+ os.kill(int(pid), sig)
+ return True
+ return False
+@@ -542,7 +542,7 @@ class RunXBoxDrv(object):
+ loadedmodules = []
+ unloadedmodules = []
+ for line in RunXBoxDrv.runCommandAndGetOutput("lsmod"):
+- print line
++ print(line)
+ fields = line.split()
+ if len(fields) < 3:
+ continue
+@@ -555,17 +555,17 @@ class RunXBoxDrv(object):
+ unloadedmodules.append(modulename)
+ for modulename in MODULELOAD:
+ if modulename in loadedmodules:
+- print "%s already loaded!" % modulename
++ print("%s already loaded!" % modulename)
+ else:
+- print "Loading %s!" % modulename
+- print RunXBoxDrv.runCommandAsRoot("modprobe %s" % modulename)
++ print("Loading %s!" % modulename)
++ print(RunXBoxDrv.runCommandAsRoot("modprobe %s" % modulename))
+
+ for modulename in MODULEUNLOAD:
+ if modulename in unloadedmodules:
+- print "Unloading %s!" % modulename
+- print RunXBoxDrv.runCommandAsRoot("rmmod %s" % modulename)
++ print("Unloading %s!" % modulename)
++ print(RunXBoxDrv.runCommandAsRoot("rmmod %s" % modulename))
+ else:
+- print "%s already unloaded!" % modulename
++ print("%s already unloaded!" % modulename)
+
+
+ @staticmethod
+@@ -579,11 +579,11 @@ class RunXBoxDrv(object):
+ raise Exception("Cannot find one of: %s!" % str(UINPUT_LOCATIONS))
+
+ if not os.access(location, os.W_OK):
+- print "Trying to change permissions of: %s" % location
+- print RunXBoxDrv.runCommandAsRoot("chmod 0660 %s" % location)
++ print("Trying to change permissions of: %s" % location)
++ print(RunXBoxDrv.runCommandAsRoot("chmod 0660 %s" % location))
+
+ if os.access(location, os.W_OK):
+- print "%s is writable!" % location
++ print("%s is writable!" % location)
+ else:
+ raise Exception("Could not set write permissions on %s" % location)
+
+@@ -614,36 +614,36 @@ class RunXBoxDrv(object):
+ out = ""
+ while out.lower().find(LOADEDTEXT) == -1:
+ out = RunXBoxDrv.getNext(myProc)
+- print out
++ print(out)
+
+ def process(self):
+ commandlist = [self.xboxdrvpath]
+
+ if self.configfile:
+ commandlist = commandlist + ["--config=%s" % self.configfile]
+- print commandlist
++ print(commandlist)
+ myProc = Process(commandlist)
+ with_timeout(1, self.checkLoaded, myProc)
+ if len(self.appandparams) == 0:
+ print("WARNING: No path to application specified!")
+ else:
+- print(self.appandparams)
++ print((self.appandparams))
+ check_call(self.appandparams)
+- print "Sending SIGINT"
++ print("Sending SIGINT")
+ myProc.kill(SIGINT)
+ try:
+ with_timeout(1, myProc.wait)
+ sys.exit(0)
+ except Timeout:
+ pass
+- print "Sending SIGINT again"
++ print("Sending SIGINT again")
+ myProc.kill(SIGINT)
+ try:
+ with_timeout(1, myProc.wait)
+ sys.exit(0)
+ except Timeout:
+ pass
+- print "Killing"
++ print("Killing")
+ myProc.terminate()
+
+ def main():
+diff --git xboxdrvctl xboxdrvctl
+index 4807a11..57177dc 100755
+--- a/xboxdrvctl
++++ b/xboxdrvctl
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python2
++#!/usr/bin/env python3
+
+ ## Xbox360 USB Gamepad Userspace Driver
+ ## Copyright (C) 2011 Ingo Ruhnke <grumbel@gmail.com>
+@@ -71,7 +71,7 @@ elif options.bus == "auto":
+ except dbus.exceptions.DBusException:
+ bus = dbus.SystemBus()
+ else:
+- print "Error: invalid argument to --bus. Must be 'auto', 'session, or 'system'"
++ print("Error: invalid argument to --bus. Must be 'auto', 'session, or 'system'")
+ exit()
+
+ if options.status:
+@@ -82,7 +82,7 @@ elif options.shutdown:
+ daemon.Shutdown()
+ else:
+ if (options.led or options.rumble or options.config) and options.slot == None:
+- print "Error: --slot argument required"
++ print("Error: --slot argument required")
+ exit()
+ else:
+ if options.slot != None:
+@@ -94,7 +94,7 @@ else:
+ if options.rumble:
+ m = re.match('^(\d+):(\d+)$', options.rumble)
+ if not m:
+- print "Error: invalid argument to --rumble"
++ print("Error: invalid argument to --rumble")
+ exit()
+ else:
+ left = int(m.group(1))
+--
+2.29.0.rc1
+
diff --git a/games-util/xboxdrv/files/xboxdrv-0.8.8-some-boost-fix.patch b/games-util/xboxdrv/files/xboxdrv-0.8.8-some-boost-fix.patch
new file mode 100644
index 000000000000..2063979fee4f
--- /dev/null
+++ b/games-util/xboxdrv/files/xboxdrv-0.8.8-some-boost-fix.patch
@@ -0,0 +1,12 @@
+diff -Naur a/src/controller_slot.cpp b/src/controller_slot.cpp
+--- a/src/controller_slot.cpp 2015-11-09 10:19:35.000000000 -0000
++++ b/src/controller_slot.cpp 2021-08-02 13:05:48.647684177 -0000
+@@ -69,7 +69,7 @@
+ bool
+ ControllerSlot::is_connected() const
+ {
+- return m_thread;
++ return m_thread.get();
+ }
+
+ /* EOF */
diff --git a/games-util/xboxdrv/xboxdrv-0.8.8_p20190118-r1.ebuild b/games-util/xboxdrv/xboxdrv-0.8.8_p20190118-r1.ebuild
new file mode 100644
index 000000000000..c2ce54f034b1
--- /dev/null
+++ b/games-util/xboxdrv/xboxdrv-0.8.8_p20190118-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit linux-info python-any-r1 scons-utils toolchain-funcs systemd udev
+
+DESCRIPTION="Userspace Xbox 360 Controller driver"
+HOMEPAGE="https://xboxdrv.gitlab.io"
+SRC_URI="https://gitlab.com/xboxdrv/xboxdrv/-/archive/v0.8.8/xboxdrv-v0.8.8.tar.bz2"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/dbus-glib
+ dev-libs/glib:2
+ sys-apps/dbus
+ virtual/libudev:=
+ virtual/libusb:1
+ x11-libs/libX11
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+
+BDEPEND="
+ dev-util/glib-utils
+ virtual/pkgconfig
+"
+
+S="${WORKDIR}/xboxdrv-v0.8.8"
+
+PATCHES=( "${FILESDIR}/"xboxdrv-0.8.8-some-boost-fix.patch
+ "${FILESDIR}/"xboxdrv-0.8.8-Update-SConstruct-to-python3.patch
+ "${FILESDIR}/"xboxdrv-0.8.8-Updating-python-code-to-python3.patch )
+
+CONFIG_CHECK="~INPUT_EVDEV ~INPUT_JOYDEV ~INPUT_UINPUT ~!JOYSTICK_XPAD"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ python_setup
+}
+
+src_compile() {
+ escons \
+ BUILD=custom \
+ CXX="$(tc-getCXX)" \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)" \
+ CXXFLAGS="-Wall ${CXXFLAGS}" \
+ LINKFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ dobin xboxdrv
+ doman doc/xboxdrv.1
+ dodoc AUTHORS NEWS PROTOCOL README.md TODO
+
+ newinitd "${FILESDIR}"/xboxdrv.initd xboxdrv
+ newconfd "${FILESDIR}"/xboxdrv.confd xboxdrv
+
+ insinto /etc/dbus-1/system.d
+ doins "${FILESDIR}"/org.seul.Xboxdrv.conf
+
+ udev_newrules "${FILESDIR}"/xboxdrv.udev-rules 99-xbox-controller.rules
+ systemd_dounit "${FILESDIR}"/xboxdrv.service
+}
+
+pkg_postinst() {
+ udev_reload
+}