[devel] [SCM] packages/kernel-build-tools: heads/master

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Окт 14 16:20:43 MSD 2008


On Tue, Oct 14, 2008 at 04:07:22PM +0400, Konstantin A. Lepikhov wrote:
> 14.10.2008 15:55, Dmitry V. Levin пишет:
> > On Tue, Oct 14, 2008 at 02:03:59PM +0400, Konstantin A. Lepikhov wrote:
> >   
> >> Update of /people/lakostis/packages/kernel-build-tools.git
> >>     
> > [...]
> >   
> >> new file mode 100755
> >> index 0000000..66f7500
> >> --- /dev/null
> >> +++ b/modalias.prov
> >> @@ -0,0 +1,20 @@
> >> +#!/bin/sh -efu
> >> +#
> >> +# Copyright (c) 2008 Konstantin Lepikhov <lakostis на altlinux.org>.
> >> +# 
> >> +# This program is free software; you can redistribute it and/or modify
> >> +# it under the terms of the GNU General Public License as published by
> >> +# the Free Software Foundation; either version 2 of the License, or
> >> +# (at your option) any later version.
> >> +
> >> +. /usr/lib/rpm/functions
> >> +. /usr/lib/rpm/find-package
> >> +
> >> +ModaliasReq() {
> >> +	local f t
> >
> > Поскольку тип не проверятеся, t здесь лишний.
> >   
> Можно и тип проверить ;)

Вопрос не совсем праздный.  Например, как лучше обрабатывать ссылки.

> >> +	for f in "$@"; do
> >> +		/sbin/modinfo -F alias "$f" |sed -e 's/.*/modalias:&/' -e 's/[,]/?/g'
> >> +	done
> >> +}
> >> +
> >> +ArgvFileAction ModaliasReq "$@"
> >> diff --git a/modalias.prov.files b/modalias.prov.files
> >> new file mode 100755
> >> index 0000000..b209954
> >> --- /dev/null
> >> +++ b/modalias.prov.files
> >> @@ -0,0 +1,11 @@
> >> +#!/bin/sh -efu
> >> +buildroot="${RPM_BUILD_ROOT-}" 
> >> +
> >> +while IFS=$'\t' read -r f t; do
> >> +	case "$f" in
> >> +		"$buildroot"/lib/modules/*/kernel/drivers/*.ko|"$buildroot"/lib/modules/*/kernel/sound/*.ko)
> >> +			[ -z "$f" ] || echo "$f" ;;
> >> +		"$buildroot"/lib/modules/*/*/*.ko)
> >> +			[ -z "$f" ] || echo "$f" ;;
> >>     
> >
> > Избыточность: последний case вполне покрывает первые два.

Кстати, [ -z "$f" ] тоже лишний, простого echo достаточно.

> Тогда вопрос - как это сделать правильно, если нужно проверять каталоги
> 
> $buildroot"/lib/modules/<kver>/kernel/drivers/*.ko|"$buildroot"/lib/modules/<kver>/kernel/sound/*.ko
> 
> и 
> 
> $buildroot"/lib/modules/<kver>/<строго один уровень и не kernel>/*.ko

Если продолжать стилистику case/esac, тожно так:

"$buildroot"/lib/modules/*/kernel/drivers/*.ko|"$buildroot"/lib/modules/*/kernel/sound/*.ko)
	echo "$f" ;;
"$buildroot"/lib/modules/*/kernel/*|"$buildroot"/lib/modules/*/*/*/*.ko)
	continue ;;
"$buildroot"/lib/modules/*/*/*.ko)
	echo "$f" ;;

А стоит ли так сужать множество обрабатываемых .ko-файлов?
Разве в других местах depmod/modprobe их не найдут?


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


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