Instead of overwriting the full build/check/install phases, use the phases from
stdenv. They allow to control the build by just setting a few variables for the
targets and a single one for the flags needed to be passed to make.
Additionally, they behave well with the rest of the build system, e.g., they
run the hooks correctly.
Also, the MAN_BASE_PATH is not used in the stgit build process and the
installed man pages work fine without it, so remove it.
Version 2 of stgit was rewritten in Rust but in general offers the same feature
set [1]. We therefore do not require a Python build environment anymore but a
Rust one. However, we overwrite the default build, check and install phases to
use the Makefiles provided by stgit. In addition, the following changes are
made:
- stgit now requires libcurl
- perl is required during build (to build docs correctly) and during check (to
run the extensive test suite)
- the tests require sysctl and iconv on darwin; add them to the check inputs
The added patch fixes failing test due to the recent git version in nixpkgs.
The fix is also upstream and will most likely be released with 2.3.1, i.e., the
patch can be removed then.
[1]: https://github.com/stacked-git/stgit/releases/tag/v2.0.0
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
We do not use a "plugin system" for Git addons anymore, and therefore this
directory is no longer useful. Indeed that directory is way more confusing,
given that it includes more than mere Git addons, going from Bitbucket server
command-line tools to complete rewrites of Git in exotic programming languages.
Also, without this directory, the mental load of decision-making reduces a lot.
When anyone is interested in including a new git-related tool, just put it into
pkgs/applications/version-management, without apologies.