Skip to content

Commit

Permalink
fix: generate RPM Specs for Qubes Builder V2
Browse files Browse the repository at this point in the history
It doesn't checkout the current directory when querying the spec, so we
provide the already modified version of the spec.
  • Loading branch information
ben-grande committed Jun 21, 2024
1 parent 7aee0c4 commit c84dfea
Show file tree
Hide file tree
Showing 108 changed files with 7,182 additions and 59 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
#
# SPDX-License-Identifier: MIT

rpm_spec/*.spec
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,12 @@ repos:
entry: scripts/qubesbuilder-gen.sh test
language: script
description: Check if .qubesbuilder is up to date

# TODO: generate temporary spec and compare against staged one.
# - id: spec-gen
# name: spec-gen
# language: script
# entry: scripts/spec-gen.sh test
# args: [test]
# # pass_filenames: true
# description: Check if RPM SPEC files are up to date
2 changes: 1 addition & 1 deletion .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Files: README.md */README.md docs/* .github/ISSUE_TEMPLATE/*
Copyright: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
License: CC-BY-SA-4.0

Files: version
Files: salt/*/version
Copyright: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
License: CC0-1.0

Expand Down
129 changes: 129 additions & 0 deletions rpm_spec/qusal-ansible.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

## Reproducibility.
%define source_date_epoch_from_changelog 1
%define use_source_date_epoch_as_buildtime 1
%define clamp_mtime_to_source_date_epoch 1
# Changelog is trimmed according to current date, not last date from changelog.
%define _changelog_trimtime 0
%define _changelog_trimage 0
%global _buildhost %{name}
# Python bytecode interferes when updates occur and restart is not done.
%undefine __brp_python_bytecompile

Name: qusal-ansible
Version: 0.0.1
Release: 1%{?dist}
Summary: Ansible environment in Qubes OS

Group: qusal
Packager: Ben Grande
Vendor: Ben Grande
License: AGPL-3.0-or-later
URL: https://github.com/ben-grande/qusal
BugURL: https://github.com/ben-grande/qusal/issues
Source0: %{name}-%{version}.tar.gz
BuildArch: noarch

Requires: qubes-mgmt-salt
Requires: qubes-mgmt-salt-dom0
Requires: qusal-ssh
Requires: qusal-utils


%description
Install Ansible and use it on the "ansible" app qube.

%prep
%setup -q

%build

%install
rm -rf %{buildroot}
install -m 755 -d \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name}
install -m 644 %{name}/LICENSES/* %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 %{name}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rv %{name}/LICENSES %{name}/README.md
cp -rv %{name} %{buildroot}/srv/salt/qusal/%{name}

%check

%dnl %pre

%post
if test "$1" = "1"; then
## Install
qubesctl state.apply ansible.create
qubesctl --skip-dom0 --targets=tpl-ansible state.apply ansible.install
qubesctl --skip-dom0 --targets=ansible state.apply ansible.configure,zsh.touch-zshrc
qubesctl --skip-dom0 --targets=ansible-minion state.apply ansible.configure-minion,zsh.touch-zshrc
elif test "$1" = "2"; then
## Upgrade
true
fi

%preun
if test "$1" = "0"; then
## Uninstall
true
elif test "$1" = "1"; then
## Upgrade
true
fi

%postun
if test "$1" = "0"; then
## Uninstall
true
elif test "$1" = "1"; then
## Upgrade
true
fi

%files
%defattr(-,root,root,-)
%license %{_defaultlicensedir}/%{name}/*
%doc %{_docdir}/%{name}/README.md
%dir /srv/salt/qusal/%{name}
/srv/salt/qusal/%{name}/*
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.

%changelog
* Thu Jun 13 2024 Ben Grande <ben.grande.b@gmail.com> - a564b3a
- feat: add TCP proxy for remote hosts

* Wed May 29 2024 Ben Grande <ben.grande.b@gmail.com> - df698b4
- fix: bump Ansible repository codename

* Wed May 29 2024 Ben Grande <ben.grande.b@gmail.com> - 8accc47
- fix: remove old deb repository list format

* Thu May 16 2024 Ben Grande <ben.grande.b@gmail.com> - b2c9479
- fix: enforce https on repository installation

* Mon Mar 18 2024 Ben Grande <ben.grande.b@gmail.com> - f9ead06
- fix: remove extraneous package repository updates

* Fri Feb 23 2024 Ben Grande <ben.grande.b@gmail.com> - 5605ec7
- doc: prefix qubesctl with sudo

* Mon Jan 29 2024 Ben Grande <ben.grande.b@gmail.com> - 6efcc1d
- chore: copyright update

* Sat Jan 20 2024 Ben Grande <ben.grande.b@gmail.com> - 422b01e
- feat: remove audiovm setting when unnecessary

* Tue Dec 19 2023 Ben Grande <ben.grande.b@gmail.com> - b4d142b
- refactor: move appended states to drop-in rc.local

* Mon Nov 20 2023 Ben Grande <ben.grande.b@gmail.com> - 5e3c790
- fix: mode ansible linter to correct project

* Mon Nov 13 2023 Ben Grande <ben.grande.b@gmail.com> - 5eebd78
- refactor: initial commit
161 changes: 161 additions & 0 deletions rpm_spec/qusal-browser.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

## Reproducibility.
%define source_date_epoch_from_changelog 1
%define use_source_date_epoch_as_buildtime 1
%define clamp_mtime_to_source_date_epoch 1
# Changelog is trimmed according to current date, not last date from changelog.
%define _changelog_trimtime 0
%define _changelog_trimage 0
%global _buildhost %{name}
# Python bytecode interferes when updates occur and restart is not done.
%undefine __brp_python_bytecompile

Name: qusal-browser
Version: 0.0.1
Release: 1%{?dist}
Summary: Browser environment in Qubes OS

Group: qusal
Packager: Ben Grande
Vendor: Ben Grande
License: AGPL-3.0-or-later
URL: https://github.com/ben-grande/qusal
BugURL: https://github.com/ben-grande/qusal/issues
Source0: %{name}-%{version}.tar.gz
BuildArch: noarch

Requires: qubes-mgmt-salt
Requires: qubes-mgmt-salt-dom0
Requires: qusal-dotfiles
Requires: qusal-sys-audio
Requires: qusal-sys-usb
Requires: qusal-utils


%description
Create environment for browsing. By default it creates a disposable template
called "dvm-browser", so when clicking the icon/launcher, it opens a
disposable qube. If you want to save your session, you can also clone the
template and create app qubes.

Default browser to install is Chromium, but you can choose to install Chrome,
Firefox-ESR, W3M or Lynx.

%prep
%setup -q

%build

%install
rm -rf %{buildroot}
install -m 755 -d \
%{buildroot}/srv/salt/qusal \
%{buildroot}%{_docdir}/%{name} \
%{buildroot}%{_defaultlicensedir}/%{name}
install -m 644 %{name}/LICENSES/* %{buildroot}%{_defaultlicensedir}/%{name}/
install -m 644 %{name}/README.md %{buildroot}%{_docdir}/%{name}/
rm -rv %{name}/LICENSES %{name}/README.md
cp -rv %{name} %{buildroot}/srv/salt/qusal/%{name}

%check

%dnl %pre

%post
if test "$1" = "1"; then
## Install
qubesctl state.apply browser.create
qubesctl --skip-dom0 --targets=tpl-browser state.apply browser.install
qubesctl --skip-dom0 --targets=dvm-browser state.apply browser.configure
qubesctl state.apply browser.appmenus
elif test "$1" = "2"; then
## Upgrade
true
fi

%preun
if test "$1" = "0"; then
## Uninstall
true
elif test "$1" = "1"; then
## Upgrade
true
fi

%postun
if test "$1" = "0"; then
## Uninstall
true
elif test "$1" = "1"; then
## Upgrade
true
fi

%files
%defattr(-,root,root,-)
%license %{_defaultlicensedir}/%{name}/*
%doc %{_docdir}/%{name}/README.md
%dir /srv/salt/qusal/%{name}
/srv/salt/qusal/%{name}/*
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.

%changelog
* Sun Jun 16 2024 Ben Grande <ben.grande.b@gmail.com> - faa00fb
- doc: update table of contents

* Sun Jun 09 2024 Ben Grande <ben.grande.b@gmail.com> - 899f7e4
- fix: add Fedora 40 Firefox desktop file to appmenu

* Wed May 29 2024 Ben Grande <ben.grande.b@gmail.com> - 8accc47
- fix: remove old deb repository list format

* Fri May 24 2024 Ben Grande <ben.grande.b@gmail.com> - cbf61e6
- feat: add Firefox browser from Mozilla repository

* Thu May 16 2024 Ben Grande <ben.grande.b@gmail.com> - b2c9479
- fix: enforce https on repository installation

* Thu May 16 2024 Ben Grande <ben.grande.b@gmail.com> - d4c3fb1
- feat: add terraform and chrome fedora repositories

* Wed May 15 2024 Ben Grande <ben.grande.b@gmail.com> - 3adc241
- fix: renew keys and delete expired ones

* Tue May 14 2024 Ben Grande <ben.grande.b@gmail.com> - d148599
- doc: nested list indentation

* Mon Mar 25 2024 Ben Grande <ben.grande.b@gmail.com> - fb7db5d
- fix: browser requires a state and not a package

* Mon Mar 18 2024 Ben Grande <ben.grande.b@gmail.com> - f9ead06
- fix: remove extraneous package repository updates

* Fri Feb 23 2024 Ben Grande <ben.grande.b@gmail.com> - 5605ec7
- doc: prefix qubesctl with sudo

* 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

* Tue Jan 09 2024 Ben Grande <ben.grande.b@gmail.com> - a3829e4
- feat: policy support for multiple sys-usb qubes

* Sun Dec 31 2023 Ben Grande <ben.grande.b@gmail.com> - 81f8c56
- fix: install missing packages to audio client

* Wed Dec 27 2023 Ben Grande <ben.grande.b@gmail.com> - a617c3d
- fix: modify package names to match Qubes 4.2

* Tue Dec 26 2023 Ben Grande <ben.grande.b@gmail.com> - 06393fc
- fix: browser cli install tool switches to fetcher

* Mon Nov 13 2023 Ben Grande <ben.grande.b@gmail.com> - 5eebd78
- refactor: initial commit
Loading

0 comments on commit c84dfea

Please sign in to comment.