%if 0%{?el8} || 0%{?fc34} %ifarch s390x # ConnectionTest fails %bcond_with tests %else %bcond_without tests %endif %else %bcond_without tests %endif %global _firewalld_dir %{_prefix}/lib/firewalld Name: et Version: 6.2.1 Release: %autorelease Summary: Remote shell that survives IP roaming and disconnect License: ASL 2.0 URL: https://mistertea.github.io/EternalTerminal/ Source0: https://github.com/MisterTea/EternalTerminal/archive/et-v%{version}.tar.gz Source1: et.xml BuildRequires: boost-devel BuildRequires: cmake3 BuildRequires: firewalld-filesystem BuildRequires: gcc-c++ BuildRequires: catch-devel BuildRequires: gflags-devel BuildRequires: libatomic BuildRequires: libcurl-devel BuildRequires: libsodium-devel BuildRequires: libutempter-devel BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: protobuf-compiler BuildRequires: protobuf-lite-devel BuildRequires: systemd # Bundled libraries # cat .gitmodules | grep submodule | sort # for tarball, s/external/external_imported Provides: bundled(base64) = 0 # external_imported/cotire/CMake/cotire.cmake Provides: bundled(cotire) = 1.8.0 # grep User-Agent external/cpp-httlib/httplib.h # cross-check with the git checkout for specific version Provides: bundled(cpp-httplib) = 0.7.18 # external/cxxopts/include/cxxopts.hpp Provides: bundled(cxxopts) = 2.2.0 # external/easylogingcpp/CMakeLists.txt Provides: bundled(easyloggingpp) = 9.96.7 # external/msgpack-c/include/msgpack/version_master.h Provides: bundled(msgpack) = 3.3.0 # external/json/CMakeLists.txt Provides: bundled(nlohmann_json) = 3.9.1 # external/PlatformFolders/CMakeLists.txt Provides: bundled(PlatformFolders) = 4.0.0 # sanitizers-cmake is only used when building %ifnarch ppc64le s390x Provides: bundled(sentry-native) = 0.4.7 %endif # external/simpleini/SimpleIni.h Provides: bundled(simpleini) = 4.17 # https://github.com/r-lyeh-archived/sole Provides: bundled(sole) = 1.0.1 Provides: bundled(ThreadPool) = 0 Provides: bundled(UniversalStacktrace) = 0 # vcpkg is disabled %{?systemd_requires} %description Eternal Terminal (ET) is a remote shell that automatically reconnects without interrupting the session. %prep %autosetup -p1 -n EternalTerminal-et-v%{version} # use this if we have patches we need to apply by hand # %%setup -q -n EternalTerminal-et-v%%{version} # Remove bundled Catch2 test framework rm -rf external_imported/Catch2 sed -r -i '/\$\{EXTERNAL_DIR\}\/Catch2\/single_include/d' CMakeLists.txt %build %cmake \ %ifarch ppc64le s390x -DDISABLE_SENTRY=TRUE \ %endif -DDISABLE_VCPKG=TRUE %cmake_build %install %cmake_install mkdir -p \ %{buildroot}%{_unitdir} \ %{buildroot}%{_sysconfdir} \ %{buildroot}%{_firewalld_dir}/services install -m 0644 -p systemctl/et.service %{buildroot}%{_unitdir}/et.service install -m 0644 -p etc/et.cfg %{buildroot}%{_sysconfdir}/et.cfg install -m 0644 %{SOURCE1} %{buildroot}%{_firewalld_dir}/services/et.xml %if %{with tests} %check %if 0%{?fedora} %ctest %else %ctest --verbose %endif %endif %post %systemd_post et.service %firewalld_reload %preun %systemd_preun et.service %postun %systemd_postun_with_restart et.service %firewalld_reload %files %license LICENSE %doc README.md %{_bindir}/et %{_bindir}/etserver %{_bindir}/etterminal %{_bindir}/htm %{_bindir}/htmd %dir %{_firewalld_dir} %dir %{_firewalld_dir}/services %{_firewalld_dir}/services/et.xml %config(noreplace) %{_sysconfdir}/et.cfg %{_unitdir}/et.service %changelog %autochangelog