mkimage-profiles/conf.d/mixin.mk

229 lines
8.1 KiB
Makefile
Raw Normal View History

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.
2017-09-15 17:45:11 +03:00
### various mixins with their origin
### desktop.mk
mixin/desktop-installer: +vmguest \
use/bootloader/os-prober use/x11-autostart use/fonts/install2 use/sound
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.
2017-09-15 17:45:11 +03:00
@$(call add,BASE_LISTS, \
$(call tags,(base || desktop) && (l10n || network)))
@$(call add,INSTALL2_PACKAGES,ntfs-3g)
### e2k.mk
mixin/e2k-base: use/tty/S0 use/net-eth/dhcp; @:
mixin/e2k-desktop: use/e2k/x11 use/l10n/default/ru_RU \
use/browser/firefox/esr use/browser/firefox \
use/fonts/otf/adobe use/fonts/otf/mozilla
@$(call add,THE_PACKAGES,xinit xterm mc)
@$(call add,THE_PACKAGES,fonts-bitmap-terminus)
mixin/e2k-livecd-install: use/e2k/x11
@$(call add,THE_PACKAGES,livecd-install)
@$(call add,THE_PACKAGES,fdisk hdparm rsync openssh vim-console)
@$(call add,THE_PACKAGES,apt-repo)
mixin/e2k-mate: use/e2k/x11 use/x11/xorg use/fonts/install2 \
use/deflogin/live use/deflogin/xgrp \
use/x11/mate use/x11/lightdm/slick \
use/fonts/otf/adobe use/fonts/otf/mozilla \
use/fonts/ttf/google use/fonts/ttf/redhat
@$(call set,INSTALLER,altlinux-desktop)
@$(call add,THE_BRANDING,mate-settings)
@$(call add,THE_BRANDING,alterator)
@$(call add,THE_BRANDING,graphics)
@$(call add,THE_PACKAGES,setup-mate-terminal)
@$(call add,THE_PACKAGES,setup-mate-nocomposite)
@$(call add,THE_PACKAGES,alterator-standalone)
@$(call add,THE_PACKAGES,terminfo-extra)
@$(call add,THE_PACKAGES,ethtool net-tools ifplugd)
@$(call add,THE_PACKAGES,zsh bash-completion)
mixin/vm-archdep:: use/auto-resize; @:
ifeq (,$(filter-out i586 x86_64 aarch64,$(ARCH)))
mixin/vm-archdep:: +efi
ifeq (,$(filter-out p10,$(BRANCH)))
@$(call set,KFLAVOURS,un-def)
else
@$(call set,KFLAVOURS,std-def un-def)
endif
endif
ifeq (,$(filter-out armh aarch64,$(ARCH)))
mixin/vm-archdep:: use/bootloader/uboot use/no-sleep use/arm-rpi4; @:
endif
ifeq (,$(filter-out mipsel,$(ARCH)))
mixin/vm-archdep:: use/tty/S0
@$(call set,KFLAVOURS,un-malta)
endif
ifeq (,$(filter-out riscv64,$(ARCH)))
mixin/vm-archdep:: use/bootloader/uboot
@$(call set,KFLAVOURS,un-def)
endif
mixin/vm-archdep-x11: mixin/vm-archdep use/vmguest/kvm/x11; @:
mixin/uboot-extlinux: use/bootloader/uboot
@$(call set,EFI_BOOTLOADER,)
mixin/uboot-extlinux-efi: use/uboot +efi; @:
ifeq (aarch64,$(ARCH))
@$(call set,VM_PARTTABLE,msdos)
@$(call set,VM_BOOTTYPE,EFI)
endif
mixin/waydroid: ; @:
ifeq (,$(filter-out aarch64 x86_64,$(ARCH)))
@$(call add,THE_PACKAGES,libgbinder1 waydroid)
@$(call add,THE_KMODULES,anbox)
@$(call add,DEFAULT_SYSTEMD_SERVICES_ENABLE,waydroid-container.service)
@$(call add,BASE_BOOTARGS,psi=1)
endif
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.
2017-09-15 17:45:11 +03:00
### regular.mk
mixin/regular-x11: use/browser/firefox \
use/branding use/ntp/chrony use/services/lvm2-disable
@$(call add,THE_LISTS,$(call tags,(base || desktop) && regular && !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)
ifneq (sisyphus,$(BRANCH))
2021-09-01 00:53:34 +03:00
@$(call set,FX_FLAVOUR,-esr)
endif
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.
2017-09-15 17:45:11 +03:00
# common WM live/installer bits
mixin/regular-desktop: +alsa +nm-native \
use/x11/xorg use/xdg-user-dirs use/l10n \
use/fonts/otf/adobe use/fonts/otf/mozilla use/branding/notes
@$(call set,LOCALES,en_US ru_RU pt_BR)
@$(call add,THE_PACKAGES,pam-limits-desktop beesu polkit dvd+rw-tools)
@$(call add,THE_PACKAGES,eepm)
@$(call add,THE_BRANDING,alterator graphics indexhtml)
ifneq (,$(filter-out e2k%,$(ARCH)))
@$(call add,THE_BRANDING,notes)
endif
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.
2017-09-15 17:45:11 +03:00
@$(call add,THE_PACKAGES,$$(THE_IMAGEWRITER))
@$(call set,THE_IMAGEWRITER,altmediawriter)
@$(call add,THE_PACKAGES,upower udev-rules-rfkill-uaccess)
@$(call add,THE_PACKAGES,hunspell-ru-lebedev hunspell-en_US)
@$(call add,DEFAULT_SERVICES_DISABLE,gssd idmapd krb5kdc rpcbind)
@$(call add,DEFAULT_SERVICES_ENABLE,cups)
@$(call add,DEFAULT_SERVICES_ENABLE,alteratord)
@$(call add,CONTROL,fusermount:public)
@$(call add,CONTROL,libnss-role:disabled)
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.
2017-09-15 17:45:11 +03:00
mixin/desktop-extra:
@$(call add,BASE_LISTS,$(call tags,(archive || base) && extra))
mixin/regular-wmaker: use/fonts/ttf/redhat use/x11/wmaker +nm-gtk
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.
2017-09-15 17:45:11 +03:00
@$(call add,LIVE_PACKAGES,installer-feature-no-xconsole-stage3)
@$(call add,MAIN_PACKAGES,wmgtemp wmhdaps wmxkbru xxkb)
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.
2017-09-15 17:45:11 +03:00
mixin/regular-icewm: use/fonts/ttf/redhat +icewm +nm-gtk
@$(call add,THE_LISTS,$(call tags,regular icewm))
@$(call add,THE_PACKAGES,icewm-startup-networkmanager)
@$(call add,THE_PACKAGES,mnt)
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.
2017-09-15 17:45:11 +03:00
# gdm2.20 can reboot/halt with both sysvinit and systemd, and is slim
mixin/regular-gnustep: use/x11/gnustep use/mediacheck
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.
2017-09-15 17:45:11 +03:00
@$(call add,THE_BRANDING,graphics)
mixin/regular-cinnamon: use/x11/cinnamon use/x11/lightdm/slick +nm-gtk \
use/fonts/ttf/google use/im
@$(call add,THE_PACKAGES,xdg-user-dirs-gtk)
@$(call add,THE_PACKAGES,gnome-disk-utility gnome-system-monitor)
mixin/regular-deepin: use/x11/deepin use/browser/chromium +nm; @:
mixin/regular-gnome: use/x11/gnome use/fonts/ttf/redhat +nm-gtk4
@$(call add,THE_PACKAGES,power-profiles-daemon)
@$(call add,THE_PACKAGES,gnome-terminal)
2023-10-23 20:57:55 +03:00
@$(call add,THE_PACKAGES,gnome-software)
@$(call add,THE_PACKAGES,gnome-tour)
ifeq (,$(filter-out sisyphus,$(BRANCH)))
@$(call add,THE_PACKAGES,gnome-extensions-app)
endif
@$(call add,THE_PACKAGES,evince)
@$(call add,PINNED_PACKAGES,gnome-terminal:Required)
@$(call add,THE_PACKAGES,chrome-gnome-shell)
2023-06-02 07:20:41 +03:00
@$(call add,THE_PACKAGES,qt5-wayland qt6-wayland)
@$(call add,THE_PACKAGES,cups-pk-helper cups)
@$(call add,THE_PACKAGES,fonts-ttf-lxgw-wenkai)
mixin/regular-kde: use/x11/kde use/browser/falkon \
use/x11/kde-display-manager-lightdm \
use/fonts/ttf/google use/fonts/ttf/redhat use/fonts/zerg
ifeq (,$(filter-out sisyphus,$(BRANCH)))
@$(call add,THE_PACKAGES,xdg-desktop-portal-kde)
@$(call add,THE_PACKAGES,plasma-discover)
@$(call add,THE_PACKAGES,kf5-kirigami)
else
@$(call add,THE_PACKAGES,plasma5-xdg-desktop-portal-kde)
@$(call add,THE_PACKAGES,plasma5-discover)
endif
@$(call add,THE_PACKAGES,xdg-desktop-portal-gtk)
@$(call add,THE_PACKAGES,qt6-wayland)
@$(call add,THE_PACKAGES,accountsservice)
@$(call add,THE_PACKAGES,gtk-theme-breeze)
ifneq (,$(filter-out e2k% riscv64 loongarch64,$(ARCH)))
@$(call add,THE_PACKAGES,falkon-kde5)
endif
mixin/xfce-base: use/x11/xfce +nm-gtk \
use/fonts/ttf/redhat use/fonts/ttf/google/extra
@$(call add,THE_PACKAGES,xfce4-regular)
@$(call add,THE_PACKAGES,xreader)
@$(call add,THE_PACKAGES,xdg-user-dirs-gtk)
@$(call add,THE_PACKAGES,xkill)
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.
2017-09-15 17:45:11 +03:00
mixin/regular-xfce: mixin/xfce-base use/domain-client +pipewire
@$(call add,THE_PACKAGES,pavucontrol xscreensaver-frontend)
@$(call add,THE_PACKAGES,xfce4-pulseaudio-plugin xfce-polkit)
mixin/regular-lxde: use/x11/lxde use/im +nm-gtk
@$(call add,THE_PACKAGES,qasmixer qpdfview)
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.
2017-09-15 17:45:11 +03:00
mixin/regular-lxqt: use/x11/lxqt +nm-gtk; @:
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.
2017-09-15 17:45:11 +03:00
mixin/mate-base: use/x11/mate use/fonts/ttf/google +nm-gtk
@$(call add,THE_LISTS,$(call tags,mobile mate))
mixin/regular-mate: mixin/mate-base use/domain-client; @:
ifneq (,$(filter-out riscv64,$(ARCH)))
@$(call add,THE_LISTS,$(call tags,base smartcard))
endif
mixin/office: use/fonts/ttf/google use/fonts/ttf/xo
@$(call add,THE_LISTS,$(call tags,desktop && (cups || office)))
@$(call add,THE_PACKAGES,apt-indicator)
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.
2017-09-15 17:45:11 +03:00
# 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/rescue/.base use/syslinux/sdab.cfg use/grub/sdab_bios.cfg \
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.
2017-09-15 17:45:11 +03:00
use/firmware/qlogic test/rescue/no-x11 +sysvinit; @:
mixin/regular-builder: use/dev/builder/base use/net/dhcp use/ntp/chrony
@$(call add,THE_PACKAGES,bash-completion elinks gpm lftp openssh)
@$(call add,THE_PACKAGES,rpm-utils screen tmux wget zsh)
@$(call add,THE_PACKAGES,apt-repo)
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.
2017-09-15 17:45:11 +03:00
### 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)
@$(call set,GLOBAL_NET_ETH,)
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.
2017-09-15 17:45:11 +03:00
2017-10-23 14:18:24 +03:00
mixin/opennebula-context:
@$(call add,BASE_PACKAGES,opennebula-context)
@$(call add,DEFAULT_SERVICES_ENABLE,one-context-local one-context)
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.
2017-09-15 17:45:11 +03:00
mixin/icewm: use/x11/lightdm/gtk +icewm; @: