[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