[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