[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