[devel] kernel packagin', new generation
Alexander Bokovoy
=?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Вт Фев 18 11:49:12 MSK 2003
Один принципиальный вопрос:
как ты видишь использование этой схемы в BTE, с полностью автоматической
сборкой пакета?
On Tue, Feb 18, 2003 at 01:34:57AM +0300, Peter Novodvorsky wrote:
>
> Здравствуйте!
>
> Я занимаюсь созданием новых пакетов с ядром. Поговорив в ldv, rider и
> другими участниками команды мои планы по проектированию новых спеков
> для ядра более-менее устаканились и я вам их и представляю.
>
> При проектировании спека мной преследовались следующие три цели, две
> конкретные и одна более абстракная:
>
> * Из одного spec-файла генерируется не больше одного пакета с
> образом ядра.
> * Все, что может собираться отдельно от ядра, собирается отдельно.
> * Пакет с ядром должен собираться из конструктора, из маленьких
> кусочков, причем сборка нового вида ядра не должна быть запутанным
> процессом.
>
> Я предлагаю следующую инфраструктуру. Тарболы с исходными файлами
> kernel, alsa, drm, pcmcia-cs, etc., собираются в отдельные
> пакеты. Патчи тоже. Со следующей стркутурой:
>
> kernel-source RPM:
> /usr/src/kernel-source-%{version}.tar.bz2
> /usr/share/kspec-tmpl/kernel-source-%{version}.spec.tmpl
>
> alsa RPM:
> /usr/src/alsa-%{version}.tar.bz2
> /usr/share/kspec-tmpl/alsa-%{version}.spec.tmpl
>
>
> %{patch_name}-kernel-patch RPM:
> /usr/src/patches/%{patch_name}/* /* various patch files */
> /usr/src/patches/apply/%{patch_name}
>
> Планируется сделать скрипт make-kspec. make-kspec подставляет
> переменные в начало spec.tmpl'ей и генерит спеки к заданным
> пакетам. Например,
>
> make-kspec --kver 2.4.18 --modules alsa,drm,pcmcia-cs \
> --patches grsec,reiserfs --flavour multimedia \
> --release alt1
>
> Оно генерит четыре спека, -- для ядра, и для трех модулей определяя в
> них соответствующие требующиеся переменные. Далее, как происходит
> работа с патчами: для спека ядра заполняется переменная %patches,
> которая будет равна аргументу --patches. В спеке, в секции %prep есть
> примерно следующее
>
> local applied_patches;
>
> tar -jxvf %kernel_tarball
> pushd kernel-source-%{kversion}
> for i in `echo %patches | sed -e 's/,/\ /g'`; do
> applied_patches="$applied_patches,$i"
> %patches_dir/apply/$i --kver %{kversion} --already-applied $applied_patches
> done
>
> Из этого спека будет генерится пакет kernel-image-2.4.18-multimedia
> с версией 2.4.18 и версией релиза alt1 и
> kernel-headers-2.4.18-multimedia с той же версией и той же версией
> релиза.
>
> Из соответствующих модулей будут генерится:
> {alsa,drm,pcmcia-cs}-2.4.18-multimedia с соответствующей версией
> {alsa,drm,pcmcia-cs} и номером релиза alt1, которые будут зависеть от
> kernel-headers-2.4.18-multimedia.
>
> Единственная проблема, которая приходит мне в голову: патчи могут
> конфликтовать. Но на этот случай пакет %{name}-kernel-patch может
> иметь разные варианты патчей и реагировать на аргумент
> --already-applied по ситуации.
>
>
> Критика желательна. Просто необходима. А так же желательно согласие по
> принципиальным вопросам. :)
>
> --
> Peter Novodvorsky nidd на myxomop.com
> http://people.altlinux.ru/~nidd Deadheads, unite!
> Kill 'em all, and let God sort 'em out
> _______________________________________________
> Devel mailing list
> Devel на altlinux.ru
> http://altlinux.ru/mailman/listinfo/devel
--
/ Alexander Bokovoy
---
Trouble always comes at the wrong time.
Подробная информация о списке рассылки Devel