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
# vim: ft=yaml
@ -22,7 +22,6 @@ host:
- rpm_spec/qusal-fedora-xfce.spec
- rpm_spec/qusal-fetcher.spec
- rpm_spec/qusal-kicksecure-minimal.spec
- rpm_spec/qusal-mail.spec
- rpm_spec/qusal-media.spec
- rpm_spec/qusal-mgmt.spec
- rpm_spec/qusal-mirage-builder.spec
@ -44,14 +43,12 @@ host:
- rpm_spec/qusal-sys-gui-vnc.spec
- rpm_spec/qusal-sys-mirage-firewall.spec
- rpm_spec/qusal-sys-net.spec
- rpm_spec/qusal-sys-pgp.spec
- rpm_spec/qusal-sys-pihole.spec
- rpm_spec/qusal-sys-print.spec
- rpm_spec/qusal-sys-rsync.spec
- rpm_spec/qusal-sys-ssh.spec
- rpm_spec/qusal-sys-ssh-agent.spec
- rpm_spec/qusal-sys-syncthing.spec
- rpm_spec/qusal-sys-tailscale.spec
- rpm_spec/qusal-sys-usb.spec
- rpm_spec/qusal-sys-wireguard.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
# 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
@ -49,26 +49,27 @@ Install Ansible and use it on the "ansible" app qube.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -107,6 +108,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -55,26 +55,27 @@ Firefox, Firefox-ESR, Mullvad-Browser, W3M or Lynx.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -115,6 +116,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -107,6 +108,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -46,26 +46,27 @@ Creates the Debian Xfce Template as well as a Disposable Template based on it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -46,26 +46,27 @@ Creates the Debian template as well as a Disposable Template based on it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -54,26 +54,27 @@ allows.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -116,6 +117,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -47,26 +47,27 @@ Setup docker in Qubes OS with the Docker repository.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -104,6 +105,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ etc.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -107,6 +108,27 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -61,26 +61,27 @@ Configuration and scripts targeting:
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -118,6 +119,27 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -63,31 +63,33 @@ usage from ever connecting to the internet.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
## Install
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 state.apply electrum.install
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.
%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
- 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
@ -48,26 +48,27 @@ Matrix account.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -107,6 +108,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -108,6 +109,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -46,26 +46,27 @@ Creates the Fedora Xfce template as well as a Disposable Template based on it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -46,26 +46,27 @@ Creates the Fedora template as well as a Disposable Template based on it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -56,26 +56,27 @@ SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS, WSS, RSYNC, BitTorrent.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -115,6 +116,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,26 +48,27 @@ on it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -106,6 +107,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -66,26 +66,27 @@ causes problems.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -131,6 +132,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -51,26 +51,27 @@ over the network.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -50,26 +50,27 @@ of a qube or for Salt Management on DomUs.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -109,6 +110,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -54,26 +54,27 @@ installed.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -113,6 +114,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,26 +48,27 @@ of Terraform.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -106,6 +107,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -59,26 +59,27 @@ and split-ssh-agent will also be installed.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -120,6 +121,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -50,26 +50,27 @@ necessary packages will be installed in the template.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -110,6 +111,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,26 +48,27 @@ you prefer to use an app qube, a qube named "remmina" will also be created.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -107,6 +108,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,26 +48,27 @@ Install Signal Desktop and creates an app qube named "signal".
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -108,6 +109,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -53,26 +53,27 @@ in as a one time connection or to an untrusted host use a DispVM based on
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -51,26 +51,27 @@ the necessary packages for bluetooth with the provided state.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -111,6 +112,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -74,26 +74,27 @@ At least `1TB` of disk space is required. At block `829054` (2024-02-05),
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -137,6 +138,30 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -66,26 +66,27 @@ The caching proxy supports:
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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 state.apply sys-cacher.appmenus,sys-cacher.tag
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
## Upgrade
true
@ -130,6 +131,24 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- feat: enable all optional shellcheck validations
@ -261,21 +280,3 @@ fi
* Wed Jan 31 2024 Ben Grande <ben.grande.b@gmail.com> - b5d7371
- 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
@ -61,31 +61,33 @@ At least `200GB` of disk space is required.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
## Install
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-sys-electrs state.apply sys-electrs.install
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.
%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
- 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
@ -61,31 +61,33 @@ At least `200GB` of disk space is required.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
## Install
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-sys-electrumx state.apply sys-electrumx.install
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.
%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
- 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
@ -52,26 +52,27 @@ sys-pihole instead.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -52,26 +52,27 @@ and Init. This is an implementation of split-git.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -111,6 +112,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,31 +48,32 @@ graphics card (external GPU) and PCI passthrough support.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
## 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 --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
@ -109,6 +110,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,31 +48,32 @@ administration.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
## 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 --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
@ -109,6 +110,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ for the GUI domain's graphical server.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -110,4 +111,11 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
@ -53,26 +53,27 @@ You can't use Mirage Firewall to be the updatevm, use another qube instead.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -110,6 +111,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -55,26 +55,27 @@ the "qubes.UpdatesProxy" service in case no rule matched before.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -114,6 +115,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -51,26 +51,27 @@ and access to them is made from the client through Qrexec.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -58,26 +58,27 @@ to it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -119,6 +120,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -52,26 +52,27 @@ be done over the network or with IPP-over-USB.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -111,6 +112,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -55,26 +55,27 @@ the user.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -114,6 +115,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -61,26 +61,27 @@ only hold the SSH configuration, which can be reconstructed.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -120,6 +121,21 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -56,26 +56,27 @@ server qube directly.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -114,6 +115,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -54,26 +54,27 @@ accessible externally.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -120,6 +121,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -35,7 +35,8 @@ Requires: qusal-utils
%description
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
%setup -q
@ -47,26 +48,27 @@ want to install.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -105,6 +107,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -47,26 +47,27 @@ the USB controllers to different qubes is possible.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -106,6 +107,15 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ other qubes through the VPN with fail closed mechanism.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -108,6 +109,18 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -47,26 +47,27 @@ Install Terraform and use it on the "terraform" app qube.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -105,6 +106,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ you can base disposable qubes, geared towards USB client usage.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -46,26 +46,27 @@ projects such as macros and common tools to be installed.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -103,6 +104,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -49,26 +49,27 @@ keys.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -108,6 +109,9 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -48,26 +48,27 @@ access them without compromising the domains.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
if test "$1" = "1"; then
@ -105,6 +106,12 @@ fi
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
%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
- 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
@ -47,26 +47,27 @@ it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -48,26 +48,27 @@ based on it.
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
cp -rv -- salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
%post
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
@ -45,26 +45,27 @@ Requires: qubes-mgmt-salt-dom0
%pre
%install
rm -rf %{buildroot}
install -m 755 -d \
rm -rf -- %{buildroot}
install -m 755 -d -- \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{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"
if test -d "salt/%{project}/LICENSES"; then
license_dir="salt/%{project}/LICENSES"
fi
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 -- \
"${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
done
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf \
install -m 644 -- salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rf -- \
salt/%{project}/LICENSES \
salt/%{project}/README.md \
salt/%{project}/.*
cp -rv salt/%{project} %{buildroot}@FILE_ROOTS@/%{name}
cp -rv -- salt/%{project} %{buildroot}@FILE_ROOTS@/%{name}
%post
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
#}
@ -65,6 +65,6 @@ features:
"{{ slsdotpath }}-set-default_template":
cmd.run:
- name: qubes-prefs default_template {{ template.template }}
- name: qubes-prefs -- default_template {{ template.template }}
- require:
- 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
#}
@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
"remove-{{ full_unused_dir }}":
file.absent:
- name: {{ full_unused_dir }}
- onlyif: test -z "$(ls -A {{ full_unused_dir }})"
- onlyif: test -z "$(ls -A -- {{ full_unused_dir }})"
{% endfor -%}
{% endif -%}

View File

@ -1,6 +1,6 @@
#!/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
@ -9,8 +9,8 @@ set -eu
list_backups(){
## Hide stderr to hide remote login connection messages (banners etc).
# shellcheck disable=SC2086
qvm-run --filter-escape-chars --no-color-output --no-color-stderr \
--pass-io "${qube}" -- "${cmd} ${find_cmd} 2>/dev/null"
qvm-run --no-gui --filter-escape-chars --no-color-output --no-color-stderr \
--pass-io -- "${qube}" "${cmd} ${find_cmd} 2>/dev/null"
}
list_last_backup(){

View File

@ -1,6 +1,6 @@
#!/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
@ -23,7 +23,7 @@ dir="${HOME}/QubesIncoming/${qube}"
user="$(qvm-prefs --get -- "${qube}" default_user)"
max_bytes="${UPDATES_MAX_BYTES:-4GiB}"
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}\"
/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
## 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
@ -13,8 +13,8 @@ usage(){
get_qube_feat(){
qube="${1}"
qvm-features "${qube}" | \
grep -E -e "^(os-(distribution|version)|template-(release|name))" | \
sed -e "s/ / /g;s/ /: /;s/^/ /"
grep -E -e "^(os-(distribution|version)|template-(release|name))" |
awk '{print $1 ": " $2}'
}
case "${1-}" in
@ -23,10 +23,10 @@ case "${1-}" in
*) wanted_qube="${1}";;
esac
mgmt="$(qubes-prefs management_dispvm)"
mgmt="$(qubes-prefs -- management_dispvm)"
printf '%s\n' "GLOBAL"
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 features:"
get_qube_feat "${tpl_mgmt}"
@ -38,19 +38,19 @@ fi
printf '%s\n' ""
printf '%s\n' "WANTED"
printf '%s\n' "qube: ${wanted_qube}"
class="$(qvm-prefs "${wanted_qube}" klass)"
class="$(qvm-prefs -- "${wanted_qube}" klass)"
printf '%s\n' "class: ${class}"
case "${class}" in
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 features:"
get_qube_feat "${tpl_wanted_qube}"
;;
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}"
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 features:"
get_qube_feat "${tpl_wanted_qube}"
@ -61,12 +61,12 @@ case "${class}" in
;;
*) printf '%s\n' "Unsupported qube class" >&2; exit 1;;
esac
wanted_mgmt="$(qvm-prefs "${wanted_qube}" management_dispvm)"
printf '%s\n' "${wanted_qube} management_dispvm: ${wanted_mgmt}"
wanted_mgmt="$(qvm-prefs -- "${wanted_qube}" management_dispvm)"
printf '%s\n' "management_dispvm: ${wanted_mgmt}"
if test "${wanted_mgmt}" = "${mgmt}"; then
exit
fi
wanted_tpl_mgmt="$(qvm-prefs "${wanted_mgmt}" template)"
printf '%s\n' "${wanted_qube} management_dispvm template: ${wanted_tpl_mgmt}"
printf '%s\n' "${wanted_qube} management_dispvm template features:"
wanted_tpl_mgmt="$(qvm-prefs -- "${wanted_mgmt}" template)"
printf '%s\n' "management_dispvm template: ${wanted_tpl_mgmt}"
printf '%s\n' "management_dispvm template features:"
get_qube_feat "${wanted_tpl_mgmt}"

View File

@ -1,6 +1,6 @@
#!/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

View File

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

View File

@ -1,6 +1,6 @@
#!/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
@ -8,30 +8,58 @@ set -eu
me="${0##*/}"
msg(){
printf '%s\n' "${0##*/}: ${*}" >&2
}
usage(){
printf '%s\n' "Usage: ${me} [QVM-RUN_OPTIONS] <QUBE>
msg "Usage: ${me} [QVM-RUN_OPTIONS] <QUBE>
Examples:
${me} --dispvm=<DVM_TEMPLATE>
${me} -u root <QUBE>
${me} <QUBE>
The application to open can be specified with environment variables:
QVM_TERMINAL=xterm ${me} -u root <QUBE>
QVM_FILE_MANAGER=thunar ${me} -u root <QUBE>" >&2
The desktop application can be specified with environment variable:"
case "${me}" in
*-terminal)
msg " QVM_TERMINAL=xterm ${me} -u root <QUBE>"
;;
*-file-manager)
msg " QVM_FILE_MANAGER=thunar ${me} -u root <QUBE>"
;;
*) ;;
esac
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
*-terminal) service="${QVM_TERMINAL:-"qubes-run-terminal"}";;
*-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
case "${1-}" in
-h|--help)
usage 1
;;
"")
check_xtools
## Try to run on focused window, if Dom0 is focused, it will prompt you to
## select a qube window.
id="$(xdotool getwindowfocus)"

View File

@ -1,6 +1,6 @@
#!/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
@ -13,5 +13,6 @@ set -eu
qube="${1}"
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 \
--no-color-stderr "${qube}" -- "${dnf_min_install} python3-urllib3"
qvm-run --no-gui --user=root --pass-io --filter-escape-chars \
--no-color-output --no-color-stderr -- "${qube}" \
"${dnf_min_install} python3-urllib3"

View File

@ -1,12 +1,12 @@
#!/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
umask 077
inbox_dir="${HOME}/mail/INBOX"
uid="$(id -u user)"
uid="$(id -u -- user)"
# shellcheck disable=SC2174
mkdir -p -- "${inbox_dir}"

View File

@ -1,12 +1,12 @@
#!/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
umask 077
queue_dir="${MSMTP_Q:-"${Q:-"${HOME}/.msmtp.queue"}"}"
uid="$(id -u user)"
uid="$(id -u -- user)"
# shellcheck disable=SC2174
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
#}
@ -11,7 +11,7 @@ include:
cmd.run:
- require:
- 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":
qvm.vm:

View File

@ -1,6 +1,6 @@
{#
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
#}
@ -57,6 +57,6 @@ features:
"{{ slsdotpath }}-set-default_dispvm":
cmd.run:
- name: qubes-prefs default_dispvm dvm-{{ slsdotpath }}
- name: qubes-prefs -- default_dispvm dvm-{{ slsdotpath }}
- require:
- 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:
```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

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
#}
@ -102,7 +102,7 @@ tags:
cmd.run:
- require:
- 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 -%}
{{ 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:
```sh
qvm-prefs sys-bitcoin memory 1000
qvm-prefs -- sys-bitcoin memory 1000
```
### Bitcoin Core GUI

View File

@ -1,5 +1,5 @@
#!/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
@ -80,7 +80,7 @@ gettxout(){
| tr -d '\n' \
| cut -c 17-368600 \
| xxd -r -p \
| tee "${output_file}" >/dev/null
| tee -- "${output_file}" >/dev/null
}
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:
```sh
qvm-prefs QUBE netvm sys-cacher
qvm-prefs -- QUBE netvm sys-cacher
```
Enable the service `netvm-cacher`:
@ -157,7 +157,7 @@ lose the current session:
qvm-tags QUBE add updatevm-sys-cacher
qvm-features QUBE service.updates-proxy-setup 1
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
/usr/bin/apt-cacher-ng-repo
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

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

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
#}
@ -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') -%}
"{{ slsdotpath }}-list-extra-tag":
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
#}
@ -7,8 +7,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{%- from "qvm/template.jinja" import load -%}
# Use the netvm of the default_netvm.
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%}
{% set netvm = salt['cmd.shell']('qvm-prefs ' + default_netvm + ' netvm') -%}
{% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_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 == '' %}
{% set netvm = default_netvm %}
@ -119,7 +119,7 @@ features:
## Anticipate network usage as sys-firewall is turned off at this step.
## Starting the machine before let's the network be established with enough
## 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 -%}
"{{ slsdotpath }}-start-{{ default_netvm }}-anticipate-network-use":
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
#}
@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{% set qube = 'disp-' ~ slsdotpath -%}
{% 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 -%}
{% endif -%}
@ -19,19 +19,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run:
- require:
- qvm: {{ qube }}-start
- name: qubes-prefs updatevm {{ qube }}
- name: qubes-prefs -- updatevm {{ qube }}
"{{ qube }}-qubes-prefs-default_netvm":
cmd.run:
- require:
- qvm: {{ qube }}-start
- name: qubes-prefs default_netvm {{ qube }}
- name: qubes-prefs -- default_netvm {{ qube }}
"{{ qube }}-qubes-prefs-clockvm":
cmd.run:
- require:
- qvm: {{ qube }}-start
- name: qubes-prefs clockvm {{ qube }}
- name: qubes-prefs -- clockvm {{ qube }}
{% if running == 0 -%}
"{{ 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
#}
@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{% set qube = slsdotpath -%}
{% 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 -%}
{% endif -%}
@ -19,19 +19,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run:
- require:
- qvm: {{ qube }}-start
- name: qubes-prefs updatevm {{ qube }}
- name: qubes-prefs -- updatevm {{ qube }}
"{{ qube }}-qubes-prefs-default_netvm":
cmd.run:
- require:
- qvm: {{ qube }}-start
- name: qubes-prefs default_netvm {{ qube }}
- name: qubes-prefs -- default_netvm {{ qube }}
"{{ qube }}-qubes-prefs-clockvm":
cmd.run:
- require:
- qvm: {{ qube }}-start
- name: qubes-prefs clockvm {{ qube }}
- name: qubes-prefs -- clockvm {{ qube }}
{% if running == 0 -%}
"{{ 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
#}
@ -16,4 +16,4 @@ include:
cmd.run:
- require:
- 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
#}
@ -13,4 +13,4 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run:
- require:
- 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
#}
"{{ slsdotpath }}-revert-default_guivm-to-dom0":
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
#}
@ -13,4 +13,4 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run:
- require:
- 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 -->
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
Set qubes `netvm` to `disp-sys-mirage-firewall`:
```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`.

View File

@ -1,20 +1,20 @@
#!/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
set -eu
updatevm="$(qubes-prefs updatevm)"
updatevm_class="$(qvm-prefs "${updatevm}" klass)"
updatevm="$(qubes-prefs -- updatevm)"
updatevm_class="$(qvm-prefs -- "${updatevm}" klass)"
proxy_target=""
case "${updatevm_class}" in
StandaloneVM) proxy_target="${updatevm}";;
AppVM) proxy_target="$(qvm-prefs "${updatevm}" template)";;
AppVM) proxy_target="$(qvm-prefs -- "${updatevm}" template)";;
DispVM)
proxy_target="$(qvm-prefs "${updatevm}" template)"
proxy_target="$(qvm-prefs "${proxy_target}" template)"
proxy_target="$(qvm-prefs -- "${updatevm}" template)"
proxy_target="$(qvm-prefs -- "${proxy_target}" template)"
;;
*) printf '%s\n' "Unsupported qube class" >&2; exit 1;;
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
#}
{% 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 -%}
{% 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 -%}
{% endif -%}
@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
- wait
- 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 -%}
"{{ slsdotpath }}-{{ default_netvm_netvm }}-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
#}
{% 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 -%}
{% 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 -%}
{% endif -%}
@ -20,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
- wait
- 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 -%}
"{{ slsdotpath }}-{{ default_netvm_netvm }}-shutdown":
qvm.shutdown:

View File

@ -1,6 +1,6 @@
{#
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
#}
@ -10,8 +10,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
{%- import "debian-minimal/template.jinja" as template -%}
{# Use the netvm of the default_netvm. #}
{% set default_netvm = salt['cmd.shell']('qubes-prefs default_netvm') -%}
{% set netvm = salt['cmd.shell']('qvm-prefs ' + default_netvm + ' netvm') -%}
{% set default_netvm = salt['cmd.shell']('qubes-prefs -- default_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
the chain (sys-net).

View File

@ -1,7 +1,7 @@
#!/bin/sh
# 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
@ -13,9 +13,9 @@ for qube in $(qvm-ls --raw-data --fields=NAME,NETVM |
do
## Avoid overwriting netvm to sys-pihole when instead it should use the
## 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.
qvm-prefs "${qube}" netvm sys-pihole
qvm-prefs -- "${qube}" netvm sys-pihole
done
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

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

View File

@ -1,18 +1,24 @@
#!/bin/sh
# 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
set -eu
state="${1}"
vif="${2}"
vif_type="${3}"
nft -f /rw/config/qubes-firewall.d/50-sys-pihole
for vif in /proc/sys/net/ipv4/conf/vif*/route_localnet; do
test -w "${vif}" || continue
echo 1 | tee -- "${vif}" >/dev/null
done
if test "${state}" = "online" && test "${vif_type}" = "vif"; then
vif_localnet="/proc/sys/net/ipv4/conf/${vif}/route_localnet"
if test -w "${vif_localnet}"; then
printf '%s\n' 1 | tee -- "${vif_localnet}" >/dev/null
fi
fi
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

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
#}
{% set qube = 'sys-pihole' -%}
{% 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 -%}
{% endif -%}
@ -23,19 +23,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
cmd.run:
- require:
- qvm: "{{ slsdotpath }}-start"
- name: qubes-prefs clockvm {{ slsdotpath }}
- name: qubes-prefs -- clockvm {{ slsdotpath }}
"{{ slsdotpath }}-qubes-prefs-updatevm":
cmd.run:
- require:
- qvm: "{{ slsdotpath }}-start"
- name: qubes-prefs updatevm {{ slsdotpath }}
- name: qubes-prefs -- updatevm {{ slsdotpath }}
"{{ slsdotpath }}-qubes-prefs-default_netvm":
cmd.run:
- require:
- qvm: "{{ slsdotpath }}-start"
- name: qubes-prefs default_netvm {{ slsdotpath }}
- name: qubes-prefs -- default_netvm {{ slsdotpath }}
{% if running == 0 -%}
"{{ 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

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

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

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

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