xboxdrv: convert to Python 3
Cherry-Picked from their stable branch.
This commit is contained in:
parent
df444b7ea0
commit
33463f5194
3 changed files with 319 additions and 2 deletions
|
@ -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
|
||||
--- SConstruct
|
||||
+++ 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
|
||||
|
|
@ -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
|
||||
--- examples/responsecurve-generator.py
|
||||
+++ 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
|
||||
--- runxboxdrv/runxboxdrv
|
||||
+++ 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
|
||||
--- xboxdrvctl
|
||||
+++ 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
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'xboxdrv'
|
||||
pkgname=xboxdrv
|
||||
version=0.8.8
|
||||
revision=2
|
||||
revision=3
|
||||
wrksrc="xboxdrv-linux-${version}"
|
||||
build_style=scons
|
||||
hostmakedepends="pkg-config glib-devel dbus-glib-devel"
|
||||
|
@ -12,7 +12,7 @@ license="GPL-3.0-or-later"
|
|||
homepage="https://xboxdrv.gitlab.io/"
|
||||
distfiles="https://xboxdrv.gitlab.io/xboxdrv-linux-${version}.tar.bz2"
|
||||
checksum=f4fb8c09c0ce3841798f129ae4c2caf3f6db9786d78ad941994e425e3ffc168a
|
||||
python_version=2 #unverified
|
||||
python_version=3
|
||||
|
||||
do_install() {
|
||||
make PREFIX=/usr DESTDIR=${DESTDIR} install
|
||||
|
|
Loading…
Reference in a new issue