mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-29 02:13:23 +00:00
gitaly: build bundled git from source
This commit is contained in:
parent
d66d94b37b
commit
3fa5048737
@ -1,4 +1,5 @@
|
|||||||
{ lib
|
{ lib
|
||||||
|
, callPackage
|
||||||
, fetchFromGitLab
|
, fetchFromGitLab
|
||||||
, buildGoModule
|
, buildGoModule
|
||||||
, pkg-config
|
, pkg-config
|
||||||
@ -9,6 +10,8 @@ let
|
|||||||
package_version = "v${lib.versions.major version}";
|
package_version = "v${lib.versions.major version}";
|
||||||
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
|
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
|
||||||
|
|
||||||
|
git = callPackage ./git.nix { };
|
||||||
|
|
||||||
commonOpts = {
|
commonOpts = {
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
@ -26,8 +29,6 @@ let
|
|||||||
|
|
||||||
tags = [ "static" ];
|
tags = [ "static" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -49,6 +50,10 @@ buildGoModule ({
|
|||||||
|
|
||||||
outputs = [ "out" ];
|
outputs = [ "out" ];
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit git;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://gitlab.com/gitlab-org/gitaly";
|
homepage = "https://gitlab.com/gitlab-org/gitaly";
|
||||||
description = "Git RPC service for handling all the git calls made by GitLab";
|
description = "Git RPC service for handling all the git calls made by GitLab";
|
||||||
|
57
pkgs/applications/version-management/gitlab/gitaly/git.nix
Normal file
57
pkgs/applications/version-management/gitlab/gitaly/git.nix
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, gitaly
|
||||||
|
, fetchFromGitLab
|
||||||
|
, curl
|
||||||
|
, pcre2
|
||||||
|
, zlib
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "gitaly-git";
|
||||||
|
version = "2.44.1.gl1";
|
||||||
|
|
||||||
|
# `src` attribute for nix-update
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "gitlab-org";
|
||||||
|
repo = "git";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-1XtzM2dYbt3nsYOm5isgHnolfziyIC9yCTkfLJ95V6Y=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# we actually use the gitaly build system
|
||||||
|
unpackPhase = ''
|
||||||
|
cp -r ${gitaly.src} source
|
||||||
|
chmod -R +w source
|
||||||
|
|
||||||
|
mkdir -p source/_build/deps
|
||||||
|
|
||||||
|
cp -r ${src} source/_build/deps/git-distribution
|
||||||
|
chmod -R +w source/_build/deps/git-distribution
|
||||||
|
|
||||||
|
# FIXME? maybe just patch the makefile?
|
||||||
|
echo -n 'v${version} DEVELOPER=1 DEVOPTS=no-error USE_LIBPCRE=YesPlease NO_PERL=YesPlease NO_EXPAT=YesPlease NO_TCLTK=YesPlease NO_GETTEXT=YesPlease NO_PYTHON=YesPlease' > source/_build/deps/git-distribution.version
|
||||||
|
echo -n 'v${version}' > source/_build/deps/git-distribution/version
|
||||||
|
'';
|
||||||
|
sourceRoot = "source";
|
||||||
|
|
||||||
|
buildFlags = [ "git" ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
curl
|
||||||
|
pcre2
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
|
||||||
|
# The build phase already installs it all
|
||||||
|
GIT_PREFIX = placeholder "out";
|
||||||
|
dontInstall = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://git-scm.com/";
|
||||||
|
description = "Distributed version control system - with Gitaly patches";
|
||||||
|
license = lib.licenses.gpl2Only;
|
||||||
|
platforms = lib.platforms.all;
|
||||||
|
maintainers = lib.teams.gitlab.members;
|
||||||
|
};
|
||||||
|
}
|
@ -245,8 +245,16 @@ def update_gitaly():
|
|||||||
logger.info("Updating gitaly")
|
logger.info("Updating gitaly")
|
||||||
data = _get_data_json()
|
data = _get_data_json()
|
||||||
gitaly_server_version = data['passthru']['GITALY_SERVER_VERSION']
|
gitaly_server_version = data['passthru']['GITALY_SERVER_VERSION']
|
||||||
|
repo = GitLabRepo(repo="gitaly")
|
||||||
|
gitaly_dir = pathlib.Path(__file__).parent / 'gitaly'
|
||||||
|
|
||||||
|
makefile = repo.get_file("Makefile", f"v{gitaly_server_version}")
|
||||||
|
makefile += "\nprint-%:;@echo $($*)\n"
|
||||||
|
|
||||||
|
git_version = subprocess.run(["make", "-f", "-", "print-GIT_VERSION"], check=True, input=makefile, text=True, capture_output=True).stdout.strip()
|
||||||
|
|
||||||
_call_nix_update("gitaly", gitaly_server_version)
|
_call_nix_update("gitaly", gitaly_server_version)
|
||||||
|
_call_nix_update("gitaly.git", git_version)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("update-gitlab-pages")
|
@cli.command("update-gitlab-pages")
|
||||||
|
Loading…
Reference in New Issue
Block a user