[devel] sandman на cvs.altlinux.org
Alexander Bokovoy
=?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Вт Авг 5 22:09:55 MSD 2003
On Tue, Aug 05, 2003 at 09:58:22PM +0400, Dmitry V. Levin wrote:
> > > > контроля всех остальных -- текстовых и бинарных -- объектов пакета и
> > > > этим контролирующим объектом является spec-файл.
> > >
> > > Это не всегда так.
> > > Зачастую среди множества исходных файлов данного пакета есть и вполне
> > > плоские текстовые файлы.
> > Увы, формализовать структуру для них в общем случае нельзя. Также,
> Почему?
Придется делать это по-пакетно. Вот эти файлы -- текстовые, а эти -- нет.
И так далее. То есть, кто-то должен проанализировать пакет и разложить его
исходники в хранилище и в SCM, да еще и учесть возможность удаления
исходников из SCM -- этот вариант наиболее непригляден.
> > При использовании hasher в любом случае предполагается первичная генерация
> > src.rpm посредством промежуточного скрипта, который может сделать все ту
> > же работу по приклеиванию .spec. Не вижу, каким образом это несовместимо с
> > нынешним Сизифом.
>
> В нем имена spec-файлов имеет вид, отличный от используемого sandman'ом.
> Кто будет конвертировать?
Давай разделим проблемы. От пакетов, попадающих в Sisyphus, требуется
наличие в них регуляризованных spec-файлов в формате foo.spec. Для Sandman
даже это не существенно, так как перед попаданием содержимого исходного
пакета в хранилище (суть, вызов команд утилиты sandcl) этот src.rpm будет
раскручиваться, например, так:
addpackage() {
name=$($RPMQ --qf='%{NAME}' -p $1)
basepart=$(basename $1)
echo -e "\tImporting sources into Sandman..."
$RPM2CPIO $1 | $SANDCL addsources $name
pushd $CVSDIR
$RPM2CPIO $1 | $CPIO -i $name.spec
if [ ! -f $name ] ; then
mv -f $name.spec $name
echo -e "\tAdding spec file to CVS..."
cvs add $name
else
mv $name.spec $name
fi
echo -e "\tImporting package ${basepart/.src.rpm/} ..."
cvs ci -m "Imported package ${basepart/.src.rpm/}" $name
popd
}
Как видишь, в данном случае мы предполагаем, что spec-файл называется
имя_пакета.spec в src.rpm. Вот и все. Напишем скрипт, который будет
выуживать любой spec-файл, -- не будет и этого ограничения.
> > Diff относительно чего? Двух конкретных версий одного и того же исходника
> > (если тот определяется как text/plain по мнению file)? Это легко
> > добавляется, никаких проблем.
>
> Нет, xdelta на несжатые tarball'ы.
> Можно, конечно, отложить на потом.
Угу. Кстати, это дополнительная вычислительная нагрузка.
> > Вычислительные ресурсы: минимум, если не используется сборка
> >
> > Дисковый ресурс: однократно -- развернутый Сизиф в исходниках (3.3Гб),
> > далее -- по нарастающей, плюс место для референтной системы, на которой
> > вычисляется корректность spec-файла (150-500Мб). Думаю, что 40-60Гб диска
> > нам хватит надолго, поскольку наиболее дискоемкая функциональность
> > sandman-а (генерация ISO-образов дистрибутивов) не используется.
>
> А по софту?
Смотри зависимости пакета sandman-server:
$ apt-cache depends sandman-server:
sandman-server-0.5.5-alt4
Для установки требует: cvs
Требует: sandman = 0.5.5-alt4
Требует: apt-utils
Требует: chrootuid >= 1.3-alt2
Требует: e2fsprogs
Требует: mount
Требует: apt >= 0.5.5cnc4.1-alt4
Требует: service >= 0.4-alt1
Требует: sh-2.05b-alt5
Требует: logrotate-3.6.2-alt2
Требует: service-0.5-alt1
$ apt-cache depends sandman
sandman-0.5.5-alt4
Требует: cpio
Требует: tcl >= 8.4.2-alt1
Требует: tclx
Требует: tcllib >= 0.8
Требует: tcl-trf
Требует: tcl-memchan
Я немного подредактировал вывод этих команд в смысле сокращения
дублирования и виртуальных зависимостей (sh, init(...)).
--
/ Alexander Bokovoy
---
The clearest way into the Universe is through a forest wilderness.
-- John Muir
Подробная информация о списке рассылки Devel