ALT Linux kernel packages development
 help / color / mirror / Atom feed
* [d-kernel] RFC: вытесняющий релиз для kernel-modules
@ 2005-05-22 13:13 Konstantin A. Lepikhov
  2005-05-22 13:25 ` Dmitry V. Levin
  2005-06-11 17:27 ` [d-kernel] " Sergey Vlasov
  0 siblings, 2 replies; 4+ messages in thread
From: Konstantin A. Lepikhov @ 2005-05-22 13:13 UTC (permalink / raw)
  To: ALT Linux Kernel Devel Mailing List

Hi!

В связи с происходящими в последнее время конфликтами по релизам модулей
для ядер, есть мысль как это можно разрулить - на этапе сборки модуля
ставить module_release вида @kreleasebuild@, где
kreleasebuild является строкой вида %release.%kcode.%krelease. Что это
даст? Во-первых, теперь релиз будет вытесняющим, т.е. при смене
kernel-version версия модуля будет по-любому вытеснять предущую, т.к.
будет иметь KERNELCODE явно больше, чем предыдущая версия ядра. Во-вторых,
релиз ядра будет влиять только на локальные сборки модулей в пределах
одного KERNELCODE. Конечно, это не убережет от ситуации вида "кто-то
собрал старый модуль с новым .spec", но это уже будут локальные проблемы
такого пользователя. %kcode с точки зрения buildmodules может выглядеть
так:

--- buildmodules.orig	2005-02-12 13:24:18 +0300
+++ buildmodules	2005-05-22 16:59:37 +0400
@@ -14,6 +14,7 @@ KERNEL=`find out/RPMS/ -type f -name "ke
 RELEASE=`rpm -q --qf "%{RELEASE}\n" -p $KERNEL`
 VERSION=`rpm -q --qf "%{VERSION}\n" -p $KERNEL`
 BUILDRELEASE=`echo $RELEASE|sed -e "s,alt,,"`
+KERNELCODE=`kernelversion_code $VERSION`
 
 buildspec()
 {
@@ -25,7 +26,7 @@ buildspec()
     specout="`dirname $spec`/`echo $real|sed -e "s/\.spec/-$TYPE.spec/"`"
     realspec=`basename $specout`
     cp -f $spec $specout
-    subst "s,@kversion@,$VERSION,;s,@krelease@,$RELEASE,;s,@kreleasebuild@,$BUILDRELEASE,;s,@kflavour@,$TYPE," $specout
+    subst "s,@kversion@,$VERSION,;s,@krelease@,$RELEASE,;s,@kreleasebuild@,$KERNELCODE.$BUILDRELEASE,;s,@kflavour@,$TYPE," $specout
     PACKAGES=`rpmquery -q --qf="%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm\n" --specfile $specout|sed "s,i686,i586,"`
     NEEDUPDATE=0
     for package in $PACKAGES ;do

а скриптик для получения kcode будет выглядеть вот так:

#!/bin/sh 
# Small script to get the kernel version code
# Made by LAKostis for ALTLinux kernel-build-tools package.
# Based on the kernelversion_major script 
# from modutils package made by Dmitry V. Levin.

pick1() {
	eval 'echo $'"$pick_index"
}
pick() {
	local OLD_IFS="$IFS"
	local delimiter="$1"
	shift
	pick_index="$1"
	shift
	IFS=" "$delimiter
	pick1 $*
	IFS="$OLD_IFS"
	unset pick_index
}

release="$1"
[ ! $release ] && release=$(uname -r)
kver=$(pick - 1 $release)
version=$(pick . 1 $kver)
patchlevel=$(pick . 2 $kver)
sublevel=$(pick . 3 $kver)

# from kernel Makefile
echo `expr $version \\* 65536 + $patchlevel \\* 256 + $sublevel`

Данный скрипт можно положить либо в modutils, но мне кажется лучше в
kernel-build-tools, поскольку нужен он только сборщикам, обычные
пользователи могут этот CODE из хидеров вытащить.

-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [d-kernel] RFC: вытесняющий релиз для kernel-modules
  2005-05-22 13:13 [d-kernel] RFC: вытесняющий релиз для kernel-modules Konstantin A. Lepikhov
@ 2005-05-22 13:25 ` Dmitry V. Levin
  2005-05-22 13:29   ` [d-kernel] " Konstantin A. Lepikhov
  2005-06-11 17:27 ` [d-kernel] " Sergey Vlasov
  1 sibling, 1 reply; 4+ messages in thread
From: Dmitry V. Levin @ 2005-05-22 13:25 UTC (permalink / raw)
  To: ALT Linux Kernel Devel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1327 bytes --]

On Sun, May 22, 2005 at 05:13:12PM +0400, Konstantin A. Lepikhov wrote:
[...]
> а скриптик для получения kcode будет выглядеть вот так:
> 
> #!/bin/sh 
> # Small script to get the kernel version code
> # Made by LAKostis for ALTLinux kernel-build-tools package.
> # Based on the kernelversion_major script 
> # from modutils package made by Dmitry V. Levin.
> 
> pick1() {
> 	eval 'echo $'"$pick_index"
> }
> pick() {
> 	local OLD_IFS="$IFS"
> 	local delimiter="$1"
> 	shift
> 	pick_index="$1"
> 	shift
> 	IFS=" "$delimiter
> 	pick1 $*
> 	IFS="$OLD_IFS"
> 	unset pick_index
> }
> 
> release="$1"
> [ ! $release ] && release=$(uname -r)
> kver=$(pick - 1 $release)
> version=$(pick . 1 $kver)
> patchlevel=$(pick . 2 $kver)
> sublevel=$(pick . 3 $kver)

Вся эта химия была нужна для того, чтобы программа, запущенная из-под
программы modprobe, которую может запускать ядро, не запускала других
программ.

> # from kernel Makefile
> echo `expr $version \\* 65536 + $patchlevel \\* 256 + $sublevel`

Если запускается expr, то код может и должен быть проще.

> Данный скрипт можно положить либо в modutils, но мне кажется лучше в
> kernel-build-tools, поскольку нужен он только сборщикам, обычные
> пользователи могут этот CODE из хидеров вытащить.

Точно не в modutils.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [d-kernel] Re: RFC: вытесняющий релиз для kernel-modules
  2005-05-22 13:25 ` Dmitry V. Levin
@ 2005-05-22 13:29   ` Konstantin A. Lepikhov
  0 siblings, 0 replies; 4+ messages in thread
From: Konstantin A. Lepikhov @ 2005-05-22 13:29 UTC (permalink / raw)
  To: ALT Linux kernel packages development

[-- Attachment #1: Type: text/plain, Size: 681 bytes --]

Hi Dmitry!

Sunday 22, at 05:25:23 PM you wrote:

> Вся эта химия была нужна для того, чтобы программа, запущенная из-под
> программы modprobe, которую может запускать ядро, не запускала других
> программ.
можно через cut сделать :)

> 
> > # from kernel Makefile
> > echo `expr $version \\* 65536 + $patchlevel \\* 256 + $sublevel`
> 
> Если запускается expr, то код может и должен быть проще.
ок попробую упростить его.

-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [d-kernel] RFC: вытесняющий релиз для kernel-modules
  2005-05-22 13:13 [d-kernel] RFC: вытесняющий релиз для kernel-modules Konstantin A. Lepikhov
  2005-05-22 13:25 ` Dmitry V. Levin
@ 2005-06-11 17:27 ` Sergey Vlasov
  1 sibling, 0 replies; 4+ messages in thread
From: Sergey Vlasov @ 2005-06-11 17:27 UTC (permalink / raw)
  To: ALT Linux Kernel Devel Mailing List

[-- Attachment #1: Type: text/plain, Size: 442 bytes --]

On Sun, May 22, 2005 at 05:13:12PM +0400, Konstantin A. Lepikhov wrote:
[skip]
> а скриптик для получения kcode будет выглядеть вот так:
[skip]
> Данный скрипт можно положить либо в modutils, но мне кажется лучше в
> kernel-build-tools, поскольку нужен он только сборщикам, обычные
> пользователи могут этот CODE из хидеров вытащить.

А не проще положить его в kernel cvs (либо отдельным файлом, либо
завести там файлик functions)?

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-06-11 17:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-22 13:13 [d-kernel] RFC: вытесняющий релиз для kernel-modules Konstantin A. Lepikhov
2005-05-22 13:25 ` Dmitry V. Levin
2005-05-22 13:29   ` [d-kernel] " Konstantin A. Lepikhov
2005-06-11 17:27 ` [d-kernel] " Sergey Vlasov

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git