discuss-gnustep
[Top][All Lists]
Advanced

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

Re: GNUstep filesystem layout change


From: Jeff Teunissen
Subject: Re: GNUstep filesystem layout change
Date: Sat, 26 Apr 2003 03:43:16 -0400

Benhur Stein wrote:
> 
> Hi.
> 
>  From this documentation it is not clear to me the distinction between
> ApplicationSupport and Bundles. Where should I install the bundles
> of an application? Now I'm putting them under Bundles/<AppName>,
> but the document seems to imply that they should be in
> AplicationSupport/<AppName>. If that is the case, what is Bundles
> for?

I use Library/<AppName>, additionally with a "special" bundle extension --
like any other app on NeXT or OPENSTEP.

That's what boggles my mind about *both* the Bundles dir and the
ApplicationSupport dir. Neither has a good reason to exist, as far as has
been explained (except the ever-present "this is what apple does").

That's what the Library directory is for. For example: NeXT's  Preferences
loads bundles with an extension .preferences and looks for them in
~/Library/Preferences, /LocalLibrary/Preferences, /NetLibrary/Preferences,
and /NextLibrary/Preferences. In addition, the app registers the
.preferences extension as a type, so you can double-click on a
.preferences bundle from the Workspace and the app will load and display
it, unhiding if it is hidden.

This is a simple, unstructured[1], EASY way to do things -- it is easier
to do it this way using the functions we're provided than to use _any_
subdirectory of Library as the root for app-loaded bundles. It is easier
for the admin/user to find data belonging to an application, for purposes
of uninstallation, adding additional bundles, removing bundles, editing
the app's data (such as document templates, which would be in this same
directory), and so on. It's one-stop shopping, potentially split amongst
multiple domains...but all the domains have the same layout, so it's no
problem -- the system is easily predictable, with as few rules as
possible.

> Also, in the case of a server offering network mountable applications,
> it is said that <server>/Network/Applications should be mounted
> on <client>/Network/Servers/<server>. Are all those directories
> currently searched by the application-launching/services/etc systems?
> Shouldn't other directories from server be visible too (Bundles or
> ApplicationSupport come to mind)? Maybe all of <server>/Network should
> be mounted on <client>/Network/Servers/<server>. That way, a server
> could export not only Applications, but a whole gnustep hierarchy.
> Tools directories imported this way cannot go to PATH; opentool should
> search all those subdirectories.. How is/was this done on
> MacOSX/OPENSTEP?

On NeXTstep/OPENSTEP, /NetAdmin, /NetApps, and /NetLibrary were just
directories. The convention (not rule) was that these directories would be
mount points to a remote (or local, in the case of the serving machine)
filesystem. You would (for example) mount /NetApps from a box that served
up all of the network's shared applications, while locally-installed apps
would naturally go into /LocalApps. These directories were not created by
the OS, you were merely told in the sysadmin's manual that if you created
them, they would be used. Simple, efficient, clean, useful but not
intrusive.

/NetUsers was a somewhat special case when dealing with NetInfo and
"foreign" users (users whose info was gotten from a remote NI server
instead of the local NI daemon) logging in. A new home dir was created in
/NetUsers/username, and from that point on they had a home dir on the
local machine. The name of the directory foreign users got their home
directories created in was changeable by going into NetInfoManager and
typing something else into the field built into the database.

By default (trivially-changeable), remote NFS mounts were placed in
/Net/hostname/[mount]. So mounting my Linux server's /home drive would by
default give me /Net/odo/home...unless I want to mount it elsewhere, in
which case I just modify the text field in NFSManager and type in /home
instead. Again, no rules involved.

On my *step-based network filesystem, /Network is located on the server
and mounted by the desktops. On the OPENSTEP machine, /NetApps is a
symbolic link to /Network/OSapps and /NetLibrary is a symbolic link to
/Network/OSlibrary. On the Linux machines, /Network is a
pretty-much-standard GNUstep domain, except that it's much larger than
most...there's 2.7GB used, mostly by fonts and stuff in /Network/Shared.
The network-wide mail spool is there too, with symlinks from /var/mail and
/var/spool/mail.

[1]: Being unstructured is a Good Thing(tm) -- it avoids the impression of
"rule", instead giving an impression of "convention". People hate rules,
but best-practice conventions are well-liked (and followed).

-- 
| Jeff Teunissen  -=-  Pres., Dusk To Dawn Computing  -=-  deek @ d2dc.net
| GPG: 1024D/9840105A   7102 808A 7733 C2F3 097B  161B 9222 DAB8 9840 105A
| Core developer, The QuakeForge Project        http://www.quakeforge.net/
| Specializing in Debian GNU/Linux              http://www.d2dc.net/~deek/




reply via email to

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