From d366575faac6647d5b60747e2aa534014184a2d1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 16 Aug 2023 00:08:45 -0400 Subject: [PATCH 01/14] qubes-vm-qrexec: fix build --- qubes-vm-qrexec/APKBUILD | 9 ++--- .../makefile-remove-cc-cflags.patch | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 qubes-vm-qrexec/makefile-remove-cc-cflags.patch diff --git a/qubes-vm-qrexec/APKBUILD b/qubes-vm-qrexec/APKBUILD index efc1296..d732667 100644 --- a/qubes-vm-qrexec/APKBUILD +++ b/qubes-vm-qrexec/APKBUILD @@ -5,7 +5,7 @@ pkgname=qubes-vm-qrexec subpackages="$pkgname-openrc $pkgname-doc" pkgver=4.1.22 _gittag="v$pkgver" -pkgrel=0 +pkgrel=1 pkgdesc="The Qubes qrexec files (qube side)" arch="x86_64" url="https://github.com/QubesOS/qubes-core-qrexec" @@ -13,17 +13,18 @@ license='GPL' depends="qubes-libvchan-xen" options="!check" # No testsuite makedepends=" - gcc + grep make + lsb-release-minimal pandoc pkgconf py3-setuptools - lld qubes-libvchan-xen-dev " source=" $pkgname-$_gittag.tar.gz::https://github.com/QubesOS/qubes-core-qrexec/archive/refs/tags/$_gittag.tar.gz qubes-qrexec-agent.openrc + makefile-remove-cc-cflags.patch agent-qrexec-fork-server-undef-fortify-source.patch " builddir="$srcdir/qubes-core-qrexec-${_gittag/v}" @@ -47,7 +48,6 @@ build() { } package() { - export LDFLAGS="$LDFLAGS -fuse-ld=lld" make install-base DESTDIR="$pkgdir" SBINDIR=/sbin LIBDIR=/usr/lib SYSLIBDIR=/lib make install-vm DESTDIR="$pkgdir" SBINDIR=/sbin LIBDIR=/usr/lib SYSLIBDIR=/lib install -Dm 755 "$srcdir"/qubes-qrexec-agent.openrc "$pkgdir"/etc/init.d/qubes-qrexec-agent @@ -55,5 +55,6 @@ package() { sha512sums=" c4d993dae87446fe73f390bdf0aa3bcfacce1a630b1f0e5f20c6ea7710c14cd9a7a0a66a66e5731dee47c6958c659e61b3c0ebea5a99a31317a52fb326650a2f qubes-vm-qrexec-v4.1.22.tar.gz e2dd5cace82e881c40d5d37c69f7327fbabde81c9d23283de23de9f1197b7b018ef07a8d90e95c61bd249426d9d8297e7cb372333245941ffa0682c90ea3461f qubes-qrexec-agent.openrc +e48a06778a880915827fb2ef3e38379eb2bc6cf63f7fed79472be4732f7110b0c642c7a62a43236f53404ce69afddd40a5bc92a984403aae74caae1580c31200 makefile-remove-cc-cflags.patch 69b88c8d344f0d575eac398937040ba39a0d8fb8ea0a2b160c48d84775e1da4e226a76f3c5d3be7b045f577b634bb35cd5c5536248e18117c4121a38f9f3bf13 agent-qrexec-fork-server-undef-fortify-source.patch " diff --git a/qubes-vm-qrexec/makefile-remove-cc-cflags.patch b/qubes-vm-qrexec/makefile-remove-cc-cflags.patch new file mode 100644 index 0000000..383970b --- /dev/null +++ b/qubes-vm-qrexec/makefile-remove-cc-cflags.patch @@ -0,0 +1,35 @@ +diff --git a/Makefile.orig b/Makefile +index ade10bf..7de05a4 100644 +--- a/Makefile.orig ++++ b/Makefile +@@ -26,7 +24,7 @@ all-base: + $(PYTHON) setup.py build + .PHONY: all-base + +-install-base: all-base ++install-base: + +$(MAKE) install -C libqrexec + $(PYTHON) setup.py install -O1 $(PYTHON_PREFIX_ARG) --skip-build --root $(DESTDIR) + ln -sf qrexec-policy-exec $(DESTDIR)/usr/bin/qrexec-policy +@@ -75,7 +73,7 @@ all-vm-selinux: + +$(MAKE) -f /usr/share/selinux/devel/Makefile -C selinux qubes-core-qrexec.pp + .PHONY: all-vm + +-install-vm: all-vm ++install-vm: + +$(MAKE) install -C agent + install -d $(DESTDIR)/$(SYSLIBDIR)/systemd/system -m 755 + install -t $(DESTDIR)/$(SYSLIBDIR)/systemd/system -m 644 systemd/qubes-qrexec-agent.service +diff --git a/agent/Makefile.orig b/agent/Makefile +index e1500f1..d75f60e 100644 +--- a/agent/Makefile.orig ++++ b/agent/Makefile +@@ -32,7 +32,7 @@ else + endif + + +-install: all ++install: + install -d $(DESTDIR)/etc/qubes-rpc $(DESTDIR)/usr/lib/qubes \ + $(DESTDIR)/usr/bin $(DESTDIR)/usr/share/man/man1 + install qrexec-agent $(DESTDIR)/usr/lib/qubes From 51e314e96937566080d0074e06299fdef87e2a4d Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 16 Aug 2023 00:08:58 -0400 Subject: [PATCH 02/14] qubes-vm-core: fix build --- qubes-vm-core/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qubes-vm-core/APKBUILD b/qubes-vm-core/APKBUILD index 27ea45d..9f56a34 100644 --- a/qubes-vm-core/APKBUILD +++ b/qubes-vm-core/APKBUILD @@ -9,7 +9,7 @@ subpackages=" $pkgname-doc " pkgver=4.1.44 -pkgrel=0 +pkgrel=1 _gittag="v$pkgver" pkgdesc="The Qubes core files for installation inside a Qubes VM." arch="x86_64" @@ -29,6 +29,7 @@ depends=" icu imagemagick librsvg + lsb-release-minimal net-tools ntpsec procps From cc3a7230e9ba227d22be7db1007eced704afb87b Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 16 Aug 2023 00:27:39 -0400 Subject: [PATCH 03/14] qubes-vm-core: fix lsb depend --- qubes-vm-core/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qubes-vm-core/APKBUILD b/qubes-vm-core/APKBUILD index 9f56a34..03a7fe9 100644 --- a/qubes-vm-core/APKBUILD +++ b/qubes-vm-core/APKBUILD @@ -9,7 +9,7 @@ subpackages=" $pkgname-doc " pkgver=4.1.44 -pkgrel=1 +pkgrel=2 _gittag="v$pkgver" pkgdesc="The Qubes core files for installation inside a Qubes VM." arch="x86_64" @@ -29,7 +29,6 @@ depends=" icu imagemagick librsvg - lsb-release-minimal net-tools ntpsec procps @@ -49,6 +48,7 @@ makedepends=" gcc libx11-dev linux-pam-dev + lsb-release-minimal make pandoc pkgconf From e1f435d9389456ca012c1529f12eee778537fcf0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 16 Aug 2023 00:42:37 -0400 Subject: [PATCH 04/14] Add readme --- README.md | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..bf74fdd --- /dev/null +++ b/README.md @@ -0,0 +1,140 @@ +# qubes-aports +Upstream: https://lab.ilot.io/ayakael/qubes-aports + +## Description + +This repository contains aports that allow Alpine Linux to be used as an Alpine +Linux template. The upstream repo uses GitLab's CI to build and deploy packages +targetting multiple Alpine Linux versions. QubesOS releases are tracked using +branches. + +#### Provided packages + +Use `abuild-r` to build the following packages. +For more information on how to build an Alpine Package, read [this](https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package) + +Core VM packages + * qubes-vm-xen - Qubes's version of xen + * qubes-libvchan-xen - libvchan library dependency + * qubes-db-vm - qubes-db package + * qubes-vm-utils - qubes-meminfo-writer service package + * qubes-vm-core - Core init.d / qubes scripts + * qubes-vm-gui-dev - Library dependencies for `qubes-vm-gui` + * qubes-vm-gui - GUI agent + * qubes-vm-qrexec - qrexec agent + * qubes-gpg-split + * qubes-usb-proxy + * qubes-meta-packages - Meta package that pulls everything when added to world + +Extra packages + * qubes-pass - Aport for Rudd-O's inter-VM password manager for Qubes OS + +#### Drawbacks +QubesOS does not by default support openrc based templates. All of the init scripts have thus been implemented. +This might mean some bugs along the way, thus this project is still very much considered a WIP. Although I use +these packages on a daily basis, I can't test for all use-cases. + +#### The yet-to-be-implemented list +Thus the following use cases are still not supported: + * Service VMs (sys-net, sys-usb, sys-firewall) + * Firewall (not tested) + * `qubes-builder` hooks (thus no `dom0` template RPM yet, see [here](https://gitlab.alpinelinux.org/ayakael/qubes-builder-alpine) for progress) + * `apk` proxying from within template (thus you must allow internet access to template to install packages) + * `qubes-vm-kernel-support` Not adapted for use on Alpine yet, due to it providing a Dracut module. In most cases, it is not necessary as Qubes provides the kernel. + This package is only neccessary when VM uses its own kernel, thus a hook is added to Dracut to generate the initrd for use within qubes. + +#### Issues, recommendations and proposals +**To report an issue or share a recommendation** + +Go [here](https://gitlab.alpinelinux.org/ayakael/qubes-aports/-/issues) + +**To make a merge request** + * Fork the repo from Alpine's GitLab [here](https://gitlab.alpinelinux.org/ayakael/qubes-aports) + * Clone your fork locally. (`git clone $repo`) + * Make a branch with a descriptive name (`git checkout -b $descriptivename`) + * Make the changes you want to see in the world, commit, and push to the GitLab's remote repo + * Request a merge [here](https://gitlab.alpinelinux.org/ayakael/qubes-aports/-/merge_requests) + +### Installation steps + +It might require a few tweaks as these steps havn't been tested to their fullest extent. Some things +may have been forgotten along the way + +#### 0. HVM Setup + +* Create a new HVM by following [this guide](https://www.qubes-os.org/doc/standalones-and-hvms/#creating-an-hvm) +* Set the memory to fixed 4G +* Execute `qvm-prefs kernel ""` - Otherwise it will not start +* For network, ensure you've followed [this part of the guide](https://www.qubes-os.org/doc/standalones-and-hvms/#setting-up-networking-for-hvms) +* Use `alpine-setup` to install the system on `/dev/xvda`, and feed it the network information from the previous step. +* Make sure your partition setup looks like this, and uses gpt partition scheme. (note the name for xvda3 as "Root filesystem") +``` +/dev/xvda1 200M EFI System +/dev/xvda2 2048K BIOS boot partition +/dev/xvda3 (whatever) Root filesystem +``` + +#### 1. The metapackage + +Following [this guide](https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package), +you can setup a build environment where you can build this repo's packages. +After, pointing to your local repo in `/etc/apk/repositories` +(usually `/home/user/packages/main`), you can run `apk add qubes-vm-dependencies` + +This will install everything required. + +You may also use the repo-apk repo [https://lab.ilot.io/ayakael/repo-apk](https://lab.ilot.io/ayakael/repo-apk). + +#### 2. Services and Checks + +**Ensure that:** + + * `user ALL=(ALL) ALL` is present in `/etc/sudoers` + * `/home/user` does exist and contains the usual skeleton + * The user "user" and group "user" do exist. + * `hvc0::respawn:/sbin/getty -L hvc0 115200 vt220` is in `/etc/inittab` + * `eudev` is installed + * The following is in `/etc/fstab`: +``` +/dev/mapper/dmroot / ext4 defaults,discard,noatime 1 1 +/dev/xvdb /rw auto noauto,defaults,discard,nosuid,nodev 1 2 +/dev/xvdc1 swap swap defaults 0 0 +/rw/home /home none noauto,bind,defaults,nosuid,nodev 0 0 +/rw/usrlocal /usr/local none noauto,bind,defaults 0 0 +none /dev/shm tmpfs defaults,size=1G 0 0 +``` + +**Enable the services:** + +Using `rc-update add $service`, add the following services: + * udev + * udev-trigger + * xendriverdomain + * qubes-qrexec-agent + * qubes-db + * qubes-meminfo-qriter + * qubes-sysinit + * qubes-core-early + * qubes-core + * qubes-gui-agent + +#### 3. Test boot + +You may now try a reboot and hope it doesn't end up in the rescue console. +If the boot is successful you should be able to use all the usual qvm commands, +pass devices, use the gui-agent, etc. + +For debugging any `gui-agent` issues, set ensure that the VM type is `hvm` and access console via +`xl console $vm` + +Final test by trying to run a Xorg based program, in my case: `qvm-run $vm urxvt` + +#### 4. Converting to template +**Do the following** + * convert to template using the following command, which also sets custom kernelopts: + `qvm-clone --class TemplateVM --property virt_mode=pvh --property kernel='modules=ext4 rootfstype=ext4' $vm $template` + * From within Qubes Manager, ensure that memory balancing is on. + * test the template by running `qvm-run $template $gui-program` + * APK proxying is a known-issue, please allow internet to template + +You should now be able to install your own packages and setup your template to fit your use case. From 14b2ac8af534666b1b7193ca06d58211dcf202c4 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 25 Aug 2023 16:40:54 -0400 Subject: [PATCH 05/14] qubes-vm-core: add eudev depend --- qubes-vm-core/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qubes-vm-core/APKBUILD b/qubes-vm-core/APKBUILD index 03a7fe9..163be18 100644 --- a/qubes-vm-core/APKBUILD +++ b/qubes-vm-core/APKBUILD @@ -9,7 +9,7 @@ subpackages=" $pkgname-doc " pkgver=4.1.44 -pkgrel=2 +pkgrel=3 _gittag="v$pkgver" pkgdesc="The Qubes core files for installation inside a Qubes VM." arch="x86_64" @@ -25,6 +25,7 @@ depends=" fakeroot gawk grep + eudev haveged icu imagemagick From 54447345b46270fbb048edbca5cc7673eb8fbde3 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 26 Aug 2023 14:08:50 -0400 Subject: [PATCH 06/14] qubes-vm-gui: fix pam.d install --- qubes-vm-gui/APKBUILD | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/qubes-vm-gui/APKBUILD b/qubes-vm-gui/APKBUILD index 316a2cb..b997402 100644 --- a/qubes-vm-gui/APKBUILD +++ b/qubes-vm-gui/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-vm-gui subpackages="qubes-vm-pulseaudio $pkgname-openrc" pkgver=4.1.31 -pkgrel=0 +pkgrel=1 _gittag="v$pkgver" pkgdesc="The Qubes GUI Agent for AppVMs" arch="x86_64" @@ -62,10 +62,6 @@ build() { sed 's:ExecStartPre=/bin/touch:#ExecStartPre=/bin/touch:' -i appvm-scripts/qubes-gui-agent.service # Ensure that qubes-gui-agent starts after user autologin sed 's/After=\(.*\)qubes-misc-post.service/After=\1qubes-misc-post.service getty.target/' -i appvm-scripts/qubes-gui-agent.service - # Starts qubes-session after X11 start - install -Dm 755 "$srcdir"/qubes-sessions.sh "$pkgdir"/etc/X11/xinit/xinitrc.d/90-qubes-sessions.sh - # Remove broken pam and replace with adequate - install -Dm 644 "$srcdir"/qubes-gui-agent.pam "$pkgdir"/etc/pam.d/qubes-gui-agent make BACKEND_VMM="$_qubes_backend_vmm" appvm make appvm @@ -80,6 +76,12 @@ build() { package() { make install-rh-agent DESTDIR="$pkgdir" LIBDIR=/usr/lib USRLIBDIR=/usr/lib SYSLIBDIR=/lib install -Dm 755 "$srcdir"/qubes-gui-agent.openrc "$pkgdir"/etc/init.d/qubes-gui-agent + + # Starts qubes-session after X11 start + install -Dm 755 "$srcdir"/qubes-sessions.sh "$pkgdir"/etc/X11/xinit/xinitrc.d/90-qubes-sessions.sh + + # Remove broken pam and replace with adequate + install -Dm 644 "$srcdir"/qubes-gui-agent.pam "$pkgdir"/etc/pam.d/qubes-gui-agent } pulseaudio() { From 4f4c87063f34ffeb82afb87e01ea73bea4f63f46 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 26 Aug 2023 15:26:56 -0400 Subject: [PATCH 07/14] qubes-vm-core: add missing depends --- qubes-vm-core/APKBUILD | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/qubes-vm-core/APKBUILD b/qubes-vm-core/APKBUILD index 163be18..83001e9 100644 --- a/qubes-vm-core/APKBUILD +++ b/qubes-vm-core/APKBUILD @@ -9,7 +9,7 @@ subpackages=" $pkgname-doc " pkgver=4.1.44 -pkgrel=3 +pkgrel=4 _gittag="v$pkgver" pkgdesc="The Qubes core files for installation inside a Qubes VM." arch="x86_64" @@ -18,14 +18,17 @@ license="GPL" options="!check" # No testsuite depends=" coreutils + blkid dconf desktop-file-utils device-mapper + diffutils + e2fsprogs + e2fsprogs-extra ethtool fakeroot gawk grep - eudev haveged icu imagemagick From 8d0f7b55ce1d2c156388f291c3030d555128361e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 27 Aug 2023 17:19:12 +0000 Subject: [PATCH 08/14] Update README.md --- README.md | 105 +++++------------------------------------------------- 1 file changed, 9 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index bf74fdd..089400a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,11 @@ Linux template. The upstream repo uses GitLab's CI to build and deploy packages targetting multiple Alpine Linux versions. QubesOS releases are tracked using branches. +#### Template builder +The template builder is housed in its [own repo](https://lab.ilot.io/ayakael/qubes-builder-alpine). +RPMs are built in-pipeline using the build artifacts produced by this repo. These RPMs facilitate +installation of your very own Alpine Linux template on QubesOS. + #### Provided packages Use `abuild-r` to build the following packages. @@ -29,19 +34,11 @@ Core VM packages Extra packages * qubes-pass - Aport for Rudd-O's inter-VM password manager for Qubes OS -#### Drawbacks -QubesOS does not by default support openrc based templates. All of the init scripts have thus been implemented. -This might mean some bugs along the way, thus this project is still very much considered a WIP. Although I use -these packages on a daily basis, I can't test for all use-cases. +Omitted packages + * qubes-vmm-xen - The default Alpine xen package seems to provide the necessary modules -#### The yet-to-be-implemented list -Thus the following use cases are still not supported: - * Service VMs (sys-net, sys-usb, sys-firewall) - * Firewall (not tested) - * `qubes-builder` hooks (thus no `dom0` template RPM yet, see [here](https://gitlab.alpinelinux.org/ayakael/qubes-builder-alpine) for progress) - * `apk` proxying from within template (thus you must allow internet access to template to install packages) - * `qubes-vm-kernel-support` Not adapted for use on Alpine yet, due to it providing a Dracut module. In most cases, it is not necessary as Qubes provides the kernel. - This package is only neccessary when VM uses its own kernel, thus a hook is added to Dracut to generate the initrd for use within qubes. +#### Known issues +Known issues are currently being tracked in [qubes-builder-alpine](https://lab.ilot.io/ayakael/qubes-builder-alpine) repo. #### Issues, recommendations and proposals **To report an issue or share a recommendation** @@ -54,87 +51,3 @@ Go [here](https://gitlab.alpinelinux.org/ayakael/qubes-aports/-/issues) * Make a branch with a descriptive name (`git checkout -b $descriptivename`) * Make the changes you want to see in the world, commit, and push to the GitLab's remote repo * Request a merge [here](https://gitlab.alpinelinux.org/ayakael/qubes-aports/-/merge_requests) - -### Installation steps - -It might require a few tweaks as these steps havn't been tested to their fullest extent. Some things -may have been forgotten along the way - -#### 0. HVM Setup - -* Create a new HVM by following [this guide](https://www.qubes-os.org/doc/standalones-and-hvms/#creating-an-hvm) -* Set the memory to fixed 4G -* Execute `qvm-prefs kernel ""` - Otherwise it will not start -* For network, ensure you've followed [this part of the guide](https://www.qubes-os.org/doc/standalones-and-hvms/#setting-up-networking-for-hvms) -* Use `alpine-setup` to install the system on `/dev/xvda`, and feed it the network information from the previous step. -* Make sure your partition setup looks like this, and uses gpt partition scheme. (note the name for xvda3 as "Root filesystem") -``` -/dev/xvda1 200M EFI System -/dev/xvda2 2048K BIOS boot partition -/dev/xvda3 (whatever) Root filesystem -``` - -#### 1. The metapackage - -Following [this guide](https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package), -you can setup a build environment where you can build this repo's packages. -After, pointing to your local repo in `/etc/apk/repositories` -(usually `/home/user/packages/main`), you can run `apk add qubes-vm-dependencies` - -This will install everything required. - -You may also use the repo-apk repo [https://lab.ilot.io/ayakael/repo-apk](https://lab.ilot.io/ayakael/repo-apk). - -#### 2. Services and Checks - -**Ensure that:** - - * `user ALL=(ALL) ALL` is present in `/etc/sudoers` - * `/home/user` does exist and contains the usual skeleton - * The user "user" and group "user" do exist. - * `hvc0::respawn:/sbin/getty -L hvc0 115200 vt220` is in `/etc/inittab` - * `eudev` is installed - * The following is in `/etc/fstab`: -``` -/dev/mapper/dmroot / ext4 defaults,discard,noatime 1 1 -/dev/xvdb /rw auto noauto,defaults,discard,nosuid,nodev 1 2 -/dev/xvdc1 swap swap defaults 0 0 -/rw/home /home none noauto,bind,defaults,nosuid,nodev 0 0 -/rw/usrlocal /usr/local none noauto,bind,defaults 0 0 -none /dev/shm tmpfs defaults,size=1G 0 0 -``` - -**Enable the services:** - -Using `rc-update add $service`, add the following services: - * udev - * udev-trigger - * xendriverdomain - * qubes-qrexec-agent - * qubes-db - * qubes-meminfo-qriter - * qubes-sysinit - * qubes-core-early - * qubes-core - * qubes-gui-agent - -#### 3. Test boot - -You may now try a reboot and hope it doesn't end up in the rescue console. -If the boot is successful you should be able to use all the usual qvm commands, -pass devices, use the gui-agent, etc. - -For debugging any `gui-agent` issues, set ensure that the VM type is `hvm` and access console via -`xl console $vm` - -Final test by trying to run a Xorg based program, in my case: `qvm-run $vm urxvt` - -#### 4. Converting to template -**Do the following** - * convert to template using the following command, which also sets custom kernelopts: - `qvm-clone --class TemplateVM --property virt_mode=pvh --property kernel='modules=ext4 rootfstype=ext4' $vm $template` - * From within Qubes Manager, ensure that memory balancing is on. - * test the template by running `qvm-run $template $gui-program` - * APK proxying is a known-issue, please allow internet to template - -You should now be able to install your own packages and setup your template to fit your use case. From 6d4cb0f4f14ddc42c63d3f461c26018245b4ff8c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 30 Aug 2023 15:08:50 -0400 Subject: [PATCH 09/14] gltlab-ci: implement target multiple Alpine releases --- .gitlab-ci.yml | 13 ++++++---- .gitlab/bin/build.sh | 3 ++- .gitlab/bin/push.sh | 57 ++++++++++++++++++++++---------------------- 3 files changed, 40 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9d6dcdf..200be49 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,14 +42,19 @@ lint: build-v3.18: extends: .build when: always + variables: + CI_ALPINE_TARGET_RELEASE: v3.18 tags: - - apk-v3.18-x86_64 + - apk-$CI_ALPINE_TARGET_RELEASE-x86_64 -build-v3.17: +build-edge: extends: .build - when: manual + when: always + variables: + CI_ALPINE_TARGET_RELEASE: edge tags: - - apk-v3.17-x86_64 + - apk-$CI_ALPINE_TARGET_RELEASE-x86_64 + push: interruptible: true diff --git a/.gitlab/bin/build.sh b/.gitlab/bin/build.sh index f04a0ad..5905fbc 100755 --- a/.gitlab/bin/build.sh +++ b/.gitlab/bin/build.sh @@ -169,7 +169,8 @@ copy_artifacts() { if [ "$packages_size" -lt $MAX_ARTIFACT_SIZE ]; then msg "Copying packages for artifact upload" - cp -ar "$REPODEST"/* packages/ 2>/dev/null + mkdir packages/$CI_ALPINE_TARGET_RELEASE + cp -ar "$REPODEST"/* packages/$CI_ALPINE_TARGET_RELEASE 2>/dev/null cp ~/.abuild/*.rsa.pub keys/ else msg "Artifact size $packages_size larger than max ($MAX_ARTIFACT_SIZE), skipping uploading them" yellow diff --git a/.gitlab/bin/push.sh b/.gitlab/bin/push.sh index 1dfd15c..3c35179 100755 --- a/.gitlab/bin/push.sh +++ b/.gitlab/bin/push.sh @@ -11,8 +11,6 @@ readonly APORTSDIR=$CI_PROJECT_DIR readonly REPOS="backports user" readonly BASEBRANCH=$CI_MERGE_REQUEST_TARGET_BRANCH_NAME -ALPINE_RELEASE=$(echo $CI_RUNNER_TAGS | awk -F '-' '{print $2}') - export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" gitlab_key_to_rsa $ABUILD_KEY rsa-private $HOME/.abuild/$ABUILD_KEY_NAME.rsa @@ -25,14 +23,6 @@ echo "PACKAGER_PRIVKEY=$HOME/.abuild/$ABUILD_KEY_NAME.rsa" > $HOME/.abuild/abuil echo "REPODEST=$HOME/repo-apk/qubes" >> $HOME/.abuild/abuild.conf sudo cp $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub /etc/apk/keys/. -if [ -d $HOME/repo-apk ]; then - git -C $HOME/repo-apk fetch - git -C $HOME/repo-apk checkout $ALPINE_RELEASE - git -C $HOME/repo-apk pull --rebase -else - git clone git@lab.ilot.io:ayakael/repo-apk -b $ALPINE_RELEASE $HOME/repo-apk -fi - get_qubes_release() { case $BASEBRANCH in r*) echo $BASEBRANCH;; @@ -43,22 +33,33 @@ get_qubes_release() { QUBES_REL=$(get_qubes_release) -for i in $(find packages -type f -name "*.apk"); do - install -vDm644 $i ${i/packages\/qubes-aports/$HOME\/repo-apk\/qubes\/$QUBES_REL} +for release in $(find packages -type d -maxdepth 1 -mindepth 1 -printf '%f\n'); do + + if [ -d $HOME/repo-apk ]; then + git -C $HOME/repo-apk fetch + git -C $HOME/repo-apk checkout $release + git -C $HOME/repo-apk pull --rebase + else + git clone git@lab.ilot.io:ayakael/repo-apk -b $release $HOME/repo-apk + fi + + for i in $(find packages/$release -type f -name "*.apk"); do + install -vDm644 $i ${i/packages\/$release\/qubes-aports/$HOME\/repo-apk\/qubes\/$QUBES_REL} + done + + fetch_flags="-qn" + git fetch $fetch_flags "$CI_MERGE_REQUEST_PROJECT_URL" \ + "+refs/heads/$BASEBRANCH:refs/heads/$BASEBRANCH" + + rm $HOME/repo-apk/qubes/$QUBES_REL/*/APKINDEX.tar.gz || true + mkdir -p qubes/$QUBES_REL/DUMMY + echo "pkgname=DUMMY" > qubes/$QUBES_REL/DUMMY/APKBUILD + cd qubes/$QUBES_REL/DUMMY + abuild index + cd "$CI_PROJECT_DIR" + rm -R qubes/$QUBES_REL/DUMMY + + git -C $HOME/repo-apk add . + git -C $HOME/repo-apk commit -m "Update from $CI_MERGE_REQUEST_IID - $CI_MERGE_REQUEST_TITLE" + git -C $HOME/repo-apk push done - -fetch_flags="-qn" -git fetch $fetch_flags "$CI_MERGE_REQUEST_PROJECT_URL" \ - "+refs/heads/$BASEBRANCH:refs/heads/$BASEBRANCH" - -rm $HOME/repo-apk/qubes/$QUBES_REL/*/APKINDEX.tar.gz || true -mkdir -p qubes/$QUBES_REL/DUMMY -echo "pkgname=DUMMY" > qubes/$QUBES_REL/DUMMY/APKBUILD -cd qubes/$QUBES_REL/DUMMY -abuild index -cd "$CI_PROJECT_DIR" -rm -R qubes/$QUBES_REL/DUMMY - -git -C $HOME/repo-apk add . -git -C $HOME/repo-apk commit -m "Update from $CI_MERGE_REQUEST_IID - $CI_MERGE_REQUEST_TITLE" -git -C $HOME/repo-apk push From 960293833e70746de805086da96f7efbc22250cf Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 30 Aug 2023 15:13:02 -0400 Subject: [PATCH 10/14] *: bump pkgrel --- qubes-db-vm/APKBUILD | 2 +- qubes-gpg-split/APKBUILD | 2 +- qubes-libvchan-xen/APKBUILD | 2 +- qubes-meta-packages/APKBUILD | 2 +- qubes-pass/APKBUILD | 2 +- qubes-usb-proxy/APKBUILD | 2 +- qubes-vm-core/APKBUILD | 2 +- qubes-vm-gui-dev/APKBUILD | 2 +- qubes-vm-gui/APKBUILD | 2 +- qubes-vm-qrexec/APKBUILD | 2 +- qubes-vm-utils/APKBUILD | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qubes-db-vm/APKBUILD b/qubes-db-vm/APKBUILD index 8796368..dea6339 100644 --- a/qubes-db-vm/APKBUILD +++ b/qubes-db-vm/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-db-vm subpackages="$pkgname-openrc" pkgver=4.1.17 -pkgrel=0 +pkgrel=1 _gittag="v$pkgver" pkgdesc="QubesDB libs and daemon service." arch="x86_64" diff --git a/qubes-gpg-split/APKBUILD b/qubes-gpg-split/APKBUILD index 2c21f6f..126aa8c 100644 --- a/qubes-gpg-split/APKBUILD +++ b/qubes-gpg-split/APKBUILD @@ -5,7 +5,7 @@ pkgname=qubes-gpg-split subpackages="$pkgname-doc" pkgver=2.0.69 _gittag="v$pkgver" -pkgrel=0 +pkgrel=1 pkgdesc="Used Qubes AppVM as a “smart card”" arch="x86_64" url="https://github.com/QubesOS/qubes-app-linux-split-gpg" diff --git a/qubes-libvchan-xen/APKBUILD b/qubes-libvchan-xen/APKBUILD index 42b721e..b652fd7 100644 --- a/qubes-libvchan-xen/APKBUILD +++ b/qubes-libvchan-xen/APKBUILD @@ -3,7 +3,7 @@ pkgname=qubes-libvchan-xen pkgver=4.1.13 -pkgrel=1 +pkgrel=2 _gittag=v$pkgver pkgdesc="The Qubes core libraries for installation inside a Qubes Dom0 and VM." arch="x86_64" diff --git a/qubes-meta-packages/APKBUILD b/qubes-meta-packages/APKBUILD index 15336c0..9683b5c 100644 --- a/qubes-meta-packages/APKBUILD +++ b/qubes-meta-packages/APKBUILD @@ -8,7 +8,7 @@ subpackages=" " pkgver=4.1.24 _gittag="v$pkgver" -pkgrel=0 +pkgrel=1 pkgdesc="Meta packages for Qubes-specific components" arch="noarch" url="https://github.com/QubesOS/qubes-meta-packages" diff --git a/qubes-pass/APKBUILD b/qubes-pass/APKBUILD index a1c6b55..17eea31 100644 --- a/qubes-pass/APKBUILD +++ b/qubes-pass/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-pass pkgver=0.1.0 _gittag="v$pkgver" -pkgrel=0 +pkgrel=1 pkgdesc="An inter-VM password manager for Qubes OS" arch="noarch" url="https://github.com/Rudd-O/qubes-pass" diff --git a/qubes-usb-proxy/APKBUILD b/qubes-usb-proxy/APKBUILD index 4eaf637..d93ec04 100644 --- a/qubes-usb-proxy/APKBUILD +++ b/qubes-usb-proxy/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-usb-proxy pkgver=1.1.5 _gittag="v$pkgver" -pkgrel=0 +pkgrel=1 pkgdesc="The Qubes service for proxying USB devices" arch="noarch" url="https://github.com/QubesOS/qubes-app-linux-usb-proxy" diff --git a/qubes-vm-core/APKBUILD b/qubes-vm-core/APKBUILD index 83001e9..fa06688 100644 --- a/qubes-vm-core/APKBUILD +++ b/qubes-vm-core/APKBUILD @@ -9,7 +9,7 @@ subpackages=" $pkgname-doc " pkgver=4.1.44 -pkgrel=4 +pkgrel=5 _gittag="v$pkgver" pkgdesc="The Qubes core files for installation inside a Qubes VM." arch="x86_64" diff --git a/qubes-vm-gui-dev/APKBUILD b/qubes-vm-gui-dev/APKBUILD index 558fb78..09ad23d 100644 --- a/qubes-vm-gui-dev/APKBUILD +++ b/qubes-vm-gui-dev/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-vm-gui-dev pkgver=4.1.1 _gittag="v$pkgver" -pkgrel=1 +pkgrel=2 pkgdesc="Common files for Qubes GUI - protocol headers." arch="noarch" url="https://github.com/QubesOS/qubes-gui-common" diff --git a/qubes-vm-gui/APKBUILD b/qubes-vm-gui/APKBUILD index b997402..7463fb4 100644 --- a/qubes-vm-gui/APKBUILD +++ b/qubes-vm-gui/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-vm-gui subpackages="qubes-vm-pulseaudio $pkgname-openrc" pkgver=4.1.31 -pkgrel=1 +pkgrel=2 _gittag="v$pkgver" pkgdesc="The Qubes GUI Agent for AppVMs" arch="x86_64" diff --git a/qubes-vm-qrexec/APKBUILD b/qubes-vm-qrexec/APKBUILD index d732667..9bcf289 100644 --- a/qubes-vm-qrexec/APKBUILD +++ b/qubes-vm-qrexec/APKBUILD @@ -5,7 +5,7 @@ pkgname=qubes-vm-qrexec subpackages="$pkgname-openrc $pkgname-doc" pkgver=4.1.22 _gittag="v$pkgver" -pkgrel=1 +pkgrel=2 pkgdesc="The Qubes qrexec files (qube side)" arch="x86_64" url="https://github.com/QubesOS/qubes-core-qrexec" diff --git a/qubes-vm-utils/APKBUILD b/qubes-vm-utils/APKBUILD index b90507a..d8c0d6f 100644 --- a/qubes-vm-utils/APKBUILD +++ b/qubes-vm-utils/APKBUILD @@ -7,7 +7,7 @@ subpackages=" $pkgname-openrc " pkgver=4.1.19 -pkgrel=0 +pkgrel=1 _gittag="v$pkgver" pkgdesc="Common Linux files for Qubes VM." arch="x86_64" From 7b0bcd15502b7c9ee3664c3ea92afb184cbfa05d Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 28 Nov 2023 11:18:20 -0500 Subject: [PATCH 11/14] gitlab-ci: add v3.19 build --- .gitlab-ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 200be49..971d962 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,6 +47,14 @@ build-v3.18: tags: - apk-$CI_ALPINE_TARGET_RELEASE-x86_64 +build-v3.19: + extends: .build + when: always + variables: + CI_ALPINE_TARGET_RELEASE: v3.19 + tags: + - apk-$CI_ALPINE_TARGET_RELEASE-x86_64 + build-edge: extends: .build when: always From 597e7886a3926d7ed4868ab533cf0fc1f7c6b963 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 28 Nov 2023 11:19:45 -0500 Subject: [PATCH 12/14] *: bump pkgrel --- qubes-db-vm/APKBUILD | 2 +- qubes-gpg-split/APKBUILD | 2 +- qubes-libvchan-xen/APKBUILD | 2 +- qubes-meta-packages/APKBUILD | 2 +- qubes-pass/APKBUILD | 2 +- qubes-usb-proxy/APKBUILD | 2 +- qubes-vm-core/APKBUILD | 2 +- qubes-vm-gui-dev/APKBUILD | 2 +- qubes-vm-gui/APKBUILD | 2 +- qubes-vm-qrexec/APKBUILD | 2 +- qubes-vm-utils/APKBUILD | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qubes-db-vm/APKBUILD b/qubes-db-vm/APKBUILD index dea6339..4056d3c 100644 --- a/qubes-db-vm/APKBUILD +++ b/qubes-db-vm/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-db-vm subpackages="$pkgname-openrc" pkgver=4.1.17 -pkgrel=1 +pkgrel=2 _gittag="v$pkgver" pkgdesc="QubesDB libs and daemon service." arch="x86_64" diff --git a/qubes-gpg-split/APKBUILD b/qubes-gpg-split/APKBUILD index 126aa8c..18cdc76 100644 --- a/qubes-gpg-split/APKBUILD +++ b/qubes-gpg-split/APKBUILD @@ -5,7 +5,7 @@ pkgname=qubes-gpg-split subpackages="$pkgname-doc" pkgver=2.0.69 _gittag="v$pkgver" -pkgrel=1 +pkgrel=2 pkgdesc="Used Qubes AppVM as a “smart card”" arch="x86_64" url="https://github.com/QubesOS/qubes-app-linux-split-gpg" diff --git a/qubes-libvchan-xen/APKBUILD b/qubes-libvchan-xen/APKBUILD index b652fd7..2106098 100644 --- a/qubes-libvchan-xen/APKBUILD +++ b/qubes-libvchan-xen/APKBUILD @@ -3,7 +3,7 @@ pkgname=qubes-libvchan-xen pkgver=4.1.13 -pkgrel=2 +pkgrel=3 _gittag=v$pkgver pkgdesc="The Qubes core libraries for installation inside a Qubes Dom0 and VM." arch="x86_64" diff --git a/qubes-meta-packages/APKBUILD b/qubes-meta-packages/APKBUILD index 9683b5c..62b7337 100644 --- a/qubes-meta-packages/APKBUILD +++ b/qubes-meta-packages/APKBUILD @@ -8,7 +8,7 @@ subpackages=" " pkgver=4.1.24 _gittag="v$pkgver" -pkgrel=1 +pkgrel=2 pkgdesc="Meta packages for Qubes-specific components" arch="noarch" url="https://github.com/QubesOS/qubes-meta-packages" diff --git a/qubes-pass/APKBUILD b/qubes-pass/APKBUILD index 17eea31..77142e3 100644 --- a/qubes-pass/APKBUILD +++ b/qubes-pass/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-pass pkgver=0.1.0 _gittag="v$pkgver" -pkgrel=1 +pkgrel=2 pkgdesc="An inter-VM password manager for Qubes OS" arch="noarch" url="https://github.com/Rudd-O/qubes-pass" diff --git a/qubes-usb-proxy/APKBUILD b/qubes-usb-proxy/APKBUILD index d93ec04..92c8c85 100644 --- a/qubes-usb-proxy/APKBUILD +++ b/qubes-usb-proxy/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-usb-proxy pkgver=1.1.5 _gittag="v$pkgver" -pkgrel=1 +pkgrel=2 pkgdesc="The Qubes service for proxying USB devices" arch="noarch" url="https://github.com/QubesOS/qubes-app-linux-usb-proxy" diff --git a/qubes-vm-core/APKBUILD b/qubes-vm-core/APKBUILD index fa06688..162fb31 100644 --- a/qubes-vm-core/APKBUILD +++ b/qubes-vm-core/APKBUILD @@ -9,7 +9,7 @@ subpackages=" $pkgname-doc " pkgver=4.1.44 -pkgrel=5 +pkgrel=6 _gittag="v$pkgver" pkgdesc="The Qubes core files for installation inside a Qubes VM." arch="x86_64" diff --git a/qubes-vm-gui-dev/APKBUILD b/qubes-vm-gui-dev/APKBUILD index 09ad23d..65b51bb 100644 --- a/qubes-vm-gui-dev/APKBUILD +++ b/qubes-vm-gui-dev/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-vm-gui-dev pkgver=4.1.1 _gittag="v$pkgver" -pkgrel=2 +pkgrel=3 pkgdesc="Common files for Qubes GUI - protocol headers." arch="noarch" url="https://github.com/QubesOS/qubes-gui-common" diff --git a/qubes-vm-gui/APKBUILD b/qubes-vm-gui/APKBUILD index 7463fb4..34487df 100644 --- a/qubes-vm-gui/APKBUILD +++ b/qubes-vm-gui/APKBUILD @@ -4,7 +4,7 @@ pkgname=qubes-vm-gui subpackages="qubes-vm-pulseaudio $pkgname-openrc" pkgver=4.1.31 -pkgrel=2 +pkgrel=3 _gittag="v$pkgver" pkgdesc="The Qubes GUI Agent for AppVMs" arch="x86_64" diff --git a/qubes-vm-qrexec/APKBUILD b/qubes-vm-qrexec/APKBUILD index 9bcf289..cc7cfb4 100644 --- a/qubes-vm-qrexec/APKBUILD +++ b/qubes-vm-qrexec/APKBUILD @@ -5,7 +5,7 @@ pkgname=qubes-vm-qrexec subpackages="$pkgname-openrc $pkgname-doc" pkgver=4.1.22 _gittag="v$pkgver" -pkgrel=2 +pkgrel=3 pkgdesc="The Qubes qrexec files (qube side)" arch="x86_64" url="https://github.com/QubesOS/qubes-core-qrexec" diff --git a/qubes-vm-utils/APKBUILD b/qubes-vm-utils/APKBUILD index d8c0d6f..9a989c5 100644 --- a/qubes-vm-utils/APKBUILD +++ b/qubes-vm-utils/APKBUILD @@ -7,7 +7,7 @@ subpackages=" $pkgname-openrc " pkgver=4.1.19 -pkgrel=1 +pkgrel=2 _gittag="v$pkgver" pkgdesc="Common Linux files for Qubes VM." arch="x86_64" From 6d48b785ff338a570eb67887afe2c265b45db1dc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 7 Dec 2023 19:20:59 -0500 Subject: [PATCH 13/14] qubes-libvchan-xen: rebuild againt xen v4.18 --- ...upport-changed-libxenctrl-api-xen418.patch | 61 +++++++++++++++++++ qubes-libvchan-xen/APKBUILD | 10 ++- 2 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 qubes-libvchan-xen/39_support-changed-libxenctrl-api-xen418.patch diff --git a/qubes-libvchan-xen/39_support-changed-libxenctrl-api-xen418.patch b/qubes-libvchan-xen/39_support-changed-libxenctrl-api-xen418.patch new file mode 100644 index 0000000..43850b1 --- /dev/null +++ b/qubes-libvchan-xen/39_support-changed-libxenctrl-api-xen418.patch @@ -0,0 +1,61 @@ +From 8c4c3807119f27957e6c7f87d505d66d0ea4c3d0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= + +Date: Sat, 18 Nov 2023 18:27:28 +0100 +Subject: [PATCH] Support changed libxenctrl API in Xen 4.18.0 + +The xc_domain_getinfo() is gone, it's replaced with +xc_domain_getinfo_single. While the new API is a bit nicer, xenctrl.h +does not provide any #define to know which one is available. Check +library version in the makefile for that. +--- + vchan/Makefile.linux | 4 ++++ + vchan/io.c | 10 ++++++++++ + 2 files changed, 14 insertions(+) + +diff --git a/vchan/Makefile.linux b/vchan/Makefile.linux +index 281f2b5..587cb34 100644 +--- a/vchan/Makefile.linux ++++ b/vchan/Makefile.linux +@@ -27,6 +27,11 @@ CFLAGS += -g -Wall -Wextra -Werror -fPIC -O2 -D_GNU_SOURCE -D_FORTIFY_SOURCE=2 - + all: libvchan-xen.so vchan-xen.pc + -include *.dep + ++# xenctrl.h does not provide any #define to distinguish API versions ++XENCTRL_VERSION := $(shell pkg-config --modversion xencontrol) ++CFLAGS += $(shell if printf '%s\n' '4.18.0' '$(XENCTRL_VERSION)' | \ ++ sort -CV; then echo -DHAVE_XC_DOMAIN_GETINFO_SINGLE; fi) ++ + libvchan-xen.so : init.o io.o + $(CC) $(LDFLAGS) -shared -o libvchan-xen.so $^ -lxenvchan -lxenctrl + clean: +diff --git a/vchan/io.c b/vchan/io.c +index 3d0ed35..0c23223 100644 +--- a/vchan/io.c ++++ b/vchan/io.c +@@ -33,14 +33,24 @@ + /* check if domain is still alive */ + int libvchan__check_domain_alive(xc_interface *xc_handle, int dom) { + struct evtchn_status evst; ++#ifdef HAVE_XC_DOMAIN_GETINFO_SINGLE ++ xc_domaininfo_t dominfo; ++#else + xc_dominfo_t dominfo; ++#endif + int ret; + + /* first try using domctl, more reliable but available in a privileged + * domain only */ ++#ifdef HAVE_XC_DOMAIN_GETINFO_SINGLE ++ ret = xc_domain_getinfo_single(xc_handle, dom, &dominfo); ++ if (ret == 0) ++ return !(dominfo.flags & XEN_DOMINF_dying); ++#else + ret = xc_domain_getinfo(xc_handle, dom, 1, &dominfo); + if (ret == 1) + return dominfo.domid == (uint32_t)dom && !dominfo.dying; ++#endif + else if (ret == -1 && errno == ESRCH) + return 0; + /* otherwise fallback to xc_evtchn_status method */ + diff --git a/qubes-libvchan-xen/APKBUILD b/qubes-libvchan-xen/APKBUILD index 2106098..08994a2 100644 --- a/qubes-libvchan-xen/APKBUILD +++ b/qubes-libvchan-xen/APKBUILD @@ -3,18 +3,21 @@ pkgname=qubes-libvchan-xen pkgver=4.1.13 -pkgrel=3 +pkgrel=4 _gittag=v$pkgver pkgdesc="The Qubes core libraries for installation inside a Qubes Dom0 and VM." arch="x86_64" url="https://github.com/QubesOS/qubes-core-vchan-xen" license='GPL' depends="xen" -makedepends="xen-dev" +makedepends="xen-dev coreutils" builddir="$srcdir"/qubes-core-vchan-xen-$pkgver subpackages="$pkgname-dev" -source="$pkgname-$_gittag.tar.gz::https://github.com/QubesOS/qubes-core-vchan-xen/archive/refs/tags/$_gittag.tar.gz" +source=" + $pkgname-$_gittag.tar.gz::https://github.com/QubesOS/qubes-core-vchan-xen/archive/refs/tags/$_gittag.tar.gz + 39_support-changed-libxenctrl-api-xen418.patch + " build() { cd "$builddir"/vchan @@ -27,4 +30,5 @@ package() { sha512sums=" cefb6b89f75936d791910d2169170536221d3123a1b33a14bea1fc5c08950ce934666719bf08eb3cc86ac055f85e6834f71e21c31189fa7299af09296c3cd99f qubes-libvchan-xen-v4.1.13.tar.gz +fedcba617d3843e41f257ff16b0a3108af844184252d4e702df8eccba21a4ef17d62c96acdb87bb4964e783b7f2f026305777be3379e7e7b51f4535a4704b52a 39_support-changed-libxenctrl-api-xen418.patch " From b2d3f186f4192f18b5482b3da450bb9283886225 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 1 Feb 2024 14:18:08 -0500 Subject: [PATCH 14/14] qubes-app-linux-druide-antidote: new aport --- qubes-app-linux-druide-antidote/APKBUILD | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 qubes-app-linux-druide-antidote/APKBUILD diff --git a/qubes-app-linux-druide-antidote/APKBUILD b/qubes-app-linux-druide-antidote/APKBUILD new file mode 100644 index 0000000..80b9426 --- /dev/null +++ b/qubes-app-linux-druide-antidote/APKBUILD @@ -0,0 +1,22 @@ +pkgname=qubes-app-linux-druide-antidote +pkgver=0.0.1_git20240201 +_gittag=c724c88aa2a20b1e422b464499015ff05753316d +pkgrel=0 +arch="noarch" +pkgdesc="Qubes Druide-Antidote is a Qubes Application. It send a file to the Antidote Qube, invoke Antidote, and retrieve the file" +url=https://github.com/neowutran/qubes-app-linux-druide-antidote +license="GPL-3.0-only" +source="$pkgname-$_gittag.tar.gz::https://github.com/neowutran/qubes-app-linux-druide-antidote/archive/$_gittag.tar.gz" +depends="bash" +makedepends="pandoc" +builddir="$srcdir"/$pkgname-$_gittag + +check(){ + tests/all +} +package() { + make install-vm DESTDIR="$pkgdir/" +} +sha512sums=" +e3597804bdcea25b2938aa325dfe9495f5bcde47c8515c7680c19882120e065d0a9ef8d120545ff3c9966b84a329cf87c5b993380510311ec8b5d9f5a8b35833 qubes-app-linux-druide-antidote-c724c88aa2a20b1e422b464499015ff05753316d.tar.gz +"