[devel-distro] image review -- работа над ошибками

Denis Pynkin denis_pynkin at epam.com
Tue Jun 2 16:09:37 MSK 2015


Hi all,

по просьбе Миши перебираемся в общую рассылку -- я, похоже, наступил на все грабли,
на которые только можно наступить ;-) Надеюсь будет полезно не только мне.

Основная идея: получить stateless образ с максимальным набором ПО для
разработки. Чем-то похоже на Knoppix, наверое.

Целевая аудитория: студенты-технари/программисты, а заодно -- "швейцарский
ножик" в кармане для девелопера (внезапно, уже несколько раз пригодилось,  после
мелкого анонса среди знакомых ;-) )

Формат: загрузочный live-cd + загрузочный по сети.

"Разрабатывался" в течение нескольких лет мелкими подходами раз в год.
Используется для работы бездисковых рабочих систем на одной кафедре в одном универе ;-)

После работы над ошибками, хотелось бы включить в апстрим.

----- Forwarded message from Michael Shigorin <mike at a.o> -----


PreScriptum: предлагаю перебираться в devel-distro@,
чтоб и другим польза от обсуждения могла быть.


On Mon, May 25, 2015 at 03:30:12PM +0300, Denis Pynkin wrote:
> Можешь покритиковать? 
> http://git.altlinux.org/people/dans/packages/?p=mkimage-profiles.git;a=tree;h=ce273c878eca255721ac9d2131195c67e09d624b;hb=8ec89e6a517f88e5d4bcd2a05e88d296a3b895e0

Первое -- тут пока получается поддерживать линейную историю
без merge commits, но эт и я поправлю cherry-pick'ом.

И ещё 80 символов в строке пока тоже в основном получается
(полезно в т.ч. при работе "в две колонки").


По существу:

@$(call set,KFLAVOURS,std-def) -- избыточно, т.к. явное умолчание

Установку HOMEPAGE/HOMENAME/META_SYSTEM_ID повторять в целях,
производных от distro/live-evm-cluster, смысла особого нет,
т.к. они к этому моменту уже в нужном виде (посмотри
build/distcfg.mk после начала сборки или с CHECK=1).
Собственно, META_SYSTEM_ID=LINUX задан в distro/.base, на который
опирается distro/.live-base, на котором строишь ты.


Далее: фича evm кажется избыточной, т.к. в основном содержит
уже реализованные скрипты -- думаю, лучше просто в conf.d/evm.mk
(а оригинальное раскидать, см. ниже).

@$(call add,CLEANUP_PACKAGES,'kernel-modules-drm-nouveau*')
делать не должно быть надо, по крайней мере при разработке
live-flightgear удалось добиться нужной комплектности.

[!] Вместо use/live/nodm с kde4 может быть естественней
use/x11-autologin (он умеет kdm4); но тут более существенный
момент: предполагается (но не принудительно и до сих пор это
не приходилось документировать в явном виде), что дистрибутивы
втягивают фичи, но не наоборот; а у тебя use/evm/desktop как
наследник distro/regular-kde4, что приводит ко множественному
наследованию в графе построения дистрибутивной конфигурации --
это может работать, а может и сломаться на конфликтах, поэтому
при необходимости порождения нескольких таких поддеревьев на
сейчас придуманы или фичи, или mixin/* для обиблиотечивания
общих кусков конфигурации именно в таких случаях, когда фича
избыточна в силу отсутствия необходимости класть скрипты.
Или же сделать distro/live-evm-desktop из distro/regular-kde4,
а свои добавки оформить как mixin либо оставить как полную фичу.

features.in/evm/stage2/image-scripts.d/20-locale, по идее,
излишен, т.к. есть features.in/live/live/image-scripts.d/20-locale
(вообще скрипты с одинаковым названием в один и тот же субпрофиль
-- плохая идея, хотя rsync -qab и должен оставлять следы в виде
*~, по которым затем цель finalize должна ругаться).

features.in/evm/stage2/image-scripts.d/50-setup-network содержит
копию features.in/live/live/image-scripts.d/50-setup-network,
упразднённого коммитом 5d829265db1b9a6bef80dc0d0a0abee5aa2eac97
в пользу  (файлы отличаются на "echo DHCP_TIMEOUT=3" из коммита
9d7538838ce2aa8ac2211fb53cd9b3656e48d51b).

features.in/evm/stage2/image-scripts.d/50-sshd-host_key.sh есть
смысл унести сразу в фичу live (как вариант, с соответствующей
ручкой, надо подумать/посоветоваться в sysadmins@).

features.in/evm/stage2/image-scripts.d/60-apt тоже похож на дубль
(ты часом не ручками набирал нужные скрипты вместо подключения
фич, где они штатно живут?) -- сейчас есть use/repo и там
features.in/repo/image-scripts.d/90-enable-repo

features.in/evm/stage2/image-scripts.d/90-cuda-config
надо вынести в отдельную фичу cuda.

features.in/evm/stage2/image-scripts.d/90-services -- разумеется,
просто use/services. :)


features.in/evm/stage2/image-scripts.d/99-evm-config --
единственный оправдывающий существование фичи скрипт; сейчас
отчасти нужный код есть в фичах control, deflogin и services, но:
- про часовой пояс напрашивается фича tz; 
- /etc/altlinux-release "по порядку" формируется из нужного
  брендинга (и всяко бы не хотелось фиксации таких версий в
  скриптах из профиля);
- про sysctl и mpi напрашиваются одноименные фичи (при этом
  фрагмент с /etc/profile.d/mpi*.sh, вероятно, надо бы делать
  вообще в пакетной базе, но это явно тема для devel@);
- chsh вроде как и не надо, в live и так bash по умолчанию.


features.in/stage2/stage1/scripts.d/11-initrd-misc, как там
и написано, надо бы вынести куда-то ещё, только не придумал
пока, как это место назвать.


Вместо списков evm-* предложу завести evm/* (просто evm при этом
станет evm/base по недокументированной конвенции -- придумаешь,
где такое соглашение описать, сообщи).

kernel-modules-nvidia-un-def забивать ни к чему, есть более
гибкий инструмент в виде LIVE_KMODULES/THE_KMODULES, куда
достаточно добавить слово nvidia.  Хотя вообще для этого
хватит use/x11/3d, который тащит use/x11/nvidia и там всё
так и сделано.

В evm/devel, наверное, можно было бы что-то повыбрасывать
в пользу уже сформированных списков, но когда пишешь свой
-- обеспечиваешь себе гарантию того, что указанное будет
(так и задумано для подобных случаев).

evm-calibre стоит подключать в ifeq (x86_64,$(ARCH)) (i586-*).


-# Correctly setted X server
+# Correctly plumbed X server


# net
tshark
wireshark*
// возможно, тебе ещё понравится netvisix, только control нужен


С pkg.in/lists/gns3 нехорошо получилось, исключения из "чужих"
списков могут что-то сломать; лучше консультироваться с теми,
кого git blame за них, и выносить пакеты из LISTS в PACKAGES
(этот список используется в conf.d/test.mk).  Это если пакет
livecd-virtualbox действительно мешает, что странно (с kvm
они спокойно уживаются, пока не пытаешься запустить сразу две
_виртуалки_ разных типов).

> А то я тут потерялся немного с правилами m-p и уже реализованными фичами.

Так не стесняйся дёргать почтой или жабером :)

> Основная идея: получить stateless образ с максимальным набором
> ПО для разработки. Чем-то похоже на Knoppix, наверое.
> Целевая аудитория: студенты-технари/программисты, а заодно --
> "швейцарский ножик" в кармане для девелопера (внезапно, уже
> несколько раз пригодилось,  после мелкого анонса среди знакомых
> ;-) ) Формат: загрузочный live-cd + загрузочный по сети.
> 
> Собирал на базе сизифа с прошлой недели -- жалоб на удивление немного ;-)

Так, смотри.  У меня после 1.1.65-alt1 коммитов пока с гулькин
нос -- если хочешь, могу быренько наброситься и причесать твои
в первом приближении (с получением эквивалентного результата,
но после rebase) да сегодня помержить и выложить, а то те
три-четыре как-то не настолько важны.

Если охота самому -- тогда пиши, как понял, и делай,
а я сегодня базу чуть передвину :)

----- End forwarded message -----

-- 
Best Regards,
Denis Pynkin

Lead software engineer
EPAM Systems
Minsk office, Belarus
Office phone: +375 (17) 389-0100, ext.59976
Office fax: +375 (17) 268-6699
E-mail: Denis_Pynkin at epam.com
http://www.epam.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.altlinux.org/pipermail/devel-distro/attachments/20150602/b91f6d0b/attachment.html>


More information about the devel-distro mailing list