From 643fabf8ea58f622943f6b90b43e9fb236bf35bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 11 Dec 2018 17:35:44 +0000 Subject: [PATCH] syncthing: fix build (#51866) ###### Motivation for this change fixes #51825 ###### Things done - [x] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS) - Built on platform(s) - [x] NixOS - [ ] macOS - [ ] other Linux distributions - [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests)) - [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nox --run "nox-review wip"` - [ ] Tested execution of all binary files (usually in `./result/bin/`) - [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after) - [ ] Assured whether relevant documentation is up to date - [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md). --- --- .../networking/syncthing/default.nix | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix index 8bd21b1a6a09..16649653eb37 100644 --- a/pkgs/applications/networking/syncthing/default.nix +++ b/pkgs/applications/networking/syncthing/default.nix @@ -1,8 +1,8 @@ -{ stdenv, lib, go, procps, removeReferencesTo, fetchFromGitHub }: +{ buildGoPackage, fetchpatch, stdenv, lib, procps, fetchFromGitHub }: let - common = { stname, target, patches ? [], postInstall ? "" }: - stdenv.mkDerivation rec { + common = { stname, target, postInstall ? "" }: + buildGoPackage rec { version = "0.14.52"; name = "${stname}-${version}"; @@ -13,29 +13,36 @@ let sha256 = "1qzzbqfyjqlgzysyf6dr0xsm3gn35irmllxjjd94v169swvkk5kd"; }; - inherit patches; + goPackagePath = "github.com/syncthing/syncthing"; - buildInputs = [ go ]; - nativeBuildInputs = [ removeReferencesTo ]; + patches = [ + ./add-stcli-target.patch + (fetchpatch { + url = "https://github.com/syncthing/syncthing/commit/e7072feeb7669948c3e43f55d21aec15481c33ba.patch"; + sha256 = "1pcybww2vdx45zhd1sd53v7fp40vfgkwqgy8flv7hxw2paq8hxd4"; + }) + ]; + BUILD_USER="nix"; + BUILD_HOST="nix"; buildPhase = '' - # Syncthing expects that it is checked out in $GOPATH, if that variable is - # set. Since this isn't true when we're fetching source, we can explicitly - # unset it and force Syncthing to set up a temporary one for us. - env GOPATH= BUILD_USER=nix BUILD_HOST=nix go run build.go -no-upgrade -version v${version} build ${target} + runHook preBuild + pushd go/src/${goPackagePath} + go run build.go -no-upgrade -version v${version} build ${target} + popd + runHook postBuild ''; installPhase = '' - install -Dm755 ${target} $out/bin/${target} + pushd go/src/${goPackagePath} + runHook preInstall + install -Dm755 ${target} $bin/bin/${target} runHook postInstall + popd ''; inherit postInstall; - preFixup = '' - find $out/bin -type f -exec remove-references-to -t ${go} '{}' '+' - ''; - meta = with lib; { homepage = https://www.syncthing.net/; description = "Open Source Continuous File Synchronization"; @@ -79,7 +86,6 @@ in { syncthing-cli = common { stname = "syncthing-cli"; - patches = [ ./add-stcli-target.patch ]; target = "stcli"; };