diff --git a/INSTALL.md b/INSTALL.md index f166190..cf385c4 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -56,3 +56,23 @@ You will also need the following packages to run the unit tests: make && sudo make install ``` +## Configuration options + +### udev + +The configuration system should automatically detect the udev rules directory, +but you can override it by using the following argument to `configure`: + +``` +--with-udevrulesdir=/path/to/udev/rules.d +``` + +### Input group + +The udev rules that are installed provide read/write access to members of the +input devices group. This defaults to `plugdev`, but can be modified using +the following argument to `configure`: + +``` +--with-input-group=group +``` diff --git a/configure.ac b/configure.ac index 6f3caf2..f78f977 100644 --- a/configure.ac +++ b/configure.ac @@ -74,6 +74,12 @@ AC_ARG_WITH([udevrulesdir], [udevrulesdir=$($PKG_CONFIG --variable=udevdir udev)"/rules.d"]) AC_SUBST([udevrulesdir], [$udevrulesdir]) +AC_ARG_WITH([input-group], + AS_HELP_STRING([--with-input-group=GROUP], [Group allowed to access input devices]), + [input_group=$withval], + [input_group=plugdev]) +AC_SUBST([input_group], [$input_group]) + # Doxygen Support AC_CHECK_PROGS([DOXYGEN], [doxygen]) AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) @@ -107,6 +113,7 @@ AC_CONFIG_FILES([ po/Makefile.in lib/libx52util/Makefile lib/libx52io/Makefile udev/Makefile + udev/60-saitek-x52-x52pro.rules utils/Makefile utils/cli/Makefile utils/test/Makefile diff --git a/udev/60-saitek-x52-x52pro.rules b/udev/60-saitek-x52-x52pro.rules.in similarity index 64% rename from udev/60-saitek-x52-x52pro.rules rename to udev/60-saitek-x52-x52pro.rules.in index ecbe20b..1bb96e1 100644 --- a/udev/60-saitek-x52-x52pro.rules +++ b/udev/60-saitek-x52-x52pro.rules.in @@ -1,17 +1,17 @@ -# udev rules to give plugdev users permissions to: +# udev rules to give members of "@input_group@" users permissions to: # - write to the X52/X52pro using libx52 # - read from the hidraw interface ACTION!="add", GOTO="x52_rules_end" # X52Pro flight control system -SUBSYSTEM=="usb", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0762", MODE="0664", GROUP="plugdev" -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0762", MODE="0640", GROUP="plugdev" +SUBSYSTEM=="usb", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0762", MODE="0664", GROUP="@input_group@" +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0762", MODE="0640", GROUP="@input_group@" # X52 flight control system -SUBSYSTEM=="usb", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0255", MODE="0664", GROUP="plugdev" -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0255", MODE="0640", GROUP="plugdev" -SUBSYSTEM=="usb", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="075c", MODE="0664", GROUP="plugdev" -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="075c", MODE="0640", GROUP="plugdev" +SUBSYSTEM=="usb", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0255", MODE="0664", GROUP="@input_group@" +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0255", MODE="0640", GROUP="@input_group@" +SUBSYSTEM=="usb", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="075c", MODE="0664", GROUP="@input_group@" +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="075c", MODE="0640", GROUP="@input_group@" LABEL="x52_rules_end"