* [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