Show More
@@ -4,14 +4,55 b'' | |||
|
4 | 4 | # derivation. For advanced tweaks to pimp up the development environment we use |
|
5 | 5 | # "shell.nix" so that it does not have to clutter this file. |
|
6 | 6 | |
|
7 | { pkgs ? (import <nixpkgs> {}) | |
|
8 |
|
|
|
7 | args@ | |
|
8 | { pythonPackages ? "python27Packages" | |
|
9 | 9 | , pythonExternalOverrides ? self: super: {} |
|
10 | 10 | , doCheck ? true |
|
11 | , ... | |
|
11 | 12 | }: |
|
12 | 13 | |
|
13 | 14 | let |
|
14 | inherit (pkgs.lib) fix extends; | |
|
15 | ||
|
16 | # Use nixpkgs from args or import them. We use this indirect approach | |
|
17 | # through args to be able to use the name `pkgs` for our customized packages. | |
|
18 | # Otherwise we will end up with an infinite recursion. | |
|
19 | nixpkgs = args.pkgs or (import <nixpkgs> { }); | |
|
20 | ||
|
21 | # johbo: Interim bridge which allows us to build with the upcoming | |
|
22 | # nixos.16.09 branch (unstable at the moment of writing this note) and the | |
|
23 | # current stable nixos-16.03. | |
|
24 | backwardsCompatibleFetchgit = { ... }@args: | |
|
25 | let | |
|
26 | origSources = nixpkgs.fetchgit args; | |
|
27 | in | |
|
28 | nixpkgs.lib.overrideDerivation origSources (oldAttrs: { | |
|
29 | NIX_PREFETCH_GIT_CHECKOUT_HOOK = '' | |
|
30 | find $out -name '.git*' -print0 | xargs -0 rm -rf | |
|
31 | ''; | |
|
32 | }); | |
|
33 | ||
|
34 | # Create a customized version of nixpkgs which should be used throughout the | |
|
35 | # rest of this file. | |
|
36 | pkgs = nixpkgs.overridePackages (self: super: { | |
|
37 | fetchgit = backwardsCompatibleFetchgit; | |
|
38 | }); | |
|
39 | ||
|
40 | # Evaluates to the last segment of a file system path. | |
|
41 | basename = path: with pkgs.lib; last (splitString "/" path); | |
|
42 | ||
|
43 | # source code filter used as arugment to builtins.filterSource. | |
|
44 | src-filter = path: type: with pkgs.lib; | |
|
45 | let | |
|
46 | ext = last (splitString "." path); | |
|
47 | in | |
|
48 | !builtins.elem (basename path) [ | |
|
49 | ".git" ".hg" "__pycache__" ".eggs" | |
|
50 | "bower_components" "node_modules" | |
|
51 | "build" "data" "result" "tmp"] && | |
|
52 | !builtins.elem ext ["egg-info" "pyc"] && | |
|
53 | # TODO: johbo: This check is wrong, since "path" contains an absolute path, | |
|
54 | # it would still be good to restore it since we want to ignore "result-*". | |
|
55 | !hasPrefix "result" path; | |
|
15 | 56 | |
|
16 | 57 | basePythonPackages = with builtins; if isAttrs pythonPackages |
|
17 | 58 | then pythonPackages |
@@ -21,25 +62,6 b' let' | |||
|
21 | 62 | pkgs.buildBowerComponents or |
|
22 | 63 | (import ./pkgs/backport-16.03-build-bower-components.nix { inherit pkgs; }); |
|
23 | 64 | |
|
24 | elem = builtins.elem; | |
|
25 | basename = path: with pkgs.lib; last (splitString "/" path); | |
|
26 | startsWith = prefix: full: let | |
|
27 | actualPrefix = builtins.substring 0 (builtins.stringLength prefix) full; | |
|
28 | in actualPrefix == prefix; | |
|
29 | ||
|
30 | src-filter = path: type: with pkgs.lib; | |
|
31 | let | |
|
32 | ext = last (splitString "." path); | |
|
33 | in | |
|
34 | !elem (basename path) [ | |
|
35 | ".git" ".hg" "__pycache__" ".eggs" | |
|
36 | "bower_components" "node_modules" | |
|
37 | "build" "data" "result" "tmp"] && | |
|
38 | !elem ext ["egg-info" "pyc"] && | |
|
39 | # TODO: johbo: This check is wrong, since "path" contains an absolute path, | |
|
40 | # it would still be good to restore it since we want to ignore "result-*". | |
|
41 | !startsWith "result" path; | |
|
42 | ||
|
43 | 65 | sources = pkgs.config.rc.sources or {}; |
|
44 | 66 | version = builtins.readFile ./rhodecode/VERSION; |
|
45 | 67 | rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.; |
@@ -218,11 +240,11 b' let' | |||
|
218 | 240 | }); |
|
219 | 241 | |
|
220 | 242 | # Apply all overrides and fix the final package set |
|
221 | myPythonPackagesUnfix = | |
|
243 | myPythonPackagesUnfix = with pkgs.lib; | |
|
222 | 244 | (extends pythonExternalOverrides |
|
223 | 245 | (extends pythonLocalOverrides |
|
224 | 246 | (extends pythonOverrides |
|
225 | 247 | pythonGeneratedPackages))); |
|
226 | myPythonPackages = (fix myPythonPackagesUnfix); | |
|
248 | myPythonPackages = (pkgs.lib.fix myPythonPackagesUnfix); | |
|
227 | 249 | |
|
228 | 250 | in myPythonPackages.rhodecode-enterprise-ce |
@@ -15,19 +15,6 b' let' | |||
|
15 | 15 | }; |
|
16 | 16 | }; |
|
17 | 17 | |
|
18 | # johbo: Interim bridge which allows us to build with the upcoming | |
|
19 | # nixos.16.09 branch (unstable at the moment of writing this note) and the | |
|
20 | # current stable nixos-16.03. | |
|
21 | backwardsCompatibleFetchgit = { ... }@args: | |
|
22 | let | |
|
23 | origSources = pkgs.fetchgit args; | |
|
24 | in | |
|
25 | pkgs.lib.overrideDerivation origSources (oldAttrs: { | |
|
26 | NIX_PREFETCH_GIT_CHECKOUT_HOOK = '' | |
|
27 | find $out -name '.git*' -print0 | xargs -0 rm -rf | |
|
28 | ''; | |
|
29 | }); | |
|
30 | ||
|
31 | 18 | in |
|
32 | 19 | |
|
33 | 20 | self: super: { |
@@ -110,7 +97,7 b' self: super: {' | |||
|
110 | 97 | }); |
|
111 | 98 | |
|
112 | 99 | py-gfm = super.py-gfm.override { |
|
113 |
src = |
|
|
100 | src = pkgs.fetchgit { | |
|
114 | 101 | url = "https://code.rhodecode.com/upstream/py-gfm"; |
|
115 | 102 | rev = "0d66a19bc16e3d49de273c0f797d4e4781e8c0f2"; |
|
116 | 103 | sha256 = "0ryp74jyihd3ckszq31bml5jr3bciimhfp7va7kw6ld92930ksv3"; |
@@ -134,7 +121,7 b' self: super: {' | |||
|
134 | 121 | |
|
135 | 122 | Pylons = super.Pylons.override (attrs: { |
|
136 | 123 | name = "Pylons-1.0.1-patch1"; |
|
137 |
src = |
|
|
124 | src = pkgs.fetchgit { | |
|
138 | 125 | url = "https://code.rhodecode.com/upstream/pylons"; |
|
139 | 126 | rev = "707354ee4261b9c10450404fc9852ccea4fd667d"; |
|
140 | 127 | sha256 = "b2763274c2780523a335f83a1df65be22ebe4ff413a7bc9e9288d23c1f62032e"; |
General Comments 0
You need to be logged in to leave comments.
Login now