[devel-distro] I: mkimage-profiles.git 0.4.0

Michael Shigorin mike at osdn.org.ua
Sun Oct 23 23:37:50 MSK 2011


On Sun, Oct 23, 2011 at 09:49:14PM +0400, Leo-sp50 wrote:
> Кстати, может пригодятся файлы в прицепе с дифом и дополнениями
> в /pkg.in/lists/tagget для сборки десктопных "минималов".

Может, пушнете свой репозиторий на github какой?  Так будет
гораздо удобнее обмениваться наработками, чем дёргать-класть
патчи.

(хорошо бы заархивировать и сделать git rebase на то, что сегодня
пушнул -- хотя должно и смержиться, но мержить мержи приводит к
вязанкам merge commit'ов, а мерж rebase'ного проходит гладко)

>  use/x11/xdm: use/x11/runlevel5
>  	@$(call add,BASE_PACKAGES,xdm installer-feature-no-xconsole)
> +
> +use/x11/wdm: 
> +	@$(call add,BASE_PACKAGES,wdm installer-feature-no-xconsole)

Видите, сколько общего в этих фрагментах?  Я как раз и хочу
избегать такого дублирования (а конкретно xconsole надо вообще
поотрывать везде, где оно забито безусловно гвоздями).

>  distro/desktop-base: distro/installer sub/main \
> -	use/syslinux/ui-vesamenu use/x11/xorg use/bootloader/grub
> +	use/syslinux/ui-vesamenu use/x11/xorg use/bootloader/grub \
> +	use/powerbutton/acpi use/x11/runlevel5

А если бы хоть к use/x11/wdm прицепили зависимость от
use/x11/runlevel5, то тут можно было бы не повторять.

> +	@$(call add,BASE_LISTS,$(call tags,base network))
> +	@$(call add,BASE_LISTS,$(call tags,base l10n))
> +	@$(call add,BASE_LISTS,$(call tags,system desktop))

Не уверен, что это всё есть смысл тянуть в base -- я бы
всё-таки сделал промежуточную цель (или перенёс совсем
базовое в desktop/bare).  Хотя это не высечено в камне.

>  distro/icewm: distro/desktop-base \
> -	use/lowmem use/x11/xdm use/x11/runlevel5 \
> -	use/bootloader/lilo use/powerbutton/acpi \
> -	use/cleanup/alterator
> +	use/x11/xdm

Дважды use/x11/xdm.

И тут ещё один момент: use/x11/xdm зависит от use/x11/runlevel5
(см. features.in/x11/config.mk), хотя вообще-то это для
организации runlevel 5 нужен какой-нибудь dm -- просто выразить
такую зависимость в терминах make без файловых целей у меня
не получается.

(а use/lowmem я уже починил :)

> +distro/e17: distro/desktop-base \
> +	use/x11/wdm
> +	@$(call add,BASE_LISTS,$(call tags,e17 desktop))
> +
> +distro/small: distro/icewm \
> +	use/x11/wdm

Опять же: видите, сколько общего?  Можно так выделить:

distro/: distro/desktop-base use/x11/wdm
distro/e17: distro/wdm
	# ...
distro/small: distro/wdm distro/icewm
	# ... [хотя вообще-то множественное наследование
	#      не рекомендуется по печальному опыту C++]

Как бы поясней это донести... http://vimeo.com/23522095 :)

> +	@$(call add,BASE_LISTS,$(call tags,small desktop))
> +	@$(call add,BASE_LISTS,$(call tags,www desktop))
> +	@$(call add,BASE_LISTS,$(call tags,alterator desktop))

А по сей часть в задумке такой финт ушами:
- где-то складываем в переменные теги вроде distro, desktop, iso;
- где-то смотрим на эти переменные, прибавляем к ним то, что было
  передано уже в явном виде, комбинируем и делаем выборку.

Чтоб можно было примерно так и yetanother попало в теги само:

distro/yetanother:
	@$(call add,BASE_TAGS,small www alterator)

...а где-то в коде отработало:
	BASE_LISTS += $(call tags,$(DISTRO_TAG) && base \
		&& $(call tags_or,$(BASE_TAGS))

и когда-то отрефакторилось, чтобы base/BASE не повторять
для других частей.

-- 
 ---- WBR, Michael Shigorin <mike at altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/



More information about the devel-distro mailing list