gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUSTEP_INSTALLATION_DOMAIN


From: Richard Frith-Macdonald
Subject: Re: GNUSTEP_INSTALLATION_DOMAIN
Date: Thu, 12 Oct 2006 21:57:47 +0100


On 12 Oct 2006, at 21:00, Nicola Pero wrote:


On consideration, I think we should stick to current conventions ...

Ok ... but then you seem to have a weird perception of the current
conventions ... ;-)

The GNUstep filesystem document (which took ages of mailing list flamewars
to write) explicitly says that --

"Every software (except for gnustep-make, gnustep-base, gnustep-gui and
gnustep-back
which by default install into the System domain) should install by
default into the Local domain, so that if you download a source
tarball of the software and you install it, it installs by default in
the right place for this operation (the Local domain).  Distributions
should override this default manually when they package the software
they want to distribute as part of their distribution, so that in that
case the software is installed in the System domain."

It has been saying that for the past few years, so I guess that's what
the current convention is. ;-)

No ... I guess it's just what the filesystem document says ... not what's actually done. AFAIK nothing has been changed to do what that says, perhaps because people didn't notice the change, or perhaps because it didn't make sense to them?

On a system where the traditional GNUstep filesystem layout is not
used, the System domain should be /usr/local or /opt or whatever,
unless the people managing a distribution want it to be /usr on that
distribution of course.  I imagine that on such systems the System
and Local domains might be the same place.

I don't agree at all ... the System domain will of course be /usr, and the
Local
domain will be /usr/local. Otherwise, why do we have domains at all ? :-)

I think you completely miss the point ... being that the managers of a distribution decide where they want things to install on their distribution. There is a BIG distinction between distribution managers installing packages as part of a distribution and normal users installing additional packages.

Presumably FHS compliance will also require that ... stuff coming with
the distribution goes into System (/usr), stuff you manually install yourself
from sources goes into Local (/usr/local) ... feels obvious.

Sure ... exactly what I said. The location of stuff coming with the distribution is handled by the managers of the distribution.

Let's make an example.

Let's say I take gnustep-make and gnustep-base from Debian packages. They
use
Debian FHS policy, so no doubt System will be /usr and Local will be
/usr/local
(or /opt, whatever).  They will then be installed in /usr.  Which is
great, as
I know /usr is stuff managed by Debian.

Only if they are part of the debian distribution ... ie the managers of the distribution want to put them there. If they are *not* part of the distribution, I think it's debian policy to put them in /usr/local.

Then, I download sqlclient and compile it manually. Should it go in /usr or in /usr/local ? Obviously in /usr/local. Which is great, as I know that
/usr/local
is stuff I installed myself. sqlclient is still part of GNUstep, but by
default
if I download a package, it goes into /usr/local.

Sure ... you are not the manager of the distribution, but the distribution supplied GNUstep stuff, so for you to conform to distribution conventions, the system domain for installation should be set to /usr/local on that system. NB. the system domain for installation purposes would not be the same as the system domain for all other purposes in this case. It depends how you want to look at it, but the point is that the installation process should not treat installation by a normal user the same as installation by the package distributor ... a normal user should not be overwriting packages provided by the system. Take the base library for instance ... it's default location is the system domain. When a distribution maintainer installs it they may want the system domain to be /usr so it goes in /usr. However, when a normal user downloads and installs a version it should get installed in /usr/local because normal users should not be installing into /usr. The easy way to do this is for the maintainer to build/install using a copy of the make system where the system domain is set to /usr, but to send out the distribution with a copy of the make system set to install system domain packages into /usr/local

That would work exactly like any other GNU/Unix/Debian package. Which is
the whole
reason we're working for FHS integration etc. etc. People want to be able
to use
GNUstep like they use any other package, without special setups /
conventions / etc.

Exactly what I'm proposing.

Anyway I suggest as a reasonable agreement, we'll use b. to set the
installation domain
as System for the 4 core packages (make, base, gui, back). All other
packages should have
no default set and so install by default in Local (packagers are
encouraged to install them
into System instead when they package though).  Makes sense ?

No ... not really.  The System domain is for all system packages, not
just a few core libraries.


I agree ... but who decides what are the system packages ? Not us. :-)

It's decided by the packagers. ;-)

But we *are* the packagers for the *default* system ... the GNUstep system.

The reason to have separate System and Local domains is not to have
"first class" packages in System and "second class" packages in Local.

The reason is that when you look at your hard disk, you know what is
managed by your distribution and you shouldn't touch, and what you
are managing yourself and can mess up as you wish.

The fact that a package belongs to GNUstep or not doesn't tell me
anything about whether my distribution/packaging system is managing
it or whether I installed it from scratch. They are separate issues. ;-)

Only where you are using a system with GNUstep stuff pre-installed.
Many (most?) people are not using such a system ... they have installed the 'GNUstep system' on their machine.
It's located in /usr/GNUstep.
The standard packages are in /usr/GNUstep/System
Other stuff is in /usr/GNUstep/Local

I would like to see *more* packages brought into GNUstep and the
System domain rather than having things excluded from it, as I feel
that it would be good to have a complete environment.  For instance,
it would be nice if GNUMail was part of GNUstep.

The fact that something is installed by the packager into the System
domain or not has nothing to do with being part of the GNUstep project.

It would be the same as saying that things installed in /usr are part
of the GNU project, while things installed in /usr/local are not. But these
are totally unrelated issues.

You have it back to front ...
In trying to put together a GNUstep system. the GNUstep project is trying to provide a collection of packages which work well together and gives the user something like the NeXTstep operating system used to do. The GNUstep project is the default distribution.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]