Is anyone able to build archlinux-minimal?

qubes-builder fails during the build process of vmm-xen with:
(./setup with 4.2 set)

==> ERROR: PKGBUILD does not exist.
Container chroot-vm-archlinux failed with error code 12.
make[2]: *** [/home/user/qubes-builder/qubes-src/builder-archlinux/Makefile.archlinux:109: dist-package] Error 12
make[1]: *** [Makefile.generic:197: packages] Error 1
make: *** [Makefile:265: vmm-xen-vm] Error 1

qubes-builderv2 fails with qubes executor in my setup so I used the local one but it fails with:
(archlinux.yml from example-configs with local executor instead)

output: --> Verifying tags...
output: ERROR: CalledProcessError(1, ['git', '-c', 'gpg.program=/usr/bin/gpg-sq', '-c', 'gpg.minTrustLevel=fully', 'verify-tag', '--raw', '--', 'dcccd469b7c11172145b0e764d2236cb9f34dd50']); stderr: [GNUPG:] NEWSIG
output: [GNUPG:] ERRSIG 063938BA42CFA724 1 8 00 1714103212 9 0064428F455451B3EBE78A7F063938BA42CFA724
output: [GNUPG:] NO_PUBKEY 063938BA42CFA724

I have imported all the keys and set the trust level to ultimate.

3 Likes

Precisely my same issue. Welp.

[user@builder qubes-builder]$ make remount
+ sudo mount /home -o dev,suid,remount
[user@builder qubes-builder]$ make vmm-xen-vm
Currently installed dependencies:
createrepo_c-1.0.4-1.fc39.x86_64
createrepo_c-1.0.4-1.fc39.x86_64
debootstrap-1.0.134-1.fc39.noarch
dialog-1.3-46.20220526.fc39.x86_64
dnf-plugins-core-4.6.0-1.fc39.noarch
dpkg-dev-1.22.6-1.fc39.noarch
git-2.45.0-1.fc39.x86_64
perl-Digest-MD5-2.58-500.fc39.x86_64
perl-Digest-SHA-6.04-501.fc39.x86_64
python3-sh-2.0.6-1.fc39.noarch
rpm-build-4.19.1.1-1.fc39.x86_64
rpmdevtools-9.6-4.fc39.noarch
systemd-container-254.10-1.fc39.x86_64
--> Archlinux dist-prepare-chroot (makefile):
-> Building vmm-xen (archlinux) for archlinux vm (logfile: build-logs/vmm-xen-vm-archlinux.log)
--> build failed!
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
reinstalling archlinux-keyring...
gpg: Warning: using insecure memory!
==> Appending keys from archlinux.gpg...
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
gpg: Warning: using insecure memory!
==> Updating trust database...
gpg: Warning: using insecure memory!
gpg: next trustdb check due at 2024-06-29
:: Running post-transaction hooks...
(1/2) Reloading system manager configuration...
  Skipped: Current root is not booted.
(2/2) Arming ConditionNeedsUpdate...
Container chroot-vm-archlinux exited successfully.

Spawning container chroot-vm-archlinux on /home/user/qubes-builder/chroot-vm-archlinux.
Press Ctrl-] three times within 1s to kill container.
:: Synchronizing package databases...
 core downloading...
 extra downloading...
 multilib downloading...
 qubes downloading...
:: Starting full system upgrade...
 there is nothing to do
Container chroot-vm-archlinux exited successfully.

--> Archlinux dist-package (makefile)
  --> Building package in /home/user/qubes-src/vmm-xen
sudo systemd-nspawn --directory="/home/user/qubes-builder/chroot-vm-archlinux" \
	--bind="/home/user/qubes-builder/cache/archlinux/pacman_cache":"/var/cache/pacman" \
	--bind="/home/user/qubes-builder/qubes-packages-mirror-repo/vm-archlinux":"/tmp/qubes-packages-mirror-repo" \
	--keep-unit \
	--register=no \
	--user=user \
	--setenv=BACKEND_VMM=xen  \
	--setenv=SOURCE_DATE_EPOCH="1714103211" \
	--setenv=http_proxy="" \
	--chdir="/home/user/qubes-src/vmm-xen" \
	sh -c 'if ! [ -e archlinux/PKGBUILD.in ]; then cp archlinux/PKGBUILD* ./; fi && makepkg --syncdeps --noconfirm --skipinteg'
Spawning container chroot-vm-archlinux on /home/user/qubes-builder/chroot-vm-archlinux.
Press Ctrl-] three times within 1s to kill container.
==> ERROR: PKGBUILD does not exist.
Container chroot-vm-archlinux failed with error code 12.
make[2]: *** [/home/user/qubes-builder/qubes-src/builder-archlinux/Makefile.archlinux:109: dist-package] Error 12
make[1]: *** [Makefile.generic:197: packages] Error 1
make: *** [Makefile:265: vmm-xen-vm] Error 1
1 Like

Seems like a problem with PKGBUILD.in, probably broken by Rework Archlinux packaging by fepitre · Pull Request #162 · QubesOS/qubes-vmm-xen · GitHub
I was able to build vmm-xen by assembling PKGBUILD (no “.in”) and replacing @REL@, but there are more errors with @VERSION@ down the line (qubes-libvchan-xen fails).

Workaround for qubes-builder-archlinux/Makefile.archlinux at main · QubesOS/qubes-builder-archlinux · GitHub

sudo systemd-nspawn --directory="/home/user/qubes-builder/chroot-vm-archlinux" \
	--bind="/home/user/qubes-builder/cache/archlinux/pacman_cache":"/var/cache/pacman" \
	--bind="/home/user/qubes-builder/qubes-packages-mirror-repo/vm-archlinux":"/tmp/qubes-packages-mirror-repo" \
	--keep-unit \
	--register=no \
	--user=user \
	--setenv=BACKEND_VMM=xen  \
	--setenv=SOURCE_DATE_EPOCH="1742326641" \
	--setenv=http_proxy="" \
	--chdir="/home/user/qubes-src/core-vchan-xen" \
	sh -c 'if ! [ -e archlinux/PKGBUILD.in ]; then cp archlinux/PKGBUILD* ./; fi && cp archlinux/PKGBUILD.in PKGBUILD && sed -i '' 's/@REL@/12/g' PKGBUILD &&  makepkg --syncdeps --noconfirm --skipinteg'

What’s the deal with placeholders like @REL@ and @VERSION@? Which command should replace them? It used to be $(cat rel) and $(cat version) respectively and no “.in” extension.

Scanning the qubes repositories looks like there are various mini-scripts that do @REL@ and @VERSION@ substitution but this looks like one that is for PKGBUILD.in → PKGBUILD for Archlinux:

1 Like

OK, so there are two building systems:
(old) GitHub - QubesOS/qubes-builder: Qubes Builder
(new) GitHub - QubesOS/qubes-builderv2: Next generation of Qubes OS builder

Official doc on templates leads to this thread with the old builder forum.qubes-os. org/t/archlinux-minimal-template/19052

My guess is all the dependencies like vmm-xen have PKGBUILDs designed for the new builder.
I’ve tried using the new one but it fails. Any tips?

[user@qubes-build qubes-builderv2]$ ./qb package fetch
13:18:37 [qb] Running stages: fetch
13:18:37 [qb] sign_archlinux:vm-archlinux-rolling.x86_64: No signing key found.
13:18:37 [qb] publish_archlinux:vm-archlinux-rolling.x86_64: No signing key found.
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmp75sb4h24/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmp75sb4h24/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmp75sb4h24/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /home/user/qubes-builderv2/qubesbuilder/plugins/fetch 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpvqo3cj9n/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpvqo3cj9n/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpvqo3cj9n/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpvqo3cj9n/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins/fetch
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpvqo3cj9n/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins/fetch/keys
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /home/user/qubes-builderv2/arch-keys/0064428F455451B3EBE78A7F063938BA42CFA724.asc 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins/fetch/keys
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpl4lrmd76/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpl4lrmd76/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpl4lrmd76/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpl4lrmd76/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins/fetch
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /tmp/tmpl4lrmd76/. 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins/fetch/keys
13:18:38 [qb.fetch.builder-archlinux.fetch] copy-in (cmd): docker cp /home/user/qubes-builderv2/arch-keys/063938BA42CFA724.asc 75199a115f25f2452df3413a81388381d2bd94c93973b1e22776d483d1a13a1c:/builder/plugins/fetch/keys
13:18:38 [qb.fetch.builder-archlinux.fetch] Using executor docker:75199a115f25 to run 'sudo mkdir -p -- /builder /builder/build /builder/plugins /builder/distfiles&&sudo chown -R -- user:user /builder&&cd /builder&&/builder/plugins/fetch/scripts/get-and-verify-source.py https://github.com/qubesos/qubes-builder-archlinux.git /builder/builder-archlinux /builder/keyring /builder/plugins/fetch/keys --git-branch main --minimum-distinct-maintainers 1'.
13:18:39 [qb.fetch.builder-archlinux.fetch] --> Verifying tags...
13:18:39 [qb.fetch.builder-archlinux.fetch] ERROR: CalledProcessError(1, ['git', '-c', 'gpg.program=/usr/bin/gpg', '-c', 'gpg.minTrustLevel=fully', 'verify-tag', '--raw', '--', 'd4f3868505a56766127a4a7eab0051dea2114678']); stderr: [GNUPG:] NEWSIG
13:18:39 [qb.fetch.builder-archlinux.fetch] [GNUPG:] ERRSIG 063938BA42CFA724 1 8 00 1748804624 9 0064428F455451B3EBE78A7F063938BA42CFA724
13:18:39 [qb.fetch.builder-archlinux.fetch] [GNUPG:] NO_PUBKEY 063938BA42CFA724
13:18:39 [qb.fetch.builder-archlinux.fetch] [GNUPG:] FAILURE gpg-exit 33554433
13:18:39 [qb.fetch.builder-archlinux.fetch] 
13:18:39 [qb.fetch.builder-archlinux.fetch] ---> Invalid tag d4f3868505a56766127a4a7eab0051dea2114678.
13:18:39 [qb.fetch.builder-archlinux.fetch] Not enough distinct tag signatures. Found 0, mandatory minimum is 1.
13:18:39 [qb] An error occurred: Failed to run 'sudo mkdir -p -- /builder /builder/build /builder/plugins /builder/distfiles&&sudo chown -R -- user:user /builder&&cd /builder&&/builder/plugins/fetch/scripts/get-and-verify-source.py https://github.com/qubesos/qubes-builder-archlinux.git /builder/builder-archlinux /builder/keyring /builder/plugins/fetch/keys --git-branch main --minimum-distinct-maintainers 1' (status=1).

Here is official doc on builderv2
doc.qubes-os .org/en/latest/developer/building/qubes-builder-v2.html
Here is what I did:

git clone https://github.com/QubesOS/qubes-builderv2
cd qubes-builderv2/
sudo dnf install $(cat dependencies-fedora.txt)
sudo usermod -aG docker user
sudo systemctl enable docker
sudo poweroff
# boot again
cd qubes-builderv2/
tools/generate-container-image.sh docker
cp qubesbuilder/plugins/fetch/keys/0064428F455451B3EBE78A7F063938BA42CFA724.asc arch-keys/
nano builder.yml
./qb package fetch

Here is builder.yml contents:

# include configuration relevant for the current release
include:
- example-configs/archlinux.yml

key-dirs:
- arch-keys

# which repository to use to fetch sources
use-qubes-repo:
  version: 4.2
  testing: true

# each package built will have local build number appended to package release
# number. It makes it easier to update in testing environment
increment-devel-versions: true

# reduce output
debug: false

# this can be set to true if you do not want sources to be automatically
# fetched from git
skip-git-fetch: false

# executor configuration
executor:
  type: docker
  options:
    image: "qubes-builder-fedora:latest"

OK, so there are two building systems: builder and builderv2.

I was using the first one since it’s the one used in this post 'archlinux-minimal' template Also official docs lead to this post.
Looks like vmm-xen and other dependencies have been changed to support builderv2 while breaking v1 support.

Now I try to build the template using builderv2, but there’s an error. Help is much appreciated.

Here’s what I did in a standalone VM:

git clone https://github.com/QubesOS/qubes-builderv2
cd qubes-builderv2/
sudo dnf install $(cat dependencies-fedora.txt)
sudo usermod -aG docker user
sudo systemctl enable docker
sudo poweroff
# boot again
cd qubes-builderv2/
tools/generate-container-image.sh docker
nano builder.yml # content's below

#########
# fixes #
#########
# disabling git tag checks (insecure!)
nano qubesbuilder/plugins/fetch/__init__.py
# change line 132 to
# "0",

# fixing missing packages during template prep stage
nano artifacts/sources/builder-archlinux/template_archlinux/packages.list
# remove missing package names

#########
# build #
#########
./qb package fetch prep build
./qb template fetch prep build

builder.yml

# include configuration relevant for the current release
include:
- example-configs/archlinux.yml

# which repository to use to fetch sources
use-qubes-repo:
  version: 4.2
  testing: true

# each package built will have local build number appended to package release
# number. It makes it easier to update in testing environment
increment-devel-versions: true

# reduce output
debug: false

# this can be set to true if you do not want sources to be automatically
# fetched from git
skip-git-fetch: false

# executor configuration
executor:
  type: docker
  options:
    image: "qubes-builder-fedora:latest"

Cannot figure out what causes error for “template prep” stage, log:

[user@qubes-build qubes-builderv2]$ ./qb template prep
<...>
01:25:44 [qb.template.archlinux.prep] checking keyring...
01:25:44 [qb.template.archlinux.prep] error: restricting filesystem access failed because landlock is not supported by the kernel!
01:25:44 [qb.template.archlinux.prep] checking package integrity...
01:25:45 [qb.template.archlinux.prep] loading package files...
01:25:45 [qb.template.archlinux.prep] checking for file conflicts...
01:25:45 [qb.template.archlinux.prep] checking available disk space...
01:25:45 [qb.template.archlinux.prep] :: Processing package changes...
01:25:45 [qb.template.archlinux.prep] installing qubes-gpg-split...
01:25:45 [qb.template.archlinux.prep] installing libnautilus-extension...
01:25:45 [qb.template.archlinux.prep] installing gnome-autoar...
01:25:45 [qb.template.archlinux.prep] installing libinih...
01:25:45 [qb.template.archlinux.prep] installing exiv2...
01:25:45 [qb.template.archlinux.prep] installing libgexiv2...
01:25:45 [qb.template.archlinux.prep] installing libportal...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for libportal
01:25:45 [qb.template.archlinux.prep]     libportal-docs: API documentation
01:25:45 [qb.template.archlinux.prep]     libportal-gtk3: GTK 3 backend
01:25:45 [qb.template.archlinux.prep]     libportal-gtk4: GTK 4 backend [pending]
01:25:45 [qb.template.archlinux.prep]     libportal-qt5: Qt 5 backend
01:25:45 [qb.template.archlinux.prep]     libportal-qt6: Qt 6 backend
01:25:45 [qb.template.archlinux.prep]     xdg-desktop-portal: Portal service
01:25:45 [qb.template.archlinux.prep] installing libportal-gtk4...
01:25:45 [qb.template.archlinux.prep] installing gexiv2...
01:25:45 [qb.template.archlinux.prep] installing gupnp-dlna...
01:25:45 [qb.template.archlinux.prep] installing libcue...
01:25:45 [qb.template.archlinux.prep] installing libgsf...
01:25:45 [qb.template.archlinux.prep] installing libiptcdata...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for libiptcdata
01:25:45 [qb.template.archlinux.prep]     python: Python bindings [installed]
01:25:45 [qb.template.archlinux.prep] installing osinfo-db...
01:25:45 [qb.template.archlinux.prep] installing libosinfo...
01:25:45 [qb.template.archlinux.prep] installing uchardet...
01:25:45 [qb.template.archlinux.prep] installing totem-pl-parser...
01:25:45 [qb.template.archlinux.prep] installing localsearch...
01:25:45 [qb.template.archlinux.prep] installing xdg-user-dirs...
01:25:45 [qb.template.archlinux.prep] Created symlink '/etc/systemd/user/graphical-session-pre.target.wants/xdg-user-dirs.service' -> '/usr/lib/systemd/user/xdg-user-dirs.service'.
01:25:45 [qb.template.archlinux.prep] installing xdg-user-dirs-gtk...
01:25:45 [qb.template.archlinux.prep] installing nautilus...
01:25:45 [qb.template.archlinux.prep] installing nautilus-python...
01:25:45 [qb.template.archlinux.prep] installing python-click...
01:25:45 [qb.template.archlinux.prep] installing python-tqdm...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for python-tqdm
01:25:45 [qb.template.archlinux.prep]     python-requests: telegram
01:25:45 [qb.template.archlinux.prep] installing python-magic...
01:25:45 [qb.template.archlinux.prep] installing qubes-pdf-converter...
01:25:45 [qb.template.archlinux.prep] installing usbutils...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for usbutils
01:25:45 [qb.template.archlinux.prep]     coreutils: for lsusb.py usage [installed]
01:25:45 [qb.template.archlinux.prep]     python: for lsusb.py usage [installed]
01:25:45 [qb.template.archlinux.prep]     sh: for usb-devices [installed]
01:25:45 [qb.template.archlinux.prep] installing qubes-usb-proxy...
01:25:45 [qb.template.archlinux.prep] installing libnetfilter_cttimeout...
01:25:45 [qb.template.archlinux.prep] installing libnetfilter_cthelper...
01:25:45 [qb.template.archlinux.prep] installing libnetfilter_queue...
01:25:45 [qb.template.archlinux.prep] installing conntrack-tools...
01:25:45 [qb.template.archlinux.prep] installing libndp...
01:25:45 [qb.template.archlinux.prep] installing pcre...
01:25:45 [qb.template.archlinux.prep] installing slang...
01:25:45 [qb.template.archlinux.prep] installing libnewt...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for libnewt
01:25:45 [qb.template.archlinux.prep]     python: libnewt support with the _snack module [installed]
01:25:45 [qb.template.archlinux.prep]     tcl: whiptcl support
01:25:45 [qb.template.archlinux.prep] installing libteam...
01:25:45 [qb.template.archlinux.prep] installing mobile-broadband-provider-info...
01:25:45 [qb.template.archlinux.prep] installing pcsclite...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for pcsclite
01:25:45 [qb.template.archlinux.prep]     python: API call trace logging with the pcsc-spy [installed]
01:25:45 [qb.template.archlinux.prep]     ccid: USB Chip/Smart Card Interface Devices driver
01:25:45 [qb.template.archlinux.prep] installing wpa_supplicant...
01:25:45 [qb.template.archlinux.prep] installing networkmanager...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for networkmanager
01:25:45 [qb.template.archlinux.prep]     bluez: Bluetooth support
01:25:45 [qb.template.archlinux.prep]     dhcpcd: alternative DHCP client
01:25:45 [qb.template.archlinux.prep]     dnsmasq: connection sharing
01:25:45 [qb.template.archlinux.prep]     firewalld: firewall support
01:25:45 [qb.template.archlinux.prep]     iptables: connection sharing [installed]
01:25:45 [qb.template.archlinux.prep]     iwd: wpa_supplicant alternative
01:25:45 [qb.template.archlinux.prep]     modemmanager: cellular network support
01:25:45 [qb.template.archlinux.prep]     nftables: connection sharing [pending]
01:25:45 [qb.template.archlinux.prep]     openresolv: alternative resolv.conf manager
01:25:45 [qb.template.archlinux.prep]     pacrunner: PAC proxy support
01:25:45 [qb.template.archlinux.prep]     polkit: let non-root users control networking [installed]
01:25:45 [qb.template.archlinux.prep]     ppp: dialup connection support
01:25:45 [qb.template.archlinux.prep] installing libdbusmenu-glib...
01:25:45 [qb.template.archlinux.prep] installing libdbusmenu-gtk3...
01:25:45 [qb.template.archlinux.prep] installing libappindicator...
01:25:45 [qb.template.archlinux.prep] installing libnma-common...
01:25:45 [qb.template.archlinux.prep] installing libnma...
01:25:45 [qb.template.archlinux.prep] installing nm-connection-editor...
01:25:45 [qb.template.archlinux.prep] installing network-manager-applet...
01:25:45 [qb.template.archlinux.prep] installing nftables...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for nftables
01:25:45 [qb.template.archlinux.prep]     python: Python bindings [installed]
01:25:45 [qb.template.archlinux.prep] installing tinyproxy...
01:25:45 [qb.template.archlinux.prep] installing qubes-vm-networking...
01:25:45 [qb.template.archlinux.prep] Created symlink '/etc/systemd/system/multi-user.target.wants/qubes-firewall.service' -> '/usr/lib/systemd/system/qubes-firewall.service'.
01:25:45 [qb.template.archlinux.prep] Created symlink '/etc/systemd/system/network-pre.target.requires/qubes-iptables.service' -> '/usr/lib/systemd/system/qubes-iptables.service'.
01:25:45 [qb.template.archlinux.prep] Created symlink '/etc/systemd/system/multi-user.target.wants/qubes-updates-proxy.service' -> '/usr/lib/systemd/system/qubes-updates-proxy.service'.
01:25:45 [qb.template.archlinux.prep] installing qubes-vm-passwordless-root...
01:25:45 [qb.template.archlinux.prep] installing qubes-vm-recommended...
01:25:45 [qb.template.archlinux.prep] Optional dependencies for qubes-vm-recommended
01:25:45 [qb.template.archlinux.prep]     pipewire-qubes
01:25:46 [qb.template.archlinux.prep] :: Running post-transaction hooks...
01:25:46 [qb.template.archlinux.prep] ( 1/12) Creating system user accounts...
01:25:46 [qb.template.archlinux.prep] Creating group 'pcscd' with GID 966.
01:25:46 [qb.template.archlinux.prep] Creating user 'pcscd' (PC/SC Smart Card Daemon) with UID 966 and GID 966.
01:25:46 [qb.template.archlinux.prep] Creating group 'tinyproxy' with GID 186.
01:25:46 [qb.template.archlinux.prep] Creating user 'tinyproxy' (HTTP proxy daemon) with UID 186 and GID 186.
01:25:46 [qb.template.archlinux.prep] ( 2/12) Reloading system manager configuration...
01:25:46 [qb.template.archlinux.prep]   Skipped: Running in chroot.
01:25:46 [qb.template.archlinux.prep] ( 3/12) Reloading user manager configuration...
01:25:46 [qb.template.archlinux.prep]   Skipped: Running in chroot.
01:25:46 [qb.template.archlinux.prep] ( 4/12) Creating temporary files...
01:25:46 [qb.template.archlinux.prep] ( 5/12) Reloading device manager configuration...
01:25:46 [qb.template.archlinux.prep]   Skipped: Running in chroot.
01:25:46 [qb.template.archlinux.prep] ( 6/12) Arming ConditionNeedsUpdate...
01:25:46 [qb.template.archlinux.prep] ( 7/12) Refreshing PackageKit...
01:25:46 [qb.template.archlinux.prep] Error connecting: Could not connect: No such file or directory
01:25:46 [qb.template.archlinux.prep] ( 8/12) Reloading system bus configuration...
01:25:46 [qb.template.archlinux.prep] error: command failed to execute correctly
01:25:46 [qb.template.archlinux.prep]   Skipped: Running in chroot.
01:25:46 [qb.template.archlinux.prep] ( 9/12) Compiling GSettings XML schema files...
01:25:46 [qb.template.archlinux.prep] (10/12) Updating icon theme caches...
01:25:47 [qb.template.archlinux.prep] (11/12) Updating the Qubes desktop file App Icons and features...
01:25:47 [qb.template.archlinux.prep] Failed connect to local daemon
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Failed connect to local daemon
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:47 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:48 [qb.template.archlinux.prep] Running in chroot, ignoring request
01:25:49 [qb.template.archlinux.prep] (12/12) Updating the desktop file MIME type cache...
01:25:49 [qb.template.archlinux.prep]   --> Installing repository qubes package...
01:25:49 [qb.template.archlinux.prep] resolving dependencies...
01:25:49 [qb.template.archlinux.prep] looking for conflicting packages...
01:25:49 [qb.template.archlinux.prep] 
01:25:49 [qb.template.archlinux.prep] Packages (1) qubes-vm-repo-4.3.4-1.1
01:25:49 [qb.template.archlinux.prep] 
01:25:49 [qb.template.archlinux.prep] Total Download Size:   0.00 MiB
01:25:49 [qb.template.archlinux.prep] Total Installed Size:  0.00 MiB
01:25:49 [qb.template.archlinux.prep] 
01:25:49 [qb.template.archlinux.prep] :: Proceed with installation? [Y/n]
01:25:49 [qb.template.archlinux.prep] :: Retrieving packages...
01:25:49 [qb.template.archlinux.prep] error: restricting filesystem access failed because landlock is not supported by the kernel!
01:25:49 [qb.template.archlinux.prep]  qubes-vm-repo-4.3.4-1.1-x86_64 downloading...
01:25:49 [qb.template.archlinux.prep] checking keyring...
01:25:49 [qb.template.archlinux.prep] checking package integrity...
01:25:49 [qb.template.archlinux.prep] loading package files...
01:25:49 [qb.template.archlinux.prep] checking for file conflicts...
01:25:49 [qb.template.archlinux.prep] checking available disk space...
01:25:49 [qb.template.archlinux.prep] :: Processing package changes...
01:25:49 [qb.template.archlinux.prep] installing qubes-vm-repo...
01:25:49 [qb.template.archlinux.prep] ==> Appending keys from qubesos-vm.gpg...
01:25:49 [qb.template.archlinux.prep] gpg: error reading key: No public key
01:25:49 [qb.template.archlinux.prep] ==> Locally signing trusted keys in keyring...
01:25:49 [qb.template.archlinux.prep]   -> Locally signed 1 key.
01:25:49 [qb.template.archlinux.prep] ==> Importing owner trust values...
01:25:49 [qb.template.archlinux.prep] gpg: inserting ownertrust of 4
01:25:49 [qb.template.archlinux.prep] ==> Disabling revoked keys in keyring...
01:25:49 [qb.template.archlinux.prep]   -> Disabled 2 keys.
01:25:49 [qb.template.archlinux.prep] ==> Updating trust database...
01:25:49 [qb.template.archlinux.prep] gpg: Note: third-party key signatures using the SHA1 algorithm are rejected
01:25:49 [qb.template.archlinux.prep] gpg: (use option "--allow-weak-key-signatures" to override)
01:25:49 [qb.template.archlinux.prep] gpg: marginals needed: 3  completes needed: 1  trust model: pgp
01:25:49 [qb.template.archlinux.prep] gpg: depth: 0  valid:   1  signed:   7  trust: 0-, 0q, 0n, 0m, 0f, 1u
01:25:49 [qb.template.archlinux.prep] gpg: depth: 1  valid:   7  signed: 103  trust: 1-, 0q, 0n, 6m, 0f, 0u
01:25:49 [qb.template.archlinux.prep] gpg: depth: 2  valid:  76  signed:  19  trust: 76-, 0q, 0n, 0m, 0f, 0u
01:25:49 [qb.template.archlinux.prep] gpg: next trustdb check due at 2026-01-30
01:25:49 [qb.template.archlinux.prep] :: Running post-transaction hooks...
01:25:49 [qb.template.archlinux.prep] (1/2) Arming ConditionNeedsUpdate...
01:25:49 [qb.template.archlinux.prep] (2/2) Refreshing PackageKit...
01:25:49 [qb.template.archlinux.prep] Error connecting: Could not connect: No such file or directory
01:25:49 [qb.template.archlinux.prep] error: command failed to execute correctly
01:25:49 [qb.template.archlinux.prep]   --> Configuring system to our preferences...
01:25:50 [qb.template.archlinux.prep] Generating locales...
01:25:50 [qb.template.archlinux.prep]   en_US.UTF-8... done
01:25:51 [qb.template.archlinux.prep]   en_US.ISO-8859-1... done
01:25:51 [qb.template.archlinux.prep] Generation complete.
01:25:51 [qb.template.archlinux.prep] --> Choosing appmenus whitelists...
01:25:51 [qb.template.archlinux.prep] --> Creating template config file...
01:25:51 [qb.template.archlinux.prep] --> Linking /home to /rw/home...
01:25:51 [qb.template.archlinux.prep] --> Linking /usr/local to /rw/usrlocal...
01:25:51 [qb.template.archlinux.prep] Reducing image size (calling cleanup_image)...
01:25:51 [qb.template.archlinux.prep] 4552524 -rw-r--r--. 1 root root 21474836480 Dec  5 06:25 /builder/build/qubeized_images/archlinux/root.img
01:25:51 [qb.template.archlinux.prep] --> Cleaning up image file...
01:25:51 [qb.template.archlinux.prep] --> Archlinux 09_cleanup.sh
01:25:51 [qb.template.archlinux.prep] warning: database file for 'qubes-r4.3-current' does not exist (use '-Sy' to download)
01:25:51 [qb.template.archlinux.prep]   --> NB: No packages to clean up
01:25:51 [qb.template.archlinux.prep]   --> Cleaning up pacman state...
01:25:51 [qb.template.archlinux.prep] umount: /builder/mnt/var/cache/pacman: not mounted.
01:25:51 [qb.template.archlinux.prep] warning: database file for 'qubes-r4.3-current' does not exist (use '-Sy' to download)
01:25:51 [qb.template.archlinux.prep] 
01:25:51 [qb.template.archlinux.prep] Cache directory: /var/cache/pacman/pkg/
01:25:51 [qb.template.archlinux.prep] :: Do you want to remove ALL files from cache? [y/N]
01:25:51 [qb.template.archlinux.prep] 
01:25:51 [qb.template.archlinux.prep] Database directory: /var/lib/pacman/
01:25:51 [qb.template.archlinux.prep] :: Do you want to remove unused repositories? [Y/n]
01:25:51 [qb.template.archlinux.prep] removing unused sync repositories...
01:25:51 [qb.template.archlinux.prep]  --> Cleaning /etc/resolv.conf
01:25:51 [qb.template.archlinux.prep] --> Compacting image file...
01:25:51 [qb.template.archlinux.prep] /builder/mnt: 15.1 GiB (16249430016 bytes) trimmed
01:25:51 [qb.template.archlinux.prep] 4547328 -rw-r--r--. 1 root root 21474836480 Dec  5 06:25 /builder/build/qubeized_images/archlinux/root.img
01:25:51 [qb.template.archlinux.prep] --> Unmounting /builder/build/qubeized_images/archlinux/root.img
01:25:51 [qb.template.archlinux.prep] INFO: Attempting to kill any processes still running in '/builder/mnt' before un-mounting
01:25:51 [qb.template.archlinux.prep] INFO: umount /builder/mnt
01:25:51 [qb.template.archlinux.prep] Qubeized image stored at: /builder/build/qubeized_images/archlinux/root.img
01:25:51 [qb.template.archlinux.prep] make: Leaving directory '/builder/plugins/template'
01:25:52 [qb.template.archlinux.prep] copy-out (cmd): docker cp b9203ac68185e73300f789ef0a6762fd0d9f3b3114afa470292fa668ad025de4:/builder/build/template.conf /home/user/qubes-builderv2/artifacts/templates/archlinux
01:25:52 [qb.template.archlinux.prep] copy-out (cmd): docker cp b9203ac68185e73300f789ef0a6762fd0d9f3b3114afa470292fa668ad025de4:/builder/build/appmenus /home/user/qubes-builderv2/artifacts/templates/archlinux
01:25:52 [qb.template.archlinux.prep] copy-out (cmd): docker cp b9203ac68185e73300f789ef0a6762fd0d9f3b3114afa470292fa668ad025de4:/builder/build/qubeized_images/archlinux/root.img /home/user/qubes-builderv2/artifacts/templates/qubeized_images/archlinux
01:26:36 [qb] An error occurred: archlinux: Failed to prepare template.

OK, so there are two building systems: qubes-builder and qubes-builderv2.
I was using the first one 'cause it’s the one from the manual referenced by official docs 'archlinux-minimal' template

There were couple hiccups with builderv2, but eventually the build has succeeded.

git clone https://github.com/QubesOS/qubes-builderv2
cd qubes-builderv2/
sudo dnf install $(cat dependencies-fedora.txt)
sudo usermod -aG docker user
sudo systemctl enable docker
sudo poweroff
# boot again
cd qubes-builderv2/
tools/generate-container-image.sh docker
nano builder.yml
####################
#builder.yml conent#
####################
# include configuration relevant for the current release
include:
- example-configs/archlinux.yml

# which repository to use to fetch sources
use-qubes-repo:
  version: 4.2
  testing: true

# each package built will have local build number appended to package release
# number. It makes it easier to update in testing environment
increment-devel-versions: true

# reduce output
debug: false

# this can be set to true if you do not want sources to be automatically
# fetched from git
skip-git-fetch: false

# executor configuration
executor:
  type: docker
  options:
    image: "qubes-builder-fedora:latest"

#######
# END #
#######

# disabling git tag checks (insecure!)
nano qubesbuilder/plugins/fetch/__init__.py
# change line 132 to
# "0",

# fixing missing packages during template prep stage
nano artifacts/sources/builder-archlinux/template_archlinux/packages.list
# remove missing package names

./qb package fetch prep build
./qb template fetch prep build
sudo mv ./artifacts/templates/rpm/qubes-template-archlinux-4.2.0-202512050643.noarch.rpm /archlinux.rpm

# dom0
qvm-run --pass-io qubes-build 'cat /archlinux.rpm' > ~/archlinux.rpm
qvm-template install archlinux.rpm --nogpgcheck

P.S. Fuck akismet

1 Like

I followed this guide with builderv2, but the built template has issues with qubes-qrexec-agent service. I am getting error 125 when trying to run any commands with qvm-run from dom0