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: Wed, 11 Oct 2006 09:04:13 +0100


On 9 Oct 2006, at 23:09, Nicola Pero wrote:


This option can only be set on the command line, or before including
common.make ...
but using it in GNUmakefiles should be discouraged as all packages should
install by default in the default locations ... except for maybe
gnustep-base :-)

Thinking about it, I wouldn't want even gnustep-base to set it.

If I'm testing the Unix filesystem layout, I wouldn't want gnustep- base to
install
stuff in /usr ... ;-)

It should be installed in /usr/local (or wherever we decide the local
stuff goes)
unless I explicitly require it to go in /usr. ;-)

Comments ?

Long established policy is that on a GNUstep system (ie the default situation, where we are not trying to conform to FHS or some other distribution dependent layout), the GNUstep packages (anything part of the GNUstep project) should be installed in the system domain, while contributed packages should be installed in the local domain, and a user's own packages (ie not put in place for everyone by the system administrator) go in the user domain.

At the moment this is done automatically for GNUstep packages (such as base, gui, back, gorm) by their setting the installation directory in the makefile.

Now, I understand the logic that distributors should determine where the packages they want go ... so certainly there is no debate about the fact that setting GNUSTEP_INSTALLATION_DOMAIN on the command line should override any settiing in the make files.

However, I'm not sure that we should be changing the makefiles so that their behavior is no longer to install in their normal locations. I think we have not thought through installation adequately, and I'm very dubious about changing current behavior to something which is not clearly thought through and better than the existing behavior ... change for the sake of change is generally a bad thing.

Let's try and decide what would be an improvement over the current behavior.

What should 'make install' actually do?

1. A developer working on a new package normally wants it installed where it won't interfere with anyone else ...
Clearly installation should be in the User domain.

2. A normal user presumably expects it to change the package to be in a runnable/usable state On GNUstep and MacOS-X systems, this probably means installing into the user domain On non-GNUstep systems, it's far less clear ... there is no standard location where user specific binaries may be found, and usual behavior is to install into the Local domain, but that generally requires root privilege or something similar.

3. A system administrator wants it to be installed for all users ...
This means installation in the Local domain, unless they are upgrading part of a distribution where GNUstep is 'native', in which case they want GNustep packages in the System domain

4. I think standard expectation is that 'make install' installs the package wherever it was configured to go ... ie the decision about where to install was taken at 'configure' time using something like -- prefix= and if this is not specified then the installation location is decided by the package itsself (normally the 'local' domain).


So, how about this for an idea ...

The make scripts are made more intelligent and capable of asking the user what to do if they try to install in a domain they don't have access to (maybe using su to complete the installation if given the correct password). This is important for unprivileged users trying to install packages where the installation location is the system or local domain.

The make scripts also interpret the installation domain according to the filesystem layout ... so if a package wants to be installed in the system domain on a system where non-native stuff has to go in / opt, (ie the local domain) then the filesystem layout configured into gnustep-make should override the domain specified (ie on such systems the system domain is the same as the local domain for purposes of installing software).

a. the default installation location is the local domain
b. a makefile may override that to supply a package specific default
c. the command line overrides that.





reply via email to

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