Difference between revisions of "OCaml"
m (→Clone repository and compile GeneWeb: update configure for gw build) |
m (→GeneWeb/OCaml/Camlp5 compability chart) |
||
Line 195: | Line 195: | ||
| 6.00-6.08 || 3.12.1 || p5 6.04-6.16 | | 6.00-6.08 || 3.12.1 || p5 6.04-6.16 | ||
|- | |- | ||
− | | 7 master || 4.02.3-4. | + | | 7 master || 4.02.3-4.10.0 || p5 6.13-7.11 |
|} | |} | ||
<nowiki>*</nowiki> “same version number” for camlp4 as Ocaml version number | <nowiki>*</nowiki> “same version number” for camlp4 as Ocaml version number |
Revision as of 11:42, 27 February 2020
![]() |
English • français |
---|
Compiling GeneWeb requires the installation of OCaml and Camlp5. Nowadays, the simplest method is to install them through OPAM (OCaml preferred package manager) that is able to manage multiple versions of OCaml on the same machine. Note that Camlp5 must be installed for each version of the compiler.
Without OPAM, the old way of doing this was to install/compile OCaml and Camlp5 all by yourself.
When Ocaml and camlp5 are installed, you can clone repository to compile GeneWeb.
Don’t forget that if your base has been built under an old version, it won't be compatible with bases built with new version: one should recover through the .gw format to migrate from one to the other.
For GeneWeb 7
On Linux
Debian Stretch / Buster
This has been tested on Debian Stretch and Buster in July 2019 (debian-9.9.0-amd64-netinst.iso and debian-10.0.0-amd64-netinst.iso).
To install Opam (2.0.5) / OCaml (4.07.01) / Camlp5 (7.06.10)
sudo apt-get install curl make m4 unzip bubblewrap gcc libgmp-dev sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) opam init eval $(opam env) opam install camlp5 cppo dune.1.11.4 markup stdlib-shims num zarith uucp unidecode
If ocamlfind install fails, try installing the packages pkg-config
or m4
from your distribution.
Ubuntu Server
This has been tested on Ubuntu Server 18.04.2 LTS in July 2019.
To install Opam (2.0.5) / Ocaml (4.07.1) / Campl5 (7.06.10)
sudo apt-get install curl make m4 unzip bubblewrap gcc libgmp-dev sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) opam init eval $(opam env) opam install camlp5 cppo dune.1.11.4 markup stdlib-shims num zarith uucp unidecode
Raspbian
This has been tested on Raspbian GNU/Linux 10 (Buster) in July 2019.
To install Opam (2.0.4) / Ocaml (4.07.1) / Campl5 (7.06.10)
sudo apt-get install curl make m4 unzip bubblewrap gcc libgmp-dev git sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) opam init eval $(opam env) opam install camlp5 cppo dune.1.11.4 markup stdlib-shims num zarith uucp unidecode
On macOS
This has been tested on macOS High Sierra 10.13.6 in July 2019.
The best way to install Opam/OCaml is to install it with Homebrew, a package management software.
To install Homebrew, open a Terminal window and type or past this command:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Once Homebrew is installed you can continue to install Opam (and any dependencies) in the same Terminal window with these commands:
brew install gpatch protobuf darcs opam opam init
After the 'opam init' command, Opam will download and proceed with the installation of the latest switch (4.08.0). If installation of this switch fails, confirm "Y" when asked if the system should be cleaned up, and then enter proceed with the installation of the switch 4.05.0
opam switch create 4.05 eval $(opam env)
and then OCaml and dependencies required to compile GeneWeb 7.
opam pin add --no-action markup git://github.com/geneanet/markup.ml opam install camlp5 --unlock-base opam install cppo dune markup stdlib-shims num zarith
You can now download and compile GeneWeb.
On Windows using Cygwin
This has been tested on Windows 7 x64 and x86 in December 2019.
If you have Windows Powershell (embedded in Windows since XP SP2), this batch script will download/compile/install Cygwin/Opam/OCaml/Camlp5/Ocamfind/GeneWeb for you. You can download the script copying this line on a Windows prompt (command line) with administrator rights:
powershell.exe -Command {(new-object System.Net.WebClient).DownloadFile('https://gist.github.com/a2line/f134c88c80eafcf0411b38e32a0a7128/raw/','opamwin.bat')}
Then just launch the downloaded script typing opamwin
in the same console to install everything.
Without Powershell, you have to download the batch file opamwin.bat and the right Cygwin setup x64 or x86 manually. Launch the script under a prompt with administrator rights and having Cygwin setup in the same directory.
GeneWeb 6.xx with OPAM
On Linux
Sources of GeneWeb 6.04, 6.05 and 6.08 can be build easily with Opam switching to OCaml 3.12.1 (see #435). On Debian:
opam switch 3.12.1 eval `opam config env` opam install -y camlp5 ocamlfind
When using Opam on old sources, we need to replace the path to Camlp5 CAMLP5D=+camlp5
in tools/Makefile.inc
with a sed command after configuring Makefile:
./configure sed -i 's|CAMLP5D=+camlp5|CAMLP5D=~/.opam/3.12.1/lib/camlp5|' tools/Makefile.inc make make distrib
You can check the path to Camlp5 with camlp5 -where
or ocamlfind query camlp5
, for this exemple camlp5 lib is in /root/.opam/3.12.1/lib/camlp5/
.
On OSX
Apply the same process as with Linux, with the exception of the sed command:
./configure sed -i .bak 's|CAMLP5D=+camlp5|CAMLP5D=~/.opam/3.12.1/lib/camlp5|' tools/Makefile.inc make make distrib
On Windows
Previous chapter for Linux works for Windows under Cygwin modifying a few steps, OCaml version name is:
opam switch 3.12.1+mingw32
Using relative path or /cygdrive/…
don’t work, we must target camlp5 lib using its full Windows path that depends of where is your home directory in Cygwin installation:
sed -i 's|CAMLP5D=.*|CAMLP5D=c:\\cygwin\\home\\user\\.opam\\3.12.1+mingw32\\lib\\camlp5|' tools/Makefile.inc
Building version 6.07 like this also works under Windows.
Clone repository and compile GeneWeb
GeneWeb uses the version control software Git. Its repository is hosted on Github at https://github.com/geneweb/geneweb. To compile GeneWeb, you need OCaml.
git clone https://github.com/geneweb/geneweb cd geneweb ocaml ./configure.ml && make distrib
If GeneWeb compilation fails, look at continuous integration tools to see if latest build is passing on your plateform.
Build options
./configure
options:
-h|--help show this help --api build the API -d|--debug add debugging symbols to the build command -i|--interactive run configure interactively -s|--static statically link libraries -we|--warn-error treat warnings as errors
For example, if you want debug symbols/warnings use ./configure -d -we
then you can launch gwd adding OCAMLRUNPARAM=b
to trigger the printing of a stack backtrace when an uncaught exception aborts the program.
Build GeneWeb gui
In version 6.xx, an user friendly GTK gui helps managing gwd and gwsetup, it can be build with lablgtk installed.
opam install lablgtk ./configure make everything
GeneWeb/OCaml/Camlp5 compability chart
GeneWeb | Ocaml | Camlp4/5 |
---|---|---|
1.07-2.07 | 2.01-2.02 | p4* |
3.01-3.03 | 2.01-2.04 | p4* |
3.04-3.07 | 2.01-3.00 | p4* |
3.08-4.01 | 3.00 | p4* |
4.02 | 3.01 | p4* |
4.03 | 3.02 | p4* |
4.04-4.07 | 3.04 | |
4.08-4.09 | 3.06 | p4* |
4.10 | 3.08 | |
5.00-5.01 | ||
5.02 | 3.11 | p5 6.02.1** |
6.00-6.08 | 3.12.1 | p5 6.04-6.16 |
7 master | 4.02.3-4.10.0 | p5 6.13-7.11 |
* “same version number” for camlp4 as Ocaml version number
** Dominique Deram, compilation under Windows XP (jan. 2011)
GeneWeb Manual
- Download and install GeneWeb program under GNU/Linux, Mac OS X, Microsoft Windows, FreeBSD; on Mac OS X, Linux or Windows using Docker; or in CGI mode behind a web server.
- Understand GeneWeb server, homonym, consanguinity.
Use and manage genealogical databases
- Import Gedcom
.ged
or GeneWeb.gw
files with gwsetup or in command-line. - Update datas (add/remove individuals and families), merge duplicates, type dates.
- Use wikitext syntax, macros, keyboard shortcuts.
- Clean, recover, rename, save, archive a database.
- Merge and split multiples databases.
Technical annex
- Personalize CSS, header and trailer, templates, lexicon and declension.
- Configuration file
.gwf
(for templm), wizard notes, passwords for friends/wizards and access restrictions to databases. - Add images in notes, further remarks for experts.