[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: removing the 'make install'-->'make all' dependency
From: |
Nicola Pero |
Subject: |
Re: removing the 'make install'-->'make all' dependency |
Date: |
Tue, 10 Dec 2002 16:40:53 +0000 (GMT) |
> > Hi.
> >
> > I'm considering removing the dependency of 'make install' from 'make all'.
>
> [... snip ...]
>
> But you still have all the overhead of having to run su and make twice.
> In my setup, I have a group of "trusted" users who can install stuff
> (except where it'd affect root), so I only have to run "make install" as
> myself to compile and install everything. Keeping root out of the build
> process seems like a Good Thing, anyway (especially when hacking
> makefiles; safer to catch "mishaps" as a normal user :).
Thanks for your comments :-)
I think a good balance would be to remove the 'install-->all' dependency
by default, and then add a special option (controlled by an environment
variable) which would automatically activate the additional
'install-->all' dependency again. It's trivial to build the option into
gnustep-make.
Something like setting GNUSTEP_INSTALL_DEPENDS_ON_ALL=yes in the
environment (or in a makefile) would automatically turn on the 'install::
all' dependency, while the default behaviour would be without this
dependency. Advanced users with advanced user/group/directory ownerships
setups can then set GNUSTEP_INSTALL_DEPENDS_ON_ALL=yes in their .bashrc
(or whatever they use) if they so wish.
Normal users would go on with a 'simplified' (as compared to now) building
system where 'make' and 'make install' are completely separate stages
(which reflect the way they think and do it in practice). The normal user
- compiles by typing 'make' as a standard user;
- installs by typing 'make install' as the superuser (or as a standard
user if you are installing into GNUSTEP_USER_ROOT).
That is the standard way of using a makefile in the unix world, and it's
the pattern all newcomers (and I believe most normal users) use.
Btw, I would recommend following this pattern anyway unless you are really
sure of what you are doing ('you' in general terms, I expect Alexander and
Richard to quite well know what they are doing :-) ), because security can
be seriously compromised if normal users can write to directories (such as
subdirs of GNUSTEP_SYSTEM_ROOT, GNUSTEP_LOCAL_ROOT and
GNUSTEP_NETWORK_ROOT) which end up being in the PATH or LD_LIBRARY_PATH of
the superuser, and often people are not really enough aware of this bit,
or do not take this seriously enough.
I understand there might be a lot of good reasons to have more 'advanced'
setups and usage patterns with users and groups and directory ownerships,
so I'm happy to add an option to provide a different behaviour for
advanced users. It shouldn't be a particular problem for advanced users
who set up custom users and groups and special ownership policies to set a
humble environment variable. :-)
Let me know if someone is still unhappy with this solution.
- removing the 'make install'-->'make all' dependency, Nicola Pero, 2002/12/09
- Re: removing the 'make install'-->'make all' dependency, Adam Fedor, 2002/12/09
- Re: removing the 'make install'-->'make all' dependency, Alexander Malmberg, 2002/12/10
- Re: removing the 'make install'-->'make all' dependency, Helge Hess, 2002/12/11
- Re: Header cleanliness [was: removing the 'make install'-->'makeall' dependency], Alexander Malmberg, 2002/12/11
- Re: removing the 'make install'-->'make all' dependency, Alexander Malmberg, 2002/12/11
- Re: removing the 'make install'-->'make all' dependency, Alexander Malmberg, 2002/12/16