ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] I: spt
@ 2006-01-27 13:08 Anton D. Kachalov
  2006-01-30 13:12 ` Kirill Maslinsky
  0 siblings, 1 reply; 2+ messages in thread
From: Anton D. Kachalov @ 2006-01-27 13:08 UTC (permalink / raw)
  To: devel; +Cc: sisyphus

В i/S залит spt.
Это давний форк от separator. Про него я ещё пускал слушок на Протвенской
конференции. Основная фишка - это использование hasher для инициализации
чрута и дальнейшей работой с чрутом после установки пакетов.

На сегодняшний день, для инициализации чрута потребуется немного
изменённый basesystem (без зависимости на dev). Это вопрос уже обсуждался
с ldv@. Так же, это актуально в свете udev'a. Вместе с этим, появится
новый dev (std и min).
http://lrn.ru/~mouse/spt/basesystem-sisyphus-alt13.nodev.src.rpm

Есть альтернативный способ для кул-хацкеров :)
a) патчим /usr/share/hasher/mkchroot:
--- hasher.orig/mkchroot        2005-11-26 01:15:53 +0300
+++ hasher/mkchroot     2005-11-29 20:56:32 +0300
@@ -95,7 +95,8 @@
 Verbose "Changed working directory to \`$chroot'."
 
 mkdir -m711 $verbose .host
-mkdir -m755 $verbose .in dev dev/pts
+mkdir -m1775 $verbose dev
+mkdir -m755 $verbose .in dev/pts
 chgrp "$gid1" $verbose . dev dev/pts
 mkdir -m1770 $verbose .out
 chgrp "$gid2" $verbose .out

b) собираем пакет MAKEDEV без директории /dev и /dev/pts.
После чего даже с обычным basesystem'ом пакет dev поставится в чрут.
Данный вопрос тоже обсуждается в ldv@ :)

Вернёмся к нашим попугаям.

1. Инициализация рабочей директории.
$ spt -v -P default ~/workdir
spt: changed working directory to `/home/mouse/workdir'
spt: creating profile `default'

2. Профайл. Конфиги.
Все настройки хранятся в $workdir/profile.
Каждый проект состоит из одной или нескольких компонент.

 - config
 	Основной конфиг проекта, задющий имя, версию и т.д. Многие из переменных 	говорят сами за себя. Но на двух стоит 	остановится.

	o ARCH - фактически, вывод uname -m. При работе сепаратора создаётся
	директория $workdir/repo/ARCH/RPMS.hasher куда можно складывать
	RPM-файлы, подцепляемые во время разворачивания чрута.
	[TODO: сделать параметр --repo для явного указания местоположения
	репозитария]

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

	o CDFILENAME - имя ISO-образа. По умолчанию, livecd.iso. Так же,
	его можно задать через command line. Т.к. это шелл-переменная, то
	иногда уместно использовать нечто вроде:
	CDFILENAME="livecd-$(uname -m)-$(date +%Y%m%d).iso"

 - *.cnf
 	Конфигурационный файл отдельно взятой компоненты.

	o CLASS - имя класса. Наследие оригинального separator.
	Фактически, указывает на директорию с глобальными пост-скриптами,
	которые должны выполнятся взависимости от выбранного профайла: для
	livecd выполняются одни, для инсталлятора - другие.
	
	o DIRS - шаблон файлов или просто имя файла со списком пакетов.
	[TODO: переименовать во что-то более соответствующее назначению]

	o OUT - имя образа запакованного чрута. Используется при
	отсутствующей переменной NOIMAGE.

	o NOIMAGE - переменная, говорящая spt паковать чрут.

	o POSTLOCAL - имя директории с локальными пост-скриптами. По
	умолчанию, это setup.d, который можно найти в
	$workdir/profile/postinstall/ Для разных компонент иногда
	требуется использовать разные локальные пост-скрипты.
	Note: ВСЕ пост-скрипты выполняются _внутри_ чрута.
	[TODO: сделать дополнительные пост-скрипты, выполняемые снаружи
	для манипуляции файлами, созданными в чруте. Так же, вынести
	некоторый функционал spt в отдельные функции в файл functions,
	которые можно будет использовать в своих не чрут-скриптах.
	Например, создание iso-образа, копирование файлов из чрута в out
	для "набивки" контента для CD-диска и т.д.]

	o IDENT - некий идентификатор. Юзабелен в случае, когда создаётся
	несколько RPMS-репозитариев для инсталлятора (RPMS.$IDENT).

	o FILES - директория с дополнительными файлами, которые
	скопируются в out.

	o INSTALLDIR, COPYONLY, INSTALL2HASH - тоже наследие оригинального
	сепаратора. Используются при создании инсталлятора. О точном
	назначении лучше спросить rider'a :)

 - {isolinux,syslinux}.cfg.in
 	Конфиги для isolinux, которые просто копируются в out/isolinux.
	Зачем нужно копировать syslinux пока непонятно =) Это тоже из
	унаследованного из separator. Отрывать не стал -- вдруг что
	сломает?

- initfs
	Файл описывающий содержимое для initramfs. Лучше не трогать =)
	Только при работе под x86_64 нужно проследить, чтобы:
	file /init ссылался на /usr/lib64/propagator/bin/init, а не
	/usr/lib/propagator/bin/init. То же и для /sbin/stage1. В
	следующих версиях зафикшу :)

Пара слов о списке пакетов.
Каждая строчка может содержать только одно имя пакета. Допустимы
зависимости на определённые версии и релиз пакета.
Например:
basesystem=sisyphus-alt13.nodev
# firefox
startup>=0.9.8.4
udev

3. Сепаратизм.
После всех приготовлений наступает самый ответственный момент -
непосредственно стряпанье:
$ spt -v ~/workdir

Пока всё :)
А так, читаем spt --help и смотрим внутрь spt.

PS. Да, кстати. Есть ещё дополнительная тулзень для инсталляции дерева в
чрут. Удобно в случае, когда часто меняется контент одного из пакетов,
например, при отладке. Называется сиё чудо spt-install.
$ spt-install ~/workdir /home/mouse/tmp/spt-0.2-buildroot

Теперь точно всё :)

Замечания, пожелания?

--
mouse



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [devel] I: spt
  2006-01-27 13:08 [devel] I: spt Anton D. Kachalov
@ 2006-01-30 13:12 ` Kirill Maslinsky
  0 siblings, 0 replies; 2+ messages in thread
From: Kirill Maslinsky @ 2006-01-30 13:12 UTC (permalink / raw)
  To: devel, sisyphus

[-- Attachment #1: Type: text/plain, Size: 289 bytes --]

Привет!

> В i/S залит spt.

<пронущено>

> Теперь точно всё :)
> 
> Замечания, пожелания?

Текст данного письма как есть положить на heap.altlinux.ru, 
пусть вместе с spt будет и пакет с документацией с самого 
начала. 

-- 
Kirill Maslinsky
ALT Linux Documentation Team

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-01-30 13:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-27 13:08 [devel] I: spt Anton D. Kachalov
2006-01-30 13:12 ` Kirill Maslinsky

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git