about summary refs log tree commit diff
path: root/pkgs/applications/networking/syncthing
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2018-12-11 17:35:44 +0000
committerGitHub <noreply@github.com>2018-12-11 17:35:44 +0000
commit643fabf8ea58f622943f6b90b43e9fb236bf35bc (patch)
treef0992f02cc96d9acb2fb2f41b2fc94053761e174 /pkgs/applications/networking/syncthing
parentc89cbdcd48bf11fbb9fb9ebaeaa59aad566a8648 (diff)
downloadnixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.tar
nixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.tar.gz
nixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.tar.bz2
nixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.tar.lz
nixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.tar.xz
nixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.tar.zst
nixlib-643fabf8ea58f622943f6b90b43e9fb236bf35bc.zip
syncthing: fix build (#51866)
###### Motivation for this change

fixes #51825 

###### Things done

<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->

- [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).

---

Diffstat (limited to 'pkgs/applications/networking/syncthing')
-rw-r--r--pkgs/applications/networking/syncthing/default.nix38
1 files 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";
   };