diff --git a/hbbr.service b/hbbr.service new file mode 100644 index 0000000..a01848a --- /dev/null +++ b/hbbr.service @@ -0,0 +1,13 @@ +[Unit] +Description=RustDesk Relay server +After=network.target + +[Service] +Type=simple +WorkingDirectory=/var/lib/rustdesk-server +ExecStart=/usr/bin/hbbr +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/hbbr.xml b/hbbr.xml new file mode 100644 index 0000000..aa465d3 --- /dev/null +++ b/hbbr.xml @@ -0,0 +1,7 @@ + + + hbbr + RustDesk Relay server + + + \ No newline at end of file diff --git a/hbbs.service b/hbbs.service new file mode 100644 index 0000000..7b9524c --- /dev/null +++ b/hbbs.service @@ -0,0 +1,13 @@ +[Unit] +Description=RustDesk ID/Rendezvous server +After=network.target + +[Service] +Type=simple +WorkingDirectory=/var/lib/rustdesk-server +ExecStart=/usr/bin/hbbs +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/hbbs.xml b/hbbs.xml new file mode 100644 index 0000000..34ab774 --- /dev/null +++ b/hbbs.xml @@ -0,0 +1,10 @@ + + + hbbs + RustDesk ID/Rendezvous server + + + + + + \ No newline at end of file diff --git a/rustdesk-server.spec b/rustdesk-server.spec new file mode 100644 index 0000000..21fcdc9 --- /dev/null +++ b/rustdesk-server.spec @@ -0,0 +1,83 @@ +%global hbb_commit 87b11a7 + +Name: rustdesk-server +Version: 1.1.15 +Release: 1%{?dist} +Summary: RustDesk Server Program + +License: AGPL-3.0-only +URL: https://github.com/rustdesk/rustdesk-server +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Source1: https://github.com/rustdesk/hbb_common/archive/%{hbb_commit}/hbb_common-%{hbb_commit}.tar.gz +Source2: hbbs.xml +Source3: hbbr.xml +Source4: hbbs.service +Source5: hbbr.service + +BuildRequires: cargo +BuildRequires: rust +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: pkgconfig +BuildRequires: openssl-devel +BuildRequires: systemd-rpm-macros +Requires: firewalld-filesystem +%{?systemd_requires} + +%description +RustDesk Server Program. Includes the hbbs (RustDesk ID/Rendezvous server) +and hbbr (RustDesk Relay server) binaries. + +%prep +%autosetup -n %{name}-%{version} + +# Replace the empty hbb_common directory with the submodule source +rm -rf libs/hbb_common/* +tar -xzf %{SOURCE1} -C libs/hbb_common --strip-components=1 + +%build +cargo build --release + +%install +mkdir -p %{buildroot}%{_bindir} +install -m 0755 target/release/hbbs %{buildroot}%{_bindir}/hbbs +install -m 0755 target/release/hbbr %{buildroot}%{_bindir}/hbbr +# Include rustdesk-utils if it exists in the build output +[ -f target/release/rustdesk-utils ] && install -m 0755 target/release/rustdesk-utils %{buildroot}%{_bindir}/rustdesk-utils || : + +# Install firewalld service files +mkdir -p %{buildroot}%{_prefix}/lib/firewalld/services +install -m 0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/firewalld/services/hbbs.xml +install -m 0644 %{SOURCE3} %{buildroot}%{_prefix}/lib/firewalld/services/hbbr.xml + +# Install systemd service files +mkdir -p %{buildroot}%{_unitdir} +install -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/hbbs.service +install -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/hbbr.service + +# Create working directory for keys/database +mkdir -p %{buildroot}%{_sharedstatedir}/%{name} + +%post +%systemd_post hbbs.service hbbr.service + +%preun +%systemd_preun hbbs.service hbbr.service + +%postun +%systemd_postun_with_restart hbbs.service hbbr.service + +%files +%license LICENSE +%doc README.md +%{_bindir}/* +%{_prefix}/lib/firewalld/services/hbbs.xml +%{_prefix}/lib/firewalld/services/hbbr.xml +%{_unitdir}/hbbs.service +%{_unitdir}/hbbr.service +%dir %{_sharedstatedir}/%{name} + +%changelog +* Mon Jan 01 2024 RPM Builder - 1.1.15-1 +- Initial package creation for RHEL and Fedora \ No newline at end of file