[d-kernel] adjusting kernel headers

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Май 21 15:34:14 MSD 2003


On Tue, May 13, 2003 at 07:04:50PM +0400, Dmitry V. Levin wrote:
> On Tue, May 13, 2003 at 05:50:30PM +0400, Ed V. Bartosh wrote:
> >  >>  И еще надо бы описать какие симлинки ставятся при установке
> >  >>  kernel-headers.
> >   
> >  DVL>  А ещё лучше - реализовать правильное выставление этих ссылок.
> >  DVL>  Без этого нельзя помещать kernel-headers в Сизиф - сломаются
> >  DVL>  BTE.
> > 
> > Так это же полиси - как опишется, так потом и реализуется.
> > Я, например, не знаю как вообще планируется это делать, хотелось бы
> > узнать, обсудить.  
> 
> Примерно так:

Предлагаю несколько модифицированный вариант.

пакет kernel-headers-common:
%_sbindir/adjust_kernel_headers
%_initdir/kheaders
%dir /etc/sysconfig/kernel
/usr/include/asm -> /etc/sysconfig/kernel/include/asm
/usr/include/linux -> /etc/sysconfig/kernel/include/linux
%ghost /etc/sysconfig/kernel/include -> /usr/include/linux-default/include
%dir /usr/lib/kernel
%dir /var/run/kernel
%ghost /var/run/kernel/*

Корректировака kernel headers (путём запуска %_initdir/kheaders) должна
происходить после старта netfs для того, чтобы схема не перестала работать
в случае использования /usr по NFS.

Точка переключения, /etc/sysconfig/kernel/include, управляется скриптом
adjust_kernel_headers, который работает по следующему алгоритму:

+ Определяется полная версия ядра, по умолчанию это $(uname -r)
+ Если существует /usr/include/linux-<версия ядра>-<flavour>/include; то 
	/etc/sysconfig/kernel/include -> /usr/include/linux-<версия ядра>-<flavour>/include
  Иначе если существует /(usr|var)/lib/kernel/<полная версия ядра>; то
  	/etc/sysconfig/kernel/include -> /usr/lib/kernel/include
  	создаются файлы в /var/run/kernel/ (как в нынешнем gen_kernel_headers)
  Иначе если существует /usr/include/linux-default/include; то
  	/etc/sysconfig/kernel/include -> /usr/include/linux-default/include
  Иначе
  	/etc/sysconfig/kernel/include остается неизменным
	и возвращается ошибка.

Преимущества такого управления:
+ на один indirection меньше в случае использования новых kernel headers;
+ не портится ссылка /usr/lib/kernel/include, находящаяся под управлением
update-alternatives, в случае использования старых kernel headers.

Недостаток такого управления:
+ на один indirection больше в случае использования старых kernel headers.

Для совместимости с уже существующими скриптами следует сохранить имя
/etc/rc.d/scripts/gen_kernel_headers, заменив его на обертку к (возможно,
не установленному в системе) %_sbindir/adjust_kernel_headers.


--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel-kernel/attachments/20030521/1c001296/attachment-0003.bin>


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