Segfault Research > Projects > Other > USButton2key > USButton2key: requirements
First published on: 20-May-2014

The distribution that I'm using is called "Gentoo Linux" and it installs by default most of the development libraries - because of this the list I have below might be missing some dependencies => please kindly let me know here if anything is missing!

Requirements / dependencies:

  • Linux + X11 + USB device (joystick / throttle / mouse / keyboard / whatever - anything that has at least 1 button)
    Your desktop and/or at least your target app runs on X/Xorg.

  • wxWidgets version >= 2.9
    Version 2.8 and below does not have some crucial functionality I need for the UI, so this utility will compile successfully only with versions 2.9 (and hopefully as well above) of wxWidgets.

    wxWidgets is part of wxGTK, so you'll most probably have only a wxGTK package available for installation (which includes wxWidgets => therefore please install version 2.9 or above of wxGTK).

    I tried installing wxGTK 2.9 in a Debian and Ubuntu VM but didn't manage to - I have to admit that I gave up quite quickly and I think that the most experienced among you will have no problems doing that.

    • Gentoo users:
      Please don't forget to switch to version 2.9 with:
      eselect wxwidgets set <version 2.9 you see when executing "eselect wxwidgets list">
    • Debian 7.5 users
      Follow the instructions posted here which basically consist in (for this version):
      -  editing the file "/etc/apt/sources.list" and adding to it the line "deb wheezy libs".
      - running "apt-get update"
      - running "apt-get install libwxbase3.0-0-unofficial libwxbase3.0-dev libwxgtk3.0-0-unofficial libwxgtk3.0-dev wx3.0-headers wx-common libwxbase3.0-dbg libwxgtk3.0-dbg wx3.0-i18n wx3.0-examples wx3.0-doc"
      - doublecheck after the installation that by running "wx-config --version" you get at least 2.9 (logout and back in into the console if you initially cannot find the command "wx-config").
  • clang & llvm versions >= 3.3
    USButton2key was tested using "clang++ 3.3-r100" & "llvm 3.3-r3" - earlier versions don't seem to be working.
    • Gentoo users:
      Just emerge those packages.
    • Debian 7.5 users
      If you don't have a clang/llvm version >= 3.3 available then do the following:
      • edit the file "/etc/apt/sources.list" and add to it the following lines:
        deb llvm-toolchain-wheezy main
        deb-src llvm-toolchain-wheezy main".
      • Run "apt-get update"
        If you get the error message "W: GPG error: llvm-toolchain-wheezy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 15CF4D18AF4F7421" then please run the command "wget -O -|sudo apt-key add -" and then run again "apt-get update".
      • As of today (20.May.2014) you'll end up getting clang/llvm 3.5. This will be ok.
  • libudev
    • Gentoo users:
      Don't think that you have to do anything, if you have "udev" installed.
    • Debian 7.5 users:
      Install the package "libudev-dev" and its dependencies from the official repository.
  • libconfig
    USButton2key was tested using "libconfig 1.4.9-r1" - other versions should be ok.
    • Gentoo users
      Emerge the package "libconfig".
    • Debian 7.5 users:
      Install the package "libconfig++8-dev" (or any higher version)
  • libx11
    • Gentoo users:
      Don't think that you have to do anything, especially if "find "find /usr/include/ -name Xlib.h" finds it.
    • Debian 7.5 (wheezy?) users:
      Install the package "libx11-dev".