Hello community,

here is the log from the commit of package EternalTerminal for openSUSE:Factory 
checked in at 2020-02-18 10:38:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/EternalTerminal (Old)
 and      /work/SRC/openSUSE:Factory/.EternalTerminal.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "EternalTerminal"

Tue Feb 18 10:38:28 2020 rev:3 rq:774819 version:6.0.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/EternalTerminal/EternalTerminal.changes  
2019-12-27 14:01:33.948895128 +0100
+++ 
/work/SRC/openSUSE:Factory/.EternalTerminal.new.26092/EternalTerminal.changes   
    2020-02-18 10:39:13.348799690 +0100
@@ -1,0 +2,6 @@
+Mon Feb 17 09:58:16 UTC 2020 - Michael Vetter <[email protected]>
+
+- Update to 6.0.6:
+  * Generate passkeys on server (#280)
+
+-------------------------------------------------------------------

Old:
----
  et-v6.0.5.tar.gz

New:
----
  et-v6.0.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ EternalTerminal.spec ++++++
--- /var/tmp/diff_new_pack.nscJx3/_old  2020-02-18 10:39:15.792804677 +0100
+++ /var/tmp/diff_new_pack.nscJx3/_new  2020-02-18 10:39:15.792804677 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package EternalTerminal
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # 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.5
+Version:        6.0.6
 Release:        0
 Summary:        Remote shell that survives IP roaming and disconnect
 License:        Apache-2.0

++++++ et-v6.0.5.tar.gz -> et-v6.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.5/.circleci/config.yml 
new/EternalTerminal-et-v6.0.6/.circleci/config.yml
--- old/EternalTerminal-et-v6.0.5/.circleci/config.yml  2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/.circleci/config.yml  2020-02-15 
04:41:24.000000000 +0100
@@ -104,7 +104,7 @@
           command: mkdir -p ~/.ssh/ && echo -e "Host 
github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
       - run:
           name: Install system dependencies
-          command: brew upgrade python@2 python; brew install cmake; brew 
install protobuf libsodium gflags
+          command: brew remove python@2; brew upgrade python; brew install 
cmake; brew install protobuf libsodium gflags
       - checkout
       - run:
           name: Init submodules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.5/.github/FUNDING.yml 
new/EternalTerminal-et-v6.0.6/.github/FUNDING.yml
--- old/EternalTerminal-et-v6.0.5/.github/FUNDING.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/.github/FUNDING.yml   2020-02-15 
04:41:24.000000000 +0100
@@ -0,0 +1,3 @@
+# These are supported funding model platforms
+
+github: MisterTea
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.5/CMakeLists.txt 
new/EternalTerminal-et-v6.0.6/CMakeLists.txt
--- old/EternalTerminal-et-v6.0.5/CMakeLists.txt        2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/CMakeLists.txt        2020-02-15 
04:41:24.000000000 +0100
@@ -1,5 +1,5 @@
 cmake_minimum_required (VERSION 3.0.2)
-project (EternalTCP VERSION 6.0.5)
+project (EternalTCP VERSION 6.0.6)
 
 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.5/README.md 
new/EternalTerminal-et-v6.0.6/README.md
--- old/EternalTerminal-et-v6.0.5/README.md     2019-12-26 03:07:16.000000000 
+0100
+++ new/EternalTerminal-et-v6.0.6/README.md     2020-02-15 04:41:24.000000000 
+0100
@@ -53,7 +53,7 @@
 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-compiler cmake gflags-devel protobuf-lite-devel
 ```
 
 Download and install from source:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.5/deployment/arch.Dockerfile 
new/EternalTerminal-et-v6.0.6/deployment/arch.Dockerfile
--- old/EternalTerminal-et-v6.0.5/deployment/arch.Dockerfile    2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/deployment/arch.Dockerfile    2020-02-15 
04:41:24.000000000 +0100
@@ -2,7 +2,7 @@
 LABEL maintainer="Jason Gauci ([email protected])"
 
 RUN pacman -Syu --noconfirm
-RUN pacman -Syu --noconfirm jq git base-devel sudo go openssh
+RUN pacman -Syu --noconfirm jq git base-devel sudo go openssh emacs
 RUN useradd builduser
 RUN passwd -d builduser
 RUN printf 'builduser ALL=(ALL) ALL\n' | tee -a /etc/sudoers # Allow the 
builduser passwordless sudo
@@ -25,9 +25,9 @@
 RUN git config --global user.name "Foo Bar"
 
 WORKDIR /home/builduser
-RUN git clone https://aur.archlinux.org/eternalterminal.git arch_et
+RUN git clone ssh://[email protected]/eternalterminal.git arch_et
 
-RUN git clone --branch release [email protected]:MisterTea/EternalTerminal.git
+RUN git clone --branch `curl 
https://api.github.com/repos/mistertea/EternalTerminal/releases/latest | jq 
'.tag_name' | sed 's/"//g'` [email protected]:MisterTea/EternalTerminal.git
 RUN mkdir -p EternalTerminal/build
 WORKDIR /home/builduser/EternalTerminal/build
 RUN cmake ..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/deployment/debian/Vagrantfile 
new/EternalTerminal-et-v6.0.6/deployment/debian/Vagrantfile
--- old/EternalTerminal-et-v6.0.5/deployment/debian/Vagrantfile 2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/deployment/debian/Vagrantfile 2020-02-15 
04:41:24.000000000 +0100
@@ -12,12 +12,12 @@
 
   # Every Vagrant development environment requires a box. You can search for
   # boxes at https://vagrantcloud.com/search.
-  config.vm.box = "debian/stretch64"
+  config.vm.box = "debian/buster64"
   config.ssh.shell = "sh"
 
   config.vm.provider "virtualbox" do |v|
     v.memory = 2048
-    v.cpus = 4
+    v.cpus = 8
   end
 
   # Disable automatic box update checking. If you disable this, then
@@ -75,7 +75,9 @@
   # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
   # documentation for more information about their specific syntax and use.
   config.vm.provision "shell", privileged: true, inline: <<-SHELL
-  apt update && apt install -y build-essential git curl devscripts aptly dput 
jq libsodium-dev libprotobuf-dev protobuf-compiler cmake libutempter-dev 
debhelper dh-systemd pbuilder ubuntu-dev-tools openssh-server qemu 
qemu-user-static debootstrap binfmt-support
+  apt update
+  DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt -q -y -o 
"Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" upgrade
+  apt install -y build-essential git curl devscripts aptly dput jq 
libsodium-dev libprotobuf-dev protobuf-compiler cmake libutempter-dev debhelper 
git-lfs dh-systemd pbuilder ubuntu-dev-tools openssh-server qemu 
qemu-user-static debootstrap binfmt-support
 SHELL
 
   config.vm.provision "shell", privileged: false, inline: <<-SHELL
@@ -84,8 +86,11 @@
   git config --global user.name "Jason Gauci"
 
   sudo chmod -R 0700 ~/.gnupg ~/.ssh
+  git lfs install
   
   echo 
"PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt" > 
~/.pbuilderrc
+  echo "default-cache-ttl 34560000
+max-cache-ttl 34560000" > ~/.gnupg/gpg-agent.conf
   
   ssh-keyscan github.com >> ~/.ssh/known_hosts
   git clone --branch release [email protected]:MisterTea/EternalTerminal.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/deployment/debian/build_all_deb.sh 
new/EternalTerminal-et-v6.0.6/deployment/debian/build_all_deb.sh
--- old/EternalTerminal-et-v6.0.5/deployment/debian/build_all_deb.sh    
2019-12-26 03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/deployment/debian/build_all_deb.sh    
2020-02-15 04:41:24.000000000 +0100
@@ -3,7 +3,7 @@
 
 wget `curl 
https://api.github.com/repos/mistertea/EternalTerminal/releases/latest | jq 
'.tarball_url' | sed 's/"//g'` -O `curl 
https://api.github.com/repos/mistertea/EternalTerminal/releases/latest | jq 
'.tag_name' | sed 's/"//g' | sed 's/et-v/et_/g' | sed 's/$/.orig.tar.gz/g'`
 
-for distro in `distro-info --supported | grep -v experimental`; do
+for distro in `distro-info --supported | grep -v experimental | grep -v sid`; 
do
     rm -Rf EternalTerminal/debian
     cp -Rf debian_SOURCE EternalTerminal/debian
     sed -i "s/##DISTRO##/${distro}/g" EternalTerminal/debian/changelog
@@ -23,11 +23,11 @@
     pbuilder-dist ${distro} arm64 update
     pbuilder-dist ${distro} arm64 build *.dsc
 
-    aptly repo add et-${distro} ~/pbuilder/${distro}*_result/*.deb
+    aptly repo add -force-replace=true et-${distro} 
~/pbuilder/${distro}*_result/*.deb
     aptly publish drop ${distro} || true
     aptly publish repo et-${distro}
 done
 
-rsync -raz --delete --progress ~/.aptly/public/* 
~/github/debian-et/debian-source/
+rsync -raz --delete --progress ~/.aptly/public/* ~/debian-et/debian-source/
 
 echo "Go to ~/debian-et/ and push the new packages."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/deployment/debian/debian_SOURCE/changelog 
new/EternalTerminal-et-v6.0.6/deployment/debian/debian_SOURCE/changelog
--- old/EternalTerminal-et-v6.0.5/deployment/debian/debian_SOURCE/changelog     
2019-12-26 03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/deployment/debian/debian_SOURCE/changelog     
2020-02-15 04:41:24.000000000 +0100
@@ -1,3 +1,15 @@
+et (6.0.5-##DISTRO##2) ##DISTRO##; urgency=medium
+
+  * Add arm64 build on Ubuntu
+
+ -- Jason Gauci <[email protected]>  Sat, 25 Jan 2020 16:36:51 -0800
+
+et (6.0.5-##DISTRO##1) ##DISTRO##; urgency=medium
+
+  * Various compatibility fixes
+
+ -- Jason Gauci <[email protected]>  Mon, 14 Oct 2019 16:36:51 -0800
+
 et (6.0.4-##DISTRO##2) ##DISTRO##; urgency=medium
 
   * Fix bug in et.service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/deployment/fedora.Dockerfile 
new/EternalTerminal-et-v6.0.6/deployment/fedora.Dockerfile
--- old/EternalTerminal-et-v6.0.5/deployment/fedora.Dockerfile  2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/deployment/fedora.Dockerfile  2020-02-15 
04:41:24.000000000 +0100
@@ -5,7 +5,7 @@
 RUN mkdir .ssh
 COPY id_rsa .ssh/
 COPY id_rsa.pub .ssh/
-RUN chmod 0400 .ssh/id_rsa
+RUN chmod -R 0700 ~/.ssh
 
 ENV KRB5_TRACE="/dev/stdout kinit [email protected]"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EternalTerminal-et-v6.0.5/src/base/Headers.hpp 
new/EternalTerminal-et-v6.0.6/src/base/Headers.hpp
--- old/EternalTerminal-et-v6.0.5/src/base/Headers.hpp  2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/src/base/Headers.hpp  2020-02-15 
04:41:24.000000000 +0100
@@ -78,6 +78,8 @@
 
 #include "ThreadPool.h"
 
+#include <sodium.h>
+
 using namespace std;
 
 namespace google {}
@@ -199,6 +201,20 @@
   return FD_ISSET(fd, &fdset);
 }
 
+inline string genRandomAlphaNum(int len) {
+  static const char alphanum[] =
+      "0123456789"
+      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+      "abcdefghijklmnopqrstuvwxyz";
+  string s(len, '\0');
+
+  for (int i = 0; i < len; ++i) {
+    s[i] = alphanum[randombytes_uniform(sizeof(alphanum) - 1)];
+  }
+
+  return s;
+}
+
 }  // namespace et
 
 inline bool operator==(const google::protobuf::MessageLite& msg_a,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/src/terminal/SshSetupHandler.cpp 
new/EternalTerminal-et-v6.0.6/src/terminal/SshSetupHandler.cpp
--- old/EternalTerminal-et-v6.0.5/src/terminal/SshSetupHandler.cpp      
2019-12-26 03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/src/terminal/SshSetupHandler.cpp      
2020-02-15 04:41:24.000000000 +0100
@@ -4,20 +4,6 @@
 #include <sys/wait.h>
 
 namespace et {
-string genRandom(int len) {
-  static const char alphanum[] =
-      "0123456789"
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-      "abcdefghijklmnopqrstuvwxyz";
-  string s(len, '\0');
-
-  for (int i = 0; i < len; ++i) {
-    s[i] = alphanum[randombytes_uniform(sizeof(alphanum) - 1)];
-  }
-
-  return s;
-}
-
 string genCommand(const string &passkey, const string &id,
                   const string &clientTerm, const string &user, bool kill,
                   const string &command_prefix, const string &options) {
@@ -46,8 +32,12 @@
     // Default to xterm-256color
     clientTerm = envString;
   }
-  string passkey = genRandom(32);
-  string id = genRandom(16);
+  string passkey = genRandomAlphaNum(32);
+  string id = genRandomAlphaNum(16);
+
+  id[0] = id[1] = id[2] = 'X';  // For compatibility with old servers that do
+                                // not generate their own keys
+
   string cmdoptions{"--verbose=" + std::to_string(vlevel)};
   if (!serverFifo.empty()) {
     cmdoptions += " --serverfifo=" + serverFifo;
@@ -112,15 +102,9 @@
       }
       auto idpasskey = sshBuffer.substr(passKeyIndex + 10, 16 + 1 + 32);
       auto idpasskey_splited = split(idpasskey, '/');
-      string returned_id = idpasskey_splited[0];
-      string returned_passkey = idpasskey_splited[1];
-      if (returned_id == id && returned_passkey == passkey) {
-        LOG(INFO) << "etserver started";
-      } else {
-        LOG(FATAL) << "client/server idpasskey doesn't match: " << id
-                   << " != " << returned_id << " or " << passkey
-                   << " != " << returned_passkey;
-      }
+      id = idpasskey_splited[0];
+      passkey = idpasskey_splited[1];
+      LOG(INFO) << "etserver started";
     } catch (const runtime_error &err) {
       cout << "Error initializing connection" << err.what() << endl;
     }
@@ -163,21 +147,19 @@
           idpasskey.erase(idpasskey.find_last_not_of(" \n\r\t") + 1);
           idpasskey = idpasskey.substr(0, 16 + 1 + 32);
           auto idpasskey_splited = split(idpasskey, '/');
-          string returned_id = idpasskey_splited[0];
-          string returned_passkey = idpasskey_splited[1];
-          if (returned_id == id && returned_passkey == passkey) {
-            LOG(INFO) << "jump client started.";
-          } else {
-            LOG(FATAL) << "client/server idpasskey doesn't match: " << id
-                       << " != " << returned_id << " or " << passkey
-                       << " != " << returned_passkey;
-          }
+          id = idpasskey_splited[0];
+          passkey = idpasskey_splited[1];
         } catch (const runtime_error &err) {
           cout << "Error initializing connection" << err.what() << endl;
         }
       }
     }
   }
+
+  if (id.length() == 0 || passkey.length() == 0) {
+    LOG(FATAL) << "Somehow missing id or passkey: " << id.length() << " "
+               << passkey.length();
+  }
   return id + "/" + passkey;
 }
 }  // namespace et
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/src/terminal/TerminalMain.cpp 
new/EternalTerminal-et-v6.0.6/src/terminal/TerminalMain.cpp
--- old/EternalTerminal-et-v6.0.5/src/terminal/TerminalMain.cpp 2019-12-26 
03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/src/terminal/TerminalMain.cpp 2020-02-15 
04:41:24.000000000 +0100
@@ -103,8 +103,20 @@
         exit(1);
       }
       auto tokens = split(stdinData, '_');
-      idpasskey = tokens[0];
-      FATAL_FAIL(setenv("TERM", tokens[1].c_str(), 1));
+      if (tokens.size() == 2) {
+        idpasskey = tokens[0];
+        if (idpasskey.substr(0, 3) == std::string("XXX")) {
+          // New client connecting to new server, throw away passkey and
+          // regenerate
+          string passkey = genRandomAlphaNum(32);
+          string id = genRandomAlphaNum(16);
+          idpasskey = id + string("/") + passkey;
+        }
+
+        FATAL_FAIL(setenv("TERM", tokens[1].c_str(), 1));
+      } else {
+        LOG(FATAL) << "Invalid number of tokens: " << tokens.size();
+      }
     } else {
       string idpasskey = result["idpasskey"].as<string>();
       if (result.count("idpasskeyfile")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/src/terminal/TerminalServerMain.cpp 
new/EternalTerminal-et-v6.0.6/src/terminal/TerminalServerMain.cpp
--- old/EternalTerminal-et-v6.0.5/src/terminal/TerminalServerMain.cpp   
2019-12-26 03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/src/terminal/TerminalServerMain.cpp   
2020-02-15 04:41:24.000000000 +0100
@@ -116,6 +116,10 @@
       serverFifo = result["serverfifo"].as<string>();
     }
 
+    if (result.count("port")) {
+      port = result["port"].as<int>();
+    }
+
     GOOGLE_PROTOBUF_VERIFY_VERSION;
     srand(1);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/EternalTerminal-et-v6.0.5/src/terminal/UserTerminalRouter.cpp 
new/EternalTerminal-et-v6.0.6/src/terminal/UserTerminalRouter.cpp
--- old/EternalTerminal-et-v6.0.5/src/terminal/UserTerminalRouter.cpp   
2019-12-26 03:07:16.000000000 +0100
+++ new/EternalTerminal-et-v6.0.6/src/terminal/UserTerminalRouter.cpp   
2020-02-15 04:41:24.000000000 +0100
@@ -36,7 +36,6 @@
       LOG(FATAL) << "Got an invalid packet header: " << 
int(packet.getHeader());
     }
     TerminalUserInfo tui = 
stringToProto<TerminalUserInfo>(packet.getPayload());
-    VLOG(1) << "Got id/passkey: " << tui.id() << "/" << tui.passkey();
     tui.set_fd(terminalFd);
     idInfoMap[tui.id()] = tui;
     return IdKeyPair({tui.id(), tui.passkey()});


Reply via email to