Qubes 4.1 archlinux template

I’ve been trying to make a qubes 4.1 archlinux template (and others) for a while now but I always get the same response. I will make it past the set up just like the documentation website(selecting 4.1 instedo of 4.0) and then I will make it past ‘make install-deps’ ‘make get-sources’ and when I do ‘make qubes-vm’ I get.

scripts/test-sane-mount: line 10: ./test-dev-null: Permission denied

*** ERROR ***
*** Cannot create chroot because the current filesystem is mounted as nodev. ***
*** Build Qubes on a different filesystem, or run ‘make remount’ to remount ***
*** /home with dev option.



I will do ‘make remount’ (just I have nothing better to do) and then It will go for a while untill I get:

Currently installed dependencies:

createrepo_c-0.15.11-1.fc32.x86_64
createrepo_c-0.15.11-1.fc32.x86_64
debootstrap-1.0.123-1.fc32.noarch
dialog-1.3-24.20191210.fc32.x86_64
dpkg-dev-1.19.7-5.fc32.noarch
git-2.26.2-1.fc32.x86_64
perl-Digest-MD5-2.55-440.fc32.x86_64
perl-Digest-SHA-6.02-442.fc32.x86_64
python3-sh-1.13.1-1.fc32.noarch
rpm-build-4.15.1-3.fc32.1.x86_64
rpmdevtools-8.10-10.fc32.noarch
–> Archlinux dist-prepare-chroot (makefile):
–> Checking mounting of dev/proc/sys on build chroot…
–> Synchronize resolv.conf, in case it changed since last run…
-> Building vmm-xen (archlinux) for archlinux vm (logfile: build-logs/vmm-xen-vm-archlinux.log)
–> build failed!
qubes is up to date
:: Starting full system upgrade…
resolving dependencies…
looking for conflicting packages…

Packages (1) libcap-ng-0.8-1

Total Download Size: 0.04 MiB
Total Installed Size: 0.10 MiB
Net Upgrade Size: 0.00 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages…
downloading libcap-ng-0.8-1-x86_64.pkg.tar.zst…
checking keyring…
checking package integrity…
loading package files…
checking for file conflicts…
:: Processing package changes…
upgrading libcap-ng…
:: Running post-transaction hooks…
(1/1) Arming ConditionNeedsUpdate…
–> Archlinux dist-package (makefile)
–> Building package in /home/user/qubes-src/vmm-xen
sudo BACKEND_VMM=xen chroot “/home/user/qubes-builder/chroot-vm-archlinux” su user -c ‘cd “/home/user/qubes-src/vmm-xen” && cp archlinux/PKGBUILD* ./ && env http_proxy="" makepkg --syncdeps --noconfirm --skipinteg’
==> Making package: qubes-vm-xen 4.14.0-5 (Thu Oct 15 21:47:24 2020)
==> Checking runtime dependencies…
==> Installing missing dependencies…
sudo: effective uid is not 0, is /usr/sbin/sudo on a file system with the ‘nosuid’ option set or an NFS file system without root privileges?
==> ERROR: ‘pacman’ failed to install missing dependencies.
==> Missing dependencies:
-> python
-> bridge-utils
-> python-lxml
-> lzo
-> yajl
==> Checking buildtime dependencies…
==> Installing missing dependencies…
sudo: effective uid is not 0, is /usr/sbin/sudo on a file system with the ‘nosuid’ option set or an NFS file system without root privileges?
==> ERROR: ‘pacman’ failed to install missing dependencies.
==> Missing dependencies:
-> wget
-> git
-> bin86
-> dev86
-> iasl
-> yajl
-> pixman
==> ERROR: Could not resolve all dependencies.
make[2]: *** [/home/user/qubes-builder/qubes-src/builder-archlinux/Makefile.archlinux:121: dist-package] Error 8
make[1]: *** [Makefile.generic:191: packages] Error 1
make: *** [Makefile:227: vmm-xen-vm] Error 1

I have looked all over the internet and I don’t know what to do because I have Emailed the qubes user mailing list and got no response. If anyone can help that would be grate! thank you in advance!

Arch doesn’t yet build on R4.1.

If you really want to get a little hacky, you can chroot into the chroot directory from the qubes-builder directory,
sudo chroot chroot-vm-archlinux
and then use pacman to install those missing packages.
sudo pacman -S wget git bin86 dev86 iasl yajl pixman

Then you can run make qubes-vm again until it hits your next error. (Or, if you’re familiar with how qubes-builder works, you can try something more technical).

You will also need to do this several times throughout the course of your build. I can’t remember off the top of my head exactly which ones you’ll need, but pandoc is one of them.

(Accurate at the time of writing this) You’ll then run into some issues when you try and build core-agent-linux, because the Archlinux PKGBUILD still thinks there are qrexec and post-install.d directories inside core-agent-linux. It hasn’t been updated yet (I’m working on it, but nowhere near ready).

Even if you manage to build it (it took me a few hours and multiple attempts), it won’t work as expected. Again, it’s a work in progress…

So yeah… That’s why this is happening. It’ll get fixed eventually :slight_smile:

The Archlinux template now builds properly thanks to @fepitre.

Others are encouraged to test it, some known issues are in the GitHub link (https://github.com/QubesOS/qubes-issues/issues/6028).

2 Likes

Please note that Marek is currently testing and finishing to implement it at the infrastructure side. We should be able soon to have Qubes archlinux repos and Travis enabled without the “allow failure” option as mostly it fails all the time currently…

1 Like

yes. it works on 4.1.
i use fedora-32 as builder and “stable” repo.

1 Like