Updated documentation for change in default filesystem layout and configuration file location

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@32600 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2011-03-16 10:05:36 +00:00
parent 94c20ec9e8
commit ecba301ec9
7 changed files with 138 additions and 114 deletions

View file

@ -1,3 +1,16 @@
2011-03-16 Nicola Pero <nicola.pero@meta-innovation.com>
* Documentation/gnustep-filesystem.texi: Updated documentation for
change in default filesystem layout and configuration file
location.
* Documentation/gnustep-howto.texi: Same change.
* Documentation/install.texi: Same change.
* Documentation/gnustep-make.texi (GNUSTEP_INSTALLATION_DOMAIN):
Updated explanation of this variable.
* Documentation/gnustep-userfaq.texi (No Makefile): Updated
location of GNUstep.sh.
* INSTALL: Regenerated.
2011-03-14 Nicola Pero <nicola.pero@meta-innovation.com>
* Instance/gswapp.make (GNUSTEP_GSWAPPS): Variable removed.

View file

@ -60,22 +60,26 @@ then Network, then System.
In this document we give a general overview of the GNUstep domains and
of the interesting locations in a domain. We also describe the
default GNUstep filesystem layout.
GNUstep filesystem layout.
The default GNUstep filesystem layout is a good way to discuss
domains, because it is very simple: in the default GNUstep filesystem
layout, every domain is mapped to a single directory on disk. For
example, the System domain could be mapped to the
@file{/usr/GNUstep/System} directory, and everything that is installed
into the System domain is then installed into some subdirectory of
@file{/usr/GNUstep/System}. Before gnustep-make version 2.0, this was
the only filesystem layout available.
The GNUstep filesystem layout is a good way to discuss domains,
because it is very simple: in the GNUstep filesystem layout, every
domain is mapped to a single directory on disk. For example, the
System domain could be mapped to the @file{/usr/GNUstep/System}
directory, and everything that is installed into the System domain is
then installed into some subdirectory of @file{/usr/GNUstep/System}.
Before gnustep-make version 2.0, this was the only filesystem layout
available.
Please keep in mind that (starting from gnustep-make version 2.0) this
is not the case for a general filesystem layout; for example a typical
FHS (Unix) layout might be installing System Tools in @file{/usr/bin}
and System Admin Tools in @file{/sbin}.
In fact, starting with gnustep-make version 2.6.0, the default
filesystem layout is now the FHS (Unix) layout rooted in
@file{/usr/local}.
@node The System Domain, The Local Domain, Top, Top
@section The System Domain
@ -94,8 +98,8 @@ related to system administrative tasks), developer applications
extensions (bundles for XML, SSL, RTF, etc), as well as all software
installed by the manufacturer of your distribution.
In the default GNUstep filesystem layout, the entire System domain is
found in the @file{System} folder of the GNUstep installation.
In the GNUstep filesystem layout, the entire System domain is found in
the @file{System} folder of the GNUstep installation.
@node The Local Domain, The Network Domain, The System Domain, Top
@ -115,8 +119,8 @@ 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.
In the default GNUstep filesystem layout the entire Local domain is
installed as the @file{Local} folder of your GNUstep installation.
In the GNUstep filesystem layout the entire Local domain is installed
as the @file{Local} folder of your GNUstep installation.
@node The Network Domain, The Users Domain, The Local Domain, Top
@section The Network Domain
@ -137,11 +141,11 @@ with different tasks and requirements. If you want to take advantage
of the Network domain, you need to use a filesystem layout with
a separate Network domain.
In the default GNUstep filesystem layout the Network domain is the
same as the Local domain; if you want to use the Network domain there
is a separate GNUstep filesystem layout variant with a separate
Network domain, in which case the entire Network domain is installed
as the @file{Network} folder of your GNUstep installation.
In the GNUstep filesystem layout the Network domain is the same as the
Local domain; if you want to use the Network domain there is a
separate GNUstep filesystem layout variant with a separate Network
domain, in which case the entire Network domain is installed as the
@file{Network} folder of your GNUstep installation.
@node The Users Domain, Structure of a Domain, The Network Domain, Top
@ -156,9 +160,9 @@ associations for programs. It also holds user installed applications
and tools (each user has the ability to install their own version of
an application or tool).
In the default GNUstep filesystem layout (and in most other layouts
too) the User domain is completely contained in a subdirectory of the
user's home directory called @file{GNUstep}.
In the GNUstep filesystem layout (and in most other layouts too) the
User domain is completely contained in a subdirectory of the user's
home directory called @file{GNUstep}.
@node Structure of a Domain, Configuration, The Users Domain, Top
@section Structure of a Domain
@ -837,11 +841,13 @@ them.
@node File Format, Windows (MINGW), Configuration, Configuration
@subsection File Format
By default, the configuration file is called GNUstep.conf and exists
in /etc/GNUstep on a Unix-like system. This file is in a format
suitable for being 'sourced' by the standard unix (Bourne) shell,
consisting of lines of the form key=value, comments (everything on a
line from the first hash (#) onwards), or blank lines.
By default, the configuration file is called GNUstep.conf; it
typically exists in /etc/GNUstep or /usr/local/etc/GNUstep (depending
on how gnustep-make was configured) on a Unix-like system. This file
is in a format suitable for being 'sourced' by the standard unix
(Bourne) shell, consisting of lines of the form key=value, comments
(everything on a line from the first hash (#) onwards), or blank
lines.
This is very convenient on unix-like systems, but needs care for windows users.
If a value contains whitespace or backslash characters (or the hash which
@ -869,9 +875,9 @@ and can't tolerate whitespace in file names. So you want to do all
the building in a unix-style environment using only unix-style paths.
On MSYS/MinGW this is done naturally by using the standard unix-style
/etc/GNUstep/GNUstep.conf config file, where the location is inside
the MSYS unix-style emulation system. This is what is normally done
by gnustep-make, so there is nothing special you need to do here.
/usr/local/etc/GNUstep/GNUstep.conf config file, where the location is
inside the MSYS unix-style emulation system. This is what is normally
done by gnustep-make, so there is nothing special you need to do here.
On the other hand, the base library (and all applications since they are
built using it) wants to work with native windows paths so that applications
@ -884,9 +890,10 @@ runtime. And this is enabled by default -- in fact gnustep-base will
use ./GNUstep.conf as config file on MinGW, where the location is
relative to the location of the gnustep-base.dll.
In other words, gnustep-make will use C:/xxx/etc/GNUstep/GNUstep.conf
(where 'xxx' is the MSYS installation path), while gnustep-base will
use a GNUstep.conf file in the same directory as the gnustep-base.dll.
In other words, gnustep-make will use
C:/xxx/usr/local/etc/GNUstep/GNUstep.conf (where 'xxx' is the MSYS
installation path), while gnustep-base will use a GNUstep.conf file in
the same directory as the gnustep-base.dll.
This ./GNUstep.conf file normally does not even exist; gnustep-base's
./configure will hardcode into gnustep-base.dll relative paths to all

View file

@ -236,30 +236,29 @@ gnustep-make just type:
The GNUstep makefile package can be configured to use different types
of filesystem layouts. By default, GNUstep is installed with a
GNUstep filesystem layout into /usr/GNUstep. That is a good,
Unix-style filesystem layout into /usr/local/. That is a good,
recommended default if you don't have an opinion on which filesystem
layout to use.
But you can also install it somewhere else by using the prefix
parameter; the following command makes /usr/local/GNUstep the root
directory:
parameter; the following command installs it in /opt/GNUstep:
@example
./configure --prefix=/usr/local/GNUstep
./configure --prefix=/opt/GNUstep
@end example
You can also install GNUstep using an FHS layout (or some other filesystem layout
of your choice) by using the with-layout parameter; the following command
configures GNUstep to use the standard FHS (unix) filesystem layout:
You can also install GNUstep using a GNUstep layout (or some other
filesystem layout of your choice) by using the with-layout parameter;
the following command configures GNUstep to use the traditional
GNUstep layout:
@example
./configure --with-layout=fhs
./configure --with-layout=gnustep
@end example
In this document we will always present examples that assume that you
are using the default GNUstep filesystem layout in /usr/GNUstep. If
you are using a different layout, you will need to make the obvious
changes.
are using the default filesystem layout in /usr/local/. If you are
using a different layout, you will need to make the obvious changes.
@menu
* Alternate Library Setup::
@ -290,7 +289,7 @@ gnustep-make you need to execute GNUstep's shell configuration script,
as follows:
@example
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
. /usr/local/share/GNUstep/Makefiles/GNUstep.sh
@end example
before proceeding any further.
@ -337,17 +336,20 @@ sourcing the @file{GNUstep.sh} shell script before using GNUstep. The
shell script @file{GNUstep.sh} is located in the Makefile package; you
may want to add it to your shell startup file (such as
@file{.profile}). For instance, if you installed GNUstep with the
default GNUstep filesystem layout in @file{/usr/GNUstep}, then adding
default filesystem layout in @file{/usr/local}, then adding
@example
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
. /usr/local/share/GNUstep/Makefiles/GNUstep.sh
@end example
in your @file{.profile} file will work (Note the period at the
in your @file{.profile} file will work. Note the period at the
beginning of the line, and the space between the period and the
following path; if you installed GNUstep somewhere else, you need to
replace @file{/usr/GNUstep/System/Library/Makefiles} with the path to
your @file{GNUstep.sh} script). The script defines environment
following path. If you installed GNUstep somewhere else, you need to
replace @file{/usr/local/share/GNUstep/Makefiles/GNUstep.sh} with the
path to your @file{GNUstep.sh} script. Another typical location is
@file{/usr/GNUstep/System/Library/Makefiles}, which is the default
location of your @file{GNUstep.sh} script when gnustep-make is
configured with the GNUstep layout. The script defines environment
variables that are needed to find GNUstep files and executables.
Users of csh need to use the @file{GNUstep.csh} script. Read the make
@ -358,7 +360,7 @@ system, you can try copying/linking the @file{GNUstep.sh} there. For
csh or tcsh, try
@example
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
source /usr/local/share/GNUstep/Makefiles/GNUstep.csh
@end example
Finally, in most filesystem configuration it's also possible to
@ -369,17 +371,16 @@ installation), instead of sourcing @file{GNUstep.sh} you could manually
add the Tools directories to your PATH:
@example
PATH="/usr/GNUstep/System/Tools:/usr/GNUstep/Local/Tools:$PATH"
PATH="/usr/local/bin:$PATH"
@end example
manually add @file{/usr/GNUstep/System/Library/Libraries} and
@file{/usr/GNUstep/Local/Library/Libraries} to your
@file{/etc/ld.so.conf} file (don't forget to run @code{ldconfig} every
time you install a library), and set the environment variable
@code{GNUSTEP_MAKEFILES} when you want to compile something:
manually add @file{/usr/local/lib} to your @file{/etc/ld.so.conf} file
(don't forget to run @code{ldconfig} every time you install a
library), and set the environment variable @code{GNUSTEP_MAKEFILES}
when you want to compile something:
@example
GNUSTEP_MAKEFILES=/usr/GNUstep/System/Library/Makefiles
GNUSTEP_MAKEFILES=/usr/local/share/GNUstep/Makefiles
@end example
@node GNUstep Home, Time Zone, Environment Setup, Additional Installation
@ -405,7 +406,7 @@ zone. Type something like @kbd{defaults write NSGlobalDomain "Local
Time Zone" GB}. Where @kbd{GB} is a time zone abbreviation.
See
@file{/usr/GNUstep/System/Library/Libraries/gnustep-base/Versions/1.14/Resources/NSTimeZones/zones/}
@file{/usr/local/lib/GNUstep/Libraries/gnustep-base/Versions/1.21/Resources/NSTimeZones/zones/}
(or equivalent on your system depending on your filesystem layout) for
typical time zones.
@ -419,8 +420,8 @@ you run your first GNUstep app:
@itemize @bullet
@item gdomap - Put this in a system startup file, like @file{/etc/rc.local} or @file{/etc/rc.d/rc.local} (customize for your system)
@example
if [ -f /usr/GNUstep/System/Tools/gdomap ]; then
/usr/GNUstep/System/Tools/gdomap
if [ -f /usr/local/bin/gdomap ]; then
/usr/local/bin/gdomap
fi
@end example
@item gdnc - Start after sourcing @file{GNUstep.sh} (e.g. in .profile)
@ -448,8 +449,8 @@ appropriate directory, and type make. You will need to install the
GNUstep core libraries first before doing this.
To run the examples. Use the openapp utility that is part of the
GNUstep makefile package (and stored in
@file{/usr/GNUstep/System/Tools}). Usage is:
GNUstep makefile package (and stored in @file{/usr/local/bin}). Usage
is:
@example
openapp application_name [additional arguments to app]

View file

@ -1454,18 +1454,16 @@ make GNUSTEP_INSTALLATION_DOMAIN=SYSTEM
@end smallexample
This command states that the @code{SYSTEM} domain should be used as
the installation root directory; if that is a standard GNUstep domain
with the standard GNUstep filesystem hierarchy, then applications in
the package will be installed in the @file{$GNUSTEP_SYSTEM_ROOT/Apps}
the installation root directory; in particualr applications in the
package will be installed in the @file{$GNUSTEP_SYSTEM_APPS}
directory, libraries in the package will be installed under the
@file{$GNUSTEP_SYSTEM_ROOT/Library/Libraries} directory, command line
tools will be installed under the @file{$GNUSTEP_SYSTEM_ROOT/Tools}
directory, and etc. If the filesystem layout is a different one, the
various directories might be located anywhere, which is why it's
important to also refer to them by using variables such as
@code{GNUSTEP_APPS}, @code{GNUSTEP_LIBRARIES} and
@code{GNUSTEP_TOOLS}, which automatically point to the right directory
on disk for this filesystem layout and installation domain.
@file{$GNUSTEP_SYSTEM_LIBRARIES} directory, command line tools will be
installed under the @file{$GNUSTEP_SYSTEM_TOOLS} directory, etc.
Depending on the filesystem layout, the various directories may be
located anywhere, which is why it's important to also refer to them by
using variables such as @code{GNUSTEP_APPS}, @code{GNUSTEP_LIBRARIES}
and @code{GNUSTEP_TOOLS}, which automatically point to the right
directory on disk for this filesystem layout and installation domain.
By default the Makefile Package sets
@code{GNUSTEP_INSTALLATION_DOMAIN} to @code{LOCAL}.

View file

@ -508,7 +508,7 @@ gmake: *** No rule to make target `/Makefiles/aggregate.make'. Stop.
Make sure you have installed the gnustep-make package and also type:
@example
source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
source /usr/local/share/GNUstep/Makefiles/GNUstep.sh
@end example
You can put this line in your @file{.profile} or @file{.bash_profile} file

View file

@ -36,18 +36,19 @@ make
make install
@end example
This will use the default GNUstep filesystem layout (in other words,
all of GNUstep will end up installed into /usr/GNUstep). If you are on a
Unix system, another popular option is
This will use the default 'FHS' filesystem layout rooted in /usr/local
(in other words, all of GNUstep will end up installed into /usr/local
in a Unix fashion). Another popular option is
@example
./configure --with-layout=fhs
./configure --with-layout=gnustep
make
make install
@end example
which will use the FHS (in other words, all of GNUstep will end up
installed into /usr/local).
which will use the GNUstep filesystem (in other words, all of GNUstep
will end up installed into /usr/GNUstep using a GNUstep-tailored
filesystem layout).
To make and install the documentation:
@ -78,14 +79,14 @@ To specify a filesystem layout, use the --with-layout=xxx option. The
default is
@example
./configure --with-layout=gnustep
./configure --with-layout=fhs
@end example
which installs GNUstep in /usr/GNUstep using the GNUstep layout (that
is, /usr/GNUstep/System, /usr/GNUstep/Local, ~/GNUstep). Another
popular option is '--with-layout=fhs' which installs gnustep-make into
FHS directories based on /usr/local. Check the FilesystemLayouts for
more options.
which installs GNUstep in /usr/local using the FHS layout (that is,
/usr/local/bin, /usr/local/lib, etc). Another popular option is
'--with-layout=gnustep' which installs gnustep-make into a GNUstep
layout based on /usr/GNUstep (inside /usr/GNUstep/System,
/usr/GNUstep/Local). Check the FilesystemLayouts for more options.
If you want to install the same layout but in a different location
(for example, /opt/gnustep), you can use --prefix=xxx,
@ -95,10 +96,11 @@ If you want to install the same layout but in a different location
@end example
If you're confused and want to see exactly what directories will be
used for a certain choice of ./configure flags, have a look at the
GNUstep.conf file that is generated by ./configure. It will list the
full paths to all the relevant GNUstep directories that would be used
if you install the software with that configuration.
used for a certain choice of ./configure flags, you can check the
output of ./configure or even have a look at the GNUstep.conf file
that is generated by ./configure. It will list the full paths to all
the relevant GNUstep directories that would be used if you install the
software with that configuration.
To see more options you can use with configure, type
@ -283,8 +285,9 @@ so that binaries for different machines/library-combos can coexist.
This is the case only if you configure gnustep-make with the option
--disable-flattened.
In this case, the recommended solution for setting up the GNUstep
environment is to source the GNUstep.sh file.
It is recommended that this option is used with the GNUstep filesystem
layout; and that the GNUstep environment is set up by sourcing the
GNUstep.sh file.
@example
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
@ -350,7 +353,7 @@ default GNUstep.conf file for the system; on GNU/Linux this is
uses a different config file; for example:
@example
./configure --prefix=/opt/mytest --with-config-file=/etc/GNUstep-mytest.conf
./configure --prefix=/opt/mytest --with-config-file=/etc/GNUstep-mytest.conf --with-layout=gnustep
@end example
When you install, this second instance of gnustep-make will reside in
@ -379,4 +382,3 @@ After this, you are ready to start using a new one (by setting a new
GNUSTEP_CONFIG_FILE and then sourcing the GNUstep.sh of the new one).
@bye

41
INSTALL
View file

@ -26,16 +26,17 @@ GNUstep-HOWTO and are also located at the GNUstep web site at
make
make install
This will use the default GNUstep filesystem layout (in other words,
all of GNUstep will end up installed into /usr/GNUstep). If you are on
a Unix system, another popular option is
This will use the default 'FHS' filesystem layout rooted in
/usr/local (in other words, all of GNUstep will end up installed into
/usr/local in a Unix fashion). Another popular option is
./configure --with-layout=fhs
./configure --with-layout=gnustep
make
make install
which will use the FHS (in other words, all of GNUstep will end up
installed into /usr/local).
which will use the GNUstep filesystem (in other words, all of GNUstep
will end up installed into /usr/GNUstep using a GNUstep-tailored
filesystem layout).
To make and install the documentation:
@ -61,13 +62,13 @@ can find detailed information on filesystem layouts.
To specify a filesystem layout, use the -with-layout=xxx option. The
default is
./configure --with-layout=gnustep
./configure --with-layout=fhs
which installs GNUstep in /usr/GNUstep using the GNUstep layout (that
is, /usr/GNUstep/System, /usr/GNUstep/Local, ~/GNUstep). Another
popular option is '-with-layout=fhs' which installs gnustep-make into
FHS directories based on /usr/local. Check the FilesystemLayouts for
more options.
which installs GNUstep in /usr/local using the FHS layout (that is,
/usr/local/bin, /usr/local/lib, etc). Another popular option is
'-with-layout=gnustep' which installs gnustep-make into a GNUstep
layout based on /usr/GNUstep (inside /usr/GNUstep/System,
/usr/GNUstep/Local). Check the FilesystemLayouts for more options.
If you want to install the same layout but in a different location
(for example, /opt/gnustep), you can use -prefix=xxx,
@ -75,10 +76,11 @@ more options.
./configure --prefix=/opt/gnustep
If you're confused and want to see exactly what directories will be
used for a certain choice of ./configure flags, have a look at the
GNUstep.conf file that is generated by ./configure. It will list the
full paths to all the relevant GNUstep directories that would be used
if you install the software with that configuration.
used for a certain choice of ./configure flags, you can check the
output of ./configure or even have a look at the GNUstep.conf file that
is generated by ./configure. It will list the full paths to all the
relevant GNUstep directories that would be used if you install the
software with that configuration.
To see more options you can use with configure, type
@ -236,8 +238,9 @@ so that binaries for different machines/library-combos can coexist.
This is the case only if you configure gnustep-make with the option
-disable-flattened.
In this case, the recommended solution for setting up the GNUstep
environment is to source the GNUstep.sh file.
It is recommended that this option is used with the GNUstep
filesystem layout; and that the GNUstep environment is set up by
sourcing the GNUstep.sh file.
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
@ -297,7 +300,7 @@ default GNUstep.conf file for the system; on GNU/Linux this is
`/etc/GNUstep/GNUstep.conf'. You can create a second one that uses a
different config file; for example:
./configure --prefix=/opt/mytest --with-config-file=/etc/GNUstep-mytest.conf
./configure --prefix=/opt/mytest --with-config-file=/etc/GNUstep-mytest.conf --with-layout=gnustep
When you install, this second instance of gnustep-make will reside in
`/opt/mytest', and have `/etc/GNUstep-mytest.conf' as config file.