[d-kernel] kernel policy

Ed V. Bartosh =?iso-8859-1?q?ed_=CE=C1_sam-solutions=2Enet?=
Ср Апр 16 11:44:27 MSD 2003


Hello, Peter

 n> kernel-patch-feat-%{upsteram_name}
 n> kernel-patch-fix-%{upstream_name}
 >> Предлагаю убрать patch- из названия:
 >> kernel-feat-%{upsteram_name}
 >> kernel-fix-%{upstream_name}
 >> 
 >> По-моему достаточно информативно и короче.

 PN> это не информативно. это не говорит, что это -- патч. Может ещё
 PN> -source- убрать?
Дык feat и fix будут говорить о том, что это патч, если уж так оно
надо. Только зачем, никак не пойму. Какая от этого польза знать что
это патч ? Давайте абстрагироваться :) Я вижу пакет
kernel-feat-security-rsback - мне обязательно знать, что это патч ?
Зачем ?


 >> И еще - а зачем вообще эти модули нужны ? Предлагаю избавиться от них
 >> или хотя бы минимизировать их количество. 
 >> Или описать здесь принципы выноса бинарных модулей в отдельный пакет. 
 >> Я как-то до сих пор их не уяснил :(

 PN> Это те модули которые уже вынесены. См. kernel-alsa-2.4.21pre-std-up
 PN> src rpm. Нет, не судьба называть их kernel-module.
По-моему сейчас строится новая схема сборки. И существующие
пакеты с бинарными модулями - это, возможно, анахронизм. С таким же
успехом можно оставить старый принцип сборки ядра, опираясь на то, что
такие ядра есть в Сизифе :) Где развитие ?
Я не предлагаю их безоговорочно убрать. Определите принципы по которым
будут создаваться такие пакеты. Принцип "потому, что так уже есть" мне
представляется слабым доказательством.

 n> 2. Versioning пакетов.
 n> ----------------------
 >> 
 n> Пакетам с feat патчами желательно присваивать версии, полученные из
 n> upstream. Если upstream не делает versioning, допустимо называть их по
 n> дате последнего изменения upstream в формате ddmmyy.
 >> 
 n> Пакетам с fix патчами обязательно присваивать версии по дате
 n> запаковывания в формате ddmmyy.
 >> Здесь можно привести формат имени таких пакетов.

 PN> secfixes. будут выглядеть именно так.
Не понял, сорри. Как "так" ? kernel-fix-security- а дальше ?
Нужно определить формат, как в случае с kernel-image, например.

 >> Вместе с патчами могут ставиться и тарболы, предлагаю их
 >> ставить в /usr/src/kernel/patches/src/<имя_патча>/
 >> В отдельный пакет с сорцами уж точно нет смысла это выносить.

 PN> Да, но то как патч распологает свои файлы, -- не дело полиси, в этом
 PN> разбирается скрипт apply.
Ты сам себе протифоречишь:
Патчи.
----------

/usr/src/patches/<имя_патча>/*            патчи
         patches/apply/<имя_патча>        программа, которая
                                          прикладывает патчи

Если не определить, где патчи будут хранить нужные им файлы - будет
путаница. А смысл ?

 >> 
 n> прикладывает патчи
 >> Считаю, что apply-программы вещь опциональная, а стандартное
 >> приложение патчей должно быть выполнено в виде макроса.
 >> Такой макрос уже есть.

 PN> Нет, не опциальная. Если нужно, -- можно сделать
 PN> /usr/lib/kernel-build-tools/apply, а все apply программы будут просто
 PN> соурсить этот файл.
Можно, конечно и так. Мне показалось более элегантным решить это с
помощью макроса. Давай я тебе его пришлю, а то так трудно
разговаривать ?
С помощью этого макроса я сейчас легко обхожусь без apply скриптов
в большинстве пакетов (xfs, secfixes, evms прикладываются без проблем).

 >> 
 n> Патчи внутри каталога могут находиться в любом расположении, это не
 n> определяется данным документом.
 >> Предлагаю определить, иначе будет затруднено вынесение общего
 >> функционала в макрос.

 PN> В среднем, будет один и тот же алгоритм. Но надо оставить за
 PN> патче-пакето-твроителями полную свободу в том, как и что патчить. 
Это путь к хаосу. Здесь, IMHO, лишняя свобода только вредит.
Что плохого в том, что при взгляде в каталог с патчами будет виден
порядок их приложения ?

 >> 
 n> Программа прикладывающая патч, будучи вызванная из каталога с исходными
 n> текстами ядра, обязана приложить к ним нужные патчи или возвратить 1 в
 n> случае ошибки прикладывания. Программа может пользоваться следующими
 n> переменными окружения заданными при запуске в среде:
 n> - APPLIED_PATCHES, переменная содержит список названий уже приложенных
 n> патчей через запятую.
 n> - KVER, версия ядра, к которой нужно приложить патч.
 >> Не уверен, что это нужно. 

 PN> Нужно. Почему не нужно?
Сорри, я немного неправильно выразился. KVER нужно, а APPLIED_PATCHES
и флажок ./patches/APPLIED_имя пакета дублируют друг друга.
Я думаю, что флаг более универсален и прост в проверке, к тому же
можно не только для пакета в целом его выставлять, а и для конкретных
патчей тоже, если понадобится. А с переменной возни больше, однозначно.

 >> 2. Пачти называются NN-название.patch, где NN определяет порядок приложения.
 >> устанавливаются в /usr/src/kernel/patches/название_пакета/

 PN> Это не регулируется policy.
Дык и напрасно :) Собственно, это только мои предложения, решать тебе.

 >> 3. Условное приложение патчей достигается путем установки
 >> патча в каталог /usr/src/kernel/patches/название_пакета/название_required_пакета
 >> Такой патч будет приложен только при условии того, что приложены
 >> патчи из пакета 'название_required_пакета'

 PN> Это рекоммендованный но не обязательный способ.
Согласен. Пусть будет рекомендательный. Это только первый шаг к 
условному приложению патчей. Мне порекомендовали, например, взглянуть
на PATCH-O-MATIC, там есть на что посмотреть в этом плане.
Может быть и есть смысл попользоваться их схемой.

 >> 4. При условии успешного приложения пакета патчей в каталоге ./patches
 >> соответствующего дерева kernel sources должен создаваться файл
 >> APPLIED_имя_пакета

 PN> Это рекоммендация.
См. выше.

 >> 5. Тарболы с сорцами, используемыми пакетом с патчами устанавливаются в 
 >> /usr/src/kernel/patches/src/название_пакета/

 PN> это рекоммендация.
Но, согласись, при такой схеме гораздо проще выяснить с какими файлами
работает пакет. Почему бы ее и не применять ?

 >> 6. Стандартные действия по установке патчей производятся с помощью
 >> макроса(ов) из пакета kernel-build-tools 

 PN> шелл-библиотеки из пакета kernel-build-tools, которая соурсится каждым
 PN> из apply-скриптов.
Я не против, в принципе. Но почему тебе так не нравится идея с
макросом ? Принципиальной разницы нет, IMHO.

 >> 7. Нестандартная действия по установке/приложению патчей производятся
 >> в скриптах имя_пакета-apply и устанавливаются в
 >> /usr/src/kernel/patches/apply

 PN> Не понимаю. Зачем делать условный оператор?
Чтобы избавиться в большинстве случаев от apply скриптов.

 >> 9. В репозитарии не должно быть бинарных пакетов с модулями, все
 >> модули должны находиться в соответствующем kernel-image

 PN> Нет. Все модули, которые могут собираться отдельно от ядра собираются
 PN> отдельно от ядра. как то: alsa, i2c, lm_sensors, и так далее,
 PN> см. сизиф.
См. Выше.

-- 
Best regards,
Ed V. Bartosh



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