Skip to content

Commit

Permalink
Updated documentation for change in default filesystem layout and con…
Browse files Browse the repository at this point in the history
…figuration file location

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@32600 72102866-910b-0410-8b05-ffd578937521
  • Loading branch information
nicola committed Mar 16, 2011
1 parent 22cbf25 commit b903f63
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 115 deletions.
13 changes: 13 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
2011-03-16 Nicola Pero <[email protected]>

* 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 <[email protected]>

* Instance/gswapp.make (GNUSTEP_GSWAPPS): Variable removed.
Expand Down
73 changes: 40 additions & 33 deletions Documentation/gnustep-filesystem.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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.

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.
GNUstep filesystem layout.

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

Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
63 changes: 32 additions & 31 deletions Documentation/gnustep-howto.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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::
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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.

Expand All @@ -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)
Expand Down Expand Up @@ -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]
Expand Down
20 changes: 9 additions & 11 deletions Documentation/gnustep-make.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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}.
Expand Down
2 changes: 1 addition & 1 deletion Documentation/gnustep-userfaq.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading

0 comments on commit b903f63

Please sign in to comment.