packaging gitolite
Gitolite has broad similarities to git in terms of packaging requirements.
-
Git has 150 executables to marshal and put somewhere. Gitolite has the directories
commands
,lib
,syntactic-sugar
,triggers
, andVREF
.It doesn't matter what this directory is. As an example, Fedora keeps git's 150 executables in /usr/libexec/git-core, so /usr/libexec/gitolite may be a good choice; it's upto you.
The rest of this section will assume you chose /usr/libexec/gitolite as the location, and that this location contains the 5 directories named above.
-
Git has the
GIT_EXEC_PATH
env var to point to this directory. Gitolite hasGL_BINDIR
. However, in git, the "make" process embeds a suitable default into the binary, making the env var optional.
With that said, here's one way to package gitolite:
-
Put the executable
gitolite
somewhere in PATH. Put the executablegitolite-shell
in /usr/libexec/gitolite (along with those 5 directories).Change the 2 assignments to
$ENV{GL_BINDIR}
, one in 'gitolite', one in 'gitolite-shell', to "/usr/libexec/gitolite" from$FindBin::RealBin
. This is equivalent to "make" embedding the exec-path into the executable.OR
Put both executables
gitolite
andgitolite-shell
also into /usr/libexec/gitolite (i.e., as siblings to the 5 directories mentioned above). Then symlink/usr/libexec/gitolite/gitolite
to some directory in the PATH. Do not copy it; it must be a symlink.Gitolite will find the exec-path by following the symlink.
-
The
Gitolite
subdirectory in/usr/libexec/gitolite/lib
can stay right there, OR, if your distro policies don't allow that, can be put in any directory in perl's@INC
path (such as/usr/share/perl5/vendor_perl
). -
Finally, a file called
/usr/libexec/gitolite/VERSION
must contain a suitable version string.