# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # # SPDX-License-Identifier: AGPL-3.0-or-later ## Reproducibility. %define source_date_epoch_from_changelog 1 %define use_source_date_epoch_as_buildtime 1 %define clamp_mtime_to_source_date_epoch 1 # Changelog is trimmed according to current date, not last date from changelog. %define _changelog_trimtime 0 %define _changelog_trimage 0 %global _buildhost %{name} # Python bytecode interferes when updates occur and restart is not done. %undefine __brp_python_bytecompile Name: qusal-sys-ssh Version: 0.0.1 Release: 1%{?dist} Summary: SSH over Qrexec in Qubes OS Group: qusal Packager: Ben Grande Vendor: Ben Grande License: AGPL-3.0-or-later URL: https://github.com/ben-grande/qusal BugURL: https://github.com/ben-grande/qusal/issues Source0: %{name}-%{version}.tar.gz BuildArch: noarch Requires: qubes-mgmt-salt Requires: qubes-mgmt-salt-dom0 Requires: qusal-dev Requires: qusal-sys-ssh-agent Requires: qusal-utils %description Creates a SSH server qube named "sys-ssh" to be a central document store to which other qubes have access with SSH File Transfer Protocol, using the tool sshfs. This is a simple tool that allows individual qubes to mount a another qube's filesystem rather than using `qvm-copy` or `qvm-move`. The greatest problem with the Rsync solution is that it makes copies of the files or directories. This may be fine with a small amount of data, but with large files, or large numbers of files, there's a significant overhead. SSH File Transfer Protocol provides a way for clients to access files on the server qube directly. %prep %setup -q %build %install rm -rf %{buildroot} install -m 755 -d \ %{buildroot}/srv/salt/qusal \ %{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_defaultlicensedir}/%{name} install -m 644 %{name}/LICENSES/* %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 %{name}/README.md %{buildroot}%{_docdir}/%{name}/ rm -rv %{name}/LICENSES %{name}/README.md cp -rv %{name} %{buildroot}/srv/salt/qusal/%{name} %check %dnl %pre %post if test "$1" = "1"; then ## Install qubesctl state.apply sys-ssh.create qubesctl --skip-dom0 --targets=tpl-sys-ssh state.apply sys-ssh.install qubesctl --skip-dom0 --targets=sys-ssh state.apply sys-ssh.configure elif test "$1" = "2"; then ## Upgrade true fi %preun if test "$1" = "0"; then ## Uninstall true elif test "$1" = "1"; then ## Upgrade true fi %postun if test "$1" = "0"; then ## Uninstall true elif test "$1" = "1"; then ## Upgrade true fi %files %defattr(-,root,root,-) %license %{_defaultlicensedir}/%{name}/* %doc %{_docdir}/%{name}/README.md %dir /srv/salt/qusal/%{name} /srv/salt/qusal/%{name}/* %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %changelog * Wed Jun 19 2024 Ben Grande <ben.grande.b@gmail.com> - 97b2496 - fix: start service after Qubes Service setup * Tue May 28 2024 Ben Grande <ben.grande.b@gmail.com> - 44ea4c5 - feat: add manual page reader * Mon Mar 18 2024 Ben Grande <ben.grande.b@gmail.com> - f9ead06 - fix: remove extraneous package repository updates * Fri Feb 23 2024 Ben Grande <ben.grande.b@gmail.com> - 5605ec7 - doc: prefix qubesctl with sudo * Mon Jan 29 2024 Ben Grande <ben.grande.b@gmail.com> - 6efcc1d - chore: copyright update * Sat Jan 20 2024 Ben Grande <ben.grande.b@gmail.com> - 422b01e - feat: remove audiovm setting when unnecessary * Sun Dec 31 2023 Ben Grande <ben.grande.b@gmail.com> - e2c24ec - style: client state ID must conform to order * Wed Dec 27 2023 Ben Grande <ben.grande.b@gmail.com> - 76079d2 - fix: wrong source paths * Tue Dec 19 2023 Ben Grande <ben.grande.b@gmail.com> - b4d142b - refactor: move appended states to drop-in rc.local * Mon Nov 13 2023 Ben Grande <ben.grande.b@gmail.com> - 963e72c - chore: Fix unman copyright contact * Mon Nov 13 2023 Ben Grande <ben.grande.b@gmail.com> - 5eebd78 - refactor: initial commit