diff options
Diffstat (limited to 'pkgs/applications/version-management/gitlab/default.nix')
-rw-r--r-- | pkgs/applications/version-management/gitlab/default.nix | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix index dbc86c730eea..b201b6f62ea0 100644 --- a/pkgs/applications/version-management/gitlab/default.nix +++ b/pkgs/applications/version-management/gitlab/default.nix @@ -1,7 +1,9 @@ { stdenv, lib, fetchurl, fetchpatch, fetchFromGitLab, bundlerEnv , ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl +, defaultGemConfig, buildRubyGem , gitlabEnterprise ? false, callPackage, yarn , prefetch-yarn-deps, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config +, cargo, rustc, rustPlatform }: let @@ -19,20 +21,54 @@ let name = "gitlab-env-${version}"; ruby = ruby_3_1; gemdir = ./rubyEnv; - gemset = - let x = import (gemdir + "/gemset.nix") src; - in x // { - gpgme = x.gpgme // { + gemset = import (gemdir + "/gemset.nix") src; + gemConfig = defaultGemConfig // { + gpgme = attrs: { nativeBuildInputs = [ pkg-config ]; }; # the openssl needs the openssl include files - openssl = x.openssl // { + openssl = attrs: { buildInputs = [ openssl ]; }; - ruby-magic = x.ruby-magic // { + ruby-magic = attrs: { buildInputs = [ file ]; buildFlags = [ "--enable-system-libraries" ]; }; + gitlab-glfm-markdown = attrs: { + cargoDeps = rustPlatform.fetchCargoTarball { + src = stdenv.mkDerivation { + inherit (buildRubyGem { inherit (attrs) gemName version source; }) + name + src + unpackPhase + nativeBuildInputs + ; + dontBuilt = true; + installPhase = '' + cp -R ext/glfm_markdown $out + cp Cargo.lock $out + ''; + }; + hash = "sha256-I5w/roDgnRe5eyXo0wiRcoWPpXEtpL3kOl9eDg99t/w="; + }; + + dontBuild = false; + + nativeBuildInputs = [ + cargo + rustc + rustPlatform.cargoSetupHook + rustPlatform.bindgenHook + ]; + + preInstall = '' + export CARGO_HOME="$PWD/../.cargo/" + ''; + + postInstall = '' + mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,} + ''; + }; }; groups = [ "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos" |