Date: Wed, 21 Jun 2006 12:56:08 +0100 From: Florent Thoumie <flz@FreeBSD.org> To: Yar Tikhiy <yar@comp.chem.msu.su> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/etc rc.subr src/share/man/man8 rc.subr.8 Message-ID: <1150890968.3467.39.camel@mayday.esat.net> In-Reply-To: <20060621113901.GG45947@comp.chem.msu.su> References: <200606210942.k5L9gtAi060504@repoman.freebsd.org> <1150883785.3467.4.camel@mayday.esat.net> <20060621105253.GE45947@comp.chem.msu.su> <1150887909.3467.18.camel@mayday.esat.net> <20060621113901.GG45947@comp.chem.msu.su>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-sDxB763PUYMVFRprHiJA Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2006-06-21 at 15:39 +0400, Yar Tikhiy wrote: > On Wed, Jun 21, 2006 at 12:05:09PM +0100, Florent Thoumie wrote: > > On Wed, 2006-06-21 at 14:52 +0400, Yar Tikhiy wrote: > > > On Wed, Jun 21, 2006 at 10:56:25AM +0100, Florent Thoumie wrote: > > > > On Wed, 2006-06-21 at 09:42 +0000, Yar Tikhiy wrote: > > > > > yar 2006-06-21 09:42:55 UTC > > > > >=20 > > > > > FreeBSD src repository > > > > >=20 > > > > > Modified files: > > > > > etc rc.subr=20 > > > > > share/man/man8 rc.subr.8=20 > > > > > Log: > > > > > Quite a number of rc.d scripts try to load kernel modules. Man= y > > > > > of them do that conditionally depending on kldstat. The code i= s > > > > > duplicated all over, but bugs can be uniqie. > > > > > =20 > > > > > To make the things more consistent, introduce a new rc.subr fun= ction, > > > > > load_kld, which takes care of loading a kernel module condition= ally. > > > > > =20 > > > > > (Found this lying for a while in my p4 branch for various hacks= .) > > > >=20 > > > > I added such a function some weeks ago (far more simple though). Ta= lking > > > > with pjd, I've backed it out to use the somewhat straight-forward m= ethod > > > > he used in rc.d/geli. > > >=20 > > > rc.d/geli doesn't use kldload directlty, so it certainly won't > > > benefit from the function I introduced. > >=20 > > Then I'm not sure what script would benefit from this function. Can you > > point me to an example? >=20 > abi > archdep > atm1 > hcsecd > ipfilter > mdconfig > mdconfig2 > pf > pflog > pfsync > sdpd > syscons >=20 > They all do kldstat then kldload. Some of them do grep or egrep > on kldstat output. Some of them don't forget to check status from > kldload and emit a error message on failure. Besides, there are > scripts that forget to do kldstat in the first place, they just do > kldload. Now all this ado can become just a call to my function. Removing all scripts using 'kldstat -q -m foo', we have: $ grep kldstat * | grep -v -- "-q -m" | cut -d':' -f1 | sort -u abi archdep atm1 ipfilter syscons archdep, atm1 and ipfilter could use this 'kldstat -q -m foo' method, so that's only two candidates. Most scripts calling kldload without kldstat first could use this method as well. But ok, those are definitely scripts I do not read very often. > > > > I don't have a particular feeling against your function but it uses > > > > commands that may not be available early enough (getopt, egrep). Wh= ile > > > > it's easy to remove the getopt dependency (see rc.d/mdconfig), it's= not > > > > the case for egrep. > > >=20 > > > It's POSIX getopts, which ought to be a shell built-it by its design. > > > egrep is used with -e only, one can avoid using it if egrep isn't > > > available yet. The only issue is true and false, I was sure they > > > were in /bin, but it can be fixed easily. >=20 > As I've just found, we have true and false as undocumented sh(1) > builtins from the beginning of times. So using true and false is > no issue in rc.subr either. >=20 > > Still, with /bin/sh, getopt isn't a builtin: > >=20 > > $ sh -c 'which getopt' > > /usr/bin/getopt >=20 > You still mistake my words. It's getopts, not getopt. See sh(1). Yes, indeed, missed the 's'. > > You won't gain anything using grep instead of egrep since they're both > > in /usr/bin. >=20 > Have I ever tried to? I guessed that's what you meant saying "grep is used with -e only, one can avoid using it if egrep isn't available yet." What are you planning to do then? --=20 Florent Thoumie flz@FreeBSD.org FreeBSD Committer --=-sDxB763PUYMVFRprHiJA Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQBEmTPYMxEkbVFH3PQRAlhWAJ93QkgIgVE8COx/Ssmnqpgf/q/LHQCfRydw S9k2SjYrHJ5BSC/ZKBO94Pc= =UBmg -----END PGP SIGNATURE----- --=-sDxB763PUYMVFRprHiJA--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1150890968.3467.39.camel>