mkdoc fixups (plus one bug that never triggered)
[gitolite-doc.git] / package.mkd
blob5cf9c641874141a05e75acf497e831e2bcb636cd
1 % packaging gitolite
3 include sidebar-toc
5 Gitolite has broad similarities to git in terms of packaging requirements.
7   * Git has 150 executables to marshal and put somewhere.  Gitolite has the
8     directories `commands`, `lib`, `syntactic-sugar`, `triggers`, and `VREF`.
10     It doesn't matter what this directory is.  As an example, Fedora keeps
11     git's 150 executables in /usr/libexec/git-core, so /usr/libexec/gitolite
12     may be a good choice; it's upto you.
14     *The rest of this section will assume you chose /usr/libexec/gitolite as
15     the location, and that this location contains the 5 directories named
16     above*.
18   * Git has the `GIT_EXEC_PATH` env var to point to this directory.  Gitolite
19     has `GL_BINDIR`.  However, in git, the "make" process embeds a suitable
20     default into the binary, making the env var optional.
22 With that said, here's one way to package gitolite:
24   * Put the executable `gitolite` somewhere in PATH.  Put the executable
25     `gitolite-shell` in /usr/libexec/gitolite (along with those 5 directories).
27     Change the 2 assignments to `$ENV{GL_BINDIR}`, one in 'gitolite', one in
28     'gitolite-shell', to "/usr/libexec/gitolite" from `$FindBin::RealBin`.
29     This is equivalent to "make" embedding the exec-path into the executable.
31     **OR**
33     Put both executables `gitolite` and `gitolite-shell` also into
34     /usr/libexec/gitolite (i.e., as siblings to the 5 directories mentioned
35     above).  Then *symlink* `/usr/libexec/gitolite/gitolite` to some directory
36     in the PATH.  Do not *copy* it; it must be a symlink.
38     Gitolite will find the exec-path by following the symlink.
40   * The `Gitolite` subdirectory in `/usr/libexec/gitolite/lib` can stay right
41     there, **OR**, if your distro policies don't allow that, can be put in any
42     directory in perl's `@INC` path (such as `/usr/share/perl5/vendor_perl`).
44   * Finally, a file called `/usr/libexec/gitolite/VERSION` must contain a
45     suitable version string.