Hi following a complete list of how I tried to build a the Qubes-OS 4.0.3 ISO. I list everything because I followed the documentation by the letter and it still fails at different points without a pattern or so. I tried in an AppVM where I installed all the dependencies in the template; failure. I tried on bare mental; failure. I tried in a standalone VM; failure. I tried also with pre-build packages and without; failure.
So, by now I doubt that the procedure, which is outlined in the documentation works for someone who starts from scratch.
Today I deleted everything and started from scratch again on Qubes-OS 4.0.3:
- Installed Fedora 32 template.
- Updated that template via dnf update.
- Created a standalone qube based on that template.
- Build the Qubes Builder environment:
sudo dnf install git createrepo rpm-build rpm-sign make python3-sh rpmdevtools rpm-sign dialog perl-open python3-pyyaml perl-Digest-MD5 perl-Digest-SHA
- Created a working directory.
- Followed the document “Building Qubes OS ISO” by the letter. I used the
setup.sh
script. I chose release 4, and I chose pre-build pkg. Then I executed:
make install-deps
make get-sources
So far everything was okay. I added to the builder.conf COMPONENTS := $(filter-out gcc,$(COMPONENTS))
Then I executed:
make qubes
Which failed with this:
make[1]: Entering directory ‘/home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder’
git -C /home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder/chroot-dom0-fc25/home/user/qubes-src/mgmt-salt clean -f -d -X
/home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder/scripts/create-archive /home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder/chroot-dom0-fc25/home/user/qubes-src/mgmt-salt qubes-mgmt-salt-4.0.22.tar.gz
~/My-Stuff/GitHub/Qubes-OS/qubes-builder/chroot-dom0-fc25/home/user/qubes-src/mgmt-salt ~/My-Stuff/GitHub/Qubes-OS/qubes-builder
~/My-Stuff/GitHub/Qubes-OS/qubes-builder
Traceback (most recent call last):
File “/home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder/qubes-src/mgmt-salt/yaml-dumper”, line 18, in
import yaml
ImportError: No module named yaml
make[1]: *** [qubes-src/mgmt-salt/Makefile.builder:59: mgmt-salt-create-vars-makefile] Error 1
make[1]: Leaving directory ‘/home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder’
make: *** [Makefile:239: mgmt-salt-dom0] Error 1
I checked /home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder/qubes-src/mgmt-salt/builder.conf
:
ifeq ($(PKG_MANAGER),dpkg)
DEPENDENCIES += python3-yaml
else ifeq ($(PKG_MANAGER),rpm)
DEPENDENCIES += python3-pyyaml
endif
I checked /home/user/My-Stuff/GitHub/Qubes-OS/qubes-builder/qubes-src/mgmt-salt/yaml-dumper
:
#!/usr/bin/python2 -O
:maintainer: XXXXXXXXXXXXXXXX
:maturity: new
:depends: none
:platform: all
Dump a YAML configuration file to key = value pairs
‘’’
import argparse
import collections
import os
import sys
import yaml
There seems to be a mismatch. mgmt-salt builder.conf sets the dependency to python3, but yaml-dumper is executed with python2.
To me the Qubes-Builder behaves like rolling the dice. What branch should I use? The setup script does not offer a specific branch like 4.0.3. Which branch is locked (no changes are applied)?