$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBDAEMON... yes
checking for update-rc.d... update-rc.d
checking for su... /usr/bin/su
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking for vprintf... yes
checking for _doprnt... no
checking for ftruncate... yes
checking for gettimeofday... yes
checking for memset... yes
checking for select... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strerror... yes
checking for strtol... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating data/Makefile
config.status: creating config.h
config.status: executing depfiles commands
$ make
cd . && /bin/bash /var/apps/btnx/config/missing --run aclocal-1.10 -I m4
/var/apps/btnx/config/missing: line 54: aclocal-1.10: command not found
WARNING: `aclocal-1.10' is missing on your system. You should only need it if
you modified `acinclude.m4' or `configure.ac'. You might want
to install the `Automake' and `Perl' packages. Grab them from
any GNU archive site.
cd . && /bin/bash /var/apps/btnx/config/missing --run automake-1.10 --gnu
/var/apps/btnx/config/missing: line 54: automake-1.10: command not found
WARNING: `automake-1.10' is missing on your system. You should only need it if
you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
You might want to install the `Automake' and `Perl' packages.
Grab them from any GNU archive site.
cd . && /bin/bash /var/apps/btnx/config/missing --run autoconf
aclocal.m4:14: error: this file was generated for autoconf 2.61.
You have another version of autoconf. If you want to use that,
you should regenerate the build system entirely.
aclocal.m4:14: the top level
autom4te: error: /usr/bin/m4 failed with exit status: 63
WARNING: `autoconf' is probably too old. You should only need it if
you modified `configure.ac'. You might want to install the
`Autoconf' and `GNU m4' packages. Grab them from any GNU
archive site.
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --no-create --no-recursion
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBDAEMON... yes
checking for update-rc.d... update-rc.d
checking for su... /usr/bin/su
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking for vprintf... yes
checking for _doprnt... no
checking for ftruncate... yes
checking for gettimeofday... yes
checking for memset... yes
checking for select... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strerror... yes
checking for strtol... yes
configure: creating ./config.status
/bin/bash ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating data/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
cd . && /bin/bash /var/apps/btnx/config/missing --run autoheader
aclocal.m4:14: error: this file was generated for autoconf 2.61.
You have another version of autoconf. If you want to use that,
you should regenerate the build system entirely.
aclocal.m4:14: the top level
autom4te: error: /usr/bin/m4 failed with exit status: 63
autoheader: error: '/usr/bin/autom4te' failed with exit status: 63
WARNING: `autoheader' is probably too old. You should only need it if
you modified `acconfig.h' or `configure.ac'. You might want
to install the `Autoconf' and `GNU m4' packages. Grab them
from any GNU archive site.
rm -f stamp-h1
touch config.h.in
cd . && /bin/bash ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make all-recursive
make[1]: Entering directory '/var/apps/btnx'
Making all in src
make[2]: Entering directory '/var/apps/btnx/src'
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -Wunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls `pkg-config --cflags libdaemon` -g -O2 -MT btnx.o -MD -MP -MF .deps/btnx.Tpo -c -o btnx.o btnx.c
btnx.c: In function ‘command_execute’:
btnx.c:187:17: warning: ignoring return value of ‘setuid’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
187 | setuid(bev->uid);
| ^~~~~~~~~~~~~~~~
mv -f .deps/btnx.Tpo .deps/btnx.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -Wunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls `pkg-config --cflags libdaemon` -g -O2 -MT config_parser.o -MD -MP -MF .deps/config_parser.Tpo -c -o config_parser.o config_parser.c
mv -f .deps/config_parser.Tpo .deps/config_parser.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -Wunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls `pkg-config --cflags libdaemon` -g -O2 -MT device.o -MD -MP -MF .deps/device.Tpo -c -o device.o device.c
mv -f .deps/device.Tpo .deps/device.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -Wunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls `pkg-config --cflags libdaemon` -g -O2 -MT revoco.o -MD -MP -MF .deps/revoco.Tpo -c -o revoco.o revoco.c
mv -f .deps/revoco.Tpo .deps/revoco.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -Wunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls `pkg-config --cflags libdaemon` -g -O2 -MT uinput.o -MD -MP -MF .deps/uinput.Tpo -c -o uinput.o uinput.c
uinput.c: In function ‘uinput_init’:
uinput.c:59:3: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
59 | write(uinput_mouse_fd, &dev_mouse, sizeof(dev_mouse));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uinput.c:67:3: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
67 | write(uinput_kbd_fd, &dev_kbd, sizeof(dev_kbd));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uinput.c: In function ‘uinput_send_key’:
uinput.c:144:17: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
144 | write(fd, &event, sizeof(event));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uinput.c:151:17: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
151 | write(fd, &event, sizeof(event));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uinput.c:157:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
157 | write(fd, &event, sizeof(event));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uinput.c: In function ‘uinput_send_mods’:
uinput.c:117:17: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
117 | write(uinput_kbd_fd, &event, sizeof(event));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uinput.c:122:17: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
122 | write(uinput_kbd_fd, &event, sizeof(event));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/uinput.Tpo .deps/uinput.Po
gcc -Wall -W -Wunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls `pkg-config --cflags libdaemon` -g -O2 -o btnx btnx.o config_parser.o device.o revoco.o uinput.o `pkg-config --libs libdaemon`
make[2]: Leaving directory '/var/apps/btnx/src'
Making all in data
make[2]: Entering directory '/var/apps/btnx/data'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/var/apps/btnx/data'
make[2]: Entering directory '/var/apps/btnx'
make[2]: Leaving directory '/var/apps/btnx'
make[1]: Leaving directory '/var/apps/btnx'
$ sudo make install
Making install in src
make[1]: Entering directory '/var/apps/btnx/src'
make[2]: Entering directory '/var/apps/btnx/src'
test -z "/usr/local/sbin" || /usr/bin/mkdir -p "/usr/local/sbin"
/usr/bin/install -c 'btnx' '/usr/local/sbin/btnx'
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/var/apps/btnx/src'
make[1]: Leaving directory '/var/apps/btnx/src'
Making install in data
make[1]: Entering directory '/var/apps/btnx/data'
make[2]: Entering directory '/var/apps/btnx/data'
test -z "/etc/init.d" || /usr/bin/mkdir -p "/etc/init.d"
/usr/bin/install -c 'btnx' '/etc/init.d/btnx'
make install-exec-hook
make[3]: Entering directory '/var/apps/btnx/data'
Registering init script
update-rc.d btnx start 49 2 3 4 5 . stop 49 0 1 6 .
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
make[3]: Leaving directory '/var/apps/btnx/data'
test -z "/etc/btnx" || /usr/bin/mkdir -p "/etc/btnx"
/usr/bin/install -c -m 644 'events' '/etc/btnx/events'
make[2]: Leaving directory '/var/apps/btnx/data'
make[1]: Leaving directory '/var/apps/btnx/data'
make[1]: Entering directory '/var/apps/btnx'
make[2]: Entering directory '/var/apps/btnx'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/var/apps/btnx'
make[1]: Leaving directory '/var/apps/btnx'
$ ls -alp
total 24
drwxr-xr-x 2 root root 4096 Aug 29 12:23 ./
drwxr-xr-x 149 root root 12288 Aug 29 12:23 ../
-rw-r--r-- 1 root root 6726 Aug 29 12:23 events
Events is a file which contains some key bindings. But I couldn't find btnx-config
, as per the readme:
There are no instructions how to install btnx-config. Is it a separate program or part of this repository? I'm just trying this out and this doesn't seem to work due to the errors during making.
$ sudo /etc/init.d/btnx restart
Restarting btnx : Button Extension - mouse button rerouter daemon
btnx: Failed to kill previous btnx processes
btnx successfully stopped
btnx: uinput modprobed successfully.
btnx: Could not read the config manager file: No such file or directory
Segmentation fault (core dumped)
btnx failed to start during restart