Advanced Qubes Installation (light installer / 4Kn Debian Template / Detached header / Encrypted Boot / Dom0 & DispVM in tmpfs)

Oh… I have been building the ISO three times now, with the “incorrect” path for the INSTALLER_KICKSTART variable in the builder.conf file then.

I didn’t get any error messages, nor the process aborted due to this. Any reason why?

In the meanwhile, I will correct the INSTALLER_KICKSTART variable to its correct path and re-compile the ISO.

1 Like

Hey, I just got error:
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks

on the make iso operation, during
--> Building installer-qubes-os iso for fc32
step.

This is really weird, as the file at that location exists:

$ ls -la /home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks
-rw-rw-r-- 2 user user 766 Jul 25 16:27 /home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks

I am really confused.
Previously, the process didn’t complain about a “non-existant” file/directory (that is, /home/user/qubes-src/… → there is no qubes-src folder on the home folder! but it doesn’t complain about this!).
And now I point it to the correct, existing folder/file, and it gives a “File does not exist!” error!

1 Like

Here is the error message I am getting:

-> Building installer-qubes-os iso for fc32
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/pykickstart/load.py", line 93, in _load_file
    with open(filename, 'rb') as fh:
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/pykickstart/parser.py", line 825, in readKickstart
    s = load_to_str(f)
  File "/usr/lib/python3.8/site-packages/pykickstart/load.py", line 45, in load_to_str
    return _load_file(location)
  File "/usr/lib/python3.8/site-packages/pykickstart/load.py", line 99, in _load_file
    raise KickstartError(_('Error opening file: %s') % str(e))
pykickstart.errors.KickstartError: Error opening file: [Errno 2] No such file or directory: '/home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/qubes-src/installer-qubes-os/scripts/ksparser", line 96, in <module>
    sys.exit(main())
  File "/home/user/qubes-src/installer-qubes-os/scripts/ksparser", line 57, in main
    ksparser.readKickstart(args.ks)
  File "/usr/lib/python3.8/site-packages/pykickstart/parser.py", line 827, in readKickstart
    raise KickstartError(_("Unable to open input kickstart file: %s") % str(e), lineno=0)
pykickstart.errors.KickstartError: The following problem occurred on line 0 of the kickstart file:

Unable to open input kickstart file: Error opening file: [Errno 2] No such file or directory: '/home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks'

make[1]: *** [Makefile:116: iso-prepare] Error 1
--> build failed!
make: *** [Makefile:575: iso] Error 1
[user@builder qubes-builder]$

For clarity, I will paste the contents of the following files: builder.conf, comps-dom0.xml and qubes-kickstart.cfg.

builder.conf:
# vim: ft=make

VERBOSE ?= 2

BACKEND_VMM ?= xen

GIT_BASEURL ?= https://github.com
GIT_PREFIX ?= QubesOS/qubes-

RELEASE ?= 4.1

DIST_DOM0 ?= fc32
DISTS_VM ?=

COMPONENTS =     installer-qubes-os     linux-yum     builder-rpm     linux-template-builder

BUILDER_PLUGINS ?= builder-rpm

USE_QUBES_REPO_VERSION = 4.1

INSTALLER_KICKSTART=/home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks
comps-dom0.xml

PrivateBin Paste

qubes-kickstart.cfg
# Kickstart file for composing the "Qubes" spin of Fedora

# Package manifest for the compose.  Uses repo group metadata to translate groups.
# (@base is added by default unless you add --nobase to %packages)
# (default groups for the configured repos are added by --default)

repo --name=fedora --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-32-primary --ignoregroups=true --metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-32&arch=x86_64
repo --name=fedora-updates --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-32-primary --ignoregroups=true --metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f32&arch=x86_64
repo --name=installer --baseurl=file:///tmp/qubes-installer/yum/installer/
repo --name=qubes-dom0 --baseurl=file:///tmp/qubes-installer/yum/qubes-dom0/
repo --name=dom0-updates --baseurl=file:///tmp/qubes-installer/yum/dom0-updates/

%packages
@core
@base
@base-x --nodefaults
@sound-basic
@fonts
@hardware-support
@qubes
@qubes-ui
@anaconda-tools
@fedora
@debian
@whonix
@i3
# weaks dependencies
-adobe-source-code-pro-fonts
-compat-f32-dejavu-sans-fonts
-compat-f32-dejavu-sans-mono-fonts
-compat-f32-dejavu-serif-fonts
-crypto-policies-scripts
-deltarpm
-dnfdaemon-selinux
-fips-mode-setup
-flac
-fwupd-plugin-flashrom
-fwupd-plugin-modem-manager
-gcc-gdb-plugin
-geolite2-city
-geolite2-country
-gnupg2-smime
-gstreamer1-plugins-good-qt
-lame
-libsss_autofs
-libsss_sudo
-libxcrypt-compat
-libyui-gtk
-libyui-mga-gtk
-libyui-mga-qt
-libyui-qt
-libyui-qt-graph
-mkpasswd
-ntfs-3g-system-compression
-oddjob-mkhomedir
-openssl-pkcs11
-openbox
-opus-tools
-perl-IO-Compress
-perl-IO-Socket-SSL
-perl-Math-BigInt
-perl-Mozilla-CA
-pigz
-pinentry
-python-systemd-doc
-python-unversioned-command
-python3-unbound
-rpm-plugin-systemd-inhibit
-sssd-nfs-idmap
-trousers
# selected dependencies
-blueberry
%end

Any ideas for the “FileNotFoundError” ? I mean, the file on the path that it complains do exists. Which makes this error really cryptic.

A bit closer look also reveals another cryptic situation: on the error message I pasted above, the upmost Traceback reads,
File "/usr/lib/python3.8/site-packages/pykickstart/load.py"
However, this file does NOT exist on the fedora-36 /usr/lib/ folder!
There is only /usr/lib/python3.10/ folder there. So, I am really baffled as to how would the script make the call to a python3.8 folder under /usr/lib.

A day after EDIT:
I figured that the solution to this error is having the

INSTALLER_KICKSTART=/home/user/qubes-builder/qubes-src/installer-qubes-os/conf/iso-full-online.ks

line in the builder.conf file WITHOUT the /qubes-builder/ part. So, @51lieal your original builder.conf file is correct with that line.
Now I, too, am using the INSTALLER_KICKSTART as you are:
INSTALLER_KICKSTART=/home/user/qubes-src/installer-qubes-os/conf/iso-full-online.ks

The reason for this is, as far as I understand the documentation is that the building process uses chroot and creates a root file system environment within the /home/user/qubes-builder/ and goes deeper from that part.

1 Like