ximper.mk 8.04 KB
ifeq (distro,$(IMAGE_CLASS))

# Basic applications and User selection lists
# Lists - pkg.in/lists/etersoft/*
# Groups - pkg.in/groups/etersoft/*
mixin/ximper-desktop-common-software:
	@$(call add,THE_LISTS,etersoft/_base-apps)
	@$(call add,MAIN_GROUPS,\
	 \
	 etersoft/gnome-a11y\
	 etersoft/00_gnome-settings\
	 \
	 slinux/flatpak etersoft/z99_timeshift\
	 slinux/graphics\
	 slinux/graphics-full-inkscape slinux/graphics-full-shotwell etersoft/graphics-krita etersoft/graphics-blender\
	 \
	 etersoft/00_office etersoft/libreoffice-still etersoft/libreoffice-latest etersoft/office-atril\
	 etersoft/office-fragments\
	 \
	 slinux/multimedia\
	 slinux/multimedia-full-audacity etersoft/multimedia-amberol etersoft/multimedia-mpv\
	 slinux/multimedia-full-shotcut etersoft/multimedia-full-obs-studio\
	 \
	 etersoft/virt-machines\
	 etersoft/virt-manager etersoft/gnome-boxes etersoft/virtualbox\
	 \
	 etersoft/01_games\
	 etersoft/games-portproton etersoft/games-lutris etersoft/games-mangohud\
	 etersoft/games-32bit-libs etersoft/games-vkbasalt etersoft/games-steam\
	 \
	 etersoft/02_peripheral\
	 etersoft/peripherals-openrgb etersoft/peripherals-asusctl-rog-gui\
	 \
	 etersoft/03_browsers etersoft/browsers-firefox etersoft/browsers-firefox-esr etersoft/browsers-gnome-web\
	 etersoft/browsers-chromium-gost etersoft/browsers-yandex-browser-stable\
	 \
	 etersoft/04_dev-tools etersoft/dev-tools-codium etersoft/dev-tools-etersoft-build-utils\
	 etersoft/dev-tools-gnome-ssh-agent etersoft/dev-tools-geany\
	 \
	 etersoft/05_messengers\
	 etersoft/messengers-telegram etersoft/messengers-whatsapp\
	 etersoft/z01_gparted\
	 )
	@$(call add,LIVE_GROUPS,\
	 etersoft/gnome-settings\
	 etersoft/chromium-gost etersoft/libreoffice etersoft/atril\
	 etersoft/portproton etersoft/telegram etersoft/32bit-libs etersoft/gnome-ssh-agent\
	 slinux/graphics-full-shotwell slinux/flatpak etersoft/timeshift\
	 etersoft/gparted\
	 )


mixin/ximper-desktop: +alsa +nm-native \
	use/x11/xorg use/xdg-user-dirs use/l10n \
	use/branding/notes
	@$(call set,LOCALES,en_US)
	@$(call add,THE_PACKAGES,pam-limits-desktop beesu polkit dvd+rw-tools fonts-cascadia-code)
	@$(call add,THE_PACKAGES,polkit-rule-admin-root)
	@$(call add,THE_BRANDING,alterator graphics indexhtml backgrounds apt-conf notes)
	@$(call add,THE_PACKAGES,$$(THE_IMAGEWRITER))
	@$(call set,THE_IMAGEWRITER,altmediawriter)
	@$(call add,THE_PACKAGES,upower udev-rules-rfkill-uaccess)
	@$(call add,DEFAULT_SERVICES_DISABLE,gssd idmapd krb5kdc rpcbind)
	@$(call add,DEFAULT_SERVICES_ENABLE,cups)
	@$(call add,DEFAULT_SERVICES_ENABLE,alteratord)
	@$(call add,SERVICES_ENABLE,fstrim.timer)
	@$(call add,SERVICES_ENABLE,asusd)
	@$(call add,CONTROL,fusermount:public)
	@$(call add,CONTROL,libnss-role:disabled)
	@$(call add,THE_PACKAGES,sudo)
	@$(call add,CONTROL,sudowheel:enabled)


mixin/ximper-x11: use/luks \
	use/kernel/disable-usb-autosuspend \
	use/branding use/ntp/chrony use/services/lvm2-disable
	@$(call add,THE_LISTS,$(call tags,(base || desktop) && ximper && !extra))
	@$(call add,THE_PACKAGES,disable-usb-autosuspend)
	@$(call add,THE_PACKAGES,btrfs-progs)
	@$(call add,THE_PACKAGES,gpm)
	@$(call add,DEFAULT_SERVICES_DISABLE,gpm powertop)
	@$(call add,LIVE_PACKAGES,volumes-profile-kdesktop)
	@$(call set,INSTALL2_FONTS,fonts-otf-abattis-cantarell)


mixin/ximper-gnome: use/x11/xorg \
	use/x11/lightdm/slick \
	use/fonts/ttf/redhat \
	use/fonts/ttf/google-noto \
	+nm-gtk \
	+pipewire
	@$(call add,THE_PACKAGES,installer-feature-lightdm-stage3)
	@$(call add,THE_LISTS,etersoft/_gnome-base) # pkg.in/lists/etersoft/_gnome-base
	@$(call add,SERVICES_ENABLE,switcheroo-control.service) # Service to check dual-GPU. Q: Maybe to post script if present?
	@$(call add,IM_PACKAGES,imsettings-gsettings)


distro/.ximper-bare: distro/.base \
	use/kernel/laptop use/kernel/net use/kernel/wireless \
	use/docs/license \
	use/stage2/ata use/stage2/fs use/stage2/hid use/stage2/md \
	use/stage2/mmc use/stage2/net use/stage2/net-nfs use/stage2/cifs \
	use/stage2/rtc use/stage2/sbc use/stage2/scsi use/stage2/usb \
	use/stage2/drm use/tty
	@$(call try,SAVE_PROFILE,yes)
	@$(call add,STAGE1_PACKAGES,firmware-linux)
	@$(call add,STAGE1_KMODULES,drm)
ifeq (sisyphus,$(BRANCH))
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
	@$(call set,BOOTLOADER,grubpcboot)
endif
endif

# base target (for most images)
distro/.ximper-minimal-env: distro/.ximper-bare \
	use/isohybrid use/vmguest use/memtest \
	use/efi/dtb +efi; @:


# graphical target (not enforcing xorg drivers or blobs)
distro/.ximper-x11: distro/.ximper-minimal-env mixin/ximper-x11 \
	use/x11/wacom use/x11/amdgpu +wireless \
	use/live/x11 use/live/repo \
	use/live/suspend \
	use/syslinux/ui/gfxboot use/grub/ui/gfxboot
	@$(call add,THE_BRANDING,bootloader)
	@$(call add,THE_LISTS,$(call tags,(base || desktop) && ximper))
	@$(call add,LIVE_LISTS,$(call tags,base rescue))
	@$(call add,LIVE_PACKAGES,gpm)
	@$(call add,DEFAULT_SERVICES_DISABLE,gpm powertop)


distro/.ximper-wm: distro/.ximper-x11 \
	mixin/ximper-desktop +vmguest \
	use/live/rw use/live/ru
	@$(call set,INSTALLER,alt-workstation)

distro/.ximper-install: distro/.ximper-minimal-env +live-installer-pkg \
	use/branding use/bootloader/grub use/luks use/stage2/kms
	@$(call add,LIVE_PACKAGES,fdisk)
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
	@$(call add,LIVE_PACKAGES,xorg-conf-synaptics)
endif
	@$(call add,THE_LISTS,$(call tags,base ximper))
	@$(call add,LIVE_PACKAGES,btrfs-progs)
	@$(call add,THE_BRANDING,alterator)


distro/.ximper-install-x11: distro/.ximper-install +vmguest +wireless \
	mixin/ximper-desktop mixin/ximper-x11 \
	use/branding/complete use/branding/slideshow/once mixin/desktop-installer \
	use/efi/shell use/l10n/default/ru_RU
	@$(call add,LIVE_PACKAGES,installer-feature-fstrim-stage2)
	@$(call set,INSTALLER,alt-workstation)
	@$(call add,MAIN_PACKAGES,anacron man-whatis usb-modeswitch)


distro/.ximper-install-x11-systemd: distro/.ximper-install-x11 +systemd +systemd-optimal
	@$(call add,THE_PACKAGES,bluez)
	@$(call add,THE_PACKAGES,btrfs-progs)
	@$(call add,DEFAULT_SERVICES_ENABLE,bluetoothd)

distro/ximper-base: distro/.ximper-install-x11-systemd \
	use/live/rw use/live/ru use/live/x11 use/live/repo \
	use/live/suspend \
	mixin/ximper-desktop-common-software \
	use/kernel/latest \
	+plymouth;
	@$(call set,META_VOL_ID,Ximper Linux $(DISTRO_VERSION) $(ARCH))
	@$(call set,META_APP_ID,Ximper Linux $(DISTRO_VERSION) $(ARCH) $(shell date +%F))
	@$(call set,BRANDING,etersoft-ximper)
	@$(call set,KFLAVOURS,std-def un-def)
	@$(call add,MAIN_PACKAGES,kernel-headers-un-def)
	@$(call add,MAIN_PACKAGES,kernel-headers-modules-un-def)
	@$(call add,THE_KMODULES,virtualbox bcmwl)
	@$(call add,THE_PACKAGES,bcmwl-kernel-conf)
	@$(call add,LIVE_PACKAGES,livecd-gnome3-setup-done)
	@$(call add,LIVE_PACKAGES,gnome-flashback screenpen)


# nvidia-drm.modeset=1 for Wayland and VR
# Remove nouveau as not needed
# Add install scripts of Nvidia and all releated things out of box
mixin/ximper-nvidia: use/x11/nvidia use/stage2/kms/nvidia
	@$(call add,BASE_BOOTARGS,nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init)
	@$(call add,LIVE_PACKAGES,apt-scripts-nvidia)
	@$(call add,CLEANUP_PACKAGES,'^kernel-modules-drm-nouveau.*')
	@$(call add,BASE_PACKAGES,apt-scripts-nvidia)
	@$(call add,BASE_PACKAGES,nvidia-modprobe nvidia-settings libglut libGLU nvidia-vaapi-driver vulkan-tools \
	nvidia-xconfig libvulkan1 libcuda libcudadebugger libnvcuvid libnvidia-api libnvidia-encode \
	libnvidia-fbc libnvidia-ml libnvidia-ngx libnvidia-nvvm libnvidia-opencl \
	libnvidia-ptxjitcompiler libnvoptix nvidia-smi ocl-nvidia)



distro/ximper-gnome: distro/ximper-base \
	mixin/ximper-gnome

distro/ximper-gnome-nvidia: distro/ximper-gnome \
	mixin/ximper-nvidia

endif

# Fonts mixins

use/fonts/ttf/google-noto: use/fonts
	@$(call add,FONTS,fonts-ttf-google-noto-sans)
	@$(call add,FONTS,fonts-ttf-google-noto-serif)
	@$(call add,FONTS,fonts-ttf-google-noto-sans-mono)
	@$(call add,FONTS,fonts-ttf-google-noto-sans-symbols)
	@$(call add,FONTS,fonts-ttf-google-noto-sans-symbols2)
	@$(call add,FONTS,fonts-ttf-google-noto-emoji)
	@$(call add,FONTS,fonts-ttf-google-noto-emoji-color)
	@$(call add,FONTS,fonts-otf-google-noto-cjk)