diff options
author | Andrew Clemons <andrew.clemons@gmail.com> | 2022-02-18 18:06:50 +1300 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2022-02-19 12:10:40 +0700 |
commit | b08754ba17785d8200ba2d8e596509c36ff4be98 (patch) | |
tree | 1aa4bbe5c824dde8f85557989faec5a719162f69 /system/xboxdrv-linux | |
parent | b933c905c2486b640c9d6120d37c74da10ba2eff (diff) |
system/xboxdrv-linux: Fix 15.0 build.
Apply some patches from arch to fix build with py3 scons on 15.0.
Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system/xboxdrv-linux')
-rw-r--r-- | system/xboxdrv-linux/fix-60-sec-delay.patch | 27 | ||||
-rw-r--r-- | system/xboxdrv-linux/scons-py3.patch | 63 | ||||
-rw-r--r-- | system/xboxdrv-linux/scons-v4.2.0.patch | 20 | ||||
-rw-r--r-- | system/xboxdrv-linux/slack-desc | 2 | ||||
-rw-r--r-- | system/xboxdrv-linux/xboxdrv-linux.SlackBuild | 32 | ||||
-rw-r--r-- | system/xboxdrv-linux/xboxdrv-linux.info | 6 | ||||
-rw-r--r-- | system/xboxdrv-linux/xboxdrvctl-py3.patch | 73 |
7 files changed, 204 insertions, 19 deletions
diff --git a/system/xboxdrv-linux/fix-60-sec-delay.patch b/system/xboxdrv-linux/fix-60-sec-delay.patch new file mode 100644 index 0000000000000..da543d2cfa01b --- /dev/null +++ b/system/xboxdrv-linux/fix-60-sec-delay.patch @@ -0,0 +1,27 @@ +From 7326421eeaadbc2aeb3828628c2e65bb7be323a9 Mon Sep 17 00:00:00 2001 +From: buxit <buti@bux.at> +Date: Wed, 2 Nov 2016 16:25:14 +0100 +Subject: [PATCH] fix 60 seconds delay + +use `libusb_handle_events_timeout_completed()` instead of `libusb_handle_events()` +should fix #144 +--- + src/usb_gsource.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/usb_gsource.cpp b/src/usb_gsource.cpp +index 00bf1315..afb38f65 100644 +--- a/src/usb_gsource.cpp ++++ b/src/usb_gsource.cpp +@@ -174,7 +174,10 @@ USBGSource::on_source_dispatch(GSource* source, GSourceFunc callback, gpointer u + gboolean + USBGSource::on_source() + { +- libusb_handle_events(NULL); ++ struct timeval to; ++ to.tv_sec = 0; ++ to.tv_usec = 0; ++ libusb_handle_events_timeout_completed(NULL, &to, NULL); + return TRUE; + } + diff --git a/system/xboxdrv-linux/scons-py3.patch b/system/xboxdrv-linux/scons-py3.patch new file mode 100644 index 0000000000000..4aa6fa6193175 --- /dev/null +++ b/system/xboxdrv-linux/scons-py3.patch @@ -0,0 +1,63 @@ +From 17bd43a7d3ef86216abc36b42b4e6a1f70aa9979 Mon Sep 17 00:00:00 2001 +From: xnick <xnick@users.noreply.github.com> +Date: Thu, 12 Oct 2017 20:34:35 +0300 +Subject: [PATCH] Update SConstruct + +python3 compatible +--- + SConstruct | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 4cd79704..c0007054 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -19,7 +19,7 @@ def build_dbus_glue(target, source, env): + 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 " +- "callback = conv.fn;", xml) ++ "callback = conv.fn;", xml.decode('utf-8')) + + with open(target[0].get_path(), "w") as f: + f.write(xml) +@@ -29,10 +29,10 @@ 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(bytes.maketrans(b"/.-", b"___")) + +- 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") + +@@ -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]) +@@ -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() diff --git a/system/xboxdrv-linux/scons-v4.2.0.patch b/system/xboxdrv-linux/scons-v4.2.0.patch new file mode 100644 index 0000000000000..04b05e8d6ffc6 --- /dev/null +++ b/system/xboxdrv-linux/scons-v4.2.0.patch @@ -0,0 +1,20 @@ +--- a/SConstruct 2021-10-31 20:42:44.232084185 -0400 ++++ b/SConstruct 2021-10-31 20:42:54.063024444 -0400 +@@ -36,7 +36,7 @@ + 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 +@@ -62,7 +62,7 @@ + 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") diff --git a/system/xboxdrv-linux/slack-desc b/system/xboxdrv-linux/slack-desc index ad6b55a2ac703..17d6a22d47912 100644 --- a/system/xboxdrv-linux/slack-desc +++ b/system/xboxdrv-linux/slack-desc @@ -13,7 +13,7 @@ xboxdrv-linux: userspace. It is an alternative to the xpad kernel driver and has xboxdrv-linux: support for Xbox1 gamepads, Xbox360 USB gamepads and Xbox360 wireless xboxdrv-linux: gamepads, both first and third party. xboxdrv-linux: -xboxdrv-linux: Homepage: https://pingus.seul.org/~grumbel/xboxdrv/ +xboxdrv-linux: Homepage: https://xboxdrv.gitlab.io/ xboxdrv-linux: xboxdrv-linux: xboxdrv-linux: diff --git a/system/xboxdrv-linux/xboxdrv-linux.SlackBuild b/system/xboxdrv-linux/xboxdrv-linux.SlackBuild index 24abf36b03d67..731080f529fac 100644 --- a/system/xboxdrv-linux/xboxdrv-linux.SlackBuild +++ b/system/xboxdrv-linux/xboxdrv-linux.SlackBuild @@ -26,17 +26,20 @@ # 20220209 bkw: Modified by SlackBuilds.org: handle both possibilities for # the tarball filename. However, this is *still broken* due to scons issues. +# 20220218 acl: Modified by SlackBuilds.org: fix scons issues with arch +# patches. Update homepage to gitlab. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=xboxdrv-linux VERSION=${VERSION:-0.8.8} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) ARCH=i486 ;; + i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac @@ -54,8 +57,8 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" @@ -70,24 +73,23 @@ fi set -e -# 20220209 bkw: different clients (browsers, wget, curl) save the file with -# a different filename, depending on whether they respect Content-disposition. -TARBALL=$CWD/6e5e8a57628095d8d0c8bbb38187afb0f3a42112.tar.gz -[ -e "$TARBALL" ] || TARBALL=$CWD/xboxdrv-6e5e8a57628095d8d0c8bbb38187afb0f3a42112.tar.gz - rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -mkdir $PRGNAM-$VERSION -tar xvf $TARBALL --strip-components 1 -C $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 cd $PRGNAM-$VERSION +# thanks arch maintainers +patch -p1 < "$CWD/fix-60-sec-delay.patch" +patch -p1 < "$CWD/scons-py3.patch" +patch -p1 < "$CWD/scons-v4.2.0.patch" +patch -p1 < "$CWD/xboxdrvctl-py3.patch" chown -R root:root . find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; scons \ CFLAGS="$SLKCFLAGS" \ diff --git a/system/xboxdrv-linux/xboxdrv-linux.info b/system/xboxdrv-linux/xboxdrv-linux.info index 467f0b7a1d6d1..fb8f4aecaeab5 100644 --- a/system/xboxdrv-linux/xboxdrv-linux.info +++ b/system/xboxdrv-linux/xboxdrv-linux.info @@ -1,8 +1,8 @@ PRGNAM="xboxdrv-linux" VERSION="0.8.8" -HOMEPAGE="https://pingus.seul.org/~grumbel/xboxdrv/" -DOWNLOAD="https://github.com/chewi/xboxdrv/archive/6e5e8a57628095d8d0c8bbb38187afb0f3a42112.tar.gz" -MD5SUM="f0cfa15f509a3858ccae94a0d0da3d6a" +HOMEPAGE="https://xboxdrv.gitlab.io/" +DOWNLOAD="https://xboxdrv.gitlab.io/xboxdrv-linux-0.8.8.tar.bz2" +MD5SUM="a62703eda7d59393538b2f22d5b0c791" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" diff --git a/system/xboxdrv-linux/xboxdrvctl-py3.patch b/system/xboxdrv-linux/xboxdrvctl-py3.patch new file mode 100644 index 0000000000000..71d8762cb9ca5 --- /dev/null +++ b/system/xboxdrv-linux/xboxdrvctl-py3.patch @@ -0,0 +1,73 @@ +--- a/xboxdrvctl 2021-06-21 19:39:51.000000000 -0400 ++++ b/xboxdrvctl 19:43:27.467984928 -0400 +@@ -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> +@@ -37,23 +37,23 @@ + help="print controller status") + + group.add_option("-s", "--slot", metavar="SLOT", type="int", +- dest="slot", ++ dest="slot", + help="use slot SLOT for actions") + + group.add_option("-l", "--led", metavar="NUM", type="int", +- dest="led", ++ dest="led", + help="set LED") + +-group.add_option("-r", "--rumble", metavar="L:R", +- dest="rumble", ++group.add_option("-r", "--rumble", metavar="L:R", ++ dest="rumble", + help="print controller status") + + group.add_option("-c", "--config", metavar="NUM", type="int", +- dest="config", ++ dest="config", + help="switches to controller configuration NUM") + + group.add_option("--shutdown", action="store_true", +- dest="shutdown", ++ dest="shutdown", + help="shuts down the daemon") + + parser.add_option_group(group) +@@ -69,9 +69,9 @@ + try: + bus.get_object("org.seul.Xboxdrv", '/org/seul/Xboxdrv/Daemon') + except dbus.exceptions.DBusException: +- bus = dbus.SystemBus() ++ 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,19 +82,19 @@ + 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: + slot = bus.get_object("org.seul.Xboxdrv", '/org/seul/Xboxdrv/ControllerSlots/%d' % options.slot) +- ++ + if options.led != None: + slot.SetLed(options.led) + + 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)) |