summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO36
-rw-r--r--PKGBUILD56
-rw-r--r--fix-60-sec-delay.patch27
-rw-r--r--scons-py3.patch63
-rw-r--r--sl6566bk.patch13
-rw-r--r--xboxdrv.default6
-rw-r--r--xboxdrv.service12
7 files changed, 213 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b4a82646d1d6
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,36 @@
+pkgbase = xboxdrv-sl6566bk
+ pkgdesc = Userspace gamepad driver for Linux with Speedlink SL-6566-BK patch. Based on the "xboxdrv" package.
+ pkgver = 0.8.8
+ pkgrel = 1
+ url = http://pingus.seul.org/~grumbel/xboxdrv
+ arch = i686
+ arch = x86_64
+ license = GPL3
+ makedepends = scons
+ makedepends = boost
+ makedepends = pkg-config
+ makedepends = libx11
+ makedepends = python
+ depends = libx11
+ depends = dbus-glib
+ depends = libusb
+ depends = python2-dbus
+ depends = systemd
+ provides = xboxdrv=${pkgver}
+ conflicts = xboxdrv
+ backup = etc/default/xboxdrv
+ source = xboxdrv-0.8.8.tar.gz::https://github.com/xboxdrv/xboxdrv/archive/v0.8.8.tar.gz
+ source = xboxdrv.service
+ source = xboxdrv.default
+ source = fix-60-sec-delay.patch
+ source = scons-py3.patch
+ source = sl6566bk.patch
+ sha512sums = 3f27856da211a14e27a84fa5919da7965262adc36da16c75eed9bae891098183b5751a3e707573b4ab64e69096ea74d455e8f64827c88b38b65af94cc13b34ad
+ sha512sums = a2eca367f6767e220d58cbb5b7555376d8b73b52ccbbfde937ef204ad67859e25d2331a80d5e57c7e7e3fc6c8cccfa862b64ddafd26c2aef818a979209910e7a
+ sha512sums = c346eb1c81547c7b1917b6f847be3155eaa9968d0dc7818b52fed23a123f8055dd77209d00933022fb91af36f495530e9d5e29071a9c5059c14d7be33eec42e5
+ sha512sums = 58170b3f96f02e5ba0af5f6641482fb1c612ca70650e475d68b55c05a62ec0831033190b90e591d593fd6b25c2a155e6c4975f37eef1534245947156a5e3285f
+ sha512sums = b3a3bbb51fa1c4ad4dd898136c3bf7c0f13193bdd07bbcb5c8243edb747c68223fe8c5bd2fd578f6c2b18844827524abb0533ce98b6e0e60fe936597cdba811d
+ sha512sums = bf51b70d851a5e0c01995ba4770eded2b14b983252a9185443df01496c780d2051c8c41aaa4314ce155fc76fb46cdecb2ea02ff85693bf8f233eb9957bd96800
+
+pkgname = xboxdrv-sl6566bk
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..0a54a1e1eb7b
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,56 @@
+# Maintainer: mrAppleXZ <mr.applexz@gmail.com>
+
+pkgname=xboxdrv-sl6566bk
+_pkgname=xboxdrv
+pkgver=0.8.8
+pkgrel=1
+pkgdesc='Userspace gamepad driver for Linux with Speedlink SL-6566-BK patch. Based on the "xboxdrv" package.'
+url='http://pingus.seul.org/~grumbel/xboxdrv'
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('libx11' 'dbus-glib' 'libusb' 'python2-dbus' 'systemd')
+makedepends=('scons' 'boost' 'pkg-config' 'libx11' 'python')
+backup=("etc/default/xboxdrv")
+conflicts=('xboxdrv')
+provides=('xboxdrv=${pkgver}')
+source=(${_pkgname}-${pkgver}.tar.gz::https://github.com/xboxdrv/${_pkgname}/archive/v${pkgver}.tar.gz
+ xboxdrv.service
+ xboxdrv.default
+ fix-60-sec-delay.patch
+ scons-py3.patch
+ sl6566bk.patch)
+sha512sums=('3f27856da211a14e27a84fa5919da7965262adc36da16c75eed9bae891098183b5751a3e707573b4ab64e69096ea74d455e8f64827c88b38b65af94cc13b34ad'
+ 'a2eca367f6767e220d58cbb5b7555376d8b73b52ccbbfde937ef204ad67859e25d2331a80d5e57c7e7e3fc6c8cccfa862b64ddafd26c2aef818a979209910e7a'
+ 'c346eb1c81547c7b1917b6f847be3155eaa9968d0dc7818b52fed23a123f8055dd77209d00933022fb91af36f495530e9d5e29071a9c5059c14d7be33eec42e5'
+ '58170b3f96f02e5ba0af5f6641482fb1c612ca70650e475d68b55c05a62ec0831033190b90e591d593fd6b25c2a155e6c4975f37eef1534245947156a5e3285f'
+ 'b3a3bbb51fa1c4ad4dd898136c3bf7c0f13193bdd07bbcb5c8243edb747c68223fe8c5bd2fd578f6c2b18844827524abb0533ce98b6e0e60fe936597cdba811d'
+ 'bf51b70d851a5e0c01995ba4770eded2b14b983252a9185443df01496c780d2051c8c41aaa4314ce155fc76fb46cdecb2ea02ff85693bf8f233eb9957bd96800')
+
+prepare() {
+ cd ${_pkgname}-${pkgver}
+ sed 's|python|python2|g' -i examples/*.py
+ patch -p1 < "${srcdir}/fix-60-sec-delay.patch"
+ patch -p1 < "${srcdir}/sl6566bk.patch"
+ # activate this patch when scons gets switched back to py3
+ # patch -p1 < "${srcdir}/scons-py3.patch"
+}
+
+build() {
+ cd ${_pkgname}-${pkgver}
+ scons \
+ LINKFLAGS="${LDFLAGS}" \
+ CXXFLAGS="${CPPFLAGS} ${CXXFLAGS}" \
+ "${MAKEFLAGS}"
+}
+
+package() {
+ cd ${_pkgname}-${pkgver}
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ install -Dm 644 "${srcdir}/${_pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service"
+ install -Dm 644 "${srcdir}/${_pkgname}.default" "${pkgdir}/etc/default/${_pkgname}"
+ install -Dm 644 README.md NEWS PROTOCOL -t "${pkgdir}/usr/share/doc/${_pkgname}"
+ install -Dm 644 examples/* -t "${pkgdir}/usr/share/doc/${_pkgname}/examples"
+ install -Dm 644 data/org.seul.Xboxdrv.conf -t "${pkgdir}/etc/dbus-1/system.d"
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/fix-60-sec-delay.patch b/fix-60-sec-delay.patch
new file mode 100644
index 000000000000..da543d2cfa01
--- /dev/null
+++ b/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/scons-py3.patch b/scons-py3.patch
new file mode 100644
index 000000000000..4aa6fa619317
--- /dev/null
+++ b/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/sl6566bk.patch b/sl6566bk.patch
new file mode 100644
index 000000000000..e6ac3e64dd98
--- /dev/null
+++ b/sl6566bk.patch
@@ -0,0 +1,13 @@
+diff --git a/src/xbox360_controller.cpp b/src/xbox360_controller.cpp
+index a06c0a2..5af51cf 100644
+--- a/src/xbox360_controller.cpp
++++ b/src/xbox360_controller.cpp
+@@ -64,7 +64,7 @@ Xbox360Controller::Xbox360Controller(libusb_device* dev,
+ }
+ else
+ {
+- m_chatpad.reset(new Chatpad(m_handle, desc.bcdDevice, chatpad_no_init, chatpad_debug));
++ m_chatpad.reset(new Chatpad(m_handle, 0x0110, chatpad_no_init, chatpad_debug));
+ }
+ }
+
diff --git a/xboxdrv.default b/xboxdrv.default
new file mode 100644
index 000000000000..90f11b41683d
--- /dev/null
+++ b/xboxdrv.default
@@ -0,0 +1,6 @@
+[xboxdrv]
+silent = true
+next-controller = true
+mimic-xpad = true
+[xboxdrv-daemon]
+dbus = disabled
diff --git a/xboxdrv.service b/xboxdrv.service
new file mode 100644
index 000000000000..8adbe9ad5380
--- /dev/null
+++ b/xboxdrv.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Xbox controller driver daemon
+Documentation=man:xboxdrv(1)
+
+[Service]
+Type=forking
+User=root
+PIDFile=/var/run/xboxdrv.pid
+ExecStart=/usr/bin/xboxdrv --daemon --detach --chatpad --mimic-xpad --pid-file /var/run/xboxdrv.pid -c /etc/default/xboxdrv --detach-kernel-driver --deadzone 4000 --deadzone-trigger 10%
+
+[Install]
+WantedBy=multi-user.target