How to build Qubes installation ISO

Qubes uses FedoraUnity? ​Revisor to build the installation ISO.

You may want to get familiar with ​Revisor documentation.

Build installer packages

Get ​Qubes Installer repository and build its packages:

cd installer
make rpms

Packages will be in rpm/noarch and rpm/x86_64.

Install Revisor

Next install the freshly built revisor and anaconda:

yum install rpm/noarch/revisor*.rpm
yum install rpm/x86_64/anaconda*.rpm

Review configuration files

All configuration files for Qubes Revisor are kept in the conf/ directory:

  • conf/qubes-install.conf - Main Revisor configuration file. This configures Revisor to build Qubes Installation image based on Fedora 13. All other configuration files and working directories are pointed here.

  • conf/qubes-x86_64.conf - This file describes all repositories needed to build Qubes for x86_64 architecture.

  • conf/qubes-kickstart.cfg - Fedora Kickstart formatted file describing which packages should land in the ISO /Packages repository. This describes basically what will be available for installation. The packages list built using this file will be further filtered by the comps file.

  • conf/comps-qubes.xml - Repository Comps file for ISO /Packages repository, describing packages and package groups of the installer repository. Package groups are used to select which of the packages are mandatory to install, which are optional and which are to be just available on the ISO but not installed by default (not used on Qubes).

Create/Update? local repository

Revisor fetches all RPM packages from YUM repositories. We currently use 5 repositories:

  • yum/installer (installer-related rpms)
  • yum/qubes-dom0 (all the Qubes stuff)
  • yum/dom0-updates (for select 3rd party packages, e.g. Xorg)
  • yum/fedora13-repo (local fedora 13 repo, copy from DVD)
  • remote fedora repo for extra packages (usually deps for qubes-dom0)

You need to manually copy the Fedora 13 installation DVD contents (Packages/ and repodata/ directories) into build/fedora13-repo.

Also, you need to copy all the qubes dom0 rpms into build/yum/qubes-dom0/rpm and run the yum/update_repo.sh script afterwards.

In order to fill the build/yum/installer repo one can just use make update-repo.

The build/yum/dom0-updates is to be used for select rpms that should also be used instead of those from the fedora (loacal and remote) repos.

Update your local repos:

make update-repo

Build ISO

Now you’re finally ready to build the ISO image:

make iso

and wait…

You may add -d 1 (or -d 99 if you’re a masochist) in the Makefile at the end of the revisor command to get (a ton of) debugging information.