discuss-gnustep
[Top][All Lists]
Advanced

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

Re: installing apps automatically in the ~/GNUstep/Apps folder


From: Nicola Pero
Subject: Re: installing apps automatically in the ~/GNUstep/Apps folder
Date: Thu, 30 Aug 2001 22:10:12 +0100 (BST)

    Martin> Hi Nicola, - I know about that parameter, thanks. But I
    Martin> don't think that a normal GNUstep user who's just and only
    Martin> user (eg on a big multi user system in a company) does
    Martin> know about that. The user might just wonder (and complain)
    Martin> why the app cannot be installed....

Ok - if a normal user is not supposed to edit makefiles (which makes
sense as an assumption), I suppose the installation instructions might
recommend to type

make install GNUSTEP_INSTALLATION_DIR=${GNUSTEP_USER_ROOT}

rather than `make install' to install the application locally in the
user home directory.

If this line is too long, we might try to make it shorter with
something like

make install locally=yes

and then we modify the system makefiles so that they will
automatically set GNUSTEP_INSTALLATION_DIR to $(GNUSTEP_USER_ROOT)
when they detect that locally=yes was passed on the command line.

But `locally=yes' is very ugly as an option ... any better suggestion
more end-user-friendly ?

Perhaps we could extend this to be something like 

make install install-into=system
make install install-into=local
make install install-into=network
make install install-into=user

they would respectively be like specifying GNUSTEP_INSTALLATION_DIR
equal to ${GNUSTEP_SYSTEM_ROOT} or ${GNUSTEP_LOCAL_ROOT} or
${GNUSTEP_NETWORK_ROOT} or ${GNUSTEP_USER_ROOT} on the command line ?

Suggestions and/or comments from anyone will be welcome.


    Martin> Well, of course, the admin might add
    Martin> GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_USER_ROOT) to the
    Martin> shell startup files.....

The admin might also do something else - there is a 

/usr/GNUstep/System/Makefiles/Additional

directory.  All makefiles *.make in that directory are loaded
automatically when the make package is starting.  So an admin might
add a custom makefile there, which checks whether the user has
permission to write to GNUSTEP_INSTALLATION_DIR, and if the user
hasn't it, it overrides GNUSTEP_INSTALLATION_DIR with
GNUSTEP_USER_ROOT.  I suppose it might actually work. :-)


    >>> I was playing around a bit on my gstep system and noticed that
    >>> openapp also searches the ~/GNUstep/Apps folder, now I have a
    >>> question: When doing 'make install' for an application, would
    >>> it be possible that the make prorgam checks whether the
    >>> executing user is authorized to write to the system wide Apps
    >>> direcotries, and - if not - automatically installs the program
    >>> in the users ~/GNUstep/Apps folder?

Ok - I really wouldn't add this to the standard make package, because
otherwise what will happen is that if a user has something which he
wants to install into /usr/GNUstep/Local or /usr/GNUstep/System, what
happens is that

 - if he installs as root, it goes in the correct location;

 - if he installs without being root (because he forgets about su and 
   types `make install' without being root) it goes into ~/GNUstep;

so he can easily end up with some library or application which is
installed twice in different places (and when he installs it again,
he's got it installed twice with two different versions).  That is
normally a cause of much grief both for the user and for whoever the
user asks to for help when things don't work as expected.  And even if
the user realizes the mistake, he still has to uninstall the thing
manually from ~/GNUstep ... (well perhaps that would be a good
occasion to test and probably fix `make uninstall' ;-) ).  [When I
talk about a user I mostly talk about myself as I do a lot of mistakes
when I'm tired, and would like the make package not to allow me to
make too much of a mess when I do a mistake such as installing with
the wrong permissions]



reply via email to

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