DragonFly kernel List (threaded) for 2003-10
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: Anybody working on removing sendmail from base?
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Thursday 02 October 2003 05:15 am, Sander Vesik wrote:
> I would personaly prefer a different api from just making all envvars
> available to namei. the unix environment is not a particularily nice thing,
> and you end up jumping through extra hoops to make sure you don't have to
> reparse the environment for each call.
>
> The downside is extra api, conceptualy having two environments and needing
> to augument shells to have an extra builtin. for me this is a reasonable
> tradeoff - after all, most software will have been written for other OS-s
> and not know about variance of symlinks anyways - but i guess others might
> not.
Conceptually, from a user/application standpoint, the symlink should be
transparent. In other words, if a Makefile says, e.g. "CC=/usr/localgcc"
then make would call '/usr/local/gcc' without worrying about the fact that
/usr/local/gcc points to /usr/local/gcc/${gcc_version}/gcc. It doesn't
bother me (that much) that I can't just use 'set $gcc_version' but if it is
something simple like 'setsym $gcc_version=' that isn't too bad. In some
ways, I can see the advantage. People aren't going to (usually) mess with
things that aren't obvious.
The one question, in this context, becomes: if I do 'which gcc', what happens?
Does it simply report '/usr/local/gcc' or does it follow the symlink? If it
follows the symlink, presumably it inherits my environment, and shows the
correct one. But what about 'ls -l' in /usr/local, which reports symlinks?
Do we see the dereferenced symlink (/usr/local/gcc/3.4) or do we see
"/usr/local/gcc/${gcc_version}/gcc"? Clearly, going into /usr/local/gcc one
would see the various versions installed.
If I understand what would happen correctly, if we are doing the
dereferencing in namei() then every time the symlink is accessed, it should
provide the dereferenced version, so 'setsym gcc_version=3.4; ls -l gcc'
would return a link to '/usr/local/gcc/3.4/gcc' If I then were to type
'setsym gcc_version=2.95.4; ls -l gcc' would return
'/usr/local/gcc/2.95.4/gcc'. For me, I think this would be the desired
behavior.
mike
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)
iD8DBQE/fIGnY30jZzkECLcRAiNYAJ4vT9w8hxW25+4M68qDebdvmqDvnQCeLuJp
NQ3pDzqY4B3KLxzLCQ6a1wc=
=Gx2c
-----END PGP SIGNATURE-----
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]