From 4b73b8ccc31da62d2bc5fe2cd9cf6db564beb02e Mon Sep 17 00:00:00 2001 From: adisbladis Date: Fri, 23 Feb 2018 01:41:24 +0800 Subject: [PATCH] perkeep: Build with go 1.9 --- pkgs/applications/misc/perkeep/default.nix | 45 +++++++++++++++++++++- pkgs/top-level/all-packages.nix | 5 ++- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/perkeep/default.nix b/pkgs/applications/misc/perkeep/default.nix index 3b64cf4aa6c0..746a319c2e1e 100644 --- a/pkgs/applications/misc/perkeep/default.nix +++ b/pkgs/applications/misc/perkeep/default.nix @@ -1,5 +1,29 @@ -{ stdenv, lib, go_1_8, fetchzip, git }: +{ stdenv, lib, go, fetchzip, git, fetchpatch, fetchFromGitHub, fetchgit }: +# When perkeep is updated all deps in the let block should be removed +let + gopherjs = fetchFromGitHub { + owner = "gopherjs"; + repo = "gopherjs"; + # Rev matching https://github.com/perkeep/perkeep/commit/2e46fca5cc1179dbd90bec49fec3870e6eca6c45 + rev = "b40cd48c38f9a18eb3db20d163bad78de12cf0b7"; + sha256 = "0kniz8dg5bymb03qriizza1h3gpymf97vsgq9vd222282pdj0vyc"; + }; + + gotool = fetchFromGitHub { + owner = "kisielk"; + repo = "gotool"; + rev = "80517062f582ea3340cd4baf70e86d539ae7d84d"; + sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn"; + }; + + gcimporter15 = fetchgit { + url = "https://go.googlesource.com/tools"; + rev = "f8f2f88271bf2c23f28a09d288d26507a9503c97"; + sha256 = "1pchwizx1sdli59g8r0p4djfjkchcvh8msfpp3ibvz3xl250jh0n"; + }; + +in stdenv.mkDerivation rec { name = "perkeep-${version}"; version = "20170505"; @@ -9,7 +33,24 @@ stdenv.mkDerivation rec { sha256 = "1vliyvkyzmhdi6knbh8rdsswmz3h0rpxdpq037jwbdbkjccxjdwa"; }; - buildInputs = [ git go_1_8 ]; + # When perkeep is updated postPatch should be removed + postPatch = '' + rm -r ./vendor/github.com/gopherjs/gopherjs/ + cp -a ${gopherjs} ./vendor/github.com/gopherjs/gopherjs + mkdir -p ./vendor/github.com/kisielk/ + cp -a ${gotool} ./vendor/github.com/kisielk/gotool + mkdir -p ./vendor/golang.org/x/tools/go + cp -a ${gcimporter15}/go/gcimporter15 ./vendor/golang.org/x/tools/go/gcimporter15 + + substituteInPlace vendor/github.com/gopherjs/gopherjs/build/build.go \ + --replace '"github.com/fsnotify/fsnotify"' 'fsnotify "camlistore.org/pkg/misc/fakefsnotify"' + + substituteInPlace ./make.go \ + --replace "goVersionMinor = '8'" "goVersionMinor = '9'" \ + --replace "gopherJSGoMinor = '8'" "gopherJSGoMinor = '9'" + ''; + + buildInputs = [ git go ]; goPackagePath = ""; buildPhase = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 236f8ae64014..e7007514e977 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14684,7 +14684,10 @@ with pkgs; openjpeg = openjpeg_1; }; - perkeep = callPackage ../applications/misc/perkeep { }; + perkeep = callPackage ../applications/misc/perkeep { + # Perkeep is very particular about which go version to build with. + go = go_1_9; + }; canto-curses = callPackage ../applications/networking/feedreaders/canto-curses { };