Closed vadorvatsal closed 4 years ago
I assume the issue is:
configure:2881: checking for g++
configure:2911: result: no
configure:2935: checking for C++ compiler version
configure:2944: g++ --version >&5
../configure: line 2946: g++: command not found
configure:2975: checking whether the C++ compiler works
configure:2997: g++ conftest.cpp >&5
../configure: line 2999: g++: command not found
In other words, there is no C++ compiler available.
The installation guide does mention installing some dependencies: https://github.com/kernc/logkeys/blob/0427dec4ecfd4e8a7844c3e7deb45404f0416cd3/INSTALL#L10-L17 If autotools-dev and autoconf happen to not also pull in package build-essential and, by extension, g++, that's a valid bug report.
Yes I followed installation for debian-based distros step by step and sudo apt-get install autotools-dev autoconf
was successful but still I ran into this error state.
Hope that helps you to find out the issue. I can share you other logs (if any) required.
Try also sudo apt install build-essential
. :grimacing:
after doing sudo apt-get install build-essential
and running ../configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/root/logkeys/missing: Unknown `--is-lightweight' option
Try `/root/logkeys/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for which... yes
checking for grep... yes
checking for ps... no
configure: error: Required program 'ps' is missing.
Please also include check and install for gcc. So, it is simple install.
Now when I read current log and checking directory structure I find that directory named missing is actually not generated.
My understanding that plain debian docker do not have program ps and maybe you also want to include that installation as well.
configure: error: Required program 'ps' is missing.
:point_right: sudo apt install procps libprocps-dev
I don't know about that missing script. It seems to be just a warning.
Right you have included check for it but not installation.
Right you have included check for it but not installation.
This is not how configure works.
This is about building a program from source, not installing a prebuilt package along with its dependencies. ICBA to install packages on your (every, arbitrary) system?
root@35bacad60b87:~/logkeys/build# ../configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/root/logkeys/missing: Unknown `--is-lightweight' option
Try `/root/logkeys/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for which... yes
checking for grep... yes
checking for ps... yes
checking for dumpkeys... no
configure: error: Required program 'dumpkeys' is missing.
So I'll go ahead and install all no programs and see if I get it working.
Regarding the missing warning: can you try to delete the missing file from project root and then re-run ./autogen.sh? :grimacing: https://github.com/kernc/logkeys/blob/0427dec4ecfd4e8a7844c3e7deb45404f0416cd3/INSTALL#L32-L36
configure: error: Required program 'dumpkeys' is missing.
Yeah apt install dumpkeys
is also required. I wonder how that was left out from the documentation. I guess nobody ever installed in a out-of-the-box light container. :thinking:
root@35bacad60b87:~/logkeys# cd build; ../configure; make; su; make install
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for which... yes
checking for grep... yes
checking for ps... yes
checking for dumpkeys... yes
checking for /dev/input... no
configure: error: Input event interface devices not found in expected location /dev/input/eventX !
make: *** No targets specified and no makefile found. Stop.
root@35bacad60b87:~/logkeys/build#
Sorry for too much trouble but I think now I'll need your help.
It fails due to this configure check: https://github.com/kernc/logkeys/blob/02ad0021d7b4f84adefceb1cdd8e85bcd31226e7/configure.ac#L44-L48
/dev/input is part of the kernel, I think one of the modules (§2) or udev might populate it (apt install udev libinput-dev
). In either case, it won't work without bare-metal access (i.e. in a container). You first have to expose the relevant device to the container, see: https://stackoverflow.com/questions/50789172/libinput-in-a-docker-container/50789862#50789862
It fails due to this configure check:
https://github.com/kernc/logkeys/blob/02ad0021d7b4f84adefceb1cdd8e85bcd31226e7/configure.ac#L44-L48
/dev/input is part of the kernel, I think one of the modules (§2) or udev might populate it (
apt install udev libinput-dev
). In either case, it won't work without bare-metal access (i.e. in a container). You first have to expose the relevant device to the container, see: https://stackoverflow.com/questions/50789172/libinput-in-a-docker-container/50789862#50789862
Correct so, this is NOT a bug. Thank you for quick response and all the great work. I'll now try exposing my device and will share good news with you. :)
I appreciate it! Glad you're not running Docker on Windos. That would unquestionably complicate stuff much further. :joy:
I tried to follow install guide and after
cd build; ../configure; make; su; make install
it shows that please check logfile and config.log has following in the content.I am running new Debian docker container and installing in it.