User:Bennji1991
This article will show the user how to create a livegui build like relnng but using XFCE rather than KDE.
Install catalyst
catalyst is require to follow this and can be setup by following the information at Catalyst
Prepare build setup
If missed in the Catalyst article, a fresh copy of the releng config files should be pulled from their git. This is so the user doesn't have to deal with circular dependences and other common issues that comes from building a live media like this.
user $
git clone https://github.com/gentoo/releng
Then change to the directory used in terminal and change the livegui spec files to reflect Xfce:
user $
cd ~/releng/releases/specs/amd64/livegui
subarch: amd64
version_stamp: stormgenz-<DATE>
target: livecd-stage1
rel_type: default
profile: default/linux/amd64/23.0/desktop
snapshot_treeish: <TREEISH>
source_subpath: default/stage3-amd64-openrc-latest.tar.xz
compression_mode: pixz
portage_confdir: <relengdir>/releases/portage/livegui
livecd/use:
-aac
compile-locales
fbcon
jpeg2k
livecd
networkmanager
openexr
opus
postproc
portaudio
pulseaudio
python
vpx
xetex
compat
branding
plymouth
livecd/packages:
app-admin/hddtemp
app-admin/sudo
app-admin/syslog-ng
app-admin/sysstat
app-arch/bzip2
app-arch/cpio
app-arch/gzip
app-arch/mt-st
app-arch/p7zip
app-arch/pbzip2
app-arch/tar
app-arch/zip
app-arch/unrar
app-backup/fsarchiver
app-cdr/dvd+rw-tools
app-cdr/cdrtools
app-crypt/gnupg
app-crypt/pinentry
app-editors/nano
app-editors/vim
app-office/libreoffice-bin
app-emacs/ebuild-mode
# Fails to build...
# app-emulation/xen-tools
app-eselect/eselect-repository
app-misc/livecd-tools
app-misc/mc
app-misc/pax-utils
app-misc/tmux
app-misc/wipe
app-portage/cpuid2cpuflags
app-portage/eix
app-portage/genlop
app-portage/bennjilkit
app-portage/mirrorselect
app-portage/portage-utils
app-portage/pram
app-portage/ufed
app-shells/bash-completion
app-shells/bennji-bashcomp
app-text/dos2unix
app-text/ghostscript-gpl
app-text/pdftk
app-text/recode
app-text/tree
app-text/wgetpaste
app-text/xournalpp
app-vim/bennji-syntax
dev-lang/perl
dev-lang/python
# Gone until it supports python3_10
# dev-util/kdevelop-python
dev-vcs/git
dev-vcs/subversion
media-gfx/fbgrab
media-gfx/gimp
media-gfx/graphviz
media-gfx/inkscape
media-sound/alsa-utils
net-analyzer/iptraf-ng
net-analyzer/nmap
net-analyzer/openbsd-netcat
net-analyzer/tcpdump
net-analyzer/tcptraceroute
net-analyzer/traceroute
net-dns/bind-tools
net-fs/cifs-utils
net-fs/nfs-utils
net-ftp/ftp
net-ftp/ncftp
net-im/pidgin
net-irc/hexchat
net-irc/irssi
net-misc/chrony
net-misc/dhcpcd
net-misc/iputils
net-misc/ndisc6
net-misc/openssh
net-misc/rdate
net-misc/rdesktop
net-misc/rsync
net-misc/vconfig
net-misc/wget
net-misc/whois
net-vpn/networkmanager-openvpn
net-vpn/networkmanager-pptp
net-vpn/openfortivpn
net-vpn/openvpn
net-wireless/b43-fwcutter
net-wireless/iw
net-wireless/wireless-tools
net-wireless/wpa_supplicant
sys-apps/arch-chroot
sys-apps/acl
sys-apps/attr
sys-apps/busybox
sys-apps/cciss_vol_status
sys-apps/chname
sys-apps/coreutils
sys-apps/dcfldd
sys-apps/diffutils
sys-apps/dmidecode
sys-apps/dstat
sys-apps/ethtool
sys-apps/file
sys-apps/findutils
sys-apps/flashrom
sys-apps/fxload
sys-apps/gawk
sys-apps/gptfdisk
sys-apps/hdparm
sys-apps/hwinfo
sys-apps/ipmitool
sys-apps/iproute2
sys-apps/inxi
sys-apps/less
sys-apps/man-db
sys-apps/man-pages
sys-apps/man-pages-posix
sys-apps/memtester
sys-apps/memtest86+
sys-apps/mlocate
sys-apps/netplug
sys-apps/nvme-cli
sys-apps/pciutils
sys-apps/sdparm
sys-apps/sed
sys-apps/setserial
sys-apps/sg3_utils
sys-apps/smartmontools
sys-apps/which
sys-apps/usbutils
sys-apps/util-linux
sys-auth/ssh-import-id
sys-block/aoetools
sys-block/gparted
sys-block/mtx
sys-block/open-iscsi
sys-block/parted
sys-block/partimage
sys-block/tw_cli
sys-block/whdd
sys-boot/grub
sys-boot/os-prober
sys-fs/bcache-tools
sys-fs/btrfs-progs
sys-fs/ddrescue
sys-fs/dosfstools
sys-fs/e2fsprogs
sys-fs/exfat-utils
sys-fs/extundelete
sys-fs/fuse-exfat
sys-fs/f2fs-tools
sys-fs/genfstab
sys-fs/growpart
sys-fs/lsscsi
sys-fs/lvm2
sys-fs/mac-fdisk
sys-fs/ntfs3g
sys-fs/xfsprogs
sys-kernel/linux-firmware
sys-libs/gpm
sys-power/acpid
sys-process/htop
sys-process/lsof
sys-process/iotop
sys-process/procps
sys-process/psmisc
www-client/firefox-bin
x11-misc/lightdm-gtk-greeter
x11-misc/lightdm
xfce-base/thunar-volman
xfce-extra/thunar-archive-plugin
xfce-extra/thunar-media-tags-plugin
xfce-extra/xfce4-mailwatch-plugin
xfce-extra/xfce4-pulseaudio-plugin
xfce-extra/xfce4-weather-plugin
xfce-extra/xfce4-whiskermenu-plugin
x11-misc/xdg-user-dirs
x11-misc/prime-run
x11-misc/plank
sys-process/htop
sys-process/cronie
net-wireless/blueman
net-wireless/bluez
net-print/cups
net-print/gutenprint
net-print/hplip
app-admin/system-config-printer
net-misc/ntp
net-fs/samba
media-sound/pavucontrol
media-fonts/terminus-font
gnome-extra/nm-applet
gnome-base/gvfs
app-arch/engrampa
app-admin/syslog-ng
xfce-base/xfce4-meta
dev-qt/qtstyleplugins
media-video/vlc
mail-client/thunderbird-bin
x11-themes/adwaita-icon-theme
x11-themes/gtk-engines-adwaita
media-gfx/flameshot
media-fonts/jetbrains-mono
media-fonts/jetbrainsmono-nerdfont
net-wireless/broadcom-sta
app-emulation/spice-vdagent
dev-qt/qtwebengine
app-misc/fastfetch
Next, edit the livegui-stage2 file:
subarch: amd64
version_stamp: stormgenz-<DATE>
target: livecd-stage2
rel_type: default
profile: default/linux/amd64/23.0/desktop
snapshot_treeish: <TREEISH>
source_subpath: default/livecd-stage1-amd64-xfce-latest
portage_confdir: <releng dir>/releases/portage/amd64/livegui
livecd/bootargs: overlayfs nodhcp dokeymap dodetect dousb quiet splash zram.num_devices=1
livecd/depclean: no
livecd/fstype: squashfs
livecd/iso: StormGenZ-latest.iso
livecd/type: gentoo-release-livecd
livecd/volid: StormGenZ_LiveDVD_<Date>
livecd/readme: Welcome to StormGenZ, making Gentoo GNU/Linux easy for anyone, pro or newbie! Containing the famous calamares installer, a highly customized XFCE desktop, bash aliases in the users .bashrc in their home directory, oh-my-bash to simplify bash usage and more!
livecd/motd: "Welcome to StormGenZ"
livecd/users: stormgenz-user
livecd/xsession: xfce
livecd/fsscript: /home/bennji/catalyst_stormgenz/stage2.sh
livecd/rcadd: udev|sysinit udev-mount|sysinit acpid|default dbus|default gpm|default NetworkManager|default bluetooth|default elogind|boot alsasound|boot ntpd|default lightdm|default cupsd|default sshd|default ntpd|default syslog-ng|default cronie|default bluetooth|</nowikidefault samba<nowiki>|default
boot/kernel/gentoo/use: atm png truetype usb plymouth
boot/kernel/gentoo/packages:
net-wireless/b43-fwcutter
net-wirless/broadcom-sta
livecd/empty:
/var/db/repos
/usr/src
boot/kernel: gentoo
boot/kernel/gentoo/distkernel: yes
boot/kernel/gentoo/dracut_args: --xz --no-hostonly -a dmsquash-live -a mdraid -o btrfs -o crypt -o i18n -o usrmount -o lunmask -o qemu -o qemu-net -o nvdimm -o multipath -o plymouth -i /lib/keymaps /lib/keymaps -I busybox
boot/kernel/gentoo/packages: sys-fs/zfs
be SURE to customize these spec files to YOUR own liking, these are just EXAMPLES. once done edit the fsscript.sh with your desired changes, lightdm, and more. https://github.com/bfitzgit23/catalyst_stormgenz this is my example repo for stormgenz if you want to you can use it for a guide to get you started. PLEASE do not use it as a full on repo/guide for your own iso though.
then once done making all your edits go ahead and run
root #
catalyst -a -f livegui-stage1.spec
root #
catalyst -a -f livegui-stage2.spec
then wait and you should have a customized xfce + calamares gentoo iso. test it in your desired vm environment or (if your brave enough) computer of choice!