This is for anyone who want to try building A full build of qubes os, this will include xfce, kde, i3 and gnome desktop environment which you can choose at installation. The gnome DE is actually a minimal gnome functionality, and there’s known bug (cosmetics). The packages is downloaded from fedora, I’ve only add dash to dock package.
Get the qubes master key
gpg2 --import /usr/share/qubes/qubes-master-key.asc
gpg2 --edit-key qubes
trust
5
y
q
Get the qubes developer key
wget https://keys.qubes-os.org/keys/qubes-developers-keys.asc
gpg2 --import qubes-developers-keys.asc
Qubes Builder
cd qubes-builder
Verify its integrity
git tag -v `git describe`
Write builder.conf
cat >>builder.conf<< EOF
# 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
USE_QUBES_REPO_TESTING = 1
ISO_USE_KERNEL_LATEST = 1
ISO_VERSION = 5111341
INSTALLER_KICKSTART=/home/user/qubes-src/installer-qubes-os/conf/travis-iso-full.ks
EOF
make get-sources
make install-deps
We use pre-built qubes packages, how long the build is depends on your internet connection, we would change qubes kickstart and qubes dom0 comp with my own.
Qubes kickstart
rm qubes-src/installer-qubes-os/conf/qubes-kickstart.cfg
wget -P qubes-src/installer-qubes-os/conf https://raw.githubusercontent.com/51lieal/qubes-installer-qubes-os/51lieal-patch-1/conf/qubes-kickstart.cfg
Qubes dom0 comps
rm qubes-src/installer-qubes-os/meta-packages/comps/comps-dom0.xml
wget -P qubes-src/installer-qubes-os/meta-packages/comps https://raw.githubusercontent.com/51lieal/qubes-meta-packages/51lieal-patch-1/comps/comps-dom0.xml
Build Qubes
make remount
make iso
After finish, you could find your iso in ~/qubes-builder/iso
Here’s the video of this guide:
Btw, you couldn’t use gnome built-in screencast since I’ve only provided the minimal gnome functionality, but it’s already good enough if you want to customize it. It need take some time for me to research about what package need to remove in dom0.