Hello community,
here is the log from the commit of package EternalTerminal for openSUSE:Factory
checked in at 2020-03-04 09:48:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/EternalTerminal (Old)
and /work/SRC/openSUSE:Factory/.EternalTerminal.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "EternalTerminal"
Wed Mar 4 09:48:42 2020 rev:4 rq:781390 version:6.0.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/EternalTerminal/EternalTerminal.changes
2020-02-18 10:39:13.348799690 +0100
+++
/work/SRC/openSUSE:Factory/.EternalTerminal.new.26092/EternalTerminal.changes
2020-03-04 09:48:50.678231281 +0100
@@ -1,0 +2,6 @@
+Wed Mar 4 06:50:04 UTC 2020 - Michael Vetter <[email protected]>
+
+- Update to 6.0.7:
+ * Add Match Host support to ssh config
+
+-------------------------------------------------------------------
Old:
----
et-v6.0.6.tar.gz
New:
----
et-v6.0.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ EternalTerminal.spec ++++++
--- /var/tmp/diff_new_pack.ltA3gw/_old 2020-03-04 09:48:52.218232203 +0100
+++ /var/tmp/diff_new_pack.ltA3gw/_new 2020-03-04 09:48:52.222232206 +0100
@@ -1,7 +1,7 @@
#
# spec file for package EternalTerminal
#
-# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%global _firewalld_dir %{_prefix}/lib/firewalld
Name: EternalTerminal
-Version: 6.0.6
+Version: 6.0.7
Release: 0
Summary: Remote shell that survives IP roaming and disconnect
License: Apache-2.0
++++++ et-v6.0.6.tar.gz -> et-v6.0.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.6/CMakeLists.txt
new/EternalTerminal-et-v6.0.7/CMakeLists.txt
--- old/EternalTerminal-et-v6.0.6/CMakeLists.txt 2020-02-15
04:41:24.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/CMakeLists.txt 2020-03-02
23:19:47.000000000 +0100
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.0.2)
-project (EternalTCP VERSION 6.0.6)
+project (EternalTCP VERSION 6.0.7)
SET(CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/external_imported/sanitizers-cmake/cmake"
${CMAKE_MODULE_PATH})
FIND_PACKAGE(Sanitizers)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.6/README.md
new/EternalTerminal-et-v6.0.7/README.md
--- old/EternalTerminal-et-v6.0.6/README.md 2020-02-15 04:41:24.000000000
+0100
+++ new/EternalTerminal-et-v6.0.7/README.md 2020-03-02 23:19:47.000000000
+0100
@@ -37,52 +37,17 @@
### Debian
-For debian, use our deb repo. For stretch:
+For debian, use our deb repo. For buster:
- echo "deb https://mistertea.github.io/debian-et/debian-source/ stretch
main" | sudo tee -a /etc/apt/sources.list
- curl -sS https://mistertea.github.io/debian-et/et.gpg | sudo apt-key
add -
+ echo "deb
https://github.com/MisterTea/debian-et/raw/master/debian-source/ buster main" |
sudo tee -a /etc/apt/sources.list
+ curl -sS https://github.com/MisterTea/debian-et/raw/master/et.gpg |
sudo apt-key add -
sudo apt update
sudo apt install et
### CentOS 7
-_Note: As of April 2019, the service does not start on CentOS 7, see
[#182](https://github.com/MisterTea/EternalTerminal/issues/182)_
-Install dependencies:
-```
-sudo yum -y install epel-release
-sudo yum install cmake3
-sudo yum install boost-devel libsodium-devel ncurses-devel protobuf-devel \
-protobuf-compiler cmake gflags-devel protobuf-lite-devel
-```
-
-Download and install from source:
-```
-git clone --recurse-submodules https://github.com/MisterTea/EternalTerminal.git
-cd EternalTerminal
-mkdir build
-cd build
-cmake3 ../
-make && sudo make install
-sudo cp ../systemctl/et.service /etc/systemd/system/
-sudo cp ../etc/et.cfg /etc/
-```
-Find the actual location of et:
-
- which etserver
-
-Correct the service file:
-Open up /etc/systemd/system/et.service in an editor.
-Correct the ExectStart line to have the correct path to the etserver binary
(see [#180](https://github.com/MisterTea/EternalTerminal/issues/180)).
-
- ExecStart=/usr/local/bin/etserver --daemon --cfgfile=/etc/et.cfg
-
-Start the et service:
-
-```
-sudo systemctl enable et.service
-sudo systemctl start et.service
-```
+Up to the present day the only way to install is to [build from
source](#centos-7).
### FreeBSD
@@ -149,7 +114,6 @@
ET uses TCP, so you need an open port on your server. By default, it uses 2022.
-
Once you have an open port, the syntax is similar to ssh. Username is default
to the current username starting the et process, use `-u` or `user@` to specify
a different if necessary.
```
et hostname (etserver running on default port 2022, username is the same as
current)
@@ -200,21 +164,14 @@
make
```
-### Debian/Ubuntu/CentOS
+### Debian/Ubuntu
Grab the deps and then follow this process:
Debian/Ubuntu Dependencies:
```
-sudo apt install libboost-dev libsodium-dev libncurses5-dev libprotobuf-dev
protobuf-compiler cmake libgflags-dev libutempter-dev cmake git
-```
-
-CentOS/RHEL Dependencies:
-```
-sudo yum -y install epel-release
-sudo yum install cmake3
-sudo yum install boost-devel libsodium-devel ncurses-devel protobuf-devel \
- protobuf-compiler cmake gflags-devel
+sudo apt install libboost-dev libsodium-dev libncurses5-dev \
+ libprotobuf-dev protobuf-compiler cmake libgflags-dev libutempter-dev
cmake git
```
Source and setup:
@@ -229,11 +186,56 @@
sudo make install
```
-Copy config file, the service and enable it:
+### CentOS 7
+
+Install dependencies:
+```
+sudo yum install epel-release
+sudo yum install cmake3 boost-devel libsodium-devel ncurses-devel
protobuf-devel \
+ protobuf-compiler gflags-devel protobuf-lite-devel
+```
+
+Install scl dependencies
+```
+sudo yum install centos-release-scl
+sudo yum install devtoolset-8
+```
+Download and install from source ([see #238 for
details](https://github.com/MisterTea/EternalTerminal/issues/238)):
```
+git clone --recurse-submodules https://github.com/MisterTea/EternalTerminal.git
+cd EternalTerminal
+mkdir build
+cd build
+scl enable devtoolset-8 'cmake3 ../'
+scl enable devtoolset-8 'make && sudo make install'
sudo cp ../systemctl/et.service /etc/systemd/system/
sudo cp ../etc/et.cfg /etc/
+```
+
+Find the actual location of et:
+
+ which etserver
+
+Correct the service file (see
[#180](https://github.com/MisterTea/EternalTerminal/issues/180) for details).
+
+```
+sudo sed -ie "s|ExecStart=.*[[:space:]]|ExecStart=$(which etserver) |"
/etc/systemd/system/et.service
+```
+
+Alternativelly, open the file /etc/systemd/system/et.service in an editor and
correct the `ExectStart=...` line to point to the correct path of the
`etserver` binary.
+
+ ExecStart=/usr/local/bin/etserver --daemon --cfgfile=/etc/et.cfg
+
+Reload systemd configs:
+
+```
+sudo systemctl daemon-reload
+```
+
+Start the et service:
+
+```
sudo systemctl enable et.service
sudo systemctl start et.service
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/EternalTerminal-et-v6.0.6/deployment/debian/Vagrantfile
new/EternalTerminal-et-v6.0.7/deployment/debian/Vagrantfile
--- old/EternalTerminal-et-v6.0.6/deployment/debian/Vagrantfile 2020-02-15
04:41:24.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/deployment/debian/Vagrantfile 2020-03-02
23:19:47.000000000 +0100
@@ -16,8 +16,8 @@
config.ssh.shell = "sh"
config.vm.provider "virtualbox" do |v|
- v.memory = 2048
- v.cpus = 8
+ v.memory = 4096
+ v.cpus = 4
end
# Disable automatic box update checking. If you disable this, then
@@ -97,11 +97,9 @@
git clone [email protected]:MisterTea/debian-et.git
for distro in `distro-info --supported | grep -v experimental`; do
- pbuilder-dist ${distro} i386 create --debootstrapopts --variant=buildd
- pbuilder-dist ${distro} amd64 create --debootstrapopts --variant=buildd
- pbuilder-dist ${distro} armhf create --debootstrapopts --variant=buildd
- pbuilder-dist ${distro} armel create --debootstrapopts --variant=buildd
- pbuilder-dist ${distro} arm64 create --debootstrapopts --variant=buildd
+ for ARCH in amd64 i386 armhf armel arm64; do
+ pbuilder-dist ${distro} ${ARCH} create --debootstrapopts --variant=buildd
+ done
aptly repo create -distribution=${distro} -component=main et-${distro}
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/EternalTerminal-et-v6.0.6/deployment/debian/build_all_deb.sh
new/EternalTerminal-et-v6.0.7/deployment/debian/build_all_deb.sh
--- old/EternalTerminal-et-v6.0.6/deployment/debian/build_all_deb.sh
2020-02-15 04:41:24.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/deployment/debian/build_all_deb.sh
2020-03-02 23:19:47.000000000 +0100
@@ -12,16 +12,11 @@
pushd EternalTerminal
debuild -S
popd
- pbuilder-dist ${distro} amd64 update
- pbuilder-dist ${distro} amd64 build *.dsc
- pbuilder-dist ${distro} i386 update
- pbuilder-dist ${distro} i386 build *.dsc
- pbuilder-dist ${distro} armhf update
- pbuilder-dist ${distro} armhf build *.dsc
- pbuilder-dist ${distro} armel update
- pbuilder-dist ${distro} armel build *.dsc
- pbuilder-dist ${distro} arm64 update
- pbuilder-dist ${distro} arm64 build *.dsc
+ for ARCH in amd64 i386 armhf armel arm64
+ do
+ pbuilder-dist ${distro} ${ARCH} update
+ pbuilder-dist ${distro} ${ARCH} build *.dsc
+ done
aptly repo add -force-replace=true et-${distro}
~/pbuilder/${distro}*_result/*.deb
aptly publish drop ${distro} || true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/EternalTerminal-et-v6.0.6/deployment/debian/debian_SOURCE/changelog
new/EternalTerminal-et-v6.0.7/deployment/debian/debian_SOURCE/changelog
--- old/EternalTerminal-et-v6.0.6/deployment/debian/debian_SOURCE/changelog
2020-02-15 04:41:24.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/deployment/debian/debian_SOURCE/changelog
2020-03-02 23:19:47.000000000 +0100
@@ -1,3 +1,15 @@
+et (6.0.7-##DISTRO##1) ##DISTRO##; urgency=medium
+
+ * https://github.com/MisterTea/EternalTerminal/releases/tag/et-v6.0.7
+
+ -- Jason Gauci <[email protected]> Mon, 3 Mar 2020 16:36:51 -0800
+
+et (6.0.6-##DISTRO##1) ##DISTRO##; urgency=medium
+
+ * https://github.com/MisterTea/EternalTerminal/releases/tag/et-v6.0.6
+
+ -- Jason Gauci <[email protected]> Sat, 25 Jan 2020 16:36:51 -0800
+
et (6.0.5-##DISTRO##2) ##DISTRO##; urgency=medium
* Add arm64 build on Ubuntu
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/EternalTerminal-et-v6.0.6/deployment/debian.Dockerfile
new/EternalTerminal-et-v6.0.7/deployment/debian.Dockerfile
--- old/EternalTerminal-et-v6.0.6/deployment/debian.Dockerfile 2020-02-15
04:41:24.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/deployment/debian.Dockerfile 2020-03-02
23:19:47.000000000 +0100
@@ -7,7 +7,9 @@
COPY id_rsa .ssh/
COPY id_rsa.pub .ssh/
RUN chmod ao-rwx .ssh/id_rsa
-COPY ubuntu/debian_SOURCE ./debian_SOURCE
+COPY debian/debian_SOURCE ./debian_SOURCE
+
+RUN echo "For debian, docker doesn't work with pbuilder. Use vagrant" && exit
1
RUN apt update && apt upgrade -y && apt install -y build-essential git
devscripts aptly dput jq libsodium-dev libprotobuf-dev protobuf-compiler cmake
libutempter-dev debhelper dh-systemd pbuilder ubuntu-dev-tools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.6/docker/Dockerfile.client
new/EternalTerminal-et-v6.0.7/docker/Dockerfile.client
--- old/EternalTerminal-et-v6.0.6/docker/Dockerfile.client 1970-01-01
01:00:00.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/docker/Dockerfile.client 2020-03-02
23:19:47.000000000 +0100
@@ -0,0 +1,27 @@
+FROM centos:7 as base
+
+ENV BUILD_REPOS="epel-release centos-release-scl" \
+ BUILD_DEPS="cmake3 boost-devel libsodium-devel ncurses-devel
protobuf-devel \
+ protobuf-compiler gflags-devel protobuf-lite-devel git devtoolset-8"
+
+WORKDIR /
+
+RUN yum install -y $BUILD_REPOS && \
+ yum install -y $BUILD_DEPS && \
+ git clone --recurse-submodules
https://github.com/MisterTea/EternalTerminal.git && \
+ cd EternalTerminal && \
+ mkdir build && \
+ cd build && \
+ bash -c "scl enable devtoolset-8 'cmake3 ../'" && \
+ bash -c "scl enable devtoolset-8 'make -j $(grep ^processor /proc/cpuinfo
|wc -l) && make install'"
+
+FROM centos:7
+
+RUN yum install -y epel-release && \
+ yum install -y protobuf-lite libsodium
+
+COPY --from=base /usr/local/bin/etserver /usr/local/bin/etterminal
/usr/local/bin/htm /usr/local/bin/htmd /usr/local/bin/
+COPY --from=base /EternalTerminal/etc/et.cfg /etc/et.cfg
+COPY container-entrypoint /bin/container-entrypoint
+
+ENTRYPOINT ["/bin/container-entrypoint", "client"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.6/docker/Dockerfile.server
new/EternalTerminal-et-v6.0.7/docker/Dockerfile.server
--- old/EternalTerminal-et-v6.0.6/docker/Dockerfile.server 1970-01-01
01:00:00.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/docker/Dockerfile.server 2020-03-02
23:19:47.000000000 +0100
@@ -0,0 +1,31 @@
+FROM centos:7 as base
+
+ENV BUILD_REPOS="epel-release centos-release-scl" \
+ BUILD_DEPS="cmake3 boost-devel libsodium-devel ncurses-devel
protobuf-devel \
+ protobuf-compiler gflags-devel protobuf-lite-devel git devtoolset-8"
+
+WORKDIR /
+
+RUN yum install -y $BUILD_REPOS && \
+ yum install -y $BUILD_DEPS && \
+ git clone --recurse-submodules
https://github.com/MisterTea/EternalTerminal.git && \
+ cd EternalTerminal && \
+ mkdir build && \
+ cd build && \
+ bash -c "scl enable devtoolset-8 'cmake3 ../'" && \
+ bash -c "scl enable devtoolset-8 'make -j $(grep ^processor /proc/cpuinfo
|wc -l) && make install'"
+
+FROM centos:7
+
+RUN yum install -y epel-release && \
+ yum install -y protobuf-lite libsodium openssh-server
+
+COPY --from=base /usr/local/bin/etserver /usr/local/bin/etterminal
/usr/local/bin/htm /usr/local/bin/htmd /usr/local/bin/
+COPY --from=base /EternalTerminal/etc/et.cfg /etc/et.cfg
+COPY container-entrypoint /bin/container-entrypoint
+
+EXPOSE 2022 2222
+
+ENTRYPOINT ["/bin/container-entrypoint", "server"]
+
+CMD ["--cfgfile=/etc/et.cfg"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.6/docker/README.md
new/EternalTerminal-et-v6.0.7/docker/README.md
--- old/EternalTerminal-et-v6.0.6/docker/README.md 1970-01-01
01:00:00.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/docker/README.md 2020-03-02
23:19:47.000000000 +0100
@@ -0,0 +1,36 @@
+# Docker container for et-server
+
+## Build
+
+```
+$ make
+$ docker images |grep et-.*
+et-client latest 54c495fe34dc 11 minutes
ago 422MB
+et-server latest 1bf233faf414 11 minutes
ago 425MB
+```
+
+## Run
+
+
+```
+$ docker run -it --rm -p 2022:2022 -p 2222:22 \
+ -v /etc/ssh:/etc/ssh \
+ -v /etc/passwd:/etc/passwd \
+ -v /etc/shadow:/etc/shadow \
+ -v /etc/group:/etc/group \
+ -v /home:/home \
+ et-server
+```
+
+## Notice
+
+- Both ports 2022 and 2222 must be open at the server host (per example above);
+- The container starts an sshd server to initiate et-server's handshake.
+- You ssh client must be able to connect to container's sshd, not host's sshd;
+- Running `ssh -p 2222 user@host` must work out-of-the box;
+- Tip: add below to your client's `~/.ssh/config`:
+
+```
+Host myhost
+ Port 2222
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/EternalTerminal-et-v6.0.6/docker/container-entrypoint
new/EternalTerminal-et-v6.0.7/docker/container-entrypoint
--- old/EternalTerminal-et-v6.0.6/docker/container-entrypoint 1970-01-01
01:00:00.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/docker/container-entrypoint 2020-03-02
23:19:47.000000000 +0100
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -x
+
+if [ "$1" == server ]; then
+ /usr/sbin/sshd
+ shift
+ exec etserver --logtostdout -v 1 "$@"
+else
+ shift
+ exec et "$@"
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/EternalTerminal-et-v6.0.6/src/terminal/ParseConfigFile.hpp
new/EternalTerminal-et-v6.0.7/src/terminal/ParseConfigFile.hpp
--- old/EternalTerminal-et-v6.0.6/src/terminal/ParseConfigFile.hpp
2020-02-15 04:41:24.000000000 +0100
+++ new/EternalTerminal-et-v6.0.7/src/terminal/ParseConfigFile.hpp
2020-03-02 23:19:47.000000000 +0100
@@ -61,6 +61,7 @@
SOC_UNSUPPORTED = -1,
SOC_HOST,
SOC_HOSTNAME,
+ SOC_MATCH,
SOC_PORT,
SOC_USERNAME,
SOC_TIMEOUT,
@@ -142,6 +143,7 @@
static struct ssh_config_keyword_table_s ssh_config_keyword_table[] = {
{"host", SOC_HOST},
{"hostname", SOC_HOSTNAME},
+ {"match", SOC_MATCH},
{"port", SOC_PORT},
{"user", SOC_USERNAME},
{"connecttimeout", SOC_TIMEOUT},
@@ -1174,8 +1176,8 @@
}
opcode = ssh_config_get_opcode(keyword);
- if (*parsing == 1 && opcode != SOC_HOST && opcode != SOC_UNSUPPORTED &&
- opcode != SOC_INCLUDE) {
+ if (*parsing == 1 && opcode != SOC_HOST && opcode != SOC_MATCH &&
+ opcode != SOC_UNSUPPORTED && opcode != SOC_INCLUDE) {
if (seen[opcode] != 0) {
SAFE_FREE(x);
return 0;
@@ -1225,6 +1227,11 @@
free(z);
}
break;
+ case SOC_MATCH:
+ i = ssh_config_parse_line(targethost, options, s, count, parsing, seen);
+ SAFE_FREE(x);
+ return i;
+ break;
case SOC_PORT:
if (options->port == 0) {
p = ssh_config_get_str_tok(&s, NULL);