[d-kernel] kernel policy
Ed V. Bartosh
=?iso-8859-1?q?ed_=CE=C1_sam-solutions=2Enet?=
Вт Апр 15 19:36:02 MSD 2003
Hello,
n> Есть два вида патчей:
n> kernel-patch-feat-%{upsteram_name}
n> kernel-patch-fix-%{upstream_name}
Предлагаю убрать patch- из названия:
kernel-feat-%{upsteram_name}
kernel-fix-%{upstream_name}
По-моему достаточно информативно и короче.
n> Все пакеты fixes поддерживаются kernel maintainer commitee. Именуются
n> по именам подсистем ядра, а так же существует отдельный пакет для
n> security патчей и build патчей:
n> kernel-patch-fixes-{net,scsi,ide,fs,vm,core,security,build}.
Предлагаю сделать пакет kernel-build-tools с макросами/скриптами/etc
применяющимися при сборке ядер.
У меня уже есть, что туда положить :)
n> 1.2 Внешние модули.
n> -------------------
n> Внешними модулями называются модули, исходные файлы которых
n> поставляются не в виде патчей и которые можно собрать отдельно от
n> ядра.
n> Пакеты с такими собранными модулями должны называться
n> kernel-<сокращённое название набора модулей>-<версия ядра с которым
n> собраны модули>-<flavour ядра с которым собраны модули>.
Предлагаю kernel-module-..., соответственно kernel-module-название-headers и
kernel-module-название-source
И еще - а зачем вообще эти модули нужны ? Предлагаю избавиться от них
или хотя бы минимизировать их количество.
Или описать здесь принципы выноса бинарных модулей в отдельный пакет.
Я как-то до сих пор их не уяснил :(
n> 1.4 Пакет с ядром.
n> ------------------
n> Такой пакет должен называться kernel-image-<версия ядра>-<flavour
n> ядра>.
Что есть flavor в данном случае ?
Может flavor-subflavor (std-up) ?
n> 2. Versioning пакетов.
n> ----------------------
n> Пакетам с feat патчами желательно присваивать версии, полученные из
n> upstream. Если upstream не делает versioning, допустимо называть их по
n> дате последнего изменения upstream в формате ddmmyy.
n> Пакетам с fix патчами обязательно присваивать версии по дате
n> запаковывания в формате ddmmyy.
Здесь можно привести формат имени таких пакетов.
n> 3.1 Патчи.
n> ----------
n> /usr/src/patches/<имя_патча>/* патчи
/usr/src/kernel/patches/<имя_патча>/*
n> patches/apply/<имя_патча> программа, которая
/usr/src/kernel/patches/apply/<имя_патча>
Вместе с патчами могут ставиться и тарболы, предлагаю их
ставить в /usr/src/kernel/patches/src/<имя_патча>/
В отдельный пакет с сорцами уж точно нет смысла это выносить.
n> прикладывает патчи
Считаю, что apply-программы вещь опциональная, а стандартное
приложение патчей должно быть выполнено в виде макроса.
Такой макрос уже есть.
n> Патчи внутри каталога могут находиться в любом расположении, это не
n> определяется данным документом.
Предлагаю определить, иначе будет затруднено вынесение общего
функционала в макрос.
n> Программа прикладывающая патч, будучи вызванная из каталога с исходными
n> текстами ядра, обязана приложить к ним нужные патчи или возвратить 1 в
n> случае ошибки прикладывания. Программа может пользоваться следующими
n> переменными окружения заданными при запуске в среде:
n> - APPLIED_PATCHES, переменная содержит список названий уже приложенных
n> патчей через запятую.
n> - KVER, версия ядра, к которой нужно приложить патч.
Не уверен, что это нужно.
n> 3.2 Пакет с исходными текстами.
n> --------------------------------
n> /usr/src/<имя_пакета>-source-<версия>.tar.gz
n> ....
Это для самого ядра и для модулей ?
Вот мои пожелания, которые я не успел отправить, вернее их часть.
Примите во внимание, плз:
Принципы сборки/установки:
1. Тарболы с сорцами ядер устанавливаются в /usr/src
2. Пачти называются NN-название.patch, где NN определяет порядок приложения.
устанавливаются в /usr/src/kernel/patches/название_пакета/
3. Условное приложение патчей достигается путем установки
патча в каталог /usr/src/kernel/patches/название_пакета/название_required_пакета
Такой патч будет приложен только при условии того, что приложены
патчи из пакета 'название_required_пакета'
4. При условии успешного приложения пакета патчей в каталоге ./patches
соответствующего дерева kernel sources должен создаваться файл
APPLIED_имя_пакета
5. Тарболы с сорцами, используемыми пакетом с патчами устанавливаются в
/usr/src/kernel/patches/src/название_пакета/
6. Стандартные действия по установке патчей производятся с помощью
макроса(ов) из пакета kernel-build-tools
7. Нестандартная действия по установке/приложению патчей производятся
в скриптах имя_пакета-apply и устанавливаются в /usr/src/kernel/patches/apply
8. Распаковка sources, приложение патчей производится
при сборке kernel-image
9. В репозитарии не должно быть бинарных пакетов с модулями, все
модули должны находиться в соответствующем kernel-image
--
Best regards,
Ed V. Bartosh
Подробная информация о списке рассылки devel-kernel