diff options
author | mrAppleXZ | 2017-11-07 11:21:59 +0500 |
---|---|---|
committer | mrAppleXZ | 2017-11-07 11:21:59 +0500 |
commit | bf5f07cb28d0e63c640f3faa423f818f4540bd1f (patch) | |
tree | cff364f26ad1ecd7b3ffc40889b87e687cb3786c | |
download | aur-bf5f07cb28d0e63c640f3faa423f818f4540bd1f.tar.gz |
Init
-rw-r--r-- | .SRCINFO | 36 | ||||
-rw-r--r-- | PKGBUILD | 56 | ||||
-rw-r--r-- | fix-60-sec-delay.patch | 27 | ||||
-rw-r--r-- | scons-py3.patch | 63 | ||||
-rw-r--r-- | sl6566bk.patch | 13 | ||||
-rw-r--r-- | xboxdrv.default | 6 | ||||
-rw-r--r-- | xboxdrv.service | 12 |
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 |