fix: stricter command-line parsing

- Add to qvm-run:
  - no-gui when command doesn't require a GUI
  - filter-escape-chars when pass-io is set and output is not a file,
    such as a pipe that could later be used to print information.
- Change remaining echo to printf
- Add end-of-options separator when possible
This commit is contained in:
Ben Grande 2025-01-08 15:52:34 +01:00
parent a02997b89e
commit aea8438904
No known key found for this signature in database
GPG Key ID: 00C64E14F51F9E56
116 changed files with 1136 additions and 648 deletions

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# vim: ft=yaml # vim: ft=yaml
@ -22,7 +22,6 @@ host:
- rpm_spec/qusal-fedora-xfce.spec - rpm_spec/qusal-fedora-xfce.spec
- rpm_spec/qusal-fetcher.spec - rpm_spec/qusal-fetcher.spec
- rpm_spec/qusal-kicksecure-minimal.spec - rpm_spec/qusal-kicksecure-minimal.spec
- rpm_spec/qusal-mail.spec
- rpm_spec/qusal-media.spec - rpm_spec/qusal-media.spec
- rpm_spec/qusal-mgmt.spec - rpm_spec/qusal-mgmt.spec
- rpm_spec/qusal-mirage-builder.spec - rpm_spec/qusal-mirage-builder.spec
@ -44,14 +43,12 @@ host:
- rpm_spec/qusal-sys-gui-vnc.spec - rpm_spec/qusal-sys-gui-vnc.spec
- rpm_spec/qusal-sys-mirage-firewall.spec - rpm_spec/qusal-sys-mirage-firewall.spec
- rpm_spec/qusal-sys-net.spec - rpm_spec/qusal-sys-net.spec
- rpm_spec/qusal-sys-pgp.spec
- rpm_spec/qusal-sys-pihole.spec - rpm_spec/qusal-sys-pihole.spec
- rpm_spec/qusal-sys-print.spec - rpm_spec/qusal-sys-print.spec
- rpm_spec/qusal-sys-rsync.spec - rpm_spec/qusal-sys-rsync.spec
- rpm_spec/qusal-sys-ssh.spec - rpm_spec/qusal-sys-ssh.spec
- rpm_spec/qusal-sys-ssh-agent.spec - rpm_spec/qusal-sys-ssh-agent.spec
- rpm_spec/qusal-sys-syncthing.spec - rpm_spec/qusal-sys-syncthing.spec
- rpm_spec/qusal-sys-tailscale.spec
- rpm_spec/qusal-sys-usb.spec - rpm_spec/qusal-sys-usb.spec
- rpm_spec/qusal-sys-wireguard.spec - rpm_spec/qusal-sys-wireguard.spec
- rpm_spec/qusal-terraform.spec - rpm_spec/qusal-terraform.spec

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# vim: ft=yaml # vim: ft=yaml

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ Install Ansible and use it on the "ansible" app qube.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -107,6 +108,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -55,26 +55,27 @@ Firefox, Firefox-ESR, Mullvad-Browser, W3M or Lynx.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -115,6 +116,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Mon Nov 04 2024 Ben Grande <ben.grande.b@gmail.com> - 076a242
- feat: bump Chrome signing keys
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Jul 19 2024 Ben Grande <ben.grande.b@gmail.com> - f8aa555
- fix: clean Signal and Browser dependencies
* Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a * Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a
- style: limit line length per file extension - style: limit line length per file extension

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -107,6 +108,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -46,26 +46,27 @@ Creates the Debian Xfce Template as well as a Disposable Template based on it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -46,26 +46,27 @@ Creates the Debian template as well as a Disposable Template based on it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -54,26 +54,27 @@ allows.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -116,6 +117,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - f60077f * Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - f60077f
- doc: spell check - doc: spell check

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -47,26 +47,27 @@ Setup docker in Qubes OS with the Docker repository.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -104,6 +105,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ etc.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -107,6 +108,27 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Mon Dec 23 2024 Ben Grande <ben.grande.b@gmail.com> - 972ca1f
- fix: add absent semicolon and stderr redirection
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - a713cef
- fix: stop parse options on double dashes
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - cf43265
- fix: shell syntax typos
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -61,26 +61,27 @@ Configuration and scripts targeting:
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -118,6 +119,27 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Tue Dec 03 2024 Ben Grande <ben.grande.b@gmail.com> - c713bd3
- fix: update dotfiles module
* Mon Oct 14 2024 Ben Grande <ben.grande.b@gmail.com> - 475b81a
- fix: skip edit of files owned by system packages
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - c6582df
- fix: update dotfiles module
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Tue Jul 16 2024 Ben Grande <ben.grande.b@gmail.com> - 43aaaff
- fix: update dotfiles module
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - a36de84
- fix: update dotfiles module
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -63,31 +63,33 @@ usage from ever connecting to the internet.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
## Install ## Install
qubesctl state.apply electrum.create qubesctl state.apply electrum.create
qubesctl --skip-dom0 --targets=sys-bitcoin-gateway state.apply sys-bitcoin.configure-gateway
qubesctl --skip-dom0 --targets=tpl-electrum-builder state.apply electrum.install-builder qubesctl --skip-dom0 --targets=tpl-electrum-builder state.apply electrum.install-builder
qubesctl --skip-dom0 --targets=tpl-electrum state.apply electrum.install qubesctl --skip-dom0 --targets=tpl-electrum state.apply electrum.install
qubesctl --skip-dom0 --targets=disp-electrum-builder state.apply electrum.configure-builder qubesctl --skip-dom0 --targets=disp-electrum-builder state.apply electrum.configure-builder
@ -126,6 +128,21 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Thu Oct 24 2024 Ben Grande <ben.grande.b@gmail.com> - efe0fa6
- fix: depend on Bitcoin Gateway configuration
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - ba3f4ef
- feat: bump Electrum version
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - f60077f * Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - f60077f
- doc: spell check - doc: spell check

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ Matrix account.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -107,6 +108,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -108,6 +109,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a * Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a
- style: limit line length per file extension - style: limit line length per file extension

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -46,26 +46,27 @@ Creates the Fedora Xfce template as well as a Disposable Template based on it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -46,26 +46,27 @@ Creates the Fedora template as well as a Disposable Template based on it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -56,26 +56,27 @@ SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS, WSS, RSYNC, BitTorrent.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -115,6 +116,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - 523bca2 * Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - 523bca2
- fix: conform files to editorconfig specification - fix: conform files to editorconfig specification

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ on it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -106,6 +107,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -66,26 +66,27 @@ causes problems.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -131,6 +132,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -51,26 +51,27 @@ over the network.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Jul 19 2024 Ben Grande <ben.grande.b@gmail.com> - 5d6a50c
- fix: add media appmenus
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -50,26 +50,27 @@ of a qube or for Salt Management on DomUs.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -109,6 +110,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -54,26 +54,27 @@ installed.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -113,6 +114,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ of Terraform.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -106,6 +107,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -59,26 +59,27 @@ and split-ssh-agent will also be installed.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -120,6 +121,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Sep 25 2024 Ben Grande <ben.grande.b@gmail.com> - 656d363
- fix: maintainer key file name
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Aug 09 2024 Ben Grande <ben.grande.b@gmail.com> - 3696a08
- doc: organize Qubes Builder options in a list
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -50,26 +50,27 @@ necessary packages will be installed in the template.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -110,6 +111,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a * Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a
- style: limit line length per file extension - style: limit line length per file extension

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ you prefer to use an app qube, a qube named "remmina" will also be created.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -107,6 +108,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Jul 16 2024 Ben Grande <ben.grande.b@gmail.com> - f5fe973
- fix: add icons to remmina toolbar
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ Install Signal Desktop and creates an app qube named "signal".
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -108,6 +109,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Jul 19 2024 Ben Grande <ben.grande.b@gmail.com> - f8aa555
- fix: clean Signal and Browser dependencies
* Thu Jul 18 2024 Ben Grande <ben.grande.b@gmail.com> - 3b6901b
- fix: remove broken Signal firewall rules
* Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - 523bca2 * Mon Jul 08 2024 Ben Grande <ben.grande.b@gmail.com> - 523bca2
- fix: conform files to editorconfig specification - fix: conform files to editorconfig specification

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -53,26 +53,27 @@ in as a one time connection or to an untrusted host use a DispVM based on
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -51,26 +51,27 @@ the necessary packages for bluetooth with the provided state.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -111,6 +112,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 18 2024 Ben Grande <ben.grande.b@gmail.com> - e00ef42
- fix: remove unnecessary USB proxy for audio client
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - 5043e7b
- fix: correct easyeffects desktop application name
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - 409ac73 * Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - 409ac73
- feat: add appmenus to audio applications - feat: add appmenus to audio applications

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -74,26 +74,27 @@ At least `1TB` of disk space is required. At block `829054` (2024-02-05),
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -137,6 +138,30 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Wed Oct 23 2024 seven beep <ebn@entreparentheses.xyz> - dbcef3d
- fix: Invalid volume size for sys-bitcoin
* Mon Oct 14 2024 Ben Grande <ben.grande.b@gmail.com> - 648bccd
- feat: Bump Bitcoin Core version
* Sun Aug 25 2024 Ben Grande <ben.grande.b@gmail.com> - 0f5309a
- fix: update Ava Chow PGP key
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 2c74ef8
- fix: avoid operand evaluation as argument
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -66,26 +66,27 @@ The caching proxy supports:
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -97,7 +98,7 @@ if test "$1" = "1"; then
qubesctl --skip-dom0 --targets=sys-cacher-browser state.apply sys-cacher.configure-browser qubesctl --skip-dom0 --targets=sys-cacher-browser state.apply sys-cacher.configure-browser
qubesctl state.apply sys-cacher.appmenus,sys-cacher.tag qubesctl state.apply sys-cacher.appmenus,sys-cacher.tag
qubesctl --skip-dom0 --targets="$(qvm-ls --no-spinner --raw-list --tags updatevm-sys-cacher | tr " qubesctl --skip-dom0 --targets="$(qvm-ls --no-spinner --raw-list --tags updatevm-sys-cacher | tr "
" ",")" state.apply sys-cacher.install-client " ",")" state.apply sys-cacher.install-client
elif test "$1" = "2"; then elif test "$1" = "2"; then
## Upgrade ## Upgrade
true true
@ -130,6 +131,24 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 2c74ef8
- fix: avoid operand evaluation as argument
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Thu Jul 25 2024 Ben Grande <ben.grande.b@gmail.com> - 2b7f555
- fix: exclude Whonix qubes by distribution feature
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations
@ -261,21 +280,3 @@ fi
* Wed Jan 31 2024 Ben Grande <ben.grande.b@gmail.com> - b5d7371 * Wed Jan 31 2024 Ben Grande <ben.grande.b@gmail.com> - b5d7371
- fix: thunar requires xfce helpers to find terminal - fix: thunar requires xfce helpers to find terminal
* 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
* Thu Jan 18 2024 Ben Grande <ben.grande.b@gmail.com> - 0887c24
- fix: remove unicode from used files
* Fri Jan 12 2024 Ben Grande <ben.grande.b@gmail.com> - 8d7c0a2
- fix: sys-cacher policy with the new tag name
* Fri Jan 12 2024 Ben Grande <ben.grande.b@gmail.com> - 233ac76
- fix: sys-cacher tag compliance with default tags
* Fri Jan 12 2024 Ben Grande <ben.grande.b@gmail.com> - a97e3c0
- feat: kicksecure minimal template

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -61,31 +61,33 @@ At least `200GB` of disk space is required.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
## Install ## Install
qubesctl state.apply sys-electrs.create qubesctl state.apply sys-electrs.create
qubesctl --skip-dom0 --targets=sys-bitcoin-gateway state.apply sys-bitcoin.configure-gateway
qubesctl --skip-dom0 --targets=tpl-electrs-builder state.apply sys-electrs.install-builder qubesctl --skip-dom0 --targets=tpl-electrs-builder state.apply sys-electrs.install-builder
qubesctl --skip-dom0 --targets=tpl-sys-electrs state.apply sys-electrs.install qubesctl --skip-dom0 --targets=tpl-sys-electrs state.apply sys-electrs.install
qubesctl --skip-dom0 --targets=disp-electrs-builder state.apply sys-electrs.configure-builder qubesctl --skip-dom0 --targets=disp-electrs-builder state.apply sys-electrs.configure-builder
@ -123,6 +125,21 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Thu Oct 24 2024 Ben Grande <ben.grande.b@gmail.com> - efe0fa6
- fix: depend on Bitcoin Gateway configuration
* Mon Sep 30 2024 Ben Grande <ben.grande.b@gmail.com> - 008d961
- feat: bump ElectRS version
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 59a7fd2
- fix: remove deprecated Electrs option
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a * Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a
- style: limit line length per file extension - style: limit line length per file extension

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -61,31 +61,33 @@ At least `200GB` of disk space is required.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
## Install ## Install
qubesctl state.apply sys-electrumx.create qubesctl state.apply sys-electrumx.create
qubesctl --skip-dom0 --targets=sys-bitcoin-gateway state.apply sys-bitcoin.configure-gateway
qubesctl --skip-dom0 --targets=tpl-electrumx-builder state.apply sys-electrumx.install-builder qubesctl --skip-dom0 --targets=tpl-electrumx-builder state.apply sys-electrumx.install-builder
qubesctl --skip-dom0 --targets=tpl-sys-electrumx state.apply sys-electrumx.install qubesctl --skip-dom0 --targets=tpl-sys-electrumx state.apply sys-electrumx.install
qubesctl --skip-dom0 --targets=disp-electrumx-builder state.apply sys-electrumx.configure-builder qubesctl --skip-dom0 --targets=disp-electrumx-builder state.apply sys-electrumx.configure-builder
@ -123,6 +125,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Thu Oct 24 2024 Ben Grande <ben.grande.b@gmail.com> - efe0fa6
- fix: depend on Bitcoin Gateway configuration
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -52,26 +52,27 @@ sys-pihole instead.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -52,26 +52,27 @@ and Init. This is an implementation of split-git.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -111,6 +112,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Mon Oct 14 2024 Ben Grande <ben.grande.b@gmail.com> - 475b81a
- fix: skip edit of files owned by system packages
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,31 +48,32 @@ graphics card (external GPU) and PCI passthrough support.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
## Install ## Install
qubesctl top.enable qvm.sys-gui pillar=True qubesctl top.enable qvm.sys-gui-gpu pillar=True
qubesctl state.apply sys-gui-gpu.create qubesctl state.apply sys-gui-gpu.create
qubesctl --skip-dom0 --targets=tpl-sys-gui state.apply sys-gui-gpu.install qubesctl --skip-dom0 --targets=tpl-sys-gui state.apply sys-gui-gpu.install
qubesctl --skip-dom0 --targets=sys-gui-gpu state.apply sys-gui-gpu.configure qubesctl --skip-dom0 --targets=sys-gui-gpu state.apply sys-gui-gpu.configure
@ -109,6 +110,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Wed Sep 25 2024 Ben Grande <ben.grande.b@gmail.com> - eb5cbe8
- fix: sys-gui-vnc and sys-gui-gpu titles
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296 * Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation - fix: skip YUM weak dependencies installation

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,31 +48,32 @@ administration.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
## Install ## Install
qubesctl top.enable qvm.sys-gui pillar=True qubesctl top.enable qvm.sys-gui-vnc pillar=True
qubesctl state.apply sys-gui-vnc.create qubesctl state.apply sys-gui-vnc.create
qubesctl --skip-dom0 --targets=tpl-sys-gui state.apply sys-gui-vnc.install qubesctl --skip-dom0 --targets=tpl-sys-gui state.apply sys-gui-vnc.install
qubesctl --skip-dom0 --targets=sys-gui-vnc state.apply sys-gui-vnc.configure qubesctl --skip-dom0 --targets=sys-gui-vnc state.apply sys-gui-vnc.configure
@ -109,6 +110,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Wed Sep 25 2024 Ben Grande <ben.grande.b@gmail.com> - eb5cbe8
- fix: sys-gui-vnc and sys-gui-gpu titles
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296 * Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation - fix: skip YUM weak dependencies installation

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ for the GUI domain's graphical server.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -110,4 +111,11 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 18 2024 Ben Grande <ben.grande.b@gmail.com> - 735b324
- feat: add GUI domain formula

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -53,26 +53,27 @@ You can't use Mirage Firewall to be the updatevm, use another qube instead.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -110,6 +111,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Wed Nov 20 2024 Ben Grande <ben.grande.b@gmail.com> - 0508199
- fix: exclude Mirage kernel templates from updates
* Thu Oct 17 2024 Ben Grande <ben.grande.b@gmail.com> - 5370aea
- feat: bump Mirage Firewall version
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 2c74ef8
- fix: avoid operand evaluation as argument
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -55,26 +55,27 @@ the "qubes.UpdatesProxy" service in case no rule matched before.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -114,6 +115,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -51,26 +51,27 @@ and access to them is made from the client through Qrexec.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -58,26 +58,27 @@ to it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -119,6 +120,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -52,26 +52,27 @@ be done over the network or with IPP-over-USB.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -55,26 +55,27 @@ the user.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -114,6 +115,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -61,26 +61,27 @@ only hold the SSH configuration, which can be reconstructed.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -120,6 +121,21 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Thu Jul 25 2024 Ben Grande <ben.grande.b@gmail.com> - e429503
- fix: SSH clients misses Qubes network integration
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -56,26 +56,27 @@ server qube directly.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -114,6 +115,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -54,26 +54,27 @@ accessible externally.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -120,6 +121,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a * Tue Jul 09 2024 Ben Grande <ben.grande.b@gmail.com> - 011a71a
- style: limit line length per file extension - style: limit line length per file extension

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -35,7 +35,8 @@ Requires: qusal-utils
%description %description
Install Tailscale and use it on the "sys-tailscale" or with any other qube you Install Tailscale and use it on the "sys-tailscale" or with any other qube you
want to install. want to install. The "sys-tailscale" qube can provide network for other qubes,
but its clients can only access devices in the tailnet via IP and not via DNS.
%prep %prep
%setup -q %setup -q
@ -47,26 +48,27 @@ want to install.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -105,6 +107,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Mon Dec 23 2024 Ben Grande <ben.grande.b@gmail.com> - 972ca1f
- fix: add absent semicolon and stderr redirection
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Sun Jul 07 2024 Ben Grande <ben.grande.b@gmail.com> - a2fff01 * Sun Jul 07 2024 Ben Grande <ben.grande.b@gmail.com> - a2fff01
- fix: remove unimplemented policy creation - fix: remove unimplemented policy creation

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -47,26 +47,27 @@ the USB controllers to different qubes is possible.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -106,6 +107,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - 5043e7b
- fix: correct easyeffects desktop application name
* Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - 409ac73 * Mon Jul 15 2024 Ben Grande <ben.grande.b@gmail.com> - 409ac73
- feat: add appmenus to audio applications - feat: add appmenus to audio applications

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ other qubes through the VPN with fail closed mechanism.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -108,6 +109,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - bdd4c78
- fix: avoid echo usage
* Tue Aug 06 2024 Ben Grande <ben.grande.b@gmail.com> - 1b2f1ba
- fix: avoid operand evaluation as argument
* Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e * Wed Jul 10 2024 Ben Grande <ben.grande.b@gmail.com> - 224312e
- feat: enable all optional shellcheck validations - feat: enable all optional shellcheck validations

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -47,26 +47,27 @@ Install Terraform and use it on the "terraform" app qube.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -105,6 +106,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ you can base disposable qubes, geared towards USB client usage.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -46,26 +46,27 @@ projects such as macros and common tools to be installed.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -103,6 +104,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Wed Jan 08 2025 Ben Grande <ben.grande.b@gmail.com> - c19997a
- fix: stricter command-line parsing
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -49,26 +49,27 @@ keys.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -108,6 +109,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ access them without compromising the domains.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then
@ -105,6 +106,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies. %dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%changelog %changelog
* Fri Oct 18 2024 Ben Grande <ben.grande.b@gmail.com> - 7a63d5e
- doc: remote support with Qubes Video Companion
* Fri Aug 16 2024 Ben Grande <ben.grande.b@gmail.com> - 56a4296
- fix: skip YUM weak dependencies installation
* Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840 * Thu Jul 04 2024 Ben Grande <ben.grande.b@gmail.com> - 383c840
- doc: lint markdown files - doc: lint markdown files

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -47,26 +47,27 @@ it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -48,26 +48,27 @@ based on it.
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name} cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -45,26 +45,27 @@ Requires: qubes-mgmt-salt-dom0
%pre %pre
%install %install
rm -rf %{buildroot} rm -rf -- %{buildroot}
install -m 755 -d \ install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \ %{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \ %{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name} %{buildroot}%{_defaultlicensedir}/%{name}
for license in $(echo "%{license_csv}" | tr "," " "); do for license in $(printf '%s\n' "%{license_csv}" | tr "," " "); do
license_dir="LICENSES" license_dir="LICENSES"
if test -d "salt/%{project}/LICENSES"; then if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES" license_dir="salt/%{project}/LICENSES"
fi fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/ install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/ install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \ rm -rf -- \
salt/%{project}/LICENSES \ salt/%{project}/LICENSES \
salt/%{project}/README.md \ salt/%{project}/README.md \
salt/%{project}/.* salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}@FILE_ROOTS@/%{name} cp -rv -- salt/%{project} %{buildroot}@FILE_ROOTS@/%{name}
%post %post
if test "$1" = "1"; then if test "$1" = "1"; then

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -65,6 +65,6 @@ features:
"{{ slsdotpath }}-set-default_template": "{{ slsdotpath }}-set-default_template":
cmd.run: cmd.run:
- name: qubes-prefs default_template {{ template.template }} - name: qubes-prefs -- default_template {{ template.template }}
- require: - require:
- sls: {{ template.template_clean }}.clone - sls: {{ template.template_clean }}.clone

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
"remove-{{ full_unused_dir }}": "remove-{{ full_unused_dir }}":
file.absent: file.absent:
- name: {{ full_unused_dir }} - name: {{ full_unused_dir }}
- onlyif: test -z "$(ls -A {{ full_unused_dir }})" - onlyif: test -z "$(ls -A -- {{ full_unused_dir }})"
{% endfor -%} {% endfor -%}
{% endif -%} {% endif -%}

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -9,8 +9,8 @@ set -eu
list_backups(){ list_backups(){
## Hide stderr to hide remote login connection messages (banners etc). ## Hide stderr to hide remote login connection messages (banners etc).
# shellcheck disable=SC2086 # shellcheck disable=SC2086
qvm-run --filter-escape-chars --no-color-output --no-color-stderr \ qvm-run --no-gui --filter-escape-chars --no-color-output --no-color-stderr \
--pass-io "${qube}" -- "${cmd} ${find_cmd} 2>/dev/null" --pass-io -- "${qube}" "${cmd} ${find_cmd} 2>/dev/null"
} }
list_last_backup(){ list_last_backup(){

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -23,7 +23,7 @@ dir="${HOME}/QubesIncoming/${qube}"
user="$(qvm-prefs --get -- "${qube}" default_user)" user="$(qvm-prefs --get -- "${qube}" default_user)"
max_bytes="${UPDATES_MAX_BYTES:-4GiB}" max_bytes="${UPDATES_MAX_BYTES:-4GiB}"
max_files="${UPDATES_MAX_FILES:-2048}" max_files="${UPDATES_MAX_FILES:-2048}"
qvm-run --pass-io --localcmd=" qvm-run --no-gui --pass-io --localcmd="
UPDATES_MAX_BYTES=\"${max_bytes}\" UPDATES_MAX_FILES=\"${max_files}\" UPDATES_MAX_BYTES=\"${max_bytes}\" UPDATES_MAX_FILES=\"${max_files}\"
/usr/libexec/qubes/qfile-dom0-unpacker \"${user}\" \"${dir}\"" \ /usr/libexec/qubes/qfile-dom0-unpacker \"${user}\" \"${dir}\"" \
"${qube}" /usr/lib/qubes/qfile-agent "${@}" -- "${qube}" /usr/lib/qubes/qfile-agent "${@}"

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> ## SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## ##
## SPDX-License-Identifier: AGPL-3.0-or-later ## SPDX-License-Identifier: AGPL-3.0-or-later
@ -13,8 +13,8 @@ usage(){
get_qube_feat(){ get_qube_feat(){
qube="${1}" qube="${1}"
qvm-features "${qube}" | \ qvm-features "${qube}" | \
grep -E -e "^(os-(distribution|version)|template-(release|name))" | \ grep -E -e "^(os-(distribution|version)|template-(release|name))" |
sed -e "s/ / /g;s/ /: /;s/^/ /" awk '{print $1 ": " $2}'
} }
case "${1-}" in case "${1-}" in
@ -23,10 +23,10 @@ case "${1-}" in
*) wanted_qube="${1}";; *) wanted_qube="${1}";;
esac esac
mgmt="$(qubes-prefs management_dispvm)" mgmt="$(qubes-prefs -- management_dispvm)"
printf '%s\n' "GLOBAL" printf '%s\n' "GLOBAL"
printf '%s\n' "management_dispvm: ${mgmt}" printf '%s\n' "management_dispvm: ${mgmt}"
tpl_mgmt="$(qvm-prefs "${mgmt}" template)" tpl_mgmt="$(qvm-prefs -- "${mgmt}" template)"
printf '%s\n' "management_dispvm template: ${tpl_mgmt}" printf '%s\n' "management_dispvm template: ${tpl_mgmt}"
printf '%s\n' "management_dispvm template features:" printf '%s\n' "management_dispvm template features:"
get_qube_feat "${tpl_mgmt}" get_qube_feat "${tpl_mgmt}"
@ -38,19 +38,19 @@ fi
printf '%s\n' "" printf '%s\n' ""
printf '%s\n' "WANTED" printf '%s\n' "WANTED"
printf '%s\n' "qube: ${wanted_qube}" printf '%s\n' "qube: ${wanted_qube}"
class="$(qvm-prefs "${wanted_qube}" klass)" class="$(qvm-prefs -- "${wanted_qube}" klass)"
printf '%s\n' "class: ${class}" printf '%s\n' "class: ${class}"
case "${class}" in case "${class}" in
AppVM) AppVM)
tpl_wanted_qube="$(qvm-prefs "${wanted_qube}" template)" tpl_wanted_qube="$(qvm-prefs -- "${wanted_qube}" template)"
printf '%s\n' "template: ${tpl_wanted_qube}" printf '%s\n' "template: ${tpl_wanted_qube}"
printf '%s\n' "template features:" printf '%s\n' "template features:"
get_qube_feat "${tpl_wanted_qube}" get_qube_feat "${tpl_wanted_qube}"
;; ;;
DispVM) DispVM)
dvm_wanted_qube="$(qvm-prefs "${wanted_qube}" template)" dvm_wanted_qube="$(qvm-prefs -- "${wanted_qube}" template)"
printf '%s\n' "disposable template: ${dvm_wanted_qube}" printf '%s\n' "disposable template: ${dvm_wanted_qube}"
tpl_wanted_qube="$(qvm-prefs "${dvm_wanted_qube}" template)" tpl_wanted_qube="$(qvm-prefs -- "${dvm_wanted_qube}" template)"
printf '%s\n' "template: ${tpl_wanted_qube}" printf '%s\n' "template: ${tpl_wanted_qube}"
printf '%s\n' "template features:" printf '%s\n' "template features:"
get_qube_feat "${tpl_wanted_qube}" get_qube_feat "${tpl_wanted_qube}"
@ -61,12 +61,12 @@ case "${class}" in
;; ;;
*) printf '%s\n' "Unsupported qube class" >&2; exit 1;; *) printf '%s\n' "Unsupported qube class" >&2; exit 1;;
esac esac
wanted_mgmt="$(qvm-prefs "${wanted_qube}" management_dispvm)" wanted_mgmt="$(qvm-prefs -- "${wanted_qube}" management_dispvm)"
printf '%s\n' "${wanted_qube} management_dispvm: ${wanted_mgmt}" printf '%s\n' "management_dispvm: ${wanted_mgmt}"
if test "${wanted_mgmt}" = "${mgmt}"; then if test "${wanted_mgmt}" = "${mgmt}"; then
exit exit
fi fi
wanted_tpl_mgmt="$(qvm-prefs "${wanted_mgmt}" template)" wanted_tpl_mgmt="$(qvm-prefs -- "${wanted_mgmt}" template)"
printf '%s\n' "${wanted_qube} management_dispvm template: ${wanted_tpl_mgmt}" printf '%s\n' "management_dispvm template: ${wanted_tpl_mgmt}"
printf '%s\n' "${wanted_qube} management_dispvm template features:" printf '%s\n' "management_dispvm template features:"
get_qube_feat "${wanted_tpl_mgmt}" get_qube_feat "${wanted_tpl_mgmt}"

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# SPDX-FileCopyrightText: 2017 - 2020 EvaDogStar <evastar@protonmail.com> # SPDX-FileCopyrightText: 2017 - 2020 EvaDogStar <evastar@protonmail.com>
# SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# #
@ -32,15 +32,15 @@ take_screenshot() {
;; ;;
scrot) scrot)
case "${screenshot_type}" in case "${screenshot_type}" in
window) scrot -s -b "${screenshot_file}";; window) scrot -s -b -- "${screenshot_file}";;
fullscreen) scrot -b "${screenshot_file}";; fullscreen) scrot -b -- "${screenshot_file}";;
*) printf '%s\n' "Unsupported screenshot type" >&2; exit 1;; *) printf '%s\n' "Unsupported screenshot type" >&2; exit 1;;
esac esac
;; ;;
maim) maim)
case "${screenshot_type}" in case "${screenshot_type}" in
window) maim -s -o -u "${screenshot_file}";; window) maim -s -o -u -- "${screenshot_file}";;
fullscreen) maim -o -u "${screenshot_file}";; fullscreen) maim -o -u -- "${screenshot_file}";;
*) printf '%s\n' "Unsupported screenshot type" >&2; exit 1;; *) printf '%s\n' "Unsupported screenshot type" >&2; exit 1;;
esac esac
;; ;;
@ -160,8 +160,8 @@ if test -n "${screenshot_cmd_wanted}"; then
msg="wanted screenshot program not found: ${screenshot_cmd_wanted}" msg="wanted screenshot program not found: ${screenshot_cmd_wanted}"
printf '%s\n' "[ERROR] ${msg}" printf '%s\n' "[ERROR] ${msg}"
case "${dialog_cmd}" in case "${dialog_cmd}" in
zenity) zenity --info --text "${msg}";; zenity) zenity --info --text -- "${msg}";;
kdialog) kdialog --msgbox "${msg}";; kdialog) kdialog --msgbox -- "${msg}";;
*) printf '%s\n' "Unsupported dialog command" >&2; exit 1;; *) printf '%s\n' "Unsupported dialog command" >&2; exit 1;;
esac esac
exit 1 exit 1
@ -190,8 +190,8 @@ else
msg="${msg}: spectacle xfce4-screenshooter scrot maim" msg="${msg}: spectacle xfce4-screenshooter scrot maim"
printf '%s\n' "[ERROR] ${msg}" printf '%s\n' "[ERROR] ${msg}"
case "${dialog_cmd}" in case "${dialog_cmd}" in
zenity) zenity --info --text "${msg}";; zenity) zenity --info --text -- "${msg}";;
kdialog) kdialog --msgbox "${msg}";; kdialog) kdialog --msgbox -- "${msg}";;
*) printf '%s\n' "Unsupported dialog command" >&2; exit 1;; *) printf '%s\n' "Unsupported dialog command" >&2; exit 1;;
esac esac
exit 1 exit 1
@ -206,13 +206,13 @@ if test -z "${screenshot_type_text}"; then
screenshot_type_text="$(zenity --list \ screenshot_type_text="$(zenity --list \
--text "${dialog_title}" \ --text "${dialog_title}" \
--radiolist \ --radiolist \
--column "Pick" --column "Mode" \ --column "Pick" --column "Mode" -- \
TRUE "Region or Window" \ TRUE "Region or Window" \
FALSE "Fullscreen" \ FALSE "Fullscreen" \
)" )"
;; ;;
kdialog) kdialog)
screenshot_type_text="$(kdialog --radiolist "${dialog_title}" \ screenshot_type_text="$(kdialog --radiolist "${dialog_title}" -- \
"Region or Window" "Region or Window" off \ "Region or Window" "Region or Window" off \
"Fullscreen" "Fullscreen" off \ "Fullscreen" "Fullscreen" off \
)" )"
@ -231,8 +231,8 @@ if ! test -f "${screenshot_file}"; then
msg="Screenshot was not saved in GuiVM" msg="Screenshot was not saved in GuiVM"
printf '%s\n' "[ERROR] ${msg}" printf '%s\n' "[ERROR] ${msg}"
case "${dialog_cmd}" in case "${dialog_cmd}" in
zenity) zenity --warning --text "${msg}";; zenity) zenity --warning --text -- "${msg}";;
kdialog) kdialog --sorry "${msg}";; kdialog) kdialog --sorry -- "${msg}";;
*) printf '%s\n' "Unsupported dialog command" >&2; exit 1;; *) printf '%s\n' "Unsupported dialog command" >&2; exit 1;;
esac esac
exit 1 exit 1
@ -245,7 +245,7 @@ if test "${screenshot_action_supplied}" != "1"; then
screenshot_action_text="$(zenity --list --width=280 --height=210 \ screenshot_action_text="$(zenity --list --width=280 --height=210 \
--text "${dialog_title}" \ --text "${dialog_title}" \
--separator="\n" \ --separator="\n" \
--checklist --column "Pick" --column "Resolution" \ --checklist --column "Pick" --column "Resolution" -- \
FALSE "Exit" \ FALSE "Exit" \
FALSE "Open file manager in qube" \ FALSE "Open file manager in qube" \
FALSE "Move file" FALSE "Move file"
@ -253,7 +253,7 @@ if test "${screenshot_action_supplied}" != "1"; then
;; ;;
kdialog) kdialog)
screenshot_action_text="$(kdialog --checklist "${dialog_title}" \ screenshot_action_text="$(kdialog --checklist "${dialog_title}" \
--separate-output \ --separate-output -- \
"Exit" "Exit" off \ "Exit" "Exit" off \
"Open file manager in qube" "Open file manager in qube" off \ "Open file manager in qube" "Open file manager in qube" off \
"Move file" "Move file" off "Move file" "Move file" off
@ -297,13 +297,13 @@ if test -z "${qube}"; then
# shellcheck disable=SC2086 # shellcheck disable=SC2086
qube="$(zenity --list --width=200 --height=390 \ qube="$(zenity --list --width=200 --height=390 \
--text "${dialog_title}" \ --text "${dialog_title}" \
--radiolist --column "Pick" --column "qube" ${qube_list})" --radiolist --column "Pick" --column "qube" -- ${qube_list})"
;; ;;
kdialog) kdialog)
qube_list="$(printf '%s\n' "${qube_list}" | \ qube_list="$(printf '%s\n' "${qube_list}" | \
sed -e "s/\(.*\)/\1 \1 off/")" sed -e "s/\(.*\)/\1 \1 off/")"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
qube="$(kdialog --radiolist "${dialog_title}" ${qube_list})" qube="$(kdialog --radiolist "${dialog_title}" -- ${qube_list})"
;; ;;
*) printf '%s\n' "Unsupported dialog command" >&2; exit 1;; *) printf '%s\n' "Unsupported dialog command" >&2; exit 1;;
esac esac
@ -311,8 +311,8 @@ if test -z "${qube}"; then
msg="qube was not selected" msg="qube was not selected"
printf '%s\n' "[ERROR] ${msg}" printf '%s\n' "[ERROR] ${msg}"
case "${dialog_cmd}" in case "${dialog_cmd}" in
zenity) zenity --error --text "${msg}";; zenity) zenity --error --text -- "${msg}";;
kdialog) kdialog --error "${msg}";; kdialog) kdialog --error -- "${msg}";;
*) printf '%s\n' "Unsupported dialog command" >&2; exit 1;; *) printf '%s\n' "Unsupported dialog command" >&2; exit 1;;
esac esac
exit 1 exit 1
@ -323,21 +323,21 @@ if ! qvm-check -- "${qube}" >/dev/null 2>&1; then
msg="qube doesn't exist: ${qube}" msg="qube doesn't exist: ${qube}"
printf '%s\n' "[ERROR] ${msg}" printf '%s\n' "[ERROR] ${msg}"
case "${dialog_cmd}" in case "${dialog_cmd}" in
zenity) zenity --error --text "${msg}";; zenity) zenity --error --text -- "${msg}";;
kdialog) kdialog --error "${msg}";; kdialog) kdialog --error -- "${msg}";;
*) printf '%s\n' "Unsupported dialog command" >&2; exit 1;; *) printf '%s\n' "Unsupported dialog command" >&2; exit 1;;
esac esac
exit 1 exit 1
fi fi
qvm-run "${qube}" -- "mkdir -p -- \"${qube_pictures_dir}\"" qvm-run --no-gui -- "${qube}" "mkdir -p -- \"${qube_pictures_dir}\""
qvm-run --pass-io "${qube}" -- "cat > \"${qube_screenshot_file}\"" \ qvm-run --no-gui --pass-io -- "${qube}" \
< "${screenshot_file}" "cat -- > \"${qube_screenshot_file}\"" < "${screenshot_file}"
if test "${file_move}" = "1"; then if test "${file_move}" = "1"; then
rm -f -- "${screenshot_file}" rm -f -- "${screenshot_file}"
fi fi
if test "${file_manager}" = "1"; then if test "${file_manager}" = "1"; then
qvm-run "${qube}" -- "xdg-open \"${qube_pictures_dir}\"" qvm-run --no-gui -- "${qube}" "xdg-open \"${qube_pictures_dir}\""
fi fi

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -8,30 +8,58 @@ set -eu
me="${0##*/}" me="${0##*/}"
msg(){
printf '%s\n' "${0##*/}: ${*}" >&2
}
usage(){ usage(){
printf '%s\n' "Usage: ${me} [QVM-RUN_OPTIONS] <QUBE> msg "Usage: ${me} [QVM-RUN_OPTIONS] <QUBE>
Examples: Examples:
${me} --dispvm=<DVM_TEMPLATE> ${me} --dispvm=<DVM_TEMPLATE>
${me} -u root <QUBE> ${me} -u root <QUBE>
${me} <QUBE> ${me} <QUBE>
The application to open can be specified with environment variables: The desktop application can be specified with environment variable:"
QVM_TERMINAL=xterm ${me} -u root <QUBE> case "${me}" in
QVM_FILE_MANAGER=thunar ${me} -u root <QUBE>" >&2 *-terminal)
msg " QVM_TERMINAL=xterm ${me} -u root <QUBE>"
;;
*-file-manager)
msg " QVM_FILE_MANAGER=thunar ${me} -u root <QUBE>"
;;
*) ;;
esac
exit "${1-"1"}" exit "${1-"1"}"
} }
check_xtools(){
fail=0
if ! command -v xdotool >/dev/null; then
msg "missing program: xdotool"
fail=1
fi
if ! command -v xprop >/dev/null; then
msg "missing program: xprop"
fail=1
fi
if test "${fail}" = "1"; then
msg "cannot determine qube by window, install missing programs or"
msg "provide the qube name by argument"
exit 1
fi
}
case "${me}" in case "${me}" in
*-terminal) service="${QVM_TERMINAL:-"qubes-run-terminal"}";; *-terminal) service="${QVM_TERMINAL:-"qubes-run-terminal"}";;
*-file-manager) service="${QVM_FILE_MANAGER:-"qubes-open-file-manager"}";; *-file-manager) service="${QVM_FILE_MANAGER:-"qubes-open-file-manager"}";;
*) printf '%s\n' "Invalid script name: ${me}" >&2; exit 1 ;; *) msg "Invalid script name: ${me}"; exit 1 ;;
esac esac
case "${1-}" in case "${1-}" in
-h|--help) -h|--help)
usage 1 usage 1
;; ;;
"") "")
check_xtools
## Try to run on focused window, if Dom0 is focused, it will prompt you to ## Try to run on focused window, if Dom0 is focused, it will prompt you to
## select a qube window. ## select a qube window.
id="$(xdotool getwindowfocus)" id="$(xdotool getwindowfocus)"

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> ## SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## ##
## SPDX-License-Identifier: AGPL-3.0-or-later ## SPDX-License-Identifier: AGPL-3.0-or-later
@ -13,5 +13,6 @@ set -eu
qube="${1}" qube="${1}"
dnf_min_install="dnf -q install --refresh -y --setopt=install_weak_deps=False" dnf_min_install="dnf -q install --refresh -y --setopt=install_weak_deps=False"
qvm-run --user=root --pass-io --filter-escape-chars --no-color-output \ qvm-run --no-gui --user=root --pass-io --filter-escape-chars \
--no-color-stderr "${qube}" -- "${dnf_min_install} python3-urllib3" --no-color-output --no-color-stderr -- "${qube}" \
"${dnf_min_install} python3-urllib3"

View File

@ -1,12 +1,12 @@
#!/bin/sh #!/bin/sh
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> ## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## ##
## SPDX-License-Identifier: AGPL-3.0-or-later ## SPDX-License-Identifier: AGPL-3.0-or-later
umask 077 umask 077
inbox_dir="${HOME}/mail/INBOX" inbox_dir="${HOME}/mail/INBOX"
uid="$(id -u user)" uid="$(id -u -- user)"
# shellcheck disable=SC2174 # shellcheck disable=SC2174
mkdir -p -- "${inbox_dir}" mkdir -p -- "${inbox_dir}"

View File

@ -1,12 +1,12 @@
#!/bin/sh #!/bin/sh
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> ## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## ##
## SPDX-License-Identifier: AGPL-3.0-or-later ## SPDX-License-Identifier: AGPL-3.0-or-later
umask 077 umask 077
queue_dir="${MSMTP_Q:-"${Q:-"${HOME}/.msmtp.queue"}"}" queue_dir="${MSMTP_Q:-"${Q:-"${HOME}/.msmtp.queue"}"}"
uid="$(id -u user)" uid="$(id -u -- user)"
# shellcheck disable=SC2174 # shellcheck disable=SC2174
mkdir -p -- "${queue_dir}" mkdir -p -- "${queue_dir}"

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -11,7 +11,7 @@ include:
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-install-salt-deps" - cmd: "{{ slsdotpath }}-install-salt-deps"
- name: qubes-prefs management_dispvm dvm-{{ slsdotpath }} - name: qubes-prefs -- management_dispvm dvm-{{ slsdotpath }}
"{{ slsdotpath }}-set-tpl-{{ slsdotpath }}-management_dispvm-to-default": "{{ slsdotpath }}-set-tpl-{{ slsdotpath }}-management_dispvm-to-default":
qvm.vm: qvm.vm:

View File

@ -1,6 +1,6 @@
{# {#
SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org> SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org>
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -57,6 +57,6 @@ features:
"{{ slsdotpath }}-set-default_dispvm": "{{ slsdotpath }}-set-default_dispvm":
cmd.run: cmd.run:
- name: qubes-prefs default_dispvm dvm-{{ slsdotpath }} - name: qubes-prefs -- default_dispvm dvm-{{ slsdotpath }}
- require: - require:
- qvm: dvm-{{ slsdotpath }} - qvm: dvm-{{ slsdotpath }}

View File

@ -151,7 +151,7 @@ qvm-usb list disp-sys-usb
If you haven't identified the device, run `lsusb` in the USB stack server: If you haven't identified the device, run `lsusb` in the USB stack server:
```sh ```sh
qvm-run -p disp-sys-usb -- lsusb qvm-run --no-gui -p disp-sys-usb -- lsusb
``` ```
Permanently attach the Bluetooth controller to the AudioVM (change `DEVID` for Permanently attach the Bluetooth controller to the AudioVM (change `DEVID` for

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -102,7 +102,7 @@ tags:
cmd.run: cmd.run:
- require: - require:
- qvm: disp-{{ slsdotpath }} - qvm: disp-{{ slsdotpath }}
- name: qubes-prefs default_audiovm disp-{{ slsdotpath }} - name: qubes-prefs -- default_audiovm disp-{{ slsdotpath }}
{% from 'utils/macros/policy.sls' import policy_set with context -%} {% from 'utils/macros/policy.sls' import policy_set with context -%}
{{ policy_set(sls_path, '80') }} {{ policy_set(sls_path, '80') }}

View File

@ -128,7 +128,7 @@ you just need to reduce the memory available to the `sys-bitcoin` qube. From
`dom0`, run: `dom0`, run:
```sh ```sh
qvm-prefs sys-bitcoin memory 1000 qvm-prefs -- sys-bitcoin memory 1000
``` ```
### Bitcoin Core GUI ### Bitcoin Core GUI

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> ## SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## ##
## SPDX-License-Identifier: AGPL-3.0-or-later ## SPDX-License-Identifier: AGPL-3.0-or-later
@ -80,7 +80,7 @@ gettxout(){
| tr -d '\n' \ | tr -d '\n' \
| cut -c 17-368600 \ | cut -c 17-368600 \
| xxd -r -p \ | xxd -r -p \
| tee "${output_file}" >/dev/null | tee -- "${output_file}" >/dev/null
} }
usage(){ usage(){

View File

@ -117,7 +117,7 @@ setting `sys-cacher` as the netvm of the client qube.
Set `sys-cacher` as the netvm of your qube: Set `sys-cacher` as the netvm of your qube:
```sh ```sh
qvm-prefs QUBE netvm sys-cacher qvm-prefs -- QUBE netvm sys-cacher
``` ```
Enable the service `netvm-cacher`: Enable the service `netvm-cacher`:
@ -157,7 +157,7 @@ lose the current session:
qvm-tags QUBE add updatevm-sys-cacher qvm-tags QUBE add updatevm-sys-cacher
qvm-features QUBE service.updates-proxy-setup 1 qvm-features QUBE service.updates-proxy-setup 1
sudo qubesctl --skip-dom0 --targets=QUBE state.apply sys-cacher.install-client sudo qubesctl --skip-dom0 --targets=QUBE state.apply sys-cacher.install-client
qvm-run --user=root QUBE -- " qvm-run --no-gui --user=root -- QUBE "
touch -- /var/run/qubes-service/updates-proxy-setup touch -- /var/run/qubes-service/updates-proxy-setup
/usr/bin/apt-cacher-ng-repo /usr/bin/apt-cacher-ng-repo
systemctl restart qubes-updates-proxy-forwarder.socket" systemctl restart qubes-updates-proxy-forwarder.socket"

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -7,4 +7,4 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{% set extraneous = salt['cmd.script']('salt://' ~ slsdotpath ~ '/files/admin/tag.py', args='--extraneous') -%} {% set extraneous = salt['cmd.script']('salt://' ~ slsdotpath ~ '/files/admin/tag.py', args='--extraneous') -%}
"{{ slsdotpath }}-list-extra-tag": "{{ slsdotpath }}-list-extra-tag":
cmd.run: cmd.run:
- name: echo {{ extraneous.stdout.split("\n") }} - name: printf '%s\n' {{ extraneous.stdout.split("\n") }}

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -7,8 +7,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{%- from "qvm/template.jinja" import load -%} {%- from "qvm/template.jinja" import load -%}
# Use the netvm of the default_netvm. # Use the netvm of the default_netvm.
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%} {% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_netvm') -%}
{% set netvm = salt['cmd.shell']('qvm-prefs ' + default_netvm + ' netvm') -%} {% set netvm = salt['cmd.shell']('qvm-prefs -- ' + default_netvm + ' netvm') -%}
# If netvm is empty, user's default_netvm is the uplink (sys-net). # If netvm is empty, user's default_netvm is the uplink (sys-net).
{% if netvm == '' %} {% if netvm == '' %}
{% set netvm = default_netvm %} {% set netvm = default_netvm %}
@ -119,7 +119,7 @@ features:
## Anticipate network usage as sys-firewall is turned off at this step. ## Anticipate network usage as sys-firewall is turned off at this step.
## Starting the machine before let's the network be established with enough ## Starting the machine before let's the network be established with enough
## time for the package installation in the template to work. ## time for the package installation in the template to work.
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%} {% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_netvm') -%}
{% if default_netvm -%} {% if default_netvm -%}
"{{ slsdotpath }}-start-{{ default_netvm }}-anticipate-network-use": "{{ slsdotpath }}-start-{{ default_netvm }}-anticipate-network-use":
qvm.start: qvm.start:

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{% set qube = 'disp-' ~ slsdotpath -%} {% set qube = 'disp-' ~ slsdotpath -%}
{% set running = 0 -%} {% set running = 0 -%}
{% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running ' ~ qube) == qube -%} {% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running -- ' ~ qube) == qube -%}
{% set running = 1 -%} {% set running = 1 -%}
{% endif -%} {% endif -%}
@ -19,19 +19,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run: cmd.run:
- require: - require:
- qvm: {{ qube }}-start - qvm: {{ qube }}-start
- name: qubes-prefs updatevm {{ qube }} - name: qubes-prefs -- updatevm {{ qube }}
"{{ qube }}-qubes-prefs-default_netvm": "{{ qube }}-qubes-prefs-default_netvm":
cmd.run: cmd.run:
- require: - require:
- qvm: {{ qube }}-start - qvm: {{ qube }}-start
- name: qubes-prefs default_netvm {{ qube }} - name: qubes-prefs -- default_netvm {{ qube }}
"{{ qube }}-qubes-prefs-clockvm": "{{ qube }}-qubes-prefs-clockvm":
cmd.run: cmd.run:
- require: - require:
- qvm: {{ qube }}-start - qvm: {{ qube }}-start
- name: qubes-prefs clockvm {{ qube }} - name: qubes-prefs -- clockvm {{ qube }}
{% if running == 0 -%} {% if running == 0 -%}
"{{ qube }}-shutdown": "{{ qube }}-shutdown":

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{% set qube = slsdotpath -%} {% set qube = slsdotpath -%}
{% set running = 0 -%} {% set running = 0 -%}
{% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running ' ~ qube) == qube -%} {% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running -- ' ~ qube) == qube -%}
{% set running = 1 -%} {% set running = 1 -%}
{% endif -%} {% endif -%}
@ -19,19 +19,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run: cmd.run:
- require: - require:
- qvm: {{ qube }}-start - qvm: {{ qube }}-start
- name: qubes-prefs updatevm {{ qube }} - name: qubes-prefs -- updatevm {{ qube }}
"{{ qube }}-qubes-prefs-default_netvm": "{{ qube }}-qubes-prefs-default_netvm":
cmd.run: cmd.run:
- require: - require:
- qvm: {{ qube }}-start - qvm: {{ qube }}-start
- name: qubes-prefs default_netvm {{ qube }} - name: qubes-prefs -- default_netvm {{ qube }}
"{{ qube }}-qubes-prefs-clockvm": "{{ qube }}-qubes-prefs-clockvm":
cmd.run: cmd.run:
- require: - require:
- qvm: {{ qube }}-start - qvm: {{ qube }}-start
- name: qubes-prefs clockvm {{ qube }} - name: qubes-prefs -- clockvm {{ qube }}
{% if running == 0 -%} {% if running == 0 -%}
"{{ qube }}-shutdown": "{{ qube }}-shutdown":

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -16,4 +16,4 @@ include:
cmd.run: cmd.run:
- require: - require:
- qvm: "{{ slsdotpath }}-gpu-autostart" - qvm: "{{ slsdotpath }}-gpu-autostart"
- name: qubes-prefs default_guivm {{ slsdotpath }}-gpu - name: qubes-prefs -- default_guivm {{ slsdotpath }}-gpu

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -13,4 +13,4 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run: cmd.run:
- require: - require:
- qvm: "{{ slsdotpath }}-vnc-autostart" - qvm: "{{ slsdotpath }}-vnc-autostart"
- name: qubes-prefs default_guivm {{ slsdotpath }}-vnc - name: qubes-prefs -- default_guivm {{ slsdotpath }}-vnc

View File

@ -1,9 +1,9 @@
{# {#
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
"{{ slsdotpath }}-revert-default_guivm-to-dom0": "{{ slsdotpath }}-revert-default_guivm-to-dom0":
cmd.run: cmd.run:
- name: qubes-prefs default_guivm dom0 - name: qubes-prefs -- default_guivm dom0

View File

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -13,4 +13,4 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run: cmd.run:
- require: - require:
- qvm: "{{ slsdotpath }}-autostart" - qvm: "{{ slsdotpath }}-autostart"
- name: qubes-prefs default_guivm {{ slsdotpath }} - name: qubes-prefs -- default_guivm {{ slsdotpath }}

View File

@ -44,12 +44,19 @@ sudo qubesctl state.apply sys-mirage-firewall.create
<!-- pkg:end:post-install --> <!-- pkg:end:post-install -->
It will emit the following warning:
> [WARNING ] source_hash is only used with 'http', 'https' or 'ftp'
The warning is [outdated](https://github.com/saltstack/salt/issues/66976) and
checksums are checked.
## Usage ## Usage
Set qubes `netvm` to `disp-sys-mirage-firewall`: Set qubes `netvm` to `disp-sys-mirage-firewall`:
```sh ```sh
qvm-prefs --set QUBE netvm disp-sys-mirage-firewall qvm-prefs --set -- QUBE netvm disp-sys-mirage-firewall
``` ```
To test the firewall, apply rules with `qvm-firewall`. To test the firewall, apply rules with `qvm-firewall`.

View File

@ -1,20 +1,20 @@
#!/bin/sh #!/bin/sh
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> ## SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## ##
## SPDX-License-Identifier: AGPL-3.0-or-later ## SPDX-License-Identifier: AGPL-3.0-or-later
set -eu set -eu
updatevm="$(qubes-prefs updatevm)" updatevm="$(qubes-prefs -- updatevm)"
updatevm_class="$(qvm-prefs "${updatevm}" klass)" updatevm_class="$(qvm-prefs -- "${updatevm}" klass)"
proxy_target="" proxy_target=""
case "${updatevm_class}" in case "${updatevm_class}" in
StandaloneVM) proxy_target="${updatevm}";; StandaloneVM) proxy_target="${updatevm}";;
AppVM) proxy_target="$(qvm-prefs "${updatevm}" template)";; AppVM) proxy_target="$(qvm-prefs -- "${updatevm}" template)";;
DispVM) DispVM)
proxy_target="$(qvm-prefs "${updatevm}" template)" proxy_target="$(qvm-prefs -- "${updatevm}" template)"
proxy_target="$(qvm-prefs "${proxy_target}" template)" proxy_target="$(qvm-prefs -- "${proxy_target}" template)"
;; ;;
*) printf '%s\n' "Unsupported qube class" >&2; exit 1;; *) printf '%s\n' "Unsupported qube class" >&2; exit 1;;
esac esac

View File

@ -1,14 +1,14 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
{% set netvm = 'disp-' ~ slsdotpath -%} {% set netvm = 'disp-' ~ slsdotpath -%}
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%} {% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_netvm') -%}
{% set running = 0 -%} {% set running = 0 -%}
{% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running ' ~ default_netvm) == default_netvm -%} {% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running -- ' ~ default_netvm) == default_netvm -%}
{% set running = 1 -%} {% set running = 1 -%}
{% endif -%} {% endif -%}
@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
- wait - wait
- force - force
{% set default_netvm_netvm = salt['cmd.shell']('qvm-prefs ' ~ default_netvm ~ ' netvm') -%} {% set default_netvm_netvm = salt['cmd.shell']('qvm-prefs -- ' ~ default_netvm ~ ' netvm') -%}
{% if default_netvm_netvm -%} {% if default_netvm_netvm -%}
"{{ slsdotpath }}-{{ default_netvm_netvm }}-shutdown": "{{ slsdotpath }}-{{ default_netvm_netvm }}-shutdown":
qvm.shutdown: qvm.shutdown:

View File

@ -1,15 +1,14 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
{% set netvm = slsdotpath -%} {% set netvm = slsdotpath -%}
{% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_netvm') -%}
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%}
{% set running = 0 -%} {% set running = 0 -%}
{% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running ' ~ default_netvm) == default_netvm -%} {% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running -- ' ~ default_netvm) == default_netvm -%}
{% set running = 1 -%} {% set running = 1 -%}
{% endif -%} {% endif -%}
@ -20,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
- wait - wait
- force - force
{% set default_netvm_netvm = salt['cmd.shell']('qvm-prefs ' ~ default_netvm ~ ' netvm') -%} {% set default_netvm_netvm = salt['cmd.shell']('qvm-prefs -- ' ~ default_netvm ~ ' netvm') -%}
{% if default_netvm_netvm -%} {% if default_netvm_netvm -%}
"{{ slsdotpath }}-{{ default_netvm_netvm }}-shutdown": "{{ slsdotpath }}-{{ default_netvm_netvm }}-shutdown":
qvm.shutdown: qvm.shutdown:

View File

@ -1,6 +1,6 @@
{# {#
SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org> SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org>
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -10,8 +10,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{%- import "debian-minimal/template.jinja" as template -%} {%- import "debian-minimal/template.jinja" as template -%}
{# Use the netvm of the default_netvm. #} {# Use the netvm of the default_netvm. #}
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%} {% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_netvm') -%}
{% set netvm = salt['cmd.shell']('qvm-prefs ' + default_netvm + ' netvm') -%} {% set netvm = salt['cmd.shell']('qvm-prefs -- ' + default_netvm + ' netvm') -%}
{# {#
If netvm of default_netvm is empty, user's default_netvm is the first in If netvm of default_netvm is empty, user's default_netvm is the first in
the chain (sys-net). the chain (sys-net).

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org> # SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org>
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
@ -13,9 +13,9 @@ for qube in $(qvm-ls --raw-data --fields=NAME,NETVM |
do do
## Avoid overwriting netvm to sys-pihole when instead it should use the ## Avoid overwriting netvm to sys-pihole when instead it should use the
## default_netvm, so better to prevent overwriting user choices. ## default_netvm, so better to prevent overwriting user choices.
qvm-prefs "${qube}" | grep -q -e "^netvm[[:space:]]\+D" && continue qvm-prefs -- "${qube}" | grep -q -e "^netvm[[:space:]]\+D" && continue
## Set netvm for qubes that were using (disp-)sys-firewall to sys-pihole. ## Set netvm for qubes that were using (disp-)sys-firewall to sys-pihole.
qvm-prefs "${qube}" netvm sys-pihole qvm-prefs -- "${qube}" netvm sys-pihole
done done
exit 0 exit 0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,18 +1,24 @@
#!/bin/sh #!/bin/sh
# SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org> # SPDX-FileCopyrightText: 2022 - 2023 unman <unman@thirdeyesecurity.org>
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
set -eu set -eu
state="${1}"
vif="${2}"
vif_type="${3}"
nft -f /rw/config/qubes-firewall.d/50-sys-pihole nft -f /rw/config/qubes-firewall.d/50-sys-pihole
for vif in /proc/sys/net/ipv4/conf/vif*/route_localnet; do if test "${state}" = "online" && test "${vif_type}" = "vif"; then
test -w "${vif}" || continue vif_localnet="/proc/sys/net/ipv4/conf/${vif}/route_localnet"
echo 1 | tee -- "${vif}" >/dev/null if test -w "${vif_localnet}"; then
done printf '%s\n' 1 | tee -- "${vif_localnet}" >/dev/null
fi
fi
if test -f /var/run/qubes-service/local-dns-server; then if test -f /var/run/qubes-service/local-dns-server; then
printf '%s\n' "nameserver 127.0.0.1" | tee -- /etc/resolv.conf >/dev/null printf '%s\n' "nameserver 127.0.0.1" | tee -- /etc/resolv.conf >/dev/null

View File

@ -1,12 +1,12 @@
{# {#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
{% set qube = 'sys-pihole' -%} {% set qube = 'sys-pihole' -%}
{% set running = 0 -%} {% set running = 0 -%}
{% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running ' ~ qube) == qube -%} {% if salt['cmd.shell']('qvm-ls --no-spinner --raw-list --running -- ' ~ qube) == qube -%}
{% set running = 1 -%} {% set running = 1 -%}
{% endif -%} {% endif -%}
@ -23,19 +23,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run: cmd.run:
- require: - require:
- qvm: "{{ slsdotpath }}-start" - qvm: "{{ slsdotpath }}-start"
- name: qubes-prefs clockvm {{ slsdotpath }} - name: qubes-prefs -- clockvm {{ slsdotpath }}
"{{ slsdotpath }}-qubes-prefs-updatevm": "{{ slsdotpath }}-qubes-prefs-updatevm":
cmd.run: cmd.run:
- require: - require:
- qvm: "{{ slsdotpath }}-start" - qvm: "{{ slsdotpath }}-start"
- name: qubes-prefs updatevm {{ slsdotpath }} - name: qubes-prefs -- updatevm {{ slsdotpath }}
"{{ slsdotpath }}-qubes-prefs-default_netvm": "{{ slsdotpath }}-qubes-prefs-default_netvm":
cmd.run: cmd.run:
- require: - require:
- qvm: "{{ slsdotpath }}-start" - qvm: "{{ slsdotpath }}-start"
- name: qubes-prefs default_netvm {{ slsdotpath }} - name: qubes-prefs -- default_netvm {{ slsdotpath }}
{% if running == 0 -%} {% if running == 0 -%}
"{{ slsdotpath }}-shutdown": "{{ slsdotpath }}-shutdown":

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com # SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later

Some files were not shown because too many files have changed in this diff Show More