[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!
From: |
Nicola Pero |
Subject: |
Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles! |
Date: |
Tue, 28 Oct 2008 15:32:19 +0000 |
Actually I was referring to the location into which the Makefiles
directory gets installed to.
ie:
/usr/GNUstep/System/Library/Makefiles
vs.
/usr/GNUstep/Local/Library/Makefiles
Which would also have a direct impact from where GNUstep.sh should
be
sourced from.
The location of Makefiles is actually independent of the domain
roots,
so even if make is installed in Local, the makefiles will probably
end
up in System. This totally depends on the FS layout in use, however,
so Makefiles could be anywhere if a custom layout was used. In the
end, you will always need to know its location before you can source
GNUstep.sh.
I am referring to the location to which -make should install it's
makefiles and it's tools. If -base/-gui/-core are to be installed
into
the LOCAL domain if built from source, then it seems the same should
apply to -make ie. the Makefiles directory in my view.
gnustep-make's makefiles and scripts are installed into
GNUSTEP_MAKEFILES, which
is a separate location from SYSTEM or LOCAL or NETWORK or USER. ;-)
Most of the times the filesystem layout puts GNUSTEP_MAKEFILES inside
SYSTEM (as you mention), but it could also put in a completely unrelated
location - without any adverse effects on anything (I do that all the
time btw). :-)
The only tool that is installed by gnustep-make is gnustep-config
which is
installed into SYSTEM_TOOLS. There are also openapp and opentool,
again installed into SYSTEM_TOOLS, which are unused unless you're
using library-combos.
It's actually quite easy to have multiple installations of gnustep-
make and switch
between them (I do it all the time), but I kind of wonder how relevant
that is
to the average user's experience (or even to an "experienced" user's
experience). ;-)
Maybe we should have a separate, configurable location for gnustep-
config ?
I just wonder if this is not too much complexity since I've never
heard of anyone
needing that apart from me, but I can deal with that myself. ;-)
I guess the most "correct" way with the current make system is to
source `gnustep-config --variable=GNUSTEP_MAKEFILES`/GNUstep.sh
OK, granted, so once you know GNUSTEP_MAKEFILES then then that's
fine...
but gnustep-config get's installed into Domain of -make
(i.e. /usr/GNUstep/System/Tools currently but with Nicola's proposal
I'd
expect it be installed to /usr/GNUstep/Local/Tools in the future).
So where does -make install it to by default if GNUSTEP_MAKEFILES is
not
set and we default to the GNUstep file system layout?
You're totally right that there is some confusion here in the sense
that we only
have a single GNUSTEP_MAKEFILES location, instead of having a SYSTEM
vs LOCAL vs NETWORK vs USER one, so basically if you're using a specific
filesystem layout, gnustep-make will always install in the same
location (potentially
overwriting an existing gnustep-make).
Eg, GNUSTEP_MAKEFILES is defined in the filesystem layout, and for the
GNUstep
filesystem layout, GNUSTEP_MAKEFILES is {prefix}/System/Library/
Makefiles.
So if you already have gnustep-make-2.x.x.rpm installed on your GNU/
Linux box,
and you now try to install gnustep-make, it may end up overwriting
your system
RPM, which I agree is not great! :-(
I can think of solutions, but none which strikes me as great.
Installing into /usr/GNUstep/Local
by default is good, but every traditional GNUstepper expects it to
install into
/usr/GNUstep/System instead - and might have hardcoded that path
everywhere in startup
scripts as ". /usr/GNUstep/System/Library/Makefiles/GNUstep.sh" or
something equivalent.
Btw, once you have your "distribution/System" gnustep-make installed
into /usr/GNUstep/System,
and your "own/Local" gnustep-make installed into /usr/GNUstep/Local,
you still have the problem
that /etc/GNUstep/GNUstep.conf's GNUSTEP_MAKEFILES will point to one
or the other - but not
both, since we don't have 'GNUSTEP_LOCAL_MAKEFILES' and
'GNUSTEP_SYSTEM_MAKEFILES',
we only have one GNUSTEP_MAKEFILES. So you probably also want to have
two GNUstep.conf files ...
and switch between the two gnustep-makes by changing your
GNUSTEP_CONFIG_FILE
shell variable (IIRC) ... which is good and all works but at that
point it's not easy to do anyway so
maybe we just expect people to know what they are doing and use ./
configure --prefix=xxx when
they install their local version of gnustep-make.
Maybe we make it possible to change GNUSTEP_MAKEFILES as a separate
option in gnustep-make's
./configure ... not sure we can go as far as having it default to
LOCAL_LIBRARY/Makefiles though - it
would default to SYSTEM_LIBRARY/Makefiles to avoid breaking all the
startup scripts ... but maybe we
could emit a warning if you're about to overwrite an existing gnustep-
make installation ?
Suggestions welcome.
Question to Nicola; maybe gnustep-config should be in /usr/local/bin
to successfully provide a bridge from standard Unix hierarchy to
whatever layout the GNUstep installation is using? The -make package
would then need two different --prefix options, which is a bit of a
problem.
And that proposal (installing into /usr/local/bin) was originally
rejected... well at least it wasn't followed at the time it was
introduced.
Well, it's currently installed into SYSTEM_TOOLS, so if SYSTEM_TOOLS
is /usr/local/bin,
it will end up there. ;-)
If we want to be able to install gnustep-config somewhere else (eg,
have GNUstep stuff
in /usr/GNUstep, but also gnustep-config in /usr/local/bin or even /
usr/bin) we need to
add maybe a gnustep-make's ./configure option to put it somewhere
else ? That's easy
to add, and I can add it no problem (and it will apply to openapp and
opentool too).
I hope it will be more helpful than confusing though. ;-)
Thanks
- Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Nicola Pero, 2008/10/28
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, David Ayers, 2008/10/28
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Nicola Pero, 2008/10/28
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Nicola Pero, 2008/10/28
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Truls Becken, 2008/10/28
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Nicola Pero, 2008/10/29
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Richard Frith-Macdonald, 2008/10/29
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, David Ayers, 2008/10/29
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Riccardo Mottola, 2008/10/29
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Pete French, 2008/10/28
- Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Lucas Holt, 2008/10/28
Re: Please do not hardcode GNUSTEP_INSTALLATION_DOMAIN in GNUmakefiles!, Nicola Pero, 2008/10/28