variant symlinks (was Re: Anybody working on removing sendmail from base?)
Mike Porter
mupi at mknet.org
Fri Oct 3 13:36:28 PDT 2003
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Friday 03 October 2003 12:07 am, Matthew Dillon wrote:
> ::While I personally don't have a huge need to have 47 copies of the same
> ::software :-) something I do like the idea of is a variant symlink for
> :: /tmp like:
Nobody is suggesting 47 copies of the same software, just 47 versions of a
program....seriously, I don't think anybody is really expecting that we would
have that many different versions (although the possibility DOES exist, and a
developer/porter *might*, so as to be able to compare results with different
compilers) In general, the idea is to make it possible to have the system's
compiler unaffected by changes that a user makes (such as installing a newer
gcc; this is possible under FBSD, but care must be taken to ensure that the
'default' make (used for buildworld/buildkernel) uses the correct version.
One interesting variation, in the case where a port requires a specifc version
of gcc to work properly (say for some reason MyPort works fine with gcc 3.2,
but chokes on 3.4, and the only installed versions are the 'system' compiler
(2.95.4?) and 3.4 (this is what I assume the 'normal' case will be for people
having multiple compilers installed: a 'system' version, and the latest
[stable] version. The ports system could grab 3.2, install it, build the
port, then remove 3.2, all without the user having to do anything, and
without affecting any other processes that might be using 3.4 (although
hopefully, unless you have a very big system, you don't have more than one
user trying to compile things at once....)
The only missing ingredient here is logic for the port to know, for example,
if MyPort is being installed as a dependancy of SomePort, then 3.2 should
stick around until the end of the build process, in case there are other
dependencies requireing it. Either that or the ports system is going to have
to look at the dependencies list, not just for the primary package, but for
all packages, to determine which compiler(s) are needed. this way, we'd know
if 3.2 is needed for anything else and could safely delete it once complete
to save disk space.
Another interesting use for variant symlinks is the ability to store multiple
versions of the source tree (e.g., -STABLE and -CURRENT, or -STABLE and
- -SECURITY, to borrow terms from FBSD, if we ever get to the point where we
have different branches) As far as the source tree is concerned, it is still
in /usr/src, but in 'reality' it could be in /usr/src/current .
Anyway....
mike
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)
iD8DBQE/fd1NY30jZzkECLcRAvQwAJ47CdnyhZ58AFIy4/w9zcU+dtNVrwCfbwZo
OTpyhdI5Q/HwqvqkXQWPmTI=
=UbFz
-----END PGP SIGNATURE-----
More information about the Kernel
mailing list