Show More
@@ -0,0 +1,37 b'' | |||||
|
1 | This patch does two things: (1) use the right name for `docbook2texi', | |||
|
2 | and (2) make sure `gitman.info' isn't produced since it's broken (duplicate | |||
|
3 | node names). | |||
|
4 | ||||
|
5 | diff -ru git-1.8.4-orig/Documentation/Makefile git-1.8.4/Documentation/Makefile | |||
|
6 | --- git-1.8.4-orig/Documentation/Makefile 2013-08-23 21:38:43.000000000 +0200 | |||
|
7 | +++ git-1.8.4/Documentation/Makefile 2013-09-30 14:48:51.532890378 +0200 | |||
|
8 | @@ -101,7 +101,7 @@ | |||
|
9 | ||||
|
10 | MAKEINFO = makeinfo | |||
|
11 | INSTALL_INFO = install-info | |||
|
12 | -DOCBOOK2X_TEXI = docbook2x-texi | |||
|
13 | +DOCBOOK2X_TEXI = docbook2texi | |||
|
14 | DBLATEX = dblatex | |||
|
15 | ifndef PERL_PATH | |||
|
16 | PERL_PATH = /usr/bin/perl | |||
|
17 | @@ -205,7 +205,7 @@ | |||
|
18 | man5: $(DOC_MAN5) | |||
|
19 | man7: $(DOC_MAN7) | |||
|
20 | ||||
|
21 | -info: git.info gitman.info | |||
|
22 | +info: git.info | |||
|
23 | ||||
|
24 | pdf: user-manual.pdf | |||
|
25 | ||||
|
26 | @@ -221,10 +221,9 @@ | |||
|
27 | ||||
|
28 | install-info: info | |||
|
29 | $(INSTALL) -d -m 755 $(DESTDIR)$(infodir) | |||
|
30 | - $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir) | |||
|
31 | + $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir) | |||
|
32 | if test -r $(DESTDIR)$(infodir)/dir; then \ | |||
|
33 | $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\ | |||
|
34 | - $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\ | |||
|
35 | else \ | |||
|
36 | echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \ | |||
|
37 | fi |
@@ -0,0 +1,94 b'' | |||||
|
1 | --- a/git-sh-i18n.sh | |||
|
2 | +++ b/git-sh-i18n.sh | |||
|
3 | @@ -15,87 +15,11 @@ | |||
|
4 | fi | |||
|
5 | export TEXTDOMAINDIR | |||
|
6 | ||||
|
7 | -# First decide what scheme to use... | |||
|
8 | -GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough | |||
|
9 | -if test -n "@@USE_GETTEXT_SCHEME@@" | |||
|
10 | -then | |||
|
11 | - GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@" | |||
|
12 | -elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" | |||
|
13 | -then | |||
|
14 | - : no probing necessary | |||
|
15 | -elif test -n "$GIT_GETTEXT_POISON" | |||
|
16 | -then | |||
|
17 | - GIT_INTERNAL_GETTEXT_SH_SCHEME=poison | |||
|
18 | -elif type gettext.sh >/dev/null 2>&1 | |||
|
19 | -then | |||
|
20 | - # GNU libintl's gettext.sh | |||
|
21 | - GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu | |||
|
22 | -elif test "$(gettext -h 2>&1)" = "-h" | |||
|
23 | -then | |||
|
24 | - # gettext binary exists but no gettext.sh. likely to be a gettext | |||
|
25 | - # binary on a Solaris or something that is not GNU libintl and | |||
|
26 | - # lack eval_gettext. | |||
|
27 | - GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext | |||
|
28 | -fi | |||
|
29 | -export GIT_INTERNAL_GETTEXT_SH_SCHEME | |||
|
30 | - | |||
|
31 | -# ... and then follow that decision. | |||
|
32 | -case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in | |||
|
33 | -gnu) | |||
|
34 | - # Use libintl's gettext.sh, or fall back to English if we can't. | |||
|
35 | - . gettext.sh | |||
|
36 | - ;; | |||
|
37 | -gettext_without_eval_gettext) | |||
|
38 | - # Solaris has a gettext(1) but no eval_gettext(1) | |||
|
39 | - eval_gettext () { | |||
|
40 | - gettext "$1" | ( | |||
|
41 | - export PATH $(git sh-i18n--envsubst --variables "$1"); | |||
|
42 | - git sh-i18n--envsubst "$1" | |||
|
43 | - ) | |||
|
44 | - } | |||
|
45 | - | |||
|
46 | - eval_ngettext () { | |||
|
47 | - ngettext "$1" "$2" "$3" | ( | |||
|
48 | - export PATH $(git sh-i18n--envsubst --variables "$2"); | |||
|
49 | - git sh-i18n--envsubst "$2" | |||
|
50 | - ) | |||
|
51 | - } | |||
|
52 | - ;; | |||
|
53 | -poison) | |||
|
54 | - # Emit garbage so that tests that incorrectly rely on translatable | |||
|
55 | - # strings will fail. | |||
|
56 | - gettext () { | |||
|
57 | - printf "%s" "# GETTEXT POISON #" | |||
|
58 | - } | |||
|
59 | - | |||
|
60 | - eval_gettext () { | |||
|
61 | - printf "%s" "# GETTEXT POISON #" | |||
|
62 | - } | |||
|
63 | - | |||
|
64 | - eval_ngettext () { | |||
|
65 | - printf "%s" "# GETTEXT POISON #" | |||
|
66 | - } | |||
|
67 | - ;; | |||
|
68 | -*) | |||
|
69 | - gettext () { | |||
|
70 | - printf "%s" "$1" | |||
|
71 | - } | |||
|
72 | - | |||
|
73 | - eval_gettext () { | |||
|
74 | - printf "%s" "$1" | ( | |||
|
75 | - export PATH $(git sh-i18n--envsubst --variables "$1"); | |||
|
76 | - git sh-i18n--envsubst "$1" | |||
|
77 | - ) | |||
|
78 | - } | |||
|
79 | +# GNU gettext | |||
|
80 | +export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu | |||
|
81 | +export PATH=@gettext@/bin:$PATH | |||
|
82 | ||||
|
83 | - eval_ngettext () { | |||
|
84 | - (test "$3" = 1 && printf "%s" "$1" || printf "%s" "$2") | ( | |||
|
85 | - export PATH $(git sh-i18n--envsubst --variables "$2"); | |||
|
86 | - git sh-i18n--envsubst "$2" | |||
|
87 | - ) | |||
|
88 | - } | |||
|
89 | - ;; | |||
|
90 | -esac | |||
|
91 | +. @gettext@/bin/gettext.sh | |||
|
92 | ||||
|
93 | # Git-specific wrapper functions | |||
|
94 | gettextln () { |
@@ -0,0 +1,26 b'' | |||||
|
1 | diff --git a/connect.c b/connect.c | |||
|
2 | index fd7ffe1..20cd992 100644 | |||
|
3 | --- a/connect.c | |||
|
4 | +++ b/connect.c | |||
|
5 | @@ -768,7 +768,7 @@ | |||
|
6 | ||||
|
7 | ssh = getenv("GIT_SSH"); | |||
|
8 | if (!ssh) | |||
|
9 | - ssh = "ssh"; | |||
|
10 | + ssh = "@ssh@"; | |||
|
11 | else | |||
|
12 | handle_ssh_variant(ssh, 0, | |||
|
13 | &port_option, | |||
|
14 | diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl | |||
|
15 | index 50029d0..17b9594 100644 | |||
|
16 | --- a/git-gui/lib/remote_add.tcl | |||
|
17 | +++ b/git-gui/lib/remote_add.tcl | |||
|
18 | @@ -139,7 +139,7 @@ | |||
|
19 | # Parse the location | |||
|
20 | if { [regexp {(?:git\+)?ssh://([^/]+)(/.+)} $location xx host path] | |||
|
21 | || [regexp {([^:][^:]+):(.+)} $location xx host path]} { | |||
|
22 | - set ssh ssh | |||
|
23 | + set ssh @ssh@ | |||
|
24 | if {[info exists env(GIT_SSH)]} { | |||
|
25 | set ssh $env(GIT_SSH) | |||
|
26 | } |
@@ -0,0 +1,13 b'' | |||||
|
1 | diff -ru -x '*~' git-1.8.2.1-orig/Makefile git-1.8.2.1/Makefile | |||
|
2 | --- git-1.8.2.1-orig/Makefile 2013-04-08 00:52:04.000000000 +0200 | |||
|
3 | +++ git-1.8.2.1/Makefile 2013-04-22 15:46:42.906026940 +0200 | |||
|
4 | @@ -2319,8 +2319,7 @@ | |||
|
5 | { test "$$bindir/" = "$$execdir/" || \ | |||
|
6 | for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \ | |||
|
7 | $(RM) "$$execdir/$$p" && \ | |||
|
8 | - test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \ | |||
|
9 | - ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ | |||
|
10 | + ln -s "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ | |||
|
11 | cp "$$bindir/$$p" "$$execdir/$$p" || exit; \ | |||
|
12 | done; \ | |||
|
13 | } && \ |
@@ -1,5 +1,5 b'' | |||||
1 | [bumpversion] |
|
1 | [bumpversion] | |
2 |
current_version = 4. |
|
2 | current_version = 4.10.0 | |
3 | message = release: Bump version {current_version} to {new_version} |
|
3 | message = release: Bump version {current_version} to {new_version} | |
4 |
|
4 | |||
5 | [bumpversion:file:vcsserver/VERSION] |
|
5 | [bumpversion:file:vcsserver/VERSION] |
@@ -5,12 +5,10 b' done = false' | |||||
5 | done = true |
|
5 | done = true | |
6 |
|
6 | |||
7 | [task:fixes_on_stable] |
|
7 | [task:fixes_on_stable] | |
8 | done = true |
|
|||
9 |
|
8 | |||
10 | [task:pip2nix_generated] |
|
9 | [task:pip2nix_generated] | |
11 | done = true |
|
|||
12 |
|
10 | |||
13 | [release] |
|
11 | [release] | |
14 |
state = |
|
12 | state = in_progress | |
15 |
version = 4. |
|
13 | version = 4.10.0 | |
16 |
|
14 |
@@ -16,12 +16,19 b' let' | |||||
16 | pkgs = pkgs_.overridePackages (self: super: { |
|
16 | pkgs = pkgs_.overridePackages (self: super: { | |
17 | # bump GIT version |
|
17 | # bump GIT version | |
18 | git = pkgs.lib.overrideDerivation pkgs_.git (oldAttrs: { |
|
18 | git = pkgs.lib.overrideDerivation pkgs_.git (oldAttrs: { | |
19 |
name = "git-2. |
|
19 | name = "git-2.13.5"; | |
20 | src = pkgs.fetchurl { |
|
20 | src = pkgs.fetchurl { | |
21 |
url = "https://www.kernel.org/pub/software/scm/git/git-2. |
|
21 | url = "https://www.kernel.org/pub/software/scm/git/git-2.13.5.tar.xz"; | |
22 | sha256 = "00ir7qmgfszwrhxjzxwixk7wp35gxvvw467gr30bagwsrdza7gm4"; |
|
22 | sha256 = "18fi18103n7grshm4ffb0fwsnvbl48sbqy5gqx528vf8maff5j91"; | |
23 | }; |
|
23 | }; | |
24 |
|
24 | |||
|
25 | patches = [ | |||
|
26 | ./pkgs/git_patches/docbook2texi.patch | |||
|
27 | ./pkgs/git_patches/symlinks-in-bin.patch | |||
|
28 | ./pkgs/git_patches/git-sh-i18n.patch | |||
|
29 | ./pkgs/git_patches/ssh-path.patch | |||
|
30 | ]; | |||
|
31 | ||||
25 | }); |
|
32 | }); | |
26 |
|
33 | |||
27 | # Override subversion derivation to |
|
34 | # Override subversion derivation to |
@@ -3,13 +3,13 b'' | |||||
3 |
|
3 | |||
4 | { |
|
4 | { | |
5 | Beaker = super.buildPythonPackage { |
|
5 | Beaker = super.buildPythonPackage { | |
6 |
name = "Beaker-1. |
|
6 | name = "Beaker-1.9.0"; | |
7 | buildInputs = with self; []; |
|
7 | buildInputs = with self; []; | |
8 | doCheck = false; |
|
8 | doCheck = false; | |
9 | propagatedBuildInputs = with self; []; |
|
9 | propagatedBuildInputs = with self; [funcsigs]; | |
10 | src = fetchurl { |
|
10 | src = fetchurl { | |
11 | url = "https://pypi.python.org/packages/97/8e/409d2e7c009b8aa803dc9e6f239f1db7c3cdf578249087a404e7c27a505d/Beaker-1.7.0.tar.gz"; |
|
11 | url = "https://pypi.python.org/packages/93/b2/12de6937b06e9615dbb3cb3a1c9af17f133f435bdef59f4ad42032b6eb49/Beaker-1.9.0.tar.gz"; | |
12 | md5 = "386be3f7fe427358881eee4622b428b3"; |
|
12 | md5 = "38b3fcdfa24faf97c6cf66991eb54e9c"; | |
13 | }; |
|
13 | }; | |
14 | meta = { |
|
14 | meta = { | |
15 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
|
15 | license = [ pkgs.lib.licenses.bsdOriginal ]; | |
@@ -29,13 +29,13 b'' | |||||
29 | }; |
|
29 | }; | |
30 | }; |
|
30 | }; | |
31 | Mako = super.buildPythonPackage { |
|
31 | Mako = super.buildPythonPackage { | |
32 |
name = "Mako-1.0. |
|
32 | name = "Mako-1.0.7"; | |
33 | buildInputs = with self; []; |
|
33 | buildInputs = with self; []; | |
34 | doCheck = false; |
|
34 | doCheck = false; | |
35 | propagatedBuildInputs = with self; [MarkupSafe]; |
|
35 | propagatedBuildInputs = with self; [MarkupSafe]; | |
36 | src = fetchurl { |
|
36 | src = fetchurl { | |
37 |
url = "https://pypi.python.org/packages/ |
|
37 | url = "https://pypi.python.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz"; | |
38 | md5 = "a28e22a339080316b2acc352b9ee631c"; |
|
38 | md5 = "5836cc997b1b773ef389bf6629c30e65"; | |
39 | }; |
|
39 | }; | |
40 | meta = { |
|
40 | meta = { | |
41 | license = [ pkgs.lib.licenses.mit ]; |
|
41 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -68,26 +68,26 b'' | |||||
68 | }; |
|
68 | }; | |
69 | }; |
|
69 | }; | |
70 | WebOb = super.buildPythonPackage { |
|
70 | WebOb = super.buildPythonPackage { | |
71 |
name = "WebOb-1.3 |
|
71 | name = "WebOb-1.7.3"; | |
72 | buildInputs = with self; []; |
|
72 | buildInputs = with self; []; | |
73 | doCheck = false; |
|
73 | doCheck = false; | |
74 | propagatedBuildInputs = with self; []; |
|
74 | propagatedBuildInputs = with self; []; | |
75 | src = fetchurl { |
|
75 | src = fetchurl { | |
76 |
url = "https://pypi.python.org/packages/ |
|
76 | url = "https://pypi.python.org/packages/46/87/2f96d8d43b2078fae6e1d33fa86b95c228cebed060f4e3c7576cc44ea83b/WebOb-1.7.3.tar.gz"; | |
77 | md5 = "20918251c5726956ba8fef22d1556177"; |
|
77 | md5 = "350028baffc508e3d23c078118e35316"; | |
78 | }; |
|
78 | }; | |
79 | meta = { |
|
79 | meta = { | |
80 | license = [ pkgs.lib.licenses.mit ]; |
|
80 | license = [ pkgs.lib.licenses.mit ]; | |
81 | }; |
|
81 | }; | |
82 | }; |
|
82 | }; | |
83 | WebTest = super.buildPythonPackage { |
|
83 | WebTest = super.buildPythonPackage { | |
84 |
name = "WebTest- |
|
84 | name = "WebTest-2.0.27"; | |
85 | buildInputs = with self; []; |
|
85 | buildInputs = with self; []; | |
86 | doCheck = false; |
|
86 | doCheck = false; | |
87 | propagatedBuildInputs = with self; [WebOb]; |
|
87 | propagatedBuildInputs = with self; [six WebOb waitress beautifulsoup4]; | |
88 | src = fetchurl { |
|
88 | src = fetchurl { | |
89 | url = "https://pypi.python.org/packages/51/3d/84fd0f628df10b30c7db87895f56d0158e5411206b721ca903cb51bfd948/WebTest-1.4.3.zip"; |
|
89 | url = "https://pypi.python.org/packages/80/fa/ca3a759985c72e3a124cbca3e1f8a2e931a07ffd31fd45d8f7bf21cb95cf/WebTest-2.0.27.tar.gz"; | |
90 | md5 = "631ce728bed92c681a4020a36adbc353"; |
|
90 | md5 = "54e6515ac71c51b6fc90179483c749ad"; | |
91 | }; |
|
91 | }; | |
92 | meta = { |
|
92 | meta = { | |
93 | license = [ pkgs.lib.licenses.mit ]; |
|
93 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -106,6 +106,19 b'' | |||||
106 | license = [ pkgs.lib.licenses.mit ]; |
|
106 | license = [ pkgs.lib.licenses.mit ]; | |
107 | }; |
|
107 | }; | |
108 | }; |
|
108 | }; | |
|
109 | beautifulsoup4 = super.buildPythonPackage { | |||
|
110 | name = "beautifulsoup4-4.6.0"; | |||
|
111 | buildInputs = with self; []; | |||
|
112 | doCheck = false; | |||
|
113 | propagatedBuildInputs = with self; []; | |||
|
114 | src = fetchurl { | |||
|
115 | url = "https://pypi.python.org/packages/fa/8d/1d14391fdaed5abada4e0f63543fef49b8331a34ca60c88bd521bcf7f782/beautifulsoup4-4.6.0.tar.gz"; | |||
|
116 | md5 = "c17714d0f91a23b708a592cb3c697728"; | |||
|
117 | }; | |||
|
118 | meta = { | |||
|
119 | license = [ pkgs.lib.licenses.mit ]; | |||
|
120 | }; | |||
|
121 | }; | |||
109 | configobj = super.buildPythonPackage { |
|
122 | configobj = super.buildPythonPackage { | |
110 | name = "configobj-5.0.6"; |
|
123 | name = "configobj-5.0.6"; | |
111 | buildInputs = with self; []; |
|
124 | buildInputs = with self; []; | |
@@ -184,14 +197,27 b'' | |||||
184 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
|
197 | license = [ pkgs.lib.licenses.bsdOriginal ]; | |
185 | }; |
|
198 | }; | |
186 | }; |
|
199 | }; | |
|
200 | funcsigs = super.buildPythonPackage { | |||
|
201 | name = "funcsigs-1.0.2"; | |||
|
202 | buildInputs = with self; []; | |||
|
203 | doCheck = false; | |||
|
204 | propagatedBuildInputs = with self; []; | |||
|
205 | src = fetchurl { | |||
|
206 | url = "https://pypi.python.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz"; | |||
|
207 | md5 = "7e583285b1fb8a76305d6d68f4ccc14e"; | |||
|
208 | }; | |||
|
209 | meta = { | |||
|
210 | license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ]; | |||
|
211 | }; | |||
|
212 | }; | |||
187 | gevent = super.buildPythonPackage { |
|
213 | gevent = super.buildPythonPackage { | |
188 |
name = "gevent-1. |
|
214 | name = "gevent-1.2.2"; | |
189 | buildInputs = with self; []; |
|
215 | buildInputs = with self; []; | |
190 | doCheck = false; |
|
216 | doCheck = false; | |
191 | propagatedBuildInputs = with self; [greenlet]; |
|
217 | propagatedBuildInputs = with self; [greenlet]; | |
192 | src = fetchurl { |
|
218 | src = fetchurl { | |
193 | url = "https://pypi.python.org/packages/43/8f/cb3224a0e6ab663547f45c10d0651cfd52633fde4283bf68d627084df8cc/gevent-1.1.2.tar.gz"; |
|
219 | url = "https://pypi.python.org/packages/1b/92/b111f76e54d2be11375b47b213b56687214f258fd9dae703546d30b837be/gevent-1.2.2.tar.gz"; | |
194 | md5 = "bb32a2f852a4997138014d5007215c6e"; |
|
220 | md5 = "7f0baf355384fe5ff2ecf66853422554"; | |
195 | }; |
|
221 | }; | |
196 | meta = { |
|
222 | meta = { | |
197 | license = [ pkgs.lib.licenses.mit ]; |
|
223 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -211,26 +237,26 b'' | |||||
211 | }; |
|
237 | }; | |
212 | }; |
|
238 | }; | |
213 | greenlet = super.buildPythonPackage { |
|
239 | greenlet = super.buildPythonPackage { | |
214 |
name = "greenlet-0.4.1 |
|
240 | name = "greenlet-0.4.12"; | |
215 | buildInputs = with self; []; |
|
241 | buildInputs = with self; []; | |
216 | doCheck = false; |
|
242 | doCheck = false; | |
217 | propagatedBuildInputs = with self; []; |
|
243 | propagatedBuildInputs = with self; []; | |
218 | src = fetchurl { |
|
244 | src = fetchurl { | |
219 |
url = "https://pypi.python.org/packages/6 |
|
245 | url = "https://pypi.python.org/packages/be/76/82af375d98724054b7e273b5d9369346937324f9bcc20980b45b068ef0b0/greenlet-0.4.12.tar.gz"; | |
220 | md5 = "bed0c4b3b896702131f4d5c72f87c41d"; |
|
246 | md5 = "e8637647d58a26c4a1f51ca393e53c00"; | |
221 | }; |
|
247 | }; | |
222 | meta = { |
|
248 | meta = { | |
223 | license = [ pkgs.lib.licenses.mit ]; |
|
249 | license = [ pkgs.lib.licenses.mit ]; | |
224 | }; |
|
250 | }; | |
225 | }; |
|
251 | }; | |
226 | gunicorn = super.buildPythonPackage { |
|
252 | gunicorn = super.buildPythonPackage { | |
227 |
name = "gunicorn-19. |
|
253 | name = "gunicorn-19.7.1"; | |
228 | buildInputs = with self; []; |
|
254 | buildInputs = with self; []; | |
229 | doCheck = false; |
|
255 | doCheck = false; | |
230 | propagatedBuildInputs = with self; []; |
|
256 | propagatedBuildInputs = with self; []; | |
231 | src = fetchurl { |
|
257 | src = fetchurl { | |
232 |
url = "https://pypi.python.org/packages/ |
|
258 | url = "https://pypi.python.org/packages/30/3a/10bb213cede0cc4d13ac2263316c872a64bf4c819000c8ccd801f1d5f822/gunicorn-19.7.1.tar.gz"; | |
233 | md5 = "338e5e8a83ea0f0625f768dba4597530"; |
|
259 | md5 = "174d3c3cd670a5be0404d84c484e590c"; | |
234 | }; |
|
260 | }; | |
235 | meta = { |
|
261 | meta = { | |
236 | license = [ pkgs.lib.licenses.mit ]; |
|
262 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -250,18 +276,31 b'' | |||||
250 | }; |
|
276 | }; | |
251 | }; |
|
277 | }; | |
252 | hgsubversion = super.buildPythonPackage { |
|
278 | hgsubversion = super.buildPythonPackage { | |
253 |
name = "hgsubversion-1.8. |
|
279 | name = "hgsubversion-1.8.7"; | |
254 | buildInputs = with self; []; |
|
280 | buildInputs = with self; []; | |
255 | doCheck = false; |
|
281 | doCheck = false; | |
256 | propagatedBuildInputs = with self; [mercurial subvertpy]; |
|
282 | propagatedBuildInputs = with self; [mercurial subvertpy]; | |
257 | src = fetchurl { |
|
283 | src = fetchurl { | |
258 | url = "https://pypi.python.org/packages/ce/97/032e5093ad250e9908cea04395cbddb6902d587f712a79b53b2d778bdfdd/hgsubversion-1.8.6.tar.gz"; |
|
284 | url = "https://pypi.python.org/packages/1c/b8/ff4d2e0ec486f9765b410f09728c02a010e7485d68d6154968074498a403/hgsubversion-1.8.7.tar.gz"; | |
259 | md5 = "9310cb266031cf8d0779885782a84a5b"; |
|
285 | md5 = "289f1c36c13bd6a3435a9be390a77bdc"; | |
260 | }; |
|
286 | }; | |
261 | meta = { |
|
287 | meta = { | |
262 | license = [ pkgs.lib.licenses.gpl1 ]; |
|
288 | license = [ pkgs.lib.licenses.gpl1 ]; | |
263 | }; |
|
289 | }; | |
264 | }; |
|
290 | }; | |
|
291 | hupper = super.buildPythonPackage { | |||
|
292 | name = "hupper-1.0"; | |||
|
293 | buildInputs = with self; []; | |||
|
294 | doCheck = false; | |||
|
295 | propagatedBuildInputs = with self; []; | |||
|
296 | src = fetchurl { | |||
|
297 | url = "https://pypi.python.org/packages/2e/07/df892c564dc09bb3cf6f6deb976c26adf9117db75ba218cb4353dbc9d826/hupper-1.0.tar.gz"; | |||
|
298 | md5 = "26e77da7d5ac5858f59af050d1a6eb5a"; | |||
|
299 | }; | |||
|
300 | meta = { | |||
|
301 | license = [ pkgs.lib.licenses.mit ]; | |||
|
302 | }; | |||
|
303 | }; | |||
265 | infrae.cache = super.buildPythonPackage { |
|
304 | infrae.cache = super.buildPythonPackage { | |
266 | name = "infrae.cache-1.0.1"; |
|
305 | name = "infrae.cache-1.0.1"; | |
267 | buildInputs = with self; []; |
|
306 | buildInputs = with self; []; | |
@@ -276,13 +315,13 b'' | |||||
276 | }; |
|
315 | }; | |
277 | }; |
|
316 | }; | |
278 | ipdb = super.buildPythonPackage { |
|
317 | ipdb = super.buildPythonPackage { | |
279 |
name = "ipdb-0.10. |
|
318 | name = "ipdb-0.10.3"; | |
280 | buildInputs = with self; []; |
|
319 | buildInputs = with self; []; | |
281 | doCheck = false; |
|
320 | doCheck = false; | |
282 |
propagatedBuildInputs = with self; [ipython |
|
321 | propagatedBuildInputs = with self; [setuptools ipython]; | |
283 | src = fetchurl { |
|
322 | src = fetchurl { | |
284 | url = "https://pypi.python.org/packages/eb/0a/0a37dc19572580336ad3813792c0d18c8d7117c2d66fc63c501f13a7a8f8/ipdb-0.10.1.tar.gz"; |
|
323 | url = "https://pypi.python.org/packages/ad/cc/0e7298e1fbf2efd52667c9354a12aa69fb6f796ce230cca03525051718ef/ipdb-0.10.3.tar.gz"; | |
285 | md5 = "4aeab65f633ddc98ebdb5eebf08dc713"; |
|
324 | md5 = "def1f6ac075d54bdee07e6501263d4fa"; | |
286 | }; |
|
325 | }; | |
287 | meta = { |
|
326 | meta = { | |
288 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
|
327 | license = [ pkgs.lib.licenses.bsdOriginal ]; | |
@@ -354,13 +393,13 b'' | |||||
354 | }; |
|
393 | }; | |
355 | }; |
|
394 | }; | |
356 | pathlib2 = super.buildPythonPackage { |
|
395 | pathlib2 = super.buildPythonPackage { | |
357 |
name = "pathlib2-2. |
|
396 | name = "pathlib2-2.3.0"; | |
358 | buildInputs = with self; []; |
|
397 | buildInputs = with self; []; | |
359 | doCheck = false; |
|
398 | doCheck = false; | |
360 | propagatedBuildInputs = with self; [six]; |
|
399 | propagatedBuildInputs = with self; [six scandir]; | |
361 | src = fetchurl { |
|
400 | src = fetchurl { | |
362 |
url = "https://pypi.python.org/packages/c |
|
401 | url = "https://pypi.python.org/packages/a1/14/df0deb867c2733f7d857523c10942b3d6612a1b222502fdffa9439943dfb/pathlib2-2.3.0.tar.gz"; | |
363 | md5 = "38e4f58b4d69dfcb9edb49a54a8b28d2"; |
|
402 | md5 = "89c90409d11fd5947966b6a30a47d18c"; | |
364 | }; |
|
403 | }; | |
365 | meta = { |
|
404 | meta = { | |
366 | license = [ pkgs.lib.licenses.mit ]; |
|
405 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -392,40 +431,66 b'' | |||||
392 | license = [ pkgs.lib.licenses.mit ]; |
|
431 | license = [ pkgs.lib.licenses.mit ]; | |
393 | }; |
|
432 | }; | |
394 | }; |
|
433 | }; | |
|
434 | plaster = super.buildPythonPackage { | |||
|
435 | name = "plaster-0.5"; | |||
|
436 | buildInputs = with self; []; | |||
|
437 | doCheck = false; | |||
|
438 | propagatedBuildInputs = with self; [setuptools]; | |||
|
439 | src = fetchurl { | |||
|
440 | url = "https://pypi.python.org/packages/99/b3/d7ca1fe31d2b56dba68a238721fda6820770f9c2a3de17a582d4b5b2edcc/plaster-0.5.tar.gz"; | |||
|
441 | md5 = "c59345a67a860cfcaa1bd6a81451399d"; | |||
|
442 | }; | |||
|
443 | meta = { | |||
|
444 | license = [ pkgs.lib.licenses.mit ]; | |||
|
445 | }; | |||
|
446 | }; | |||
|
447 | plaster-pastedeploy = super.buildPythonPackage { | |||
|
448 | name = "plaster-pastedeploy-0.4.1"; | |||
|
449 | buildInputs = with self; []; | |||
|
450 | doCheck = false; | |||
|
451 | propagatedBuildInputs = with self; [PasteDeploy plaster]; | |||
|
452 | src = fetchurl { | |||
|
453 | url = "https://pypi.python.org/packages/9d/6e/f8be01ed41c94e6c54ac97cf2eb142a702aae0c8cce31c846f785e525b40/plaster_pastedeploy-0.4.1.tar.gz"; | |||
|
454 | md5 = "f48d5344b922e56c4978eebf1cd2e0d3"; | |||
|
455 | }; | |||
|
456 | meta = { | |||
|
457 | license = [ pkgs.lib.licenses.mit ]; | |||
|
458 | }; | |||
|
459 | }; | |||
395 | prompt-toolkit = super.buildPythonPackage { |
|
460 | prompt-toolkit = super.buildPythonPackage { | |
396 |
name = "prompt-toolkit-1.0.1 |
|
461 | name = "prompt-toolkit-1.0.15"; | |
397 | buildInputs = with self; []; |
|
462 | buildInputs = with self; []; | |
398 | doCheck = false; |
|
463 | doCheck = false; | |
399 | propagatedBuildInputs = with self; [six wcwidth]; |
|
464 | propagatedBuildInputs = with self; [six wcwidth]; | |
400 | src = fetchurl { |
|
465 | src = fetchurl { | |
401 |
url = "https://pypi.python.org/packages/55 |
|
466 | url = "https://pypi.python.org/packages/8a/ad/cf6b128866e78ad6d7f1dc5b7f99885fb813393d9860778b2984582e81b5/prompt_toolkit-1.0.15.tar.gz"; | |
402 | md5 = "f24061ae133ed32c6b764e92bd48c496"; |
|
467 | md5 = "8fe70295006dbc8afedd43e5eba99032"; | |
403 | }; |
|
468 | }; | |
404 | meta = { |
|
469 | meta = { | |
405 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
|
470 | license = [ pkgs.lib.licenses.bsdOriginal ]; | |
406 | }; |
|
471 | }; | |
407 | }; |
|
472 | }; | |
408 | ptyprocess = super.buildPythonPackage { |
|
473 | ptyprocess = super.buildPythonPackage { | |
409 |
name = "ptyprocess-0.5. |
|
474 | name = "ptyprocess-0.5.2"; | |
410 | buildInputs = with self; []; |
|
475 | buildInputs = with self; []; | |
411 | doCheck = false; |
|
476 | doCheck = false; | |
412 | propagatedBuildInputs = with self; []; |
|
477 | propagatedBuildInputs = with self; []; | |
413 | src = fetchurl { |
|
478 | src = fetchurl { | |
414 |
url = "https://pypi.python.org/packages/d |
|
479 | url = "https://pypi.python.org/packages/51/83/5d07dc35534640b06f9d9f1a1d2bc2513fb9cc7595a1b0e28ae5477056ce/ptyprocess-0.5.2.tar.gz"; | |
415 | md5 = "94e537122914cc9ec9c1eadcd36e73a1"; |
|
480 | md5 = "d3b8febae1b8c53b054bd818d0bb8665"; | |
416 | }; |
|
481 | }; | |
417 | meta = { |
|
482 | meta = { | |
418 | license = [ ]; |
|
483 | license = [ ]; | |
419 | }; |
|
484 | }; | |
420 | }; |
|
485 | }; | |
421 | py = super.buildPythonPackage { |
|
486 | py = super.buildPythonPackage { | |
422 |
name = "py-1.4.3 |
|
487 | name = "py-1.4.34"; | |
423 | buildInputs = with self; []; |
|
488 | buildInputs = with self; []; | |
424 | doCheck = false; |
|
489 | doCheck = false; | |
425 | propagatedBuildInputs = with self; []; |
|
490 | propagatedBuildInputs = with self; []; | |
426 | src = fetchurl { |
|
491 | src = fetchurl { | |
427 |
url = "https://pypi.python.org/packages/ |
|
492 | url = "https://pypi.python.org/packages/68/35/58572278f1c097b403879c1e9369069633d1cbad5239b9057944bb764782/py-1.4.34.tar.gz"; | |
428 | md5 = "5d2c63c56dc3f2115ec35c066ecd582b"; |
|
493 | md5 = "d9c3d8f734b0819ff48e355d77bf1730"; | |
429 | }; |
|
494 | }; | |
430 | meta = { |
|
495 | meta = { | |
431 | license = [ pkgs.lib.licenses.mit ]; |
|
496 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -445,13 +510,13 b'' | |||||
445 | }; |
|
510 | }; | |
446 | }; |
|
511 | }; | |
447 | pyramid = super.buildPythonPackage { |
|
512 | pyramid = super.buildPythonPackage { | |
448 |
name = "pyramid-1. |
|
513 | name = "pyramid-1.9.1"; | |
449 | buildInputs = with self; []; |
|
514 | buildInputs = with self; []; | |
450 | doCheck = false; |
|
515 | doCheck = false; | |
451 | propagatedBuildInputs = with self; [setuptools WebOb repoze.lru zope.interface zope.deprecation venusian translationstring PasteDeploy]; |
|
516 | propagatedBuildInputs = with self; [setuptools WebOb repoze.lru zope.interface zope.deprecation venusian translationstring PasteDeploy plaster plaster-pastedeploy hupper]; | |
452 | src = fetchurl { |
|
517 | src = fetchurl { | |
453 | url = "https://pypi.python.org/packages/33/91/55f5c661f8923902cd1f68d75f2b937c45e7682857356cf18f0be5493899/pyramid-1.7.4.tar.gz"; |
|
518 | url = "https://pypi.python.org/packages/9a/57/73447be9e7d0512d601e3f0a1fb9d7d1efb941911f49efdfe036d2826507/pyramid-1.9.1.tar.gz"; | |
454 | md5 = "6ef1dfdcff9136d04490410757c4c446"; |
|
519 | md5 = "0163e19c58c2d12976a3b6fdb57e052d"; | |
455 | }; |
|
520 | }; | |
456 | meta = { |
|
521 | meta = { | |
457 | license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ]; |
|
522 | license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ]; | |
@@ -484,13 +549,13 b'' | |||||
484 | }; |
|
549 | }; | |
485 | }; |
|
550 | }; | |
486 | pytest = super.buildPythonPackage { |
|
551 | pytest = super.buildPythonPackage { | |
487 |
name = "pytest-3. |
|
552 | name = "pytest-3.1.2"; | |
488 | buildInputs = with self; []; |
|
553 | buildInputs = with self; []; | |
489 | doCheck = false; |
|
554 | doCheck = false; | |
490 | propagatedBuildInputs = with self; [py]; |
|
555 | propagatedBuildInputs = with self; [py setuptools]; | |
491 | src = fetchurl { |
|
556 | src = fetchurl { | |
492 | url = "https://pypi.python.org/packages/a8/87/b7ca49efe52d2b4169f2bfc49aa5e384173c4619ea8e635f123a0dac5b75/pytest-3.0.5.tar.gz"; |
|
557 | url = "https://pypi.python.org/packages/72/2b/2d3155e01f45a5a04427857352ee88220ee39550b2bc078f9db3190aea46/pytest-3.1.2.tar.gz"; | |
493 | md5 = "cefd527b59332688bf5db4a10aa8a7cb"; |
|
558 | md5 = "c4d179f89043cc925e1c169d03128e02"; | |
494 | }; |
|
559 | }; | |
495 | meta = { |
|
560 | meta = { | |
496 | license = [ pkgs.lib.licenses.mit ]; |
|
561 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -510,52 +575,52 b'' | |||||
510 | }; |
|
575 | }; | |
511 | }; |
|
576 | }; | |
512 | pytest-cov = super.buildPythonPackage { |
|
577 | pytest-cov = super.buildPythonPackage { | |
513 |
name = "pytest-cov-2. |
|
578 | name = "pytest-cov-2.5.1"; | |
514 | buildInputs = with self; []; |
|
579 | buildInputs = with self; []; | |
515 | doCheck = false; |
|
580 | doCheck = false; | |
516 | propagatedBuildInputs = with self; [pytest coverage]; |
|
581 | propagatedBuildInputs = with self; [pytest coverage]; | |
517 | src = fetchurl { |
|
582 | src = fetchurl { | |
518 |
url = "https://pypi.python.org/packages/0 |
|
583 | url = "https://pypi.python.org/packages/24/b4/7290d65b2f3633db51393bdf8ae66309b37620bc3ec116c5e357e3e37238/pytest-cov-2.5.1.tar.gz"; | |
519 | md5 = "2fda09677d232acc99ec1b3c5831e33f"; |
|
584 | md5 = "5acf38d4909e19819eb5c1754fbfc0ac"; | |
520 | }; |
|
585 | }; | |
521 | meta = { |
|
586 | meta = { | |
522 | license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ]; |
|
587 | license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ]; | |
523 | }; |
|
588 | }; | |
524 | }; |
|
589 | }; | |
525 | pytest-profiling = super.buildPythonPackage { |
|
590 | pytest-profiling = super.buildPythonPackage { | |
526 |
name = "pytest-profiling-1.2. |
|
591 | name = "pytest-profiling-1.2.6"; | |
527 | buildInputs = with self; []; |
|
592 | buildInputs = with self; []; | |
528 | doCheck = false; |
|
593 | doCheck = false; | |
529 | propagatedBuildInputs = with self; [six pytest gprof2dot]; |
|
594 | propagatedBuildInputs = with self; [six pytest gprof2dot]; | |
530 | src = fetchurl { |
|
595 | src = fetchurl { | |
531 |
url = "https://pypi.python.org/packages/73 |
|
596 | url = "https://pypi.python.org/packages/f9/0d/df67fb9ce16c2cef201693da956321b1bccfbf9a4ead39748b9f9d1d74cb/pytest-profiling-1.2.6.tar.gz"; | |
532 | md5 = "0a16d7dda2d23b91e9730fa4558cf728"; |
|
597 | md5 = "50eb4c66c3762a2f1a49669bedc0b894"; | |
533 | }; |
|
598 | }; | |
534 | meta = { |
|
599 | meta = { | |
535 | license = [ pkgs.lib.licenses.mit ]; |
|
600 | license = [ pkgs.lib.licenses.mit ]; | |
536 | }; |
|
601 | }; | |
537 | }; |
|
602 | }; | |
538 | pytest-runner = super.buildPythonPackage { |
|
603 | pytest-runner = super.buildPythonPackage { | |
539 |
name = "pytest-runner-2. |
|
604 | name = "pytest-runner-2.11.1"; | |
540 | buildInputs = with self; []; |
|
605 | buildInputs = with self; []; | |
541 | doCheck = false; |
|
606 | doCheck = false; | |
542 | propagatedBuildInputs = with self; []; |
|
607 | propagatedBuildInputs = with self; []; | |
543 | src = fetchurl { |
|
608 | src = fetchurl { | |
544 | url = "https://pypi.python.org/packages/11/d4/c335ddf94463e451109e3494e909765c3e5205787b772e3b25ee8601b86a/pytest-runner-2.9.tar.gz"; |
|
609 | url = "https://pypi.python.org/packages/9e/4d/08889e5e27a9f5d6096b9ad257f4dea1faabb03c5ded8f665ead448f5d8a/pytest-runner-2.11.1.tar.gz"; | |
545 | md5 = "2212a2e34404b0960b2fdc2c469247b2"; |
|
610 | md5 = "bdb73eb18eca2727944a2dcf963c5a81"; | |
546 | }; |
|
611 | }; | |
547 | meta = { |
|
612 | meta = { | |
548 | license = [ pkgs.lib.licenses.mit ]; |
|
613 | license = [ pkgs.lib.licenses.mit ]; | |
549 | }; |
|
614 | }; | |
550 | }; |
|
615 | }; | |
551 | pytest-sugar = super.buildPythonPackage { |
|
616 | pytest-sugar = super.buildPythonPackage { | |
552 |
name = "pytest-sugar-0. |
|
617 | name = "pytest-sugar-0.8.0"; | |
553 | buildInputs = with self; []; |
|
618 | buildInputs = with self; []; | |
554 | doCheck = false; |
|
619 | doCheck = false; | |
555 | propagatedBuildInputs = with self; [pytest termcolor]; |
|
620 | propagatedBuildInputs = with self; [pytest termcolor]; | |
556 | src = fetchurl { |
|
621 | src = fetchurl { | |
557 | url = "https://pypi.python.org/packages/03/97/05d988b4fa870e7373e8ee4582408543b9ca2bd35c3c67b569369c6f9c49/pytest-sugar-0.7.1.tar.gz"; |
|
622 | url = "https://pypi.python.org/packages/a5/b0/b2773dee078f17773a5bf2dfad49b0be57b6354bbd84bbefe4313e509d87/pytest-sugar-0.8.0.tar.gz"; | |
558 | md5 = "7400f7c11f3d572b2c2a3b60352d35fe"; |
|
623 | md5 = "8cafbdad648068e0e44b8fc5f9faae42"; | |
559 | }; |
|
624 | }; | |
560 | meta = { |
|
625 | meta = { | |
561 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
|
626 | license = [ pkgs.lib.licenses.bsdOriginal ]; | |
@@ -588,7 +653,7 b'' | |||||
588 | }; |
|
653 | }; | |
589 | }; |
|
654 | }; | |
590 | rhodecode-vcsserver = super.buildPythonPackage { |
|
655 | rhodecode-vcsserver = super.buildPythonPackage { | |
591 |
name = "rhodecode-vcsserver-4. |
|
656 | name = "rhodecode-vcsserver-4.10.0"; | |
592 | buildInputs = with self; [pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage configobj]; |
|
657 | buildInputs = with self; [pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage configobj]; | |
593 | doCheck = true; |
|
658 | doCheck = true; | |
594 | propagatedBuildInputs = with self; [Beaker configobj decorator dulwich hgsubversion hg-evolve infrae.cache mercurial msgpack-python pyramid pyramid-jinja2 pyramid-mako repoze.lru simplejson subprocess32 subvertpy six translationstring WebOb wheel zope.deprecation zope.interface ipdb ipython gevent greenlet gunicorn waitress pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage]; |
|
659 | propagatedBuildInputs = with self; [Beaker configobj decorator dulwich hgsubversion hg-evolve infrae.cache mercurial msgpack-python pyramid pyramid-jinja2 pyramid-mako repoze.lru simplejson subprocess32 subvertpy six translationstring WebOb wheel zope.deprecation zope.interface ipdb ipython gevent greenlet gunicorn waitress pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage]; | |
@@ -597,6 +662,19 b'' | |||||
597 | license = [ { fullName = "GPL V3"; } { fullName = "GNU General Public License v3 or later (GPLv3+)"; } ]; |
|
662 | license = [ { fullName = "GPL V3"; } { fullName = "GNU General Public License v3 or later (GPLv3+)"; } ]; | |
598 | }; |
|
663 | }; | |
599 | }; |
|
664 | }; | |
|
665 | scandir = super.buildPythonPackage { | |||
|
666 | name = "scandir-1.5"; | |||
|
667 | buildInputs = with self; []; | |||
|
668 | doCheck = false; | |||
|
669 | propagatedBuildInputs = with self; []; | |||
|
670 | src = fetchurl { | |||
|
671 | url = "https://pypi.python.org/packages/bd/f4/3143e0289faf0883228017dbc6387a66d0b468df646645e29e1eb89ea10e/scandir-1.5.tar.gz"; | |||
|
672 | md5 = "a2713043de681bba6b084be42e7a8a44"; | |||
|
673 | }; | |||
|
674 | meta = { | |||
|
675 | license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ]; | |||
|
676 | }; | |||
|
677 | }; | |||
600 | setuptools = super.buildPythonPackage { |
|
678 | setuptools = super.buildPythonPackage { | |
601 | name = "setuptools-30.1.0"; |
|
679 | name = "setuptools-30.1.0"; | |
602 | buildInputs = with self; []; |
|
680 | buildInputs = with self; []; | |
@@ -624,13 +702,13 b'' | |||||
624 | }; |
|
702 | }; | |
625 | }; |
|
703 | }; | |
626 | simplejson = super.buildPythonPackage { |
|
704 | simplejson = super.buildPythonPackage { | |
627 |
name = "simplejson-3. |
|
705 | name = "simplejson-3.11.1"; | |
628 | buildInputs = with self; []; |
|
706 | buildInputs = with self; []; | |
629 | doCheck = false; |
|
707 | doCheck = false; | |
630 | propagatedBuildInputs = with self; []; |
|
708 | propagatedBuildInputs = with self; []; | |
631 | src = fetchurl { |
|
709 | src = fetchurl { | |
632 |
url = "https://pypi.python.org/packages/6d |
|
710 | url = "https://pypi.python.org/packages/08/48/c97b668d6da7d7bebe7ea1817a6f76394b0ec959cb04214ca833c34359df/simplejson-3.11.1.tar.gz"; | |
633 | md5 = "a5fc7d05d4cb38492285553def5d4b46"; |
|
711 | md5 = "6e2f1bd5fb0a926facf5d89d217a7183"; | |
634 | }; |
|
712 | }; | |
635 | meta = { |
|
713 | meta = { | |
636 | license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ]; |
|
714 | license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ]; | |
@@ -650,13 +728,13 b'' | |||||
650 | }; |
|
728 | }; | |
651 | }; |
|
729 | }; | |
652 | subprocess32 = super.buildPythonPackage { |
|
730 | subprocess32 = super.buildPythonPackage { | |
653 |
name = "subprocess32-3.2. |
|
731 | name = "subprocess32-3.2.7"; | |
654 | buildInputs = with self; []; |
|
732 | buildInputs = with self; []; | |
655 | doCheck = false; |
|
733 | doCheck = false; | |
656 | propagatedBuildInputs = with self; []; |
|
734 | propagatedBuildInputs = with self; []; | |
657 | src = fetchurl { |
|
735 | src = fetchurl { | |
658 |
url = "https://pypi.python.org/packages/ |
|
736 | url = "https://pypi.python.org/packages/b8/2f/49e53b0d0e94611a2dc624a1ad24d41b6d94d0f1b0a078443407ea2214c2/subprocess32-3.2.7.tar.gz"; | |
659 | md5 = "754c5ab9f533e764f931136974b618f1"; |
|
737 | md5 = "824c801e479d3e916879aae3e9c15e16"; | |
660 | }; |
|
738 | }; | |
661 | meta = { |
|
739 | meta = { | |
662 | license = [ pkgs.lib.licenses.psfl ]; |
|
740 | license = [ pkgs.lib.licenses.psfl ]; | |
@@ -715,26 +793,26 b'' | |||||
715 | }; |
|
793 | }; | |
716 | }; |
|
794 | }; | |
717 | venusian = super.buildPythonPackage { |
|
795 | venusian = super.buildPythonPackage { | |
718 | name = "venusian-1.0"; |
|
796 | name = "venusian-1.1.0"; | |
719 | buildInputs = with self; []; |
|
797 | buildInputs = with self; []; | |
720 | doCheck = false; |
|
798 | doCheck = false; | |
721 | propagatedBuildInputs = with self; []; |
|
799 | propagatedBuildInputs = with self; []; | |
722 | src = fetchurl { |
|
800 | src = fetchurl { | |
723 | url = "https://pypi.python.org/packages/86/20/1948e0dfc4930ddde3da8c33612f6a5717c0b4bc28f591a5c5cf014dd390/venusian-1.0.tar.gz"; |
|
801 | url = "https://pypi.python.org/packages/38/24/b4b470ab9e0a2e2e9b9030c7735828c8934b4c6b45befd1bb713ec2aeb2d/venusian-1.1.0.tar.gz"; | |
724 | md5 = "dccf2eafb7113759d60c86faf5538756"; |
|
802 | md5 = "56bc5e6756e4bda37bcdb94f74a72b8f"; | |
725 | }; |
|
803 | }; | |
726 | meta = { |
|
804 | meta = { | |
727 | license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ]; |
|
805 | license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ]; | |
728 | }; |
|
806 | }; | |
729 | }; |
|
807 | }; | |
730 | waitress = super.buildPythonPackage { |
|
808 | waitress = super.buildPythonPackage { | |
731 |
name = "waitress-1.0. |
|
809 | name = "waitress-1.0.2"; | |
732 | buildInputs = with self; []; |
|
810 | buildInputs = with self; []; | |
733 | doCheck = false; |
|
811 | doCheck = false; | |
734 | propagatedBuildInputs = with self; []; |
|
812 | propagatedBuildInputs = with self; []; | |
735 | src = fetchurl { |
|
813 | src = fetchurl { | |
736 |
url = "https://pypi.python.org/packages/ |
|
814 | url = "https://pypi.python.org/packages/cd/f4/400d00863afa1e03618e31fd7e2092479a71b8c9718b00eb1eeb603746c6/waitress-1.0.2.tar.gz"; | |
737 | md5 = "dda92358a7569669086155923a46e57c"; |
|
815 | md5 = "b968f39e95d609f6194c6e50425d4bb7"; | |
738 | }; |
|
816 | }; | |
739 | meta = { |
|
817 | meta = { | |
740 | license = [ pkgs.lib.licenses.zpt21 ]; |
|
818 | license = [ pkgs.lib.licenses.zpt21 ]; |
@@ -1,40 +1,41 b'' | |||||
1 | ## core |
|
1 | ## core | |
2 | setuptools==30.1.0 |
|
2 | setuptools==30.1.0 | |
3 |
|
3 | |||
4 |
Beaker==1. |
|
4 | Beaker==1.9.0 | |
5 | configobj==5.0.6 |
|
5 | configobj==5.0.6 | |
6 | decorator==4.0.11 |
|
6 | decorator==4.0.11 | |
7 | dulwich==0.13.0 |
|
7 | dulwich==0.13.0 | |
8 |
hgsubversion==1.8. |
|
8 | hgsubversion==1.8.7 | |
9 | hg-evolve==6.6.0 |
|
9 | hg-evolve==6.6.0 | |
10 | infrae.cache==1.0.1 |
|
10 | infrae.cache==1.0.1 | |
11 | mercurial==4.2.3 |
|
11 | mercurial==4.2.3 | |
12 | msgpack-python==0.4.8 |
|
12 | msgpack-python==0.4.8 | |
13 | pyramid-jinja2==2.5 |
|
13 | pyramid-jinja2==2.5 | |
14 |
pyramid==1. |
|
14 | pyramid==1.9.1 | |
15 | pyramid-mako==1.0.2 |
|
15 | pyramid-mako==1.0.2 | |
16 | repoze.lru==0.6 |
|
16 | repoze.lru==0.6 | |
17 |
simplejson==3. |
|
17 | simplejson==3.11.1 | |
18 |
subprocess32==3.2. |
|
18 | subprocess32==3.2.7 | |
19 |
|
19 | |||
20 | # Custom subvertpy that is not available on pypi. |
|
20 | # Custom subvertpy that is not available on pypi. | |
21 | https://code.rhodecode.com/upstream/subvertpy/archive/subvertpy-0.9.3.tar.gz?md5=4e49da2fe07608239cc9a80a7bb8f33c#egg=subvertpy==0.9.3 |
|
21 | https://code.rhodecode.com/upstream/subvertpy/archive/subvertpy-0.9.3.tar.gz?md5=4e49da2fe07608239cc9a80a7bb8f33c#egg=subvertpy==0.9.3 | |
22 |
|
22 | |||
23 | six==1.9.0 |
|
23 | six==1.9.0 | |
24 | translationstring==1.3 |
|
24 | translationstring==1.3 | |
25 |
WebOb==1. |
|
25 | WebOb==1.7.3 | |
26 | wheel==0.29.0 |
|
26 | wheel==0.29.0 | |
27 | zope.deprecation==4.1.2 |
|
27 | zope.deprecation==4.1.2 | |
28 | zope.interface==4.1.3 |
|
28 | zope.interface==4.1.3 | |
29 |
|
29 | |||
|
30 | ## http servers | |||
|
31 | gevent==1.2.2 | |||
|
32 | greenlet==0.4.12 | |||
|
33 | gunicorn==19.7.1 | |||
|
34 | waitress==1.0.2 | |||
|
35 | ||||
30 | ## debug |
|
36 | ## debug | |
31 |
ipdb==0.10. |
|
37 | ipdb==0.10.3 | |
32 | ipython==5.1.0 |
|
38 | ipython==5.1.0 | |
33 | # http servers |
|
|||
34 | gevent==1.1.2 |
|
|||
35 | greenlet==0.4.10 |
|
|||
36 | gunicorn==19.6.0 |
|
|||
37 | waitress==1.0.1 |
|
|||
38 |
|
39 | |||
39 | ## test related requirements |
|
40 | ## test related requirements | |
40 | -r requirements_test.txt |
|
41 | -r requirements_test.txt |
@@ -1,15 +1,15 b'' | |||||
1 | # test related requirements |
|
1 | # test related requirements | |
2 |
pytest==3. |
|
2 | pytest==3.1.2 | |
3 |
py==1.4.3 |
|
3 | py==1.4.34 | |
4 |
pytest-cov==2. |
|
4 | pytest-cov==2.5.1 | |
5 |
pytest-sugar==0. |
|
5 | pytest-sugar==0.8.0 | |
6 |
pytest-runner==2. |
|
6 | pytest-runner==2.11.1 | |
7 | pytest-catchlog==1.2.2 |
|
7 | pytest-catchlog==1.2.2 | |
8 |
pytest-profiling==1.2. |
|
8 | pytest-profiling==1.2.6 | |
9 | gprof2dot==2016.10.13 |
|
9 | gprof2dot==2016.10.13 | |
10 | pytest-timeout==1.2.0 |
|
10 | pytest-timeout==1.2.0 | |
11 |
|
11 | |||
12 | mock==1.0.1 |
|
12 | mock==1.0.1 | |
13 |
WebTest== |
|
13 | WebTest==2.0.27 | |
14 | cov-core==1.15.0 |
|
14 | cov-core==1.15.0 | |
15 | coverage==3.7.1 |
|
15 | coverage==3.7.1 |
@@ -21,11 +21,31 b' class EchoApp(object):' | |||||
21 | log.debug("Content-Length: %s", environ.get('CONTENT_LENGTH')) |
|
21 | log.debug("Content-Length: %s", environ.get('CONTENT_LENGTH')) | |
22 | environ['wsgi.input'].read() |
|
22 | environ['wsgi.input'].read() | |
23 | status = '200 OK' |
|
23 | status = '200 OK' | |
24 | headers = [] |
|
24 | headers = [('Content-Type', 'text/plain')] | |
25 | start_response(status, headers) |
|
25 | start_response(status, headers) | |
26 | return ["ECHO"] |
|
26 | return ["ECHO"] | |
27 |
|
27 | |||
28 |
|
28 | |||
|
29 | class EchoAppStream(object): | |||
|
30 | ||||
|
31 | def __init__(self, repo_path, repo_name, config): | |||
|
32 | self._repo_path = repo_path | |||
|
33 | log.info("EchoApp initialized for %s", repo_path) | |||
|
34 | ||||
|
35 | def __call__(self, environ, start_response): | |||
|
36 | log.debug("EchoApp called for %s", self._repo_path) | |||
|
37 | log.debug("Content-Length: %s", environ.get('CONTENT_LENGTH')) | |||
|
38 | environ['wsgi.input'].read() | |||
|
39 | status = '200 OK' | |||
|
40 | headers = [('Content-Type', 'text/plain')] | |||
|
41 | start_response(status, headers) | |||
|
42 | ||||
|
43 | def generator(): | |||
|
44 | for _ in xrange(1000000): | |||
|
45 | yield "ECHO" | |||
|
46 | return generator() | |||
|
47 | ||||
|
48 | ||||
29 | def create_app(): |
|
49 | def create_app(): | |
30 | """ |
|
50 | """ | |
31 | Allows to run this app directly in a WSGI server. |
|
51 | Allows to run this app directly in a WSGI server. |
@@ -628,6 +628,7 b' class GitRemote(object):' | |||||
628 |
|
628 | |||
629 | return ''.join(p), ''.join(p.error) |
|
629 | return ''.join(p), ''.join(p.error) | |
630 | except (EnvironmentError, OSError) as err: |
|
630 | except (EnvironmentError, OSError) as err: | |
|
631 | cmd = ' '.join(cmd) # human friendly CMD | |||
631 | tb_err = ("Couldn't run git command (%s).\n" |
|
632 | tb_err = ("Couldn't run git command (%s).\n" | |
632 | "Original error was:%s\n" % (cmd, err)) |
|
633 | "Original error was:%s\n" % (cmd, err)) | |
633 | log.exception(tb_err) |
|
634 | log.exception(tb_err) |
@@ -33,8 +33,8 b' from vcsserver.hgcompat import (' | |||||
33 | archival, bin, clone, config as hgconfig, diffopts, hex, |
|
33 | archival, bin, clone, config as hgconfig, diffopts, hex, | |
34 | hg_url as url_parser, httpbasicauthhandler, httpdigestauthhandler, |
|
34 | hg_url as url_parser, httpbasicauthhandler, httpdigestauthhandler, | |
35 | httppeer, localrepository, match, memctx, exchange, memfilectx, nullrev, |
|
35 | httppeer, localrepository, match, memctx, exchange, memfilectx, nullrev, | |
36 |
patch, peer, revrange, ui, Abort, LookupError, RepoError, |
|
36 | patch, peer, revrange, ui, hg_tag, Abort, LookupError, RepoError, | |
37 | InterventionRequired, RequirementError) |
|
37 | RepoLookupError, InterventionRequired, RequirementError) | |
38 |
|
38 | |||
39 | log = logging.getLogger(__name__) |
|
39 | log = logging.getLogger(__name__) | |
40 |
|
40 | |||
@@ -127,6 +127,9 b' class HgRemote(object):' | |||||
127 | "message": self.ctx_description, |
|
127 | "message": self.ctx_description, | |
128 | "parents": self.ctx_parents, |
|
128 | "parents": self.ctx_parents, | |
129 | "status": self.ctx_status, |
|
129 | "status": self.ctx_status, | |
|
130 | "obsolete": self.ctx_obsolete, | |||
|
131 | "phase": self.ctx_phase, | |||
|
132 | "hidden": self.ctx_hidden, | |||
130 | "_file_paths": self.ctx_list, |
|
133 | "_file_paths": self.ctx_list, | |
131 | } |
|
134 | } | |
132 |
|
135 | |||
@@ -629,7 +632,7 b' class HgRemote(object):' | |||||
629 |
|
632 | |||
630 | date = (tag_time, tag_timezone) |
|
633 | date = (tag_time, tag_timezone) | |
631 | try: |
|
634 | try: | |
632 |
|
|
635 | hg_tag.tag(repo, name, node, message, local, user, date) | |
633 | except Abort as e: |
|
636 | except Abort as e: | |
634 | log.exception("Tag operation aborted") |
|
637 | log.exception("Tag operation aborted") | |
635 | # Exception can contain unicode which we convert |
|
638 | # Exception can contain unicode which we convert | |
@@ -725,11 +728,11 b' class HgRemote(object):' | |||||
725 | commands.merge(baseui, repo, rev=revision) |
|
728 | commands.merge(baseui, repo, rev=revision) | |
726 |
|
729 | |||
727 | @reraise_safe_exceptions |
|
730 | @reraise_safe_exceptions | |
728 | def commit(self, wire, message, username): |
|
731 | def commit(self, wire, message, username, close_branch=False): | |
729 | repo = self._factory.repo(wire) |
|
732 | repo = self._factory.repo(wire) | |
730 | baseui = self._factory._create_config(wire['config']) |
|
733 | baseui = self._factory._create_config(wire['config']) | |
731 | repo.ui.setconfig('ui', 'username', username) |
|
734 | repo.ui.setconfig('ui', 'username', username) | |
732 | commands.commit(baseui, repo, message=message) |
|
735 | commands.commit(baseui, repo, message=message, close_branch=close_branch) | |
733 |
|
736 | |||
734 | @reraise_safe_exceptions |
|
737 | @reraise_safe_exceptions | |
735 | def rebase(self, wire, source=None, dest=None, abort=False): |
|
738 | def rebase(self, wire, source=None, dest=None, abort=False): |
@@ -36,6 +36,7 b' from mercurial import unionrepo' | |||||
36 | from mercurial import localrepo |
|
36 | from mercurial import localrepo | |
37 | from mercurial import merge as hg_merge |
|
37 | from mercurial import merge as hg_merge | |
38 | from mercurial import subrepo |
|
38 | from mercurial import subrepo | |
|
39 | from mercurial import tags as hg_tag | |||
39 |
|
40 | |||
40 | from mercurial.commands import clone, nullid, pull |
|
41 | from mercurial.commands import clone, nullid, pull | |
41 | from mercurial.context import memctx, memfilectx |
|
42 | from mercurial.context import memctx, memfilectx |
@@ -18,6 +18,7 b'' | |||||
18 | # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
18 | # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
19 |
|
19 | |||
20 | import io |
|
20 | import io | |
|
21 | import os | |||
21 | import sys |
|
22 | import sys | |
22 | import json |
|
23 | import json | |
23 | import logging |
|
24 | import logging | |
@@ -124,6 +125,7 b' def _get_hooks_client(extras):' | |||||
124 | def _call_hook(hook_name, extras, writer): |
|
125 | def _call_hook(hook_name, extras, writer): | |
125 | hooks = _get_hooks_client(extras) |
|
126 | hooks = _get_hooks_client(extras) | |
126 | result = hooks(hook_name, extras) |
|
127 | result = hooks(hook_name, extras) | |
|
128 | log.debug('Hooks got result: %s', result) | |||
127 | writer.write(result['output']) |
|
129 | writer.write(result['output']) | |
128 | _handle_exception(result) |
|
130 | _handle_exception(result) | |
129 |
|
131 | |||
@@ -131,22 +133,14 b' def _call_hook(hook_name, extras, writer' | |||||
131 |
|
133 | |||
132 |
|
134 | |||
133 | def _extras_from_ui(ui): |
|
135 | def _extras_from_ui(ui): | |
134 |
|
|
136 | hook_data = ui.config('rhodecode', 'RC_SCM_DATA') | |
|
137 | if not hook_data: | |||
|
138 | # maybe it's inside environ ? | |||
|
139 | hook_data = os.environ.get('RC_SCM_DATA') | |||
|
140 | extras = json.loads(hook_data) | |||
135 | return extras |
|
141 | return extras | |
136 |
|
142 | |||
137 |
|
143 | |||
138 | def repo_size(ui, repo, **kwargs): |
|
|||
139 | return _call_hook('repo_size', _extras_from_ui(ui), HgMessageWriter(ui)) |
|
|||
140 |
|
||||
141 |
|
||||
142 | def pre_pull(ui, repo, **kwargs): |
|
|||
143 | return _call_hook('pre_pull', _extras_from_ui(ui), HgMessageWriter(ui)) |
|
|||
144 |
|
||||
145 |
|
||||
146 | def post_pull(ui, repo, **kwargs): |
|
|||
147 | return _call_hook('post_pull', _extras_from_ui(ui), HgMessageWriter(ui)) |
|
|||
148 |
|
||||
149 |
|
||||
150 | def _rev_range_hash(repo, node): |
|
144 | def _rev_range_hash(repo, node): | |
151 |
|
145 | |||
152 | commits = [] |
|
146 | commits = [] | |
@@ -159,6 +153,33 b' def _rev_range_hash(repo, node):' | |||||
159 | return commits |
|
153 | return commits | |
160 |
|
154 | |||
161 |
|
155 | |||
|
156 | def repo_size(ui, repo, **kwargs): | |||
|
157 | extras = _extras_from_ui(ui) | |||
|
158 | return _call_hook('repo_size', extras, HgMessageWriter(ui)) | |||
|
159 | ||||
|
160 | ||||
|
161 | def pre_pull(ui, repo, **kwargs): | |||
|
162 | extras = _extras_from_ui(ui) | |||
|
163 | return _call_hook('pre_pull', extras, HgMessageWriter(ui)) | |||
|
164 | ||||
|
165 | ||||
|
166 | def pre_pull_ssh(ui, repo, **kwargs): | |||
|
167 | if _extras_from_ui(ui).get('SSH'): | |||
|
168 | return pre_pull(ui, repo, **kwargs) | |||
|
169 | return 0 | |||
|
170 | ||||
|
171 | ||||
|
172 | def post_pull(ui, repo, **kwargs): | |||
|
173 | extras = _extras_from_ui(ui) | |||
|
174 | return _call_hook('post_pull', extras, HgMessageWriter(ui)) | |||
|
175 | ||||
|
176 | ||||
|
177 | def post_pull_ssh(ui, repo, **kwargs): | |||
|
178 | if _extras_from_ui(ui).get('SSH'): | |||
|
179 | return post_pull(ui, repo, **kwargs) | |||
|
180 | return 0 | |||
|
181 | ||||
|
182 | ||||
162 | def pre_push(ui, repo, node=None, **kwargs): |
|
183 | def pre_push(ui, repo, node=None, **kwargs): | |
163 | extras = _extras_from_ui(ui) |
|
184 | extras = _extras_from_ui(ui) | |
164 |
|
185 | |||
@@ -182,6 +203,27 b' def pre_push(ui, repo, node=None, **kwar' | |||||
182 | return _call_hook('pre_push', extras, HgMessageWriter(ui)) |
|
203 | return _call_hook('pre_push', extras, HgMessageWriter(ui)) | |
183 |
|
204 | |||
184 |
|
205 | |||
|
206 | def pre_push_ssh(ui, repo, node=None, **kwargs): | |||
|
207 | if _extras_from_ui(ui).get('SSH'): | |||
|
208 | return pre_push(ui, repo, node, **kwargs) | |||
|
209 | ||||
|
210 | return 0 | |||
|
211 | ||||
|
212 | ||||
|
213 | def pre_push_ssh_auth(ui, repo, node=None, **kwargs): | |||
|
214 | extras = _extras_from_ui(ui) | |||
|
215 | if extras.get('SSH'): | |||
|
216 | permission = extras['SSH_PERMISSIONS'] | |||
|
217 | ||||
|
218 | if 'repository.write' == permission or 'repository.admin' == permission: | |||
|
219 | return 0 | |||
|
220 | ||||
|
221 | # non-zero ret code | |||
|
222 | return 1 | |||
|
223 | ||||
|
224 | return 0 | |||
|
225 | ||||
|
226 | ||||
185 | def post_push(ui, repo, node, **kwargs): |
|
227 | def post_push(ui, repo, node, **kwargs): | |
186 | extras = _extras_from_ui(ui) |
|
228 | extras = _extras_from_ui(ui) | |
187 |
|
229 | |||
@@ -208,12 +250,19 b' def post_push(ui, repo, node, **kwargs):' | |||||
208 | return _call_hook('post_push', extras, HgMessageWriter(ui)) |
|
250 | return _call_hook('post_push', extras, HgMessageWriter(ui)) | |
209 |
|
251 | |||
210 |
|
252 | |||
|
253 | def post_push_ssh(ui, repo, node, **kwargs): | |||
|
254 | if _extras_from_ui(ui).get('SSH'): | |||
|
255 | return post_push(ui, repo, node, **kwargs) | |||
|
256 | return 0 | |||
|
257 | ||||
|
258 | ||||
211 | def key_push(ui, repo, **kwargs): |
|
259 | def key_push(ui, repo, **kwargs): | |
212 | if kwargs['new'] != '0' and kwargs['namespace'] == 'bookmarks': |
|
260 | if kwargs['new'] != '0' and kwargs['namespace'] == 'bookmarks': | |
213 | # store new bookmarks in our UI object propagated later to post_push |
|
261 | # store new bookmarks in our UI object propagated later to post_push | |
214 | ui._rc_pushkey_branches = repo[kwargs['key']].bookmarks() |
|
262 | ui._rc_pushkey_branches = repo[kwargs['key']].bookmarks() | |
215 | return |
|
263 | return | |
216 |
|
264 | |||
|
265 | ||||
217 | # backward compat |
|
266 | # backward compat | |
218 | log_pull_action = post_pull |
|
267 | log_pull_action = post_pull | |
219 |
|
268 |
@@ -23,6 +23,7 b' import wsgiref.util' | |||||
23 | import traceback |
|
23 | import traceback | |
24 | from itertools import chain |
|
24 | from itertools import chain | |
25 |
|
25 | |||
|
26 | import simplejson as json | |||
26 | import msgpack |
|
27 | import msgpack | |
27 | from beaker.cache import CacheManager |
|
28 | from beaker.cache import CacheManager | |
28 | from beaker.util import parse_cache_config_options |
|
29 | from beaker.util import parse_cache_config_options | |
@@ -269,7 +270,8 b' class HTTPApplication(object):' | |||||
269 | return resp |
|
270 | return resp | |
270 |
|
271 | |||
271 | def status_view(self, request): |
|
272 | def status_view(self, request): | |
272 | return {'status': 'OK'} |
|
273 | import vcsserver | |
|
274 | return {'status': 'OK', 'vcsserver_version': vcsserver.__version__} | |||
273 |
|
275 | |||
274 | def service_view(self, request): |
|
276 | def service_view(self, request): | |
275 | import vcsserver |
|
277 | import vcsserver | |
@@ -310,6 +312,25 b' class HTTPApplication(object):' | |||||
310 | return value |
|
312 | return value | |
311 | return _render |
|
313 | return _render | |
312 |
|
314 | |||
|
315 | def set_env_from_config(self, environ, config): | |||
|
316 | dict_conf = {} | |||
|
317 | try: | |||
|
318 | for elem in config: | |||
|
319 | if elem[0] == 'rhodecode': | |||
|
320 | dict_conf = json.loads(elem[2]) | |||
|
321 | break | |||
|
322 | except Exception: | |||
|
323 | log.exception('Failed to fetch SCM CONFIG') | |||
|
324 | return | |||
|
325 | ||||
|
326 | username = dict_conf.get('username') | |||
|
327 | if username: | |||
|
328 | environ['REMOTE_USER'] = username | |||
|
329 | ||||
|
330 | ip = dict_conf.get('ip') | |||
|
331 | if ip: | |||
|
332 | environ['REMOTE_HOST'] = ip | |||
|
333 | ||||
313 | def hg_proxy(self): |
|
334 | def hg_proxy(self): | |
314 | @wsgiapp |
|
335 | @wsgiapp | |
315 | def _hg_proxy(environ, start_response): |
|
336 | def _hg_proxy(environ, start_response): | |
@@ -334,6 +355,7 b' class HTTPApplication(object):' | |||||
334 | else: |
|
355 | else: | |
335 | @wsgiapp |
|
356 | @wsgiapp | |
336 | def _hg_stream(environ, start_response): |
|
357 | def _hg_stream(environ, start_response): | |
|
358 | log.debug('http-app: handling hg stream') | |||
337 | repo_path = environ['HTTP_X_RC_REPO_PATH'] |
|
359 | repo_path = environ['HTTP_X_RC_REPO_PATH'] | |
338 | repo_name = environ['HTTP_X_RC_REPO_NAME'] |
|
360 | repo_name = environ['HTTP_X_RC_REPO_NAME'] | |
339 | packed_config = base64.b64decode( |
|
361 | packed_config = base64.b64decode( | |
@@ -342,9 +364,13 b' class HTTPApplication(object):' | |||||
342 | app = scm_app.create_hg_wsgi_app( |
|
364 | app = scm_app.create_hg_wsgi_app( | |
343 | repo_path, repo_name, config) |
|
365 | repo_path, repo_name, config) | |
344 |
|
366 | |||
345 | # Consitent path information for hgweb |
|
367 | # Consistent path information for hgweb | |
346 | environ['PATH_INFO'] = environ['HTTP_X_RC_PATH_INFO'] |
|
368 | environ['PATH_INFO'] = environ['HTTP_X_RC_PATH_INFO'] | |
347 | environ['REPO_NAME'] = repo_name |
|
369 | environ['REPO_NAME'] = repo_name | |
|
370 | self.set_env_from_config(environ, config) | |||
|
371 | ||||
|
372 | log.debug('http-app: starting app handler ' | |||
|
373 | 'with %s and process request', app) | |||
348 | return app(environ, ResponseFilter(start_response)) |
|
374 | return app(environ, ResponseFilter(start_response)) | |
349 | return _hg_stream |
|
375 | return _hg_stream | |
350 |
|
376 | |||
@@ -358,6 +384,7 b' class HTTPApplication(object):' | |||||
358 | else: |
|
384 | else: | |
359 | @wsgiapp |
|
385 | @wsgiapp | |
360 | def _git_stream(environ, start_response): |
|
386 | def _git_stream(environ, start_response): | |
|
387 | log.debug('http-app: handling git stream') | |||
361 | repo_path = environ['HTTP_X_RC_REPO_PATH'] |
|
388 | repo_path = environ['HTTP_X_RC_REPO_PATH'] | |
362 | repo_name = environ['HTTP_X_RC_REPO_NAME'] |
|
389 | repo_name = environ['HTTP_X_RC_REPO_NAME'] | |
363 | packed_config = base64.b64decode( |
|
390 | packed_config = base64.b64decode( | |
@@ -365,6 +392,8 b' class HTTPApplication(object):' | |||||
365 | config = msgpack.unpackb(packed_config) |
|
392 | config = msgpack.unpackb(packed_config) | |
366 |
|
393 | |||
367 | environ['PATH_INFO'] = environ['HTTP_X_RC_PATH_INFO'] |
|
394 | environ['PATH_INFO'] = environ['HTTP_X_RC_PATH_INFO'] | |
|
395 | self.set_env_from_config(environ, config) | |||
|
396 | ||||
368 | content_type = environ.get('CONTENT_TYPE', '') |
|
397 | content_type = environ.get('CONTENT_TYPE', '') | |
369 |
|
398 | |||
370 | path = environ['PATH_INFO'] |
|
399 | path = environ['PATH_INFO'] | |
@@ -388,6 +417,9 b' class HTTPApplication(object):' | |||||
388 | else: |
|
417 | else: | |
389 | app = scm_app.create_git_wsgi_app( |
|
418 | app = scm_app.create_git_wsgi_app( | |
390 | repo_path, repo_name, config) |
|
419 | repo_path, repo_name, config) | |
|
420 | ||||
|
421 | log.debug('http-app: starting app handler ' | |||
|
422 | 'with %s and process request', app) | |||
391 | return app(environ, start_response) |
|
423 | return app(environ, start_response) | |
392 |
|
424 | |||
393 | return _git_stream |
|
425 | return _git_stream |
General Comments 0
You need to be logged in to leave comments.
Login now