MisterTea / EternalTerminal

Re-Connectable secure remote shell

Home Page:https://mistertea.github.io/EternalTerminal/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

failing on OSX

majulier opened this issue · comments

I just installed 6.0.4_1 on a Mac/OSX. I get "Error starting ET process through ssh, please make sure your ssh works first" regardless of if I am trying to connect to localhost or a remote machine. If trying to connect to a remote machine I get "Connected to server but canonname is null somehow". If trying to connect to localhost I get "bash: line 1: etterminal: command not found" after entering my password.
The remote machine works fine. I can et to it from itself or another machine. This seems to be an issue on the Mac side or due to an interface incompatibility.

Hey @majulier what's the et version on remote machine?

etterminal is present if I invoke it from the command line.

version on linux box is 5.1.9

version on Mac is 6.0.4

Oh binaries across major releases are not compatible. So try upgrading your et on remote machine as well?

trying to update on the linux box... (presumably I have an issue with pthreads...)

cmake ../
CMake Warning at CMakeLists.txt:5 (FIND_PACKAGE):
By not providing "FindSanitizers.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Sanitizers", but CMake did not find one.

Could not find a package configuration file provided by "Sanitizers" with
any of the following names:

SanitizersConfig.cmake
sanitizers-config.cmake

Add the installation prefix of "Sanitizers" to CMAKE_PREFIX_PATH or set
"Sanitizers_DIR" to a directory containing one of the above files. If
"Sanitizers" provides a separate development package or SDK, be sure it has
been installed.

CMake Error at CMakeLists.txt:8 (INCLUDE):
include could not find load file:

cotire

-- Could NOT find UTempter (missing: UTEMPTER_INCLUDE_DIR UTEMPTER_LIBRARIES)
CMake Error at CMakeLists.txt:99 (add_sanitizers):
Unknown CMake command "add_sanitizers".
Call Stack (most recent call first):
CMakeLists.txt:181 (DECORATE_TARGET)

-- Configuring incomplete, errors occurred!
See also "/home/mjulier/EternalTerminal-master/build/CMakeFiles/CMakeOutput.log".
See also "/home/mjulier/EternalTerminal-master/build/CMakeFiles/CMakeError.log".

CMakeError.log has:

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/mjulier/EternalTerminal-master/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_848b0/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_848b0.dir/build.make CMakeFiles/cmTC_848b0.dir/build
gmake[1]: Entering directory /home/mjulier/EternalTerminal-master/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_848b0.dir/CheckFunctionExists.c.o /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_848b0.dir/CheckFunctionExists.c.o -c /usr/local/share/cmake-3.6/Modules/CheckFunctionExists.c Linking C executable cmTC_848b0 /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_848b0.dir/link.txt --verbose=1 /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_848b0.dir/CheckFunctionExists.c.o -o cmTC_848b0 -rdynamic -lpthreads /usr/bin/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status gmake[1]: *** [cmTC_848b0] Error 1 gmake[1]: Leaving directory /home/mjulier/EternalTerminal-master/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_848b0/fast] Error 2

Oh I think 6.0.4 binary are already rolled out to yum and apt-get, is that not working?
But to answer your question above, I think cloning recursively might fix your problem.
git clone --recurse-submodules https://github.com/MisterTea/EternalTerminal.git

I'm on CentOS for the linux box. there isn't an "et" for "yum install et". Do you know the package name?

Oh sorry building from source is required on centos I think, did https://github.com/MisterTea/EternalTerminal#centos-7 help?

Interestingly, google kept taking me to:
https://eternalterminal.dev/download/

instead. That doesn't have the same info as your link above.

following the (better) instructions I got:
mjulier@localhost EternalTerminal]$ cd build
[mjulier@localhost build]$ cmake3 ../
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- cotire 1.8.0 loaded.
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Protobuf: /usr/lib64/libprotobuf.so;-lpthread (found version "2.5.0")
-- Found sodium: /usr/lib64/libsodium.so
-- Could NOT find UTempter (missing: UTEMPTER_INCLUDE_DIR UTEMPTER_LIBRARIES)
-- CXX target et-lib cotired.
-- CXX target TerminalCommon cotired.
-- CXX target etserver cotired without precompiled header. Too few applicable sources.
-- CXX target etterminal cotired without precompiled header. Too few applicable sources.
-- CXX target et cotired without precompiled header. Too few applicable sources.
-- CXX target HtmCommon cotired.
-- CXX target htm cotired without precompiled header. Too few applicable sources.
-- CXX target htmd cotired without precompiled header. Too few applicable sources.
-- CXX target et-test cotired.
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Protobuf_LITE_LIBRARY
linked by target "et-test" in directory /home/mjulier/EternalTerminal
linked by target "htmd" in directory /home/mjulier/EternalTerminal
linked by target "et" in directory /home/mjulier/EternalTerminal
linked by target "etserver" in directory /home/mjulier/EternalTerminal
linked by target "htm" in directory /home/mjulier/EternalTerminal
linked by target "etterminal" in directory /home/mjulier/EternalTerminal

-- Configuring incomplete, errors occurred!
See also "/home/mjulier/EternalTerminal/build/CMakeFiles/CMakeOutput.log".
See also "/home/mjulier/EternalTerminal/build/CMakeFiles/CMakeError.log".
[mjulier@localhost build]$

CMakeError.log contains
[mjulier@localhost build]$ cat CMakeFiles/CMakeError.log
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_ec94b/fast
/usr/bin/gmake -f CMakeFiles/cmTC_ec94b.dir/build.make CMakeFiles/cmTC_ec94b.dir/build
gmake[1]: Entering directory /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o /usr/bin/cc -o CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o -c /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c Linking C executable cmTC_ec94b /usr/bin/cmake3 -E cmake_link_script CMakeFiles/cmTC_ec94b.dir/link.txt --verbose=1 /usr/bin/cc -rdynamic CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o -o cmTC_ec94b CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o: In function main':
CheckSymbolExists.c:(.text+0x14): undefined reference to pthread_create' CheckSymbolExists.c:(.text+0x18): undefined reference to pthread_create'
collect2: error: ld returned 1 exit status
gmake[1]: *** [cmTC_ec94b] Error 1
gmake[1]: Leaving directory `/home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_ec94b/fast] Error 2

File /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_8bb8d/fast
/usr/bin/gmake -f CMakeFiles/cmTC_8bb8d.dir/build.make CMakeFiles/cmTC_8bb8d.dir/build
gmake[1]: Entering directory /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_8bb8d.dir/CheckFunctionExists.c.o /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_8bb8d.dir/CheckFunctionExists.c.o -c /usr/share/cmake3/Modules/CheckFunctionExists.c Linking C executable cmTC_8bb8d /usr/bin/cmake3 -E cmake_link_script CMakeFiles/cmTC_8bb8d.dir/link.txt --verbose=1 /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_8bb8d.dir/CheckFunctionExists.c.o -o cmTC_8bb8d -lpthreads /usr/bin/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status gmake[1]: *** [cmTC_8bb8d] Error 1 gmake[1]: Leaving directory /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_8bb8d/fast] Error 2

I happen to be on gcc 8.2.0, on an Aarch64 (ARM) system. When I installed ET originally everything was flawless. Since then, I've updated to gcc and had to reinstall on the Mac, which created the version incompatibility.

yum install libutempter-devel got one error out of the way. Now I'm seeing:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Protobuf_LITE_LIBRARY
linked by target "et-test" in directory /home/mjulier/EternalTerminal
linked by target "htmd" in directory /home/mjulier/EternalTerminal
linked by target "et" in directory /home/mjulier/EternalTerminal
linked by target "etserver" in directory /home/mjulier/EternalTerminal
linked by target "htm" in directory /home/mjulier/EternalTerminal
linked by target "etterminal" in directory /home/mjulier/EternalTerminal

-- Configuring incomplete, errors occurred!
See also "/home/mjulier/EternalTerminal/build/CMakeFiles/CMakeOutput.log".
See also "/home/mjulier/EternalTerminal/build/CMakeFiles/CMakeError.log".

CMakeError.log contains: (how do I not have pthread_create?!)

[mjulier@localhost build]$ cat CMakeFiles/CMakeError.log
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_ec94b/fast
/usr/bin/gmake -f CMakeFiles/cmTC_ec94b.dir/build.make CMakeFiles/cmTC_ec94b.dir/build
gmake[1]: Entering directory /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o /usr/bin/cc -o CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o -c /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c Linking C executable cmTC_ec94b /usr/bin/cmake3 -E cmake_link_script CMakeFiles/cmTC_ec94b.dir/link.txt --verbose=1 /usr/bin/cc -rdynamic CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o -o cmTC_ec94b CMakeFiles/cmTC_ec94b.dir/CheckSymbolExists.c.o: In function main':
CheckSymbolExists.c:(.text+0x14): undefined reference to pthread_create' CheckSymbolExists.c:(.text+0x18): undefined reference to pthread_create'
collect2: error: ld returned 1 exit status
gmake[1]: *** [cmTC_ec94b] Error 1
gmake[1]: Leaving directory `/home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_ec94b/fast] Error 2

File /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_8bb8d/fast
/usr/bin/gmake -f CMakeFiles/cmTC_8bb8d.dir/build.make CMakeFiles/cmTC_8bb8d.dir/build
gmake[1]: Entering directory /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_8bb8d.dir/CheckFunctionExists.c.o /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_8bb8d.dir/CheckFunctionExists.c.o -c /usr/share/cmake3/Modules/CheckFunctionExists.c Linking C executable cmTC_8bb8d /usr/bin/cmake3 -E cmake_link_script CMakeFiles/cmTC_8bb8d.dir/link.txt --verbose=1 /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_8bb8d.dir/CheckFunctionExists.c.o -o cmTC_8bb8d -lpthreads /usr/bin/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status gmake[1]: *** [cmTC_8bb8d] Error 1 gmake[1]: Leaving directory /home/mjulier/EternalTerminal/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_8bb8d/fast] Error 2

@majulier Try yum install protobuf-lite-devel protobuf-lite?

@ailzhang - thank you for your help. I really appreciate you being out there to bounce stuff off of. It's always nice to not be alone when dealing with issues.

protobuf-lite(-devel) got build and install to work. Yeah!

now the "sudo systemctl start et.service" is failing. journalctl -xe shows:-- Subject: Unit et.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

-- Unit et.service has begun starting up.
Oct 11 20:13:55 localhost.localdomain etserver[26362]: terminate called after throwing an instance of 'std::regex_error'
Oct 11 20:13:55 localhost.localdomain systemd[1]: et.service: control process exited, code=killed status=6
Oct 11 20:13:55 localhost.localdomain etserver[26362]: what(): regex_error
Oct 11 20:13:55 localhost.localdomain systemd[1]: Failed to start Eternal Terminal.
-- Subject: Unit et.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

-- Unit et.service has failed.

-- The result is failed.
Oct 11 20:13:55 localhost.localdomain systemd[1]: Unit et.service entered failed state.
Oct 11 20:13:55 localhost.localdomain systemd[1]: et.service failed.
Oct 11 20:13:55 localhost.localdomain polkitd[7225]: Unregistered Authentication Agent for unix-process:26356:1393986 (system bus
Oct 11 20:13:55 localhost.localdomain sudo[26354]: pam_unix(sudo:session): session closed for user root
lines 3231-3265/3265 (END)

Just in case it points to an issue...

[mjulier@localhost build]$ etserver
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
Aborted
[mjulier@localhost build]$ et --version
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
Aborted

Oh so that might caused by an old devtool. If you yum install devtoolset-8, and then build the binary with scl enable devtoolset-8 'cmake ..' it might work. Maybe give it a try? We can update the Readme if that works for you.

I got "Cannot find a valid baseurl for repo: centos-sclo-sclo/aarch64" when trying to install devtoolset-8 (and 7). I'll go dig on that a bit.

n.m. figured out to disable the solo-sclo repo

did a make clean then the scleras command you suggest above then completed install instructions. It failed. journalctl -xe shows:

-- Subject: Unit et.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

-- Unit et.service has begun starting up.
Oct 11 22:22:00 localhost.localdomain etserver[27880]: terminate called after throwing an instance of 'std::regex_error'
Oct 11 22:22:00 localhost.localdomain etserver[27880]: what(): regex_error
Oct 11 22:22:00 localhost.localdomain systemd[1]: et.service: control process exited, code=killed status=6
Oct 11 22:22:00 localhost.localdomain systemd[1]: Failed to start Eternal Terminal.
-- Subject: Unit et.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

-- Unit et.service has failed.

-- The result is failed.
Oct 11 22:22:00 localhost.localdomain systemd[1]: Unit et.service entered failed state.
Oct 11 22:22:00 localhost.localdomain systemd[1]: et.service failed.
Oct 11 22:22:00 localhost.localdomain sudo[27872]: pam_unix(sudo:session): session closed for user root
Oct 11 22:22:00 localhost.localdomain polkitd[7225]: Unregistered Authentication Agent for unix-process:27874:2162531 (system bus name :1.237, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.U
lines 2956-2996/2996 (END)

getting the:
[mjulier@localhost build]$ et --version
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
Aborted

error still.

It's because your cmake results are cached. Blow away the build directory and run cmake using the command Ailing posted.

Thank you!
In case anyone ever reads this far, "the command Ailing posted" is (likely):
scl enable devtoolset-8 'cmake3 ../'
scl enable devtoolset-8 'make && sudo make install'
within the instructions pointed to earlier in the thread.

Thank you so much both of you. It is great to have ET back in my life. Missing it for a couple of weeks has been the worst part of my previous MacBook Pro dying.

In case someone doesn't known what scl is or how to install devtools-8: https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/