Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Oct 2002 12:24:37 -0500 (EST)
From:      Garrett Wollman <wollman@lcs.mit.edu>
To:        Mark Valentine <mark@thuvia.demon.co.uk>
Cc:        standards@FreeBSD.ORG
Subject:   Re: Why I am opposed to a Standards Ghetto
Message-ID:  <200210271724.g9RHObQ2031513@khavrinen.lcs.mit.edu>
In-Reply-To: <200210271115.g9RBFv1m031035@dotar.thuvia.org>
References:  <mailpost.1035674368.17075@thuvia.demon.co.uk> <200210271115.g9RBFv1m031035@dotar.thuvia.org>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Sun, 27 Oct 2002 11:15:57 GMT, Mark Valentine <mark@thuvia.demon.co.uk> said:

> Is a Standard application expected to assume it will be run in a Standard
> environment?

It may, but need not.

> If so, what is confstr(_CS_PATH, ...) for?  Is it really reasonable
> to assume this?

It's not clear to me that changing other settings could not also be
required.  The purpose of the confstr() call is mainly to help
applications have have no environment at all, or can't trust their
environment (e.g., set-id programs) figure out what to do.

> If a Standard application may be run in a non-Standard environment, how
> does it bootstrap into a Standard environment?

It is not clear that there is any defined mechanism.

> If we can make the bridge from the BSD environment to the POSIX environment
> easy to cross, that will surely encourage people to follow that path.

I don't see much evidence that this has happened in systems where it
has been tried (e.g., Solaris).

If we were going to go down this road, the only implementation I could
reasonably support would be an environment variable which downgraded
from standard to ``like it was in FreeBSD 4.x'' -- with the default
being standards-compliant.  That is the approach I took for expr(1),
and I'd be willing to extend that for the use of other applications.
Perhaps something like this:

- Deprecate EXPR_COMPAT.
- Define a new standard environment variable, _FreeBSD_4_COMPAT, the
value of which can be either the empty string or a list of programs to
be affected.
- Add a new library routine, int check_utility_compat(const char
*utility), which centralizes checking for this environment variable.
- Update expr(1) and sort(1) to be the first clients.

I can have this done tonight after I take care of some existing
business in my tree.

-GAWollman


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-standards" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210271724.g9RHObQ2031513>