diff --git a/lib/maintainers.nix b/lib/maintainers.nix index e9cf58c5baa..8485609146b 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -238,6 +238,7 @@ guillaumekoenig = "Guillaume Koenig "; guyonvarch = "Joris Guyonvarch "; hakuch = "Jesse Haber-Kucharsky "; + hamhut1066 = "Hamish Hutchings "; havvy = "Ryan Scheel "; hbunke = "Hendrik Bunke "; hce = "Hans-Christian Esperer "; diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix new file mode 100644 index 00000000000..f1fb1a34fc2 --- /dev/null +++ b/pkgs/servers/traefik/default.nix @@ -0,0 +1,44 @@ +{ stdenv, buildGoPackage, fetchurl, bash, go-bindata}: + +buildGoPackage rec { + name = "traefik-${version}"; + version = "1.3.8"; + + goPackagePath = "github.com/containous/traefik"; + + src = fetchurl { + url = "https://github.com/containous/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz"; + sha256 = "6fce36dd30bb5ae5f91e69f2950f22fe7a74b920e80c6b441a0721122f6a6174"; + }; + + buildInputs = [ go-bindata bash ]; + unpackPhase = '' + runHook preUnpack + mkdir traefik + tar -C traefik -xvzf $src + export sourceRoot="traefik" + runHook postUnpack + ''; + + buildPhase = '' + runHook preBuild + ( + cd go/src/github.com/containous/traefik + bash ./script/make.sh generate + + CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary) + go build -ldflags "\ + -X github.com/containous/traefik/version.Version=${version} \ + -X github.com/containous/traefik/version.Codename=$CODENAME \ + " -a -o $bin/bin/traefik ./cmd/traefik + ) + runHook postBuild + ''; + + meta = with stdenv.lib; { + homepage = https://traefik.io; + description = "A modern reverse proxy"; + license = licenses.mit; + maintainers = with maintainers; [ hamhut1066 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f5997ef12c3..352b24a1c47 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -820,6 +820,7 @@ with pkgs; }); caddy = callPackage ../servers/caddy { }; + traefik = callPackage ../servers/traefik { }; capstone = callPackage ../development/libraries/capstone { };