mkimage-profiles/features.in
Michael Shigorin a289726792 check-recipe: generalize dependency control
An initial (and quite naive) implementation was done
for conf.d/ files but features do need it as well --
which became obvious during a casual inspection of
distro/alt-workstation's target graph (which occured
broken).

The code is a messy hackery unfortunately, regexes used
are fragile regarding e.g. [A-Z_] in target names.
Read with care.

NB: lib/ might need this too but it's rather stable
    and contains some special cases that would obstruct
    the regexes even more...
2017-01-29 15:50:58 +03:00
..
00example documentation: use paths relative to toplevel dir 2014-03-05 21:36:30 +04:00
armh armh: get rid of 50-sshd-root 2013-08-13 13:35:56 +04:00
armh-cubox a few modules.d test drives 2015-04-20 13:35:28 +03:00
armh-dovefb armh-{cubox,dovefb}: minor refactoring 2013-08-12 20:53:02 +04:00
armh-nexus7 initial armh* features 2013-06-17 16:01:35 +04:00
armh-tegra3 initial armh* features 2013-06-17 16:01:35 +04:00
bootloader bootloader: add a guardian 2013-11-24 21:29:04 +04:00
branding image.in, branding: comment fixups 2015-08-07 16:55:34 +03:00
browser browser: safer fallback browser 2016-12-05 20:37:24 +03:00
build-distro build-distro: ensure prerequisites' order 2017-01-24 17:23:31 +03:00
build-ve documentation: use paths relative to toplevel dir 2014-03-05 21:36:30 +04:00
build-vm 90-build-vm.mk: better error reference 2017-01-14 12:08:13 +03:00
cleanup cleanup: leave docs/manpages alone 2016-06-27 13:50:13 +03:00
control control: install2 support 2016-02-10 15:12:00 +03:00
deflogin deflogin: added target to use NM with sysvinit 2016-11-04 19:17:55 +03:00
dev dev: add gear remotes support 2017-01-14 12:10:43 +03:00
docs docs: en_US fallback for index.html symlink 2016-06-27 13:50:19 +03:00
domain-client domain-client: split into two targets 2014-05-13 22:33:04 +04:00
dos cleanup scripts rehashed 2012-03-31 21:08:09 +03:00
efi efi: shim is a lower level component 2016-04-01 14:24:50 +03:00
firmware features/firmware: add right ucode for Intel 2016-07-27 14:26:24 +03:00
fonts fonts: be explicit about droid 2016-04-26 11:48:13 +03:00
hdt
homeros Homeros distro changes: 2013-11-12 14:05:41 +07:00
im im: drop dependency upon l10n 2015-09-08 18:07:20 +03:00
init init: sysvinit+NM support 2016-11-04 23:21:30 +03:00
install2 install2: *add* xorg-drv-libinput 2016-11-14 21:08:46 +03:00
isohybrid documentation: use paths relative to toplevel dir 2014-03-05 21:36:30 +04:00
isomd5sum mediacheck: the former isomd5sum 2014-03-31 23:50:00 +04:00
kernel kernel: add desktop, laptop targets 2016-04-01 14:22:11 +03:00
l10n a few modules.d test drives 2015-04-20 13:35:28 +03:00
live live: use CLEANUP_BASE_PACKAGES either 2016-04-04 13:05:16 +03:00
lowmem stage2, lowmem: update cleanup hooks for qt5 2015-12-04 20:58:32 +03:00
ltsp ltsp: employ sound feature 2013-07-15 13:55:59 +04:00
luks luks: move alterator-luks from pkglist to feature 2014-01-16 15:30:22 +04:00
mediacheck mediacheck: purge more packages 2014-04-07 23:32:38 +04:00
memclean memclean: new feature 2015-04-20 13:35:32 +03:00
memtest efi: add use/efi/memtest86 2013-12-19 03:11:11 +04:00
metadata metadata: add THE_PACKAGES_REGEXP to DOT_BASE too! 2016-12-05 00:03:40 +03:00
net enable service network for etcnet and NM, not for systemd-networkd 2016-03-02 07:20:22 +03:00
net-eth add UseMTU for systemd dhcp client 2016-11-02 23:46:57 +03:00
net-ssh vm-ssh: renamed to net-ssh and cleaned up 2013-08-12 20:53:01 +04:00
net-usershares net-usershares: sync groups with alterator-users 2016-10-31 22:09:44 +03:00
ntp initial ntp feature 2015-11-30 16:49:32 +03:00
oem initial oem feature 2013-07-01 23:33:52 +04:00
pack README update 2013-06-10 19:43:31 +04:00
pid1 pid1: initial "run as PID 1" feature 2014-09-19 20:53:25 +04:00
plymouth install2: drop use/install2/kms 2015-02-25 12:39:12 +03:00
power power: i-f-cpufreq is no more 2014-10-27 12:25:32 +03:00
relname relname: tweak the fix/diagnostics 2012-10-10 12:06:55 +03:00
repo repo: harden against missing keydir 2016-12-26 17:23:11 +03:00
rescue rescue: add os-prober to base rescue 2016-12-13 13:36:16 +03:00
robotics Robotics related package list, feature and live-robo target added. 2014-04-04 15:49:34 +04:00
server server: empty BOOTVGA by default 2016-12-30 16:35:42 +03:00
services services: optimize loop 2016-10-31 22:09:38 +03:00
slinux slinux: use lightdm and installer fonts 2016-02-29 21:49:33 +03:00
sound sound feature refactoring 2015-02-10 23:06:30 +03:00
speech speech: should use/sound too 2013-11-25 00:17:32 +04:00
stage2 stage2: added virtio_console 2016-07-28 15:57:40 +03:00
syslinux syslinux: *disable* bootsplash for rescue targets 2017-01-24 17:39:58 +03:00
tty initial tty feature 2013-08-12 20:53:02 +04:00
vagrant vagrant: oops, some junk left 2015-02-19 21:33:12 +03:00
vmguest vmguest: add vmware support to "complete" target 2016-08-15 14:09:06 +03:00
wireless wireless: dedup via pkglist 2016-11-14 12:54:44 +03:00
x11 x11: xfce tweaks 2016-11-07 18:17:12 +03:00
x11-autologin x11-autologin: updated sddm case 2015-11-03 18:13:11 +03:00
x11-autostart Revert "x11-autostart: ensure prefdm startup" 2014-07-01 21:18:12 +04:00
xdg-user-dirs xdg-user-dirs: employ control feature 2013-07-15 13:56:00 +04:00
Makefile check-recipe: generalize dependency control 2017-01-29 15:50:58 +03:00
README documentation: use paths relative to toplevel dir 2014-03-05 21:36:30 +04:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== features.in ==

Этот каталог содержит т.н. фичи (features, особенности).

Фича -- отдельно подключаемая сущность, которая содержит
повторно используемые конфигурацию/код и определяет одну
из особенностей создаваемого образа.  Может зависеть от
других фич либо субпрофилей.

Каждая фича должна содержать файл config.mk, включаемый
в main.mk при построении конфигурации будущего профиля;
он может описывать одну или более целей вида use/*,
дополняющих конфигурацию, и обязан добавить имя фичи
в $(FEATURES), для чего создана функция add_feature.

На этапе генерации сборочного профиля фичи рассматриваются
после инициализации профиля (см. image.in/) и копирования
субпрофилей (см. sub.in/).  Для каждой фичи, указанной
в $(FEATURES), копируются подкаталоги сообразно включенным
субпрофилям, а также lib/ и {image-,}scripts.d/; затем
выполняются generate.sh и generate.mk при их наличии.

Если фича дополняет хуками семейство целевых субпрофилей,
построенных на одном базовом, можно воспользоваться подкаталогом
с именем исходного базового субпрофиля (см. $src, $dst в Makefile).

Рекомендуется давать несколько различающиеся имена скриптам,
которые одна и та же фича может добавлять в различные стадии,
чтобы они не выглядели одинаково в логе сборки.

Наиболее востребованные цели можно снабжать "ярлычками" вроде
"+icewm" с тем, чтобы сделать более краткими и выразительными
использующие их правила.  Просьба не злоупотреблять количеством,
такие имена предполагается показывать в интерфейсе к профилю.

Каталог lib/ является специфическим для фич, определяющих
построение конкретного вида образа -- см. build-*/.

Несложный пример содержится в 00example/, более близкий к жизни
и нынешним пределам возможностей метапрофиля -- в syslinux/.

См. тж. файлы README в каталогах фич (отсутствие -- баг!).