User:Bennji1991

From Gentoo Wiki
Jump to:navigation Jump to:search

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.

Then change to the directory used in terminal and change the livegui spec files to reflect Xfce:

user $cd ~/releng/releases/specs/amd64/livegui
FILE ~/releng/release/spec/amd64/livegui/livegui-stage1.specXfce example
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:

FILE ~/releng/release/spec/amd64/livegui/livegui-stage2.specXfce example
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|&lt;/nowikidefault samba&lt;nowiki&gt;|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!