Installing GeneWeb under OS X

From GeneWeb
Revision as of 16:35, 22 October 2015 by Henri83 (talk | contribs) (→‎GeneWeb)
Jump to navigation Jump to search
150px-Geographylogo svg.png Language:   English • français

Simplest install

Traces in terminal window at GeneWeb start.

The simplest install is as follows (process verified on OS X Yosemite):

  • Download the appropriate version. The latest version available from this source is geneweb-6.07.tgz.
  • Double-clicking on the downloaded .tgz file creates a subfolder named geneweb-6.07.
  • Move this folder where you prefer.
  • Open the file GeneWeb.command in a text editor.
  • Replace the line
trap 'kill $pids' 1 2
killall gwd
killall gwsetup
and save the result back to disk.
  • Start GeneWeb by double-clicking the new GeneWeb.command. This should open a terminal window and browser window with the start page of GeneWeb.
Starting page for GeneWeb.

Multiple versions install

Installing multiple versions of GeneWeb is possible. The following section describes one approach. One of its benefits is to make more explicit several aspects of the folder structure expected by GeneWeb.

The first step is to organise a folder structure which will contain the various elements. Although style and taste may vary, here is a proposal for such a structure which is rather general, identifies the various components associated with GeneWeb and is amenable to changes.

All the genealogy files are located in a folder called Genealogy sitting in “Home”, and containing two sub-folders "GeneWeb" (sources and binaries. This folder may be called bases in subsequent discussions and examples) and “GeneWeb-Bases” (bases and other base specific data. a specific base may be called base in the following discussions and examples) and two command files launching each one particular version of gwd and gwsetup (Starting gwd):

iMac-H:Genealogy Henri$ cd ~/Genealogy/
iMac-H:Genealogy Henri$ pwd
iMac-H:Genealogy Henri$ ls -al
total 24
drwxr-xr-x   5 Henri  staff    170 14 oct 12:57 .
drwxr-xr-x+ 81 Henri  staff   2754 14 oct 13:28 ..
-rw-r--r--@  1 Henri  staff  10244 14 oct 13:28 .DS_Store
drwxr-xr-x   8 Henri  staff    272 14 oct 12:59 GeneWeb
drwxr-xr-x  13 Henri  staff    442 14 oct 13:04 GeneWeb-Bases
-rwxr-xr-x@  1 Henri  staff   3036  8 sep 12:14 Gw-Mac-6.08.command
-rwxr-xr-x@  1 Henri  staff   3160 20 sep 05:55 Gw-Mac-7.00.command
iMac-H:Genealogy Henri$ 
Folder structure under Mac OS X for GeneWeb (source code and binaries).


The content of GeneWeb is organized as follows:

The folders GeneWeb-x.yy-Mac contain copies (or moves) of the distribution folders created from sources for each version, or directly downloaded (zip file) from a trusted source.

The folder GeneWeb-6.08-Mac contains a bases subfolder because the file gwd.command was executed which creates a bases folder right there. This folder is not used anywhere else in this setup (and could have been removed).

This setup has the advantage of maintaining active at least two running versions of GeneWeb which may be handy for moving bases from one version to the other. In each GeneWeb-x.yy-Mac folder, a sub-folder gw contains all the executable files and associated data (default a.gwf, etc, images, lang, src sub-folders). gwsetup itself uses the setup sub-folder for its data.

gwd.arg contains the execution arguments for gwd (see Gwd).

gwd.log contains the log traces produced by gwd. May be useful for some debuging!

Note the tags.txt file containing the list of HTML tags authorized within the notes associated with each person (see Tags).

The two folders gw-6.08-alpha-src and gw-7.00-Mac and file relate to GeneWeb sources and will be discussed in section #From sources.


The content of GeneWeb-Bases is organized as follows:

Folder structure under Mac OSX for GeneWeb-Bases (Genealogy data).

Bases are stored in .gwb folders. Each base may have its parameter .gwf file. If no parameter file exist, gwd will use the a.gwf default parameter file found in GeneWeb/GeneWeb-x.yy-Mac/gw

Other folders contain the following data:

  • cnt: contains access count for each base, and possibly a robot file remembering IP adresses behaving as robots and to be excluded.
  • etc: contains base specific etc files. When searching for etc files, gwd will scan the file system in the following order:
    • .../bases/etc/base
    • .../bases/etc
    • .../gw/etc/base
    • .../gw/etc
  • images: each base sub-folder contains the images associated with each person of a particular base. The naming convention is firstname.occ.lastname.jpg.
  • lang:
  • src: each base sub-folder contains text files and image files loaded by gwd with the m=SRC or m=IMH command (see Inserting images in notes).

One or several .auth file may reside here, as referenced in the .gwf files for friends and/or wizard authentication.

Starting Gwd and Gwsetup

Traces in terminal window at GeneWeb start.

With this folder organisation, clicking on $HOME/Genealogy/Gw-Mac-7.00.command (whose content is here) will open a terminal window, kill previously running versions of gwd and gwsetup, start a fresh one and open the same start page as above.

For the diehards, here are all the parameters that gwd accepts at launch time:

iMac-H:gw Henri$ ./gwd -help
Usage: gwd [options] where options are:
  -hd <dir>
       Directory where the directory lang is installed.
  -dd <dir>
       Directory where the documentation is installed.
  -bd <dir>
       Directory where the databases are installed.
  -wd <dir>
       Directory for socket communication (Windows) and access count.
       Force cgi mode.
  -images_url <url>
       URL for GeneWeb images (default: gwd send them)
  -images_dir <dir>
       Same than previous but directory name relative to current
  -a <address>
       Select a specific address (default = any address of this computer)
  -p <number>
       Select a port number (default = 2317); > 1024 for normal users.
       Display a link to local gwsetup in bottom of pages.
  -allowed_tags <file>
       HTML tags which are allowed to be displayed. One tag per line in file.
  -wizard <passwd>
       Set a wizard password: access to all dates and updating.
  -friend <passwd>
       Set a friend password: access to all dates.
       Wizard just friend (permanently)
  -lang <lang>
       Set a default language (default: fr).
       Select the user browser language if any.
  -only <address>
       Only inet address accepted.
  -auth <file>
       Authorization file to restrict access. The file must hold lines
       of the form "user:password".
       Force no reverse host by address
       Use Digest authorization scheme (more secure on passwords)
  -add_lexicon <lexicon>
       Add file as lexicon.
  -log <file>
       Redirect log trace to this file.
  -robot_xcl <cnt>,<sec>
       Exclude connections when more than <cnt> requests in <sec> seconds.
       Minimum number of requests in robot trace (default: 6)
  -login_tmout <sec>
       Login timeout for entries with passwords in CGI mode (default 1800s)
  -redirect <addr>
       Send a message to say that this service has been redirected to <addr>
       Print the failed passwords in log (except if option -digest is set)
       Do not lock files before writing.
  -max_clients <num>
       Max number of clients treated at the same time (default: no limit)
       (not cgi).
  -conn_tmout <sec>
       Connection timeout (default 120s; 0 means no limit)
       Unix daemon mode.
  -chwd <comm>
       Call command when wdoc changed
iMac-H:gw Henri$

From sources

The folders gw-x.yy contain sources for version x.yy of GeneWeb. Executing the Makefile in this folder (see Installing OCaml) will create a distribution folder containing all data necessary for execution if GeneWeb. Renaming this distribution folder to GeneWeb-x.yy-Mac and moving it into the GeneWeb folder discussed above brings us to a known situation.

The file is a shell script that will fetch the latest version of GeneWeb version 7.00 from the GitHub repository, compile it and move the resulting distribution folder appropriately.

Of course, the structure above can be extended to more that two versions of GeneWeb, and to more than two bases. Appropriate editing of the shell scripts and command files may be necessary.