mkimage-profiles/features.in
Michael Shigorin d7689f30c7 tar2vm: rewrote as tar2fs
Overview of the changes:
- ARM support: separate ext2 /boot, no LILO
- avoid race condition with devmapper
- trap ERR so that -e in shebang doesn't result in extra cleanup hassle
- configurable root filesystem type (ext4 by default)
- jumps through parted hoops

Details:

1. LILO is x86-specific while the rest of the script can be used
   to prepare e.g. Marvell ArmadaXP or CuBox images; we can generally
   count on uboot supporting ext2 for relatively sane platforms but
   not ext4 that would be a better root filesystem performance-wise.

2. Apparently /dev/mapper/loopXpY can be still missing at the time
   when kpartx returns and pop up a bit later... sit there, wait
   and check for it.

3. If something went wrong with any command of the script it would bail out
   due to -e in shebang; it is now better to clean up the loopback device
   and its mappings in this situation either.

4. One size doesn't fit all, really.

5. The parted sizing was sloppy as in broken, now it's just half insane.
   Someone's decision to stick units and auto-alignment knobs into
   a single one was apparently hilarious...

   http://www.gnu.org/software/parted/manual/parted.html#unit

Manual loop/dm cleanup is described in documentation just in case.

/boot size meter is suboptimal in terms of additional I/O incurred,
will be most likely rewritten to make use of advance "du -s".
2013-06-17 19:29:11 +04:00
..
00example 00example: fixed a harmless typo 2013-06-10 20:04:46 +04:00
armh initial armh* features 2013-06-17 16:01:35 +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 README update 2013-06-10 19:43:31 +04:00
branding README update 2013-06-10 19:43:31 +04:00
build-distro build-distro: drop sortfile on the floor 2013-02-04 22:18:26 +04:00
build-ve build-{ve,vm}: handle THE_* and DOT_BASE too 2013-06-17 14:03:53 +04:00
build-vm tar2vm: rewrote as tar2fs 2013-06-17 19:29:11 +04:00
cleanup Rename all scripts in */image-scripts.d to format \d\d-scriptname 2013-01-06 12:05:32 +04:00
deflogin initial deflogin feature (security sensitive!) 2013-06-17 14:03:54 +04:00
dev live-builder: minor fixes 2012-07-16 18:24:18 +03:00
dos cleanup scripts rehashed 2012-03-31 21:08:09 +03:00
efi efi: generalize (stage2 += rootfs) 2013-06-17 14:03:53 +04:00
firmware firmware: dropped firmware-carl9170 2013-03-18 16:36:59 +02:00
fonts fonts: consistency tweak 2013-06-17 14:03:54 +04:00
hdt plant SHELL beacons into all config-forming rules 2012-03-19 19:23:38 +02:00
homeros Homeros: 2013-01-28 08:35:16 +07:00
init initial init feature 2013-06-17 14:03:54 +04:00
install2 install2: minor EFI related tweak 2013-05-27 13:30:11 +04:00
isohybrid isohybrid: drop postprocessing, xorriso is enough 2013-03-25 14:13:42 +04:00
isomd5sum initial kernel and metadata features 2012-05-10 21:18:02 +03:00
kernel kernel: introduced use/kernel/net target 2013-02-21 22:37:28 +04:00
live live: disable dmeventd by default too 2013-06-17 19:29:11 +04:00
lowmem Rename all scripts in */image-scripts.d to format \d\d-scriptname 2013-01-06 12:05:32 +04:00
ltsp ltsp: switch to led-ws on both x86 arches 2013-03-10 19:02:27 +02:00
luks luks: it's not just BASE packages 2012-12-31 18:10:12 +04:00
memtest introduced add_feature function 2011-11-19 11:47:29 +02:00
metadata metadata: fix a tiny bitrot 2013-06-17 19:29:11 +04:00
pack README update 2013-06-10 19:43:31 +04:00
plymouth plymouth: stage2 fix primarily for live 2013-02-04 22:18:27 +04:00
power README update 2013-06-10 19:43:31 +04:00
relname relname: tweak the fix/diagnostics 2012-10-10 12:06:55 +03:00
repo actually useful vm/icewm 2012-09-03 19:16:50 +03:00
rescue rescue: tweaked pkglist and feature config 2013-04-22 23:33:59 +04:00
server initial live-testserver.iso 2012-07-28 13:22:59 +04:00
services initial rootfs subprofile and services feature 2013-06-17 14:03:53 +04:00
slinux x11: driver and purpose related refactoring 2013-06-17 16:01:35 +04:00
stage2 live, stage2: net-eth moved 2013-03-06 01:21:03 +02:00
syslinux added live_rw support 2013-03-25 14:13:42 +04:00
systemd initial init feature 2013-06-17 14:03:54 +04:00
vm-net initial vm-{net,ssh} features 2012-06-25 19:29:38 +03:00
vm-ssh initial vm-{net,ssh} features 2012-06-25 19:29:38 +03:00
vmguest Revert "vmguest: apply vboxdrv related workaround" 2013-05-08 03:14:49 +03:00
wireless wireless: depend on firmware 2013-02-21 22:36:27 +04:00
x11 x11-autologin: factor out x11-autostart 2013-06-17 16:01:35 +04:00
x11-autologin x11-autologin: factor out x11-autostart 2013-06-17 16:01:35 +04:00
x11-autostart x11-autologin: factor out x11-autostart 2013-06-17 16:01:35 +04:00
Makefile initial rootfs subprofile and services feature 2013-06-17 14:03:53 +04:00
README README update 2013-06-10 19:43:31 +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 в каталогах фич (отсутствие -- баг!).