Продолжение: "А как свой?"
Сначала сохраним где нибудь собранную ранее урезанную минималку,
она скоро понадобится для сравнения.
Далее читаем вики, начиная с фразы "А как свой?". Там много полезного.
Открываем в редакторе с нумерацией строк файл /mkiso/branch/m-p-d/Makefile.in
и в промежутке между строками (45)slinux.cd и (47)minimal.cd вписываем
следующее (кроме строк 45 и 49):
(45)slinux.cd: | use-slinux use-gdm install2 main install-cd.@IMAGETYPE@
(46)# ***********************************************************************
(47)console.cd: | install2 main rescue install-cd.@IMAGETYPE@
(48)# ***********************************************************************
(49)minimal.cd: | use-icewm use-xdm install2 main install-cd.@IMAGETYPE@
Номера строк проставит редактор (вписывать не нужно). На вики, то что мы сделали,
называется "крупноблочная" настройка. По сравнению с minimal - мы удалили
"крупный" блок icewm, с содержимым можно ознакомиться в /m-p-d/profiles/pkg/lists/
файл icewm (hi!), удалили блок xdm (в данном случае это просто пакет) и
добавили блок rescue (действительно крупный). Теперь в каталоге /m-p-d делаем
$ ./configure --with-version=5.1
$ make console.cd
...
$ make distclean
Идём в каталог /out/desktop/ и смотрим результат. Там лежит образ консольной
сборки, которую многие знают и пробовали, но опять под названием desktop, как
и предыдущая сборка. Это происходит потому, что при запуске ./configure мы не
использовали параметр --with-distro=..., т. к. пока не знаем, что тут написать
(Файл configure.ac мы ещё толком не правили, попозже поправим). Это не страшно,
т. к. сборка полностью рабочая и переименовать несложно.
Теперь "заныриваем" с помощью mc в свежий блин, а другой панелью - во вчерашний,
и начинаем сравнивать. В корне образов сразу видны отличия, если во вчерашнем
есть крупный блок altinst (81М), то в сегодняшнем добавился блок rescue (95 M).
Далее в /ALTLinux/RPMS.main смотрим - в сегодняшнем отсутствуют большинство
шрифтов, ndiswrapper, ну и ещё кое-что, что предусмотрено в файле xorg.in (я не
просто так просил обратить внимание на файлы base.in, kernel.in, xorg.in. в самом
начале). Делаем вывод - xorg.in в сегодняшнюю сборку попал лишь частично - только
то, что притянулось по зависимостям инсталлером. Кто на это повлиял? В Makefile.in
про xorg нет ни слова (можете не искать).
Значит "крупноблочная" коррекция может иногда и напакостить (но не в этом случае),
поэтому требуется вникать в более "более тонкую" настройку (use.mk.in).
Открываем в редакторе (с нумерацией строк конечно) файл use.mk.in и начинаем
искать:
...
(39) $(DESKTOP_TARGETS): | $(AUTOCFG) use-xorg
...
(44) use-xorg:
(45) echo GLOBAL_BASE_PACKAGE_LISTS+='xorg' >> "$(call scfg,main)"
...
(107) use-desktop: use-xorg use-alterator-desktop
...
Мда..., ну и который из них наш? Оказывается самый первый (39), но там есть
какой-то $(DESKTOP_TARGETS), про который в строке (35) написано:
(35) DESKTOP_TARGETS = $(DE_TARGETS) $(WM_TARGETS) $(FEATURE_TARGETS)
Уже легче, в строках 17-22 есть про WM_TARGETS. Всё понятно, убрав из
строки в Makefile.in "use-xdm", мы тем самым оторвали подключение к сборке
файла xorg (по зависимостям что-то притянулось, но не всё).
Цитата с вики:
"Чем более краткими, ясными, устойчивыми к изменениям являются его составляющие — тем удобней браться за разработку или продолжать её через год.
Чем более запутанными и неявно взаимосвязанными они остаются — тем больше времени приходится сперва тратить на отслеживание, кто куда зачем пошёл и надо ли это ещё."
Что-то я не пойму - это "ясность" или "запутанность", и что делает ndiswrapper
в файле xorg.in, они что - жить друг без друга не могут? :D
Ну да ладно. Другого комбайна всё равно нет, а этот работает. Причем хорошо.
Иногда. Вот сегодня сборка получилась со 2-го раза, первый раз обломалась
с ошибкой: find не смог найти "find" (бывает). Закрыл seamonkey (2 экз.),
закрыл оба текстовых редактора, закрыл один из терминалов и отключил погремушку
(gkrellm-монитор). Оставил один терминал urxvt. После этого всё собралось.
Имейте в виду, если что.
Домашнее задание: Будем делать слегка продвинутую минималку с WindowMaker-ом, и с
wdm конечно. Xorg по понятной причине, должен отвалиться (см. строки 17-22 в use.mk.in).
Потому придётся настраивать "крупноблочно", "более тонко" и "совсем тонко" (вики).
Всем заготовить файл WM-mini и положить в /m-p-d/profiles/pkg/lists/...Будем настраивать.
В качестве образца можно использовать файл icewm, который там уже есть.