Package Details: xboxdrv 0.8.13-1

Git Clone URL: https://aur.archlinux.org/xboxdrv.git (read-only, click to copy)
Package Base: xboxdrv
Description: Userspace Xbox gamepad driver and input remapper
Upstream URL: https://github.com/xiota/xboxdrv
Licenses: GPL-3.0-or-later
Submitter: None
Maintainer: xiota
Last Packager: xiota
Votes: 264
Popularity: 0.70
First Submitted: 2009-11-17 12:07 (UTC)
Last Updated: 2024-10-09 22:28 (UTC)

Pinned Comments

xiota commented on 2024-04-02 11:20 (UTC) (edited on 2024-09-30 20:11 (UTC) by xiota)

Although other Xbox gamepad drivers are now available, this package is still useful as an input remapper for programs that support only Xbox controllers.

This package is now based on a fork that aims to keep the program working. (Original project ceased development around Sep 2022.)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 .. 16 Next › Last »

parin commented on 2021-09-21 16:20 (UTC)

@lygamac Solution works , Follow the 6 steps menition in his comment Below

antonrud commented on 2021-09-15 18:03 (UTC)

@lygamac thx! Your instructions worked for me.

slack_twot commented on 2021-08-30 01:59 (UTC)

Clean build fails when compiling XBoxdrv with scons errors:


scons: *** [src/xboxdrv_vfs.hpp] AttributeError : 'SConsEnvironment' object has no attribute 'has_key'
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/SCons/Action.py", line 1279, in execute
    result = self.execfunction(target=target, source=rsources, env=env)
  File "/var/tmp/pamac-build-spongebob/xboxdrv/src/xboxdrv-0.8.8/SConstruct", line 39, in build_bin2h
    if env.has_key("BIN2H_NAMESPACE"):
  File "/usr/lib/python3.9/site-packages/SCons/Environment.py", line 2384, in __getattr__
    attr = getattr(self.__dict__['__subject'], name)
AttributeError: 'SConsEnvironment' object has no attribute 'has_key'
In file included from /usr/include/boost/bind.hpp:30,
                 from src/controller.cpp:21:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
src/chatpad.cpp: In constructor ‘Chatpad::Chatpad(libusb_device_handle*, uint16_t, bool, bool)’:
src/chatpad.cpp:62:9: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
   62 |   memset(m_keymap, 0, 256);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~
scons: building terminated because of errors.
==> ERROR: A failure occurred in build().

Zimmy commented on 2021-08-20 16:16 (UTC) (edited on 2021-08-20 16:22 (UTC) by Zimmy)

i installed everything correctly, got xboxdrv working but my system is still not detecting any input, any clues? It does vibrate (through steam gamepad controll only)

Doubl33n commented on 2021-08-17 16:02 (UTC)

@hardas When I tried running the patch -p1 < pkgbuild.patch command, it complained that the latter patch file is invalid Hunk #2 FAILED at 34. I think the different metadata you get when creating it makes the patch file invalid for makepkg.

But it is not going to be an issue once you run sha512sum fix-99-scons-unsupported-has_key.patch inside the source directory, copy the resulting sha512 sum, and replace 7ba08694be005eae98320957e4be6a84ff77f8b2ea2973dafc300527380074cdb6a3e0692d6c1e285d919cb6f795c494955997782c59a30e9672b65548c86a2f with your new sum.

Once I did this, it worked absolutely fine. So thanks a lot for this, I was eagerly waiting for a fix and just created this account to respond!

hardas commented on 2021-08-16 11:20 (UTC) (edited on 2021-08-16 11:30 (UTC) by hardas)

The way I installed it was as follows:

Download the file using the helper script of my choice (trizen) trizen -G xboxdrv

Create a new patch file with the necessary changes by running the following:

cat > fix-99-scons-unsupported-has_key.patch <<EOF
--- a/SConstruct        2015-11-09 12:19:35.000000000 +0200
+++ b/SConstruct        2021-08-16 13:47:50.103369128 +0300
@@ -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")
EOF

Modify the existing PKGBUILD file to apply the new patch

cat > pkgbuild.patch << EOF
--- a/PKGBUILD  2021-08-16 14:10:44.000000000 +0300
+++ b/PKGBUILD  2021-08-16 14:09:15.904713382 +0300
@@ -18,13 +18,15 @@
         xboxdrv.default
         fix-60-sec-delay.patch
         scons-py3.patch
-        xboxdrvctl-py3.patch)
+        xboxdrvctl-py3.patch
+        fix-99-scons-unsupported-has_key.patch)
 sha512sums=('3f27856da211a14e27a84fa5919da7965262adc36da16c75eed9bae891098183b5751a3e707573b4ab64e69096ea74d455e8f64827c88b38b65af94cc13b34ad'
             'f1a4e7b1a06e951c3a4f5bcdec5f14db542b34963950619f0d4b1ee324d64b18ca2f63642719ef65a63e424702fb0eb33e0259937906732e587b96a9582c2e6b'
             '4f6e9a12b208254e19daba477dd7787147a8b2c8a83007d92f8cfce6212c21ce3306f23a2669080f0e46986ca102ab08c262b42c678caf1a891326b4e2c40b5f'
             '58170b3f96f02e5ba0af5f6641482fb1c612ca70650e475d68b55c05a62ec0831033190b90e591d593fd6b25c2a155e6c4975f37eef1534245947156a5e3285f'
             'b3a3bbb51fa1c4ad4dd898136c3bf7c0f13193bdd07bbcb5c8243edb747c68223fe8c5bd2fd578f6c2b18844827524abb0533ce98b6e0e60fe936597cdba811d'
-            '4e6de460523c1ddfc608b3bd6fb211a7ca0516b64a2d91e01b51deaa4fcc57d64985bb2ccfca43873efef4987e0d04741f0e97dbd6b77037a4417a97cb8d0bf9')
+            '4e6de460523c1ddfc608b3bd6fb211a7ca0516b64a2d91e01b51deaa4fcc57d64985bb2ccfca43873efef4987e0d04741f0e97dbd6b77037a4417a97cb8d0bf9'
+            '7ba08694be005eae98320957e4be6a84ff77f8b2ea2973dafc300527380074cdb6a3e0692d6c1e285d919cb6f795c494955997782c59a30e9672b65548c86a2f')

 prepare() {
   cd ${pkgname}-${pkgver}
@@ -32,6 +34,7 @@
   patch -p1 < "${srcdir}/fix-60-sec-delay.patch"
   patch -p1 < "${srcdir}/scons-py3.patch"
   patch -p1 < "${srcdir}/xboxdrvctl-py3.patch"
+  patch -p1 < "${srcdir}/fix-99-scons-unsupported-has_key.patch"
 }

 build() {
EOF

Apply the modifications patch -p1 < pkgbuild.patch

Build and install the package makepkg -si

(Updated to fix invalid sha512sum and typos)

lygamac commented on 2021-08-11 18:51 (UTC)

SCons has dropped support for has_key. I bypassed this error by adding has_key = __contains__ in the python file. However, a new error appears (a variable wasn't declared).

@Wodger If you want to install the package now, try this, which worked for me:

  1. Clone this repo
  2. Open the PKGBUILD file with your favorite editor
  3. Where makedepends, remove scons
  4. Where build(), change scons to python3 ~/.local/bin/scons
  5. save the file
  6. pip install 'scons==4.1' and makepkg -si