mixin.mk: gather all mixin/* targets
These have appeared in desktop.mk, regular.mk, vm.mk over time, and there are two problems around. The minor one is that mixins have been introduced as handy reusable bits close in context of their use; this practically means that they fall under the same class restrictions as their parent targets, that is a mixin coming from regular.mk will only be available for "distro" IMAGE_CLASS, and so on. The major one is probably the worst design flaw in m-p: building images from ground up, where ground is a valid standalone buildable target as well. Life has shown that we rather want to build up images the other way around, choosing what essentials go in first and then fitting the fine details along with the packaging. The first sign of this difference appeared with ARMv7 Simply: we had a well-built configuration aiming for x86 ISO, still we needed roughly the same app/environment configuration put into armh disk image. Those platforms were different enough that we didn't actually plan shipping *lots* of distributions but the problem was clear, and it was much alike to the one that sprang m-p to life in the first place (when we had a range of "common" distros and needed to create and maintain a set of "school" ones that mostly had similar or even identical difference to their respective base ones -- and we couldn't do something like conf.d/p8.mk does now). So mixins are going to become the softer way to turn m-p's target configuration chain upside down to considerable extent: build up what you're going to mix into the various deliverables, and make it as portable across image classes, hardware platforms, repository branches as feasible so that total maintenance effort needed goes down or at least doesn't spike too bad. And here's the first strike at that.
This commit is contained in:
parent
b558f88bfa
commit
24defe9461
@ -6,13 +6,6 @@ distro/.desktop-base: distro/.installer use/syslinux/ui/vesamenu use/x11/xorg
|
||||
|
||||
distro/.desktop-mini: distro/.desktop-base use/x11/xdm +power; @:
|
||||
|
||||
mixin/desktop-installer: +net-eth +vmguest \
|
||||
use/x11-autostart use/fonts/install2 use/sound
|
||||
@$(call add,BASE_LISTS, \
|
||||
$(call tags,(base || desktop) && (l10n || network)))
|
||||
@$(call add,INSTALL2_PACKAGES,ntfs-3g)
|
||||
@$(call add,BASE_PACKAGES,os-prober)
|
||||
|
||||
distro/.desktop-network: distro/.desktop-mini mixin/desktop-installer; @:
|
||||
|
||||
distro/.desktop-extra:
|
||||
|
69
conf.d/mixin.mk
Normal file
69
conf.d/mixin.mk
Normal file
@ -0,0 +1,69 @@
|
||||
### various mixins with their origin
|
||||
|
||||
### desktop.mk
|
||||
mixin/desktop-installer: +net-eth +vmguest \
|
||||
use/x11-autostart use/fonts/install2 use/sound
|
||||
@$(call add,BASE_LISTS, \
|
||||
$(call tags,(base || desktop) && (l10n || network)))
|
||||
@$(call add,INSTALL2_PACKAGES,ntfs-3g)
|
||||
@$(call add,BASE_PACKAGES,os-prober)
|
||||
|
||||
### regular.mk
|
||||
# common WM live/installer bits
|
||||
mixin/regular-desktop: use/x11/xorg use/sound use/xdg-user-dirs
|
||||
@$(call add,THE_PACKAGES,pam-limits-desktop)
|
||||
@$(call add,THE_PACKAGES,installer-feature-desktop-other-fs-stage2)
|
||||
@$(call add,THE_PACKAGES,alterator-notes dvd+rw-tools)
|
||||
@$(call add,THE_BRANDING,alterator graphics indexhtml notes)
|
||||
@$(call add,THE_PACKAGES,$$(THE_IMAGEWRITER))
|
||||
@$(call set,THE_IMAGEWRITER,imagewriter)
|
||||
|
||||
mixin/regular-wmaker: use/efi/refind use/syslinux/ui/gfxboot \
|
||||
use/fonts/ttf/redhat use/x11/wmaker
|
||||
@$(call add,LIVE_PACKAGES,livecd-install-wmaker)
|
||||
@$(call add,LIVE_PACKAGES,installer-feature-no-xconsole-stage3)
|
||||
@$(call add,MAIN_PACKAGES,wmgtemp wmhdaps wmpomme wmxkbru xxkb)
|
||||
|
||||
# gdm2.20 can reboot/halt with both sysvinit and systemd, and is slim
|
||||
mixin/regular-gnustep: use/x11/gnustep use/x11/gdm2.20 use/mediacheck \
|
||||
use/browser/firefox/classic
|
||||
@$(call add,THE_BRANDING,graphics)
|
||||
|
||||
mixin/regular-xfce: use/x11/xfce use/fonts/ttf/redhat use/x11/gtk/nm +nm; @:
|
||||
|
||||
mixin/regular-xfce-sysv: use/init/sysv/polkit use/deflogin/sysv/nm \
|
||||
use/x11/lightdm/gtk \
|
||||
use/browser/firefox use/browser/firefox/classic \
|
||||
use/browser/firefox/i18n use/browser/firefox/h264 \
|
||||
use/fonts/otf/adobe use/fonts/otf/mozilla
|
||||
@$(call add,THE_PACKAGES,pnmixer pm-utils elinks mpg123)
|
||||
|
||||
mixin/regular-lxde: use/x11/lxde use/fonts/infinality \
|
||||
use/x11/gtk/nm use/im +nm
|
||||
@$(call add,LIVE_LISTS,$(call tags,desktop gvfs))
|
||||
|
||||
mixin/regular-tde: +tde \
|
||||
use/syslinux/ui/gfxboot use/browser/firefox/classic use/fonts/ttf/redhat
|
||||
@$(call add,THE_PACKAGES_REGEXP,kdeedu-kalzium.* kdeedu-ktouch.*)
|
||||
@$(call add,DEFAULT_SERVICES_DISABLE,upower bluetoothd)
|
||||
|
||||
mixin/regular-lxqt: use/x11/lxqt use/x11/sddm \
|
||||
use/browser/qupzilla use/x11/gtk/nm +nm +plymouth
|
||||
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
|
||||
|
||||
# NB: never ever use/syslinux/ui/gfxboot here as gfxboot mangles
|
||||
# kernel cmdline resulting in method:disk instead of method:cdrom
|
||||
# which will change propagator's behaviour to probe additional
|
||||
# filesystems (ro but no loop) thus potentially writing to
|
||||
# an unrecovered filesystem's journal
|
||||
mixin/regular-rescue: use/rescue use/isohybrid use/luks use/branding \
|
||||
use/syslinux/ui/menu use/syslinux/timeout/600 \
|
||||
use/firmware/qlogic test/rescue/no-x11 +sysvinit; @:
|
||||
|
||||
### vm.mk
|
||||
mixin/cloud-init:
|
||||
@$(call add,BASE_PACKAGES,cloud-init)
|
||||
@$(call add,DEFAULT_SERVICES_ENABLE,cloud-config cloud-final)
|
||||
@$(call add,DEFAULT_SERVICES_ENABLE,cloud-init cloud-init-local)
|
||||
|
||||
mixin/icewm: use/x11/lightdm/gtk +icewm; @:
|
@ -21,15 +21,6 @@ distro/.regular-x11: distro/.regular-base +vmguest +wireless \
|
||||
@$(call add,DEFAULT_SERVICES_DISABLE,gpm powertop)
|
||||
@$(call add,EFI_BOOTARGS,live_rw)
|
||||
|
||||
# common WM live/installer bits
|
||||
mixin/regular-desktop: use/x11/xorg use/sound use/xdg-user-dirs
|
||||
@$(call add,THE_PACKAGES,pam-limits-desktop)
|
||||
@$(call add,THE_PACKAGES,installer-feature-desktop-other-fs-stage2)
|
||||
@$(call add,THE_PACKAGES,alterator-notes dvd+rw-tools)
|
||||
@$(call add,THE_BRANDING,alterator graphics indexhtml notes)
|
||||
@$(call add,THE_PACKAGES,$$(THE_IMAGEWRITER))
|
||||
@$(call set,THE_IMAGEWRITER,imagewriter)
|
||||
|
||||
# WM base target
|
||||
distro/.regular-wm: distro/.regular-x11 mixin/regular-desktop; @:
|
||||
|
||||
@ -116,47 +107,23 @@ distro/regular-icewm: distro/.regular-sysv-gtk +icewm +nm \
|
||||
@$(call add,LIVE_PACKAGES,icewm-startup-networkmanager)
|
||||
@$(call set,KFLAVOURS,un-def)
|
||||
|
||||
mixin/regular-wmaker: use/efi/refind use/syslinux/ui/gfxboot \
|
||||
use/fonts/ttf/redhat use/x11/wmaker
|
||||
@$(call add,LIVE_PACKAGES,livecd-install-wmaker)
|
||||
@$(call add,LIVE_PACKAGES,installer-feature-no-xconsole-stage3)
|
||||
@$(call add,MAIN_PACKAGES,wmgtemp wmhdaps wmpomme wmxkbru xxkb)
|
||||
|
||||
# wdm can't do autologin so add standalone one for livecd
|
||||
distro/regular-wmaker: distro/.regular-sysv \
|
||||
mixin/regular-wmaker use/live/autologin use/browser/palemoon/i18n
|
||||
@$(call add,LIVE_PACKAGES,wdm wmxkbru)
|
||||
|
||||
# gdm2.20 can reboot/halt with both sysvinit and systemd, and is slim
|
||||
mixin/regular-gnustep: use/x11/gnustep use/x11/gdm2.20 use/mediacheck \
|
||||
use/browser/firefox/classic
|
||||
@$(call add,THE_BRANDING,graphics)
|
||||
|
||||
distro/regular-gnustep: distro/.regular-sysv \
|
||||
mixin/regular-wmaker mixin/regular-gnustep; @:
|
||||
distro/regular-gnustep-systemd: distro/.regular-wm +systemd \
|
||||
mixin/regular-wmaker mixin/regular-gnustep; @:
|
||||
|
||||
mixin/regular-xfce: use/x11/xfce use/fonts/ttf/redhat use/x11/gtk/nm +nm; @:
|
||||
|
||||
distro/regular-xfce: distro/.regular-gtk mixin/regular-xfce \
|
||||
use/x11/xfce/full use/domain-client
|
||||
@$(call set,KFLAVOURS,un-def)
|
||||
|
||||
mixin/regular-xfce-sysv: use/init/sysv/polkit use/deflogin/sysv/nm \
|
||||
use/x11/lightdm/gtk \
|
||||
use/browser/firefox use/browser/firefox/classic \
|
||||
use/browser/firefox/i18n use/browser/firefox/h264 \
|
||||
use/fonts/otf/adobe use/fonts/otf/mozilla
|
||||
@$(call add,THE_PACKAGES,pnmixer pm-utils elinks mpg123)
|
||||
|
||||
distro/regular-xfce-sysv: distro/.regular-sysv-gtk \
|
||||
mixin/regular-xfce mixin/regular-xfce-sysv; @:
|
||||
|
||||
mixin/regular-lxde: use/x11/lxde use/fonts/infinality \
|
||||
use/x11/gtk/nm use/im +nm
|
||||
@$(call add,LIVE_LISTS,$(call tags,desktop gvfs))
|
||||
|
||||
distro/regular-lxde: distro/.regular-gtk mixin/regular-lxde
|
||||
@$(call add,THE_PACKAGES,lxde)
|
||||
|
||||
@ -193,12 +160,6 @@ distro/regular-gnome3: distro/.regular-desktop +plymouth +nm \
|
||||
@$(call add,LIVE_PACKAGES,gnome3-regular xcalib templates)
|
||||
@$(call add,LIVE_PACKAGES,gnome-flashback screenpen)
|
||||
|
||||
# reusable bits
|
||||
mixin/regular-tde: +tde \
|
||||
use/syslinux/ui/gfxboot use/browser/firefox/classic use/fonts/ttf/redhat
|
||||
@$(call add,THE_PACKAGES_REGEXP,kdeedu-kalzium.* kdeedu-ktouch.*)
|
||||
@$(call add,DEFAULT_SERVICES_DISABLE,upower bluetoothd)
|
||||
|
||||
distro/regular-tde: distro/.regular-desktop mixin/regular-tde +plymouth \
|
||||
use/x11/gtk/nm use/net/nm/mmgui
|
||||
|
||||
@ -213,10 +174,6 @@ distro/regular-kde4: distro/.regular-desktop use/x11/kde4/nm use/x11/kdm4 \
|
||||
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
|
||||
@$(call add,DEFAULT_SERVICES_ENABLE,prefdm)
|
||||
|
||||
mixin/regular-lxqt: use/x11/lxqt use/x11/sddm \
|
||||
use/browser/qupzilla use/x11/gtk/nm +nm +plymouth
|
||||
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
|
||||
|
||||
distro/regular-lxqt: distro/.regular-desktop mixin/regular-lxqt; @:
|
||||
|
||||
distro/regular-lxqt-sysv: distro/.regular-sysv mixin/regular-lxqt \
|
||||
@ -234,15 +191,6 @@ distro/regular-kde5: distro/.regular-desktop \
|
||||
@$(call add,THE_PACKAGES,kde5-telepathy)
|
||||
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
|
||||
|
||||
# NB: never ever use/syslinux/ui/gfxboot here as gfxboot mangles
|
||||
# kernel cmdline resulting in method:disk instead of method:cdrom
|
||||
# which will change propagator's behaviour to probe additional
|
||||
# filesystems (ro but no loop) thus potentially writing to
|
||||
# an unrecovered filesystem's journal
|
||||
mixin/regular-rescue: use/rescue use/isohybrid use/luks use/branding \
|
||||
use/syslinux/ui/menu use/syslinux/timeout/600 \
|
||||
use/firmware/qlogic test/rescue/no-x11 +sysvinit; @:
|
||||
|
||||
distro/regular-rescue: distro/.regular-base mixin/regular-rescue \
|
||||
use/rescue/rw use/efi/refind use/efi/shell use/efi/memtest86 \
|
||||
use/hdt use/syslinux/rescue_fm.cfg use/syslinux/rescue_remote.cfg \
|
||||
|
@ -17,11 +17,6 @@ vm/systemd-net: vm/systemd use/net-eth/networkd-dhcp use/net-ssh \
|
||||
use/repo use/control/sudo-su use/deflogin
|
||||
@$(call add,BASE_PACKAGES,su)
|
||||
|
||||
mixin/cloud-init:
|
||||
@$(call add,BASE_PACKAGES,cloud-init)
|
||||
@$(call add,DEFAULT_SERVICES_ENABLE,cloud-config cloud-final)
|
||||
@$(call add,DEFAULT_SERVICES_ENABLE,cloud-init cloud-init-local)
|
||||
|
||||
# vm/net or vm/systemd-net
|
||||
vm/cloud-systemd: vm/systemd-net mixin/cloud-init use/vmguest/kvm
|
||||
@$(call add,DEFAULT_SERVICES_DISABLE,consolesaver)
|
||||
@ -36,8 +31,6 @@ vm/.desktop-bare: vm/net use/x11/xorg use/cleanup/installer use/repo; @:
|
||||
vm/.desktop-base: vm/.desktop-bare \
|
||||
use/deflogin/altlinuxroot use/x11-autologin; @:
|
||||
|
||||
mixin/icewm: use/x11/lightdm/gtk +icewm; @:
|
||||
|
||||
vm/icewm: vm/.desktop-base mixin/icewm; @:
|
||||
|
||||
vm/icewm-setup: vm/.desktop-bare mixin/icewm use/oem use/x11-autostart
|
||||
|
Loading…
Reference in New Issue
Block a user