From: "Konstantin A. Lepikhov" <lakostis@anti-leasure.ru> To: ALT Linux Kernel Devel Mailing List <devel-kernel@altlinux.ru> Subject: [d-kernel] RFC: вытесняющий релиз для kernel-modules Date: Sun, 22 May 2005 17:13:12 +0400 Message-ID: <20050522131312.GA30337@lks.home> (raw) 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
next reply other threads:[~2005-05-22 13:13 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2005-05-22 13:13 Konstantin A. Lepikhov [this message] 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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20050522131312.GA30337@lks.home \ --to=lakostis@anti-leasure.ru \ --cc=devel-kernel@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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