summaryrefslogtreecommitdiff
path: root/.gitlab/rel_eng/default.nix
blob: 4cd6e98499b2e82a7e69da0ba68406198142ab6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
let sources = import ./nix/sources.nix; in

{ nixpkgs ? (import sources.nixpkgs {}) }:

with nixpkgs;
let
  fetch-gitlab-artifacts = nixpkgs.callPackage ./fetch-gitlab-artifacts {};
  mk-ghcup-metadata = nixpkgs.callPackage ./mk-ghcup-metadata { fetch-gitlab=fetch-gitlab-artifacts;};


  bindistPrepEnv = pkgs.buildFHSUserEnv {
    name = "enter-fhs";
    targetPkgs = pkgs: with pkgs; [
      # all
      gcc binutils gnumake gmp ncurses5 git elfutils
      # source-release.sh
      xorg.lndir curl python3 which automake autoconf m4 file
      haskell.compiler.ghc8107 haskellPackages.happy haskellPackages.alex
    ];
    runScript = "$SHELL -x";
  };

  scripts = stdenv.mkDerivation {
    name = "rel-eng-scripts";
    nativeBuildInputs = [ makeWrapper ];
    preferLocalBuild = true;
    buildCommand = ''
      mkdir -p $out/bin

      makeWrapper ${./upload.sh} $out/bin/upload.sh \
        --prefix PATH : ${moreutils}/bin \
        --prefix PATH : ${lftp}/bin \
        --prefix PATH : ${lzip}/bin \
        --prefix PATH : ${zip}/bin \
        --prefix PATH : ${s3cmd}/bin \
        --prefix PATH : ${gnupg}/bin \
        --prefix PATH : ${pinentry}/bin \
        --prefix PATH : ${parallel}/bin \
        --prefix PATH : ${python3}/bin \
        --set ENTER_FHS_ENV ${bindistPrepEnv}/bin/enter-fhs \
        --set BASH ${bash}/bin/bash

      makeWrapper ${./upload_ghc_libs.py} $out/bin/upload-ghc-libs
    '';
  };

in
  symlinkJoin {
    name = "ghc-rel-eng";
    preferLocalBuild = true;
    paths = [
      scripts
      fetch-gitlab-artifacts
      mk-ghcup-metadata
    ];
  }