From e6e4c867e5f9a4971a3234c0db2f8be712236673 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Thu, 5 Feb 2015 13:12:10 +0100 Subject: [PATCH] Port syncthing to buildGoPackage --- .../networking/syncthing/default.nix | 34 +++++++------------ .../go-modules/generic/default.nix | 4 +-- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix index e3c8d148ed8..64310054555 100644 --- a/pkgs/applications/networking/syncthing/default.nix +++ b/pkgs/applications/networking/syncthing/default.nix @@ -1,40 +1,30 @@ -{ stdenv, fetchgit, go }: +{ lib, fetchgit, goPackages }: -stdenv.mkDerivation rec { +with goPackages; + +buildGoPackage rec { name = "syncthing-${version}"; version = "0.10.21"; - + goPackagePath = "github.com/syncthing/syncthing"; src = fetchgit { url = "git://github.com/syncthing/syncthing.git"; rev = "refs/tags/v${version}"; sha256 = "60cd8607cf7d2837252680f6c2879aba1f35a2c74a47c2f2ea874d6eed2adaa5"; }; - buildInputs = [ go ]; + subPackages = [ "cmd/syncthing" ]; - buildPhase = '' - mkdir -p "./dependencies/src/github.com/syncthing/syncthing" - cp -r internal "./dependencies/src/github.com/syncthing/syncthing" + buildFlagsArray = "-ldflags=-w -X main.Version v${version}"; - export GOPATH="`pwd`/Godeps/_workspace:`pwd`/dependencies" + preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace"; - go run build.go test - - mkdir ./bin - - go build -o ./bin/syncthing -ldflags "-w -X main.Version v${version}" ./cmd/syncthing - ''; - - installPhase = '' - mkdir -p $out/bin - cp -r ./bin $out - ''; + doCheck = true; meta = { homepage = http://syncthing.net/; description = "Replaces Dropbox and BitTorrent Sync with something open, trustworthy and decentralized"; - license = with stdenv.lib.licenses; mit; - maintainers = with stdenv.lib.maintainers; [ matejc ]; - platforms = with stdenv.lib.platforms; linux; + license = with lib.licenses; mit; + maintainers = with lib.maintainers; [ matejc ]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix index 8259de05cf1..fcf991f12f2 100644 --- a/pkgs/development/go-modules/generic/default.nix +++ b/pkgs/development/go-modules/generic/default.nix @@ -28,12 +28,12 @@ go.stdenv.mkDerivation ( args // { if [ -n "$subPackages" ] ; then for p in $subPackages ; do - go install $makeFlags -p $NIX_BUILD_CORES -v $goPackagePath/$p + go install $buildFlags "''${buildFlagsArray[@]}" -p $NIX_BUILD_CORES -v $goPackagePath/$p done else find . -type d | while read d; do for i in $d/*.go; do - go install $makeFlags -p $NIX_BUILD_CORES -v $d + go install $buildFlags "''${buildFlagsArray[@]}" -p $NIX_BUILD_CORES -v $d break done done