[devel] kernel packagin', new generation

Volkov Serge =?iso-8859-1?q?vserge_=CE=C1_altlinux=2Eru?=
Вт Фев 18 00:50:28 MSK 2003


Привествую,

Возможно имеет смысл распространить данное предложение на пакеты,
которые создаются из одного архива исходных кодов, но с
разными условиями сборки и/или необходимыми патчами.
например OpenLDAP {orig, sasl, krb,}, т.е. обобщить решение этого
вопроса.

Так как будет явно указываться скрипту "make-kspec --release altN" как
будет от этого зависеть %changelog или он тоже будет как-то
заполняться автоматически. Ведь планируется собирать с определенными
патчами и модулями, которые от сборки к сборке могут меняться?


Tuesday, February 18, 2003, 1:34:57 AM, you wrote:


PN> Здравствуйте!

PN> Я занимаюсь созданием новых пакетов с ядром. Поговорив в ldv, rider и
PN> другими участниками команды мои планы по проектированию новых спеков
PN> для ядра более-менее устаканились и я вам их и представляю.

PN> При проектировании спека мной преследовались следующие три цели, две
PN> конкретные и одна более абстракная:

PN>   * Из одного spec-файла генерируется не больше одного пакета с
PN>   образом ядра.
PN>   * Все, что может собираться отдельно от ядра, собирается отдельно.
PN>   * Пакет с ядром должен собираться из конструктора, из маленьких
PN>   кусочков, причем сборка нового вида ядра не должна быть запутанным
PN>   процессом.

PN> Я предлагаю следующую инфраструктуру. Тарболы с исходными файлами
PN> kernel, alsa, drm, pcmcia-cs, etc., собираются в отдельные
PN> пакеты. Патчи тоже. Со следующей стркутурой:

PN> kernel-source RPM:
PN> /usr/src/kernel-source-%{version}.tar.bz2
PN> /usr/share/kspec-tmpl/kernel-source-%{version}.spec.tmpl

PN> alsa RPM:
PN> /usr/src/alsa-%{version}.tar.bz2
PN> /usr/share/kspec-tmpl/alsa-%{version}.spec.tmpl


PN> %{patch_name}-kernel-patch RPM:
PN> /usr/src/patches/%{patch_name}/*  /* various patch files */
PN> /usr/src/patches/apply/%{patch_name}

PN> Планируется сделать скрипт make-kspec. make-kspec подставляет
PN> переменные в начало spec.tmpl'ей и генерит спеки к заданным
PN> пакетам. Например, 

PN> make-kspec --kver 2.4.18 --modules alsa,drm,pcmcia-cs \
PN>            --patches grsec,reiserfs --flavour multimedia \
PN>            --release alt1

PN> Оно генерит четыре спека, -- для ядра, и для трех модулей определяя в
PN> них соответствующие требующиеся переменные. Далее, как происходит
PN> работа с патчами: для спека ядра заполняется переменная %patches,
PN> которая будет равна аргументу --patches. В спеке, в секции %prep есть
PN> примерно следующее

PN> local applied_patches;

PN> tar -jxvf %kernel_tarball
PN> pushd kernel-source-%{kversion}
PN> for i in `echo %patches | sed -e 's/,/\ /g'`; do
PN>   applied_patches="$applied_patches,$i"
PN>   %patches_dir/apply/$i --kver %{kversion} --already-applied $applied_patches
PN> done

PN> Из этого спека будет генерится пакет kernel-image-2.4.18-multimedia
PN> с версией 2.4.18 и версией релиза alt1 и
PN> kernel-headers-2.4.18-multimedia с той же версией и той же версией
PN> релиза.

PN> Из соответствующих модулей будут генерится:
PN> {alsa,drm,pcmcia-cs}-2.4.18-multimedia с соответствующей версией
PN> {alsa,drm,pcmcia-cs}  и номером релиза alt1, которые будут зависеть от
PN> kernel-headers-2.4.18-multimedia.

PN> Единственная проблема, которая приходит мне в голову: патчи могут
PN> конфликтовать. Но на этот случай пакет %{name}-kernel-patch может
PN> иметь разные варианты патчей и реагировать на аргумент
PN> --already-applied по ситуации.


PN> Критика желательна. Просто необходима. А так же желательно согласие по
PN> принципиальным вопросам. :)




-- 
Best regards,
 Volkov                            mailto:vserge на altlinux.ru





Подробная информация о списке рассылки Devel