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 | 1 | [bumpversion] |
|
2 |
current_version = 4. |
|
|
2 | current_version = 4.10.0 | |
|
3 | 3 | message = release: Bump version {current_version} to {new_version} |
|
4 | 4 | |
|
5 | 5 | [bumpversion:file:vcsserver/VERSION] |
@@ -5,12 +5,10 b' done = false' | |||
|
5 | 5 | done = true |
|
6 | 6 | |
|
7 | 7 | [task:fixes_on_stable] |
|
8 | done = true | |
|
9 | 8 | |
|
10 | 9 | [task:pip2nix_generated] |
|
11 | done = true | |
|
12 | 10 | |
|
13 | 11 | [release] |
|
14 |
state = |
|
|
15 |
version = 4. |
|
|
12 | state = in_progress | |
|
13 | version = 4.10.0 | |
|
16 | 14 |
@@ -16,12 +16,19 b' let' | |||
|
16 | 16 | pkgs = pkgs_.overridePackages (self: super: { |
|
17 | 17 | # bump GIT version |
|
18 | 18 | git = pkgs.lib.overrideDerivation pkgs_.git (oldAttrs: { |
|
19 |
name = "git-2. |
|
|
19 | name = "git-2.13.5"; | |
|
20 | 20 | src = pkgs.fetchurl { |
|
21 |
url = "https://www.kernel.org/pub/software/scm/git/git-2. |
|
|
22 | sha256 = "00ir7qmgfszwrhxjzxwixk7wp35gxvvw467gr30bagwsrdza7gm4"; | |
|
21 | url = "https://www.kernel.org/pub/software/scm/git/git-2.13.5.tar.xz"; | |
|
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 | 34 | # Override subversion derivation to |
@@ -3,13 +3,13 b'' | |||
|
3 | 3 | |
|
4 | 4 | { |
|
5 | 5 | Beaker = super.buildPythonPackage { |
|
6 |
name = "Beaker-1. |
|
|
6 | name = "Beaker-1.9.0"; | |
|
7 | 7 | buildInputs = with self; []; |
|
8 | 8 | doCheck = false; |
|
9 | propagatedBuildInputs = with self; []; | |
|
9 | propagatedBuildInputs = with self; [funcsigs]; | |
|
10 | 10 | src = fetchurl { |
|
11 | url = "https://pypi.python.org/packages/97/8e/409d2e7c009b8aa803dc9e6f239f1db7c3cdf578249087a404e7c27a505d/Beaker-1.7.0.tar.gz"; | |
|
12 | md5 = "386be3f7fe427358881eee4622b428b3"; | |
|
11 | url = "https://pypi.python.org/packages/93/b2/12de6937b06e9615dbb3cb3a1c9af17f133f435bdef59f4ad42032b6eb49/Beaker-1.9.0.tar.gz"; | |
|
12 | md5 = "38b3fcdfa24faf97c6cf66991eb54e9c"; | |
|
13 | 13 | }; |
|
14 | 14 | meta = { |
|
15 | 15 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
@@ -29,13 +29,13 b'' | |||
|
29 | 29 | }; |
|
30 | 30 | }; |
|
31 | 31 | Mako = super.buildPythonPackage { |
|
32 |
name = "Mako-1.0. |
|
|
32 | name = "Mako-1.0.7"; | |
|
33 | 33 | buildInputs = with self; []; |
|
34 | 34 | doCheck = false; |
|
35 | 35 | propagatedBuildInputs = with self; [MarkupSafe]; |
|
36 | 36 | src = fetchurl { |
|
37 |
url = "https://pypi.python.org/packages/ |
|
|
38 | md5 = "a28e22a339080316b2acc352b9ee631c"; | |
|
37 | url = "https://pypi.python.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz"; | |
|
38 | md5 = "5836cc997b1b773ef389bf6629c30e65"; | |
|
39 | 39 | }; |
|
40 | 40 | meta = { |
|
41 | 41 | license = [ pkgs.lib.licenses.mit ]; |
@@ -68,26 +68,26 b'' | |||
|
68 | 68 | }; |
|
69 | 69 | }; |
|
70 | 70 | WebOb = super.buildPythonPackage { |
|
71 |
name = "WebOb-1.3 |
|
|
71 | name = "WebOb-1.7.3"; | |
|
72 | 72 | buildInputs = with self; []; |
|
73 | 73 | doCheck = false; |
|
74 | 74 | propagatedBuildInputs = with self; []; |
|
75 | 75 | src = fetchurl { |
|
76 |
url = "https://pypi.python.org/packages/ |
|
|
77 | md5 = "20918251c5726956ba8fef22d1556177"; | |
|
76 | url = "https://pypi.python.org/packages/46/87/2f96d8d43b2078fae6e1d33fa86b95c228cebed060f4e3c7576cc44ea83b/WebOb-1.7.3.tar.gz"; | |
|
77 | md5 = "350028baffc508e3d23c078118e35316"; | |
|
78 | 78 | }; |
|
79 | 79 | meta = { |
|
80 | 80 | license = [ pkgs.lib.licenses.mit ]; |
|
81 | 81 | }; |
|
82 | 82 | }; |
|
83 | 83 | WebTest = super.buildPythonPackage { |
|
84 |
name = "WebTest- |
|
|
84 | name = "WebTest-2.0.27"; | |
|
85 | 85 | buildInputs = with self; []; |
|
86 | 86 | doCheck = false; |
|
87 | propagatedBuildInputs = with self; [WebOb]; | |
|
87 | propagatedBuildInputs = with self; [six WebOb waitress beautifulsoup4]; | |
|
88 | 88 | src = fetchurl { |
|
89 | url = "https://pypi.python.org/packages/51/3d/84fd0f628df10b30c7db87895f56d0158e5411206b721ca903cb51bfd948/WebTest-1.4.3.zip"; | |
|
90 | md5 = "631ce728bed92c681a4020a36adbc353"; | |
|
89 | url = "https://pypi.python.org/packages/80/fa/ca3a759985c72e3a124cbca3e1f8a2e931a07ffd31fd45d8f7bf21cb95cf/WebTest-2.0.27.tar.gz"; | |
|
90 | md5 = "54e6515ac71c51b6fc90179483c749ad"; | |
|
91 | 91 | }; |
|
92 | 92 | meta = { |
|
93 | 93 | license = [ pkgs.lib.licenses.mit ]; |
@@ -106,6 +106,19 b'' | |||
|
106 | 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 | 122 | configobj = super.buildPythonPackage { |
|
110 | 123 | name = "configobj-5.0.6"; |
|
111 | 124 | buildInputs = with self; []; |
@@ -184,14 +197,27 b'' | |||
|
184 | 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 | 213 | gevent = super.buildPythonPackage { |
|
188 |
name = "gevent-1. |
|
|
214 | name = "gevent-1.2.2"; | |
|
189 | 215 | buildInputs = with self; []; |
|
190 | 216 | doCheck = false; |
|
191 | 217 | propagatedBuildInputs = with self; [greenlet]; |
|
192 | 218 | src = fetchurl { |
|
193 | url = "https://pypi.python.org/packages/43/8f/cb3224a0e6ab663547f45c10d0651cfd52633fde4283bf68d627084df8cc/gevent-1.1.2.tar.gz"; | |
|
194 | md5 = "bb32a2f852a4997138014d5007215c6e"; | |
|
219 | url = "https://pypi.python.org/packages/1b/92/b111f76e54d2be11375b47b213b56687214f258fd9dae703546d30b837be/gevent-1.2.2.tar.gz"; | |
|
220 | md5 = "7f0baf355384fe5ff2ecf66853422554"; | |
|
195 | 221 | }; |
|
196 | 222 | meta = { |
|
197 | 223 | license = [ pkgs.lib.licenses.mit ]; |
@@ -211,26 +237,26 b'' | |||
|
211 | 237 | }; |
|
212 | 238 | }; |
|
213 | 239 | greenlet = super.buildPythonPackage { |
|
214 |
name = "greenlet-0.4.1 |
|
|
240 | name = "greenlet-0.4.12"; | |
|
215 | 241 | buildInputs = with self; []; |
|
216 | 242 | doCheck = false; |
|
217 | 243 | propagatedBuildInputs = with self; []; |
|
218 | 244 | src = fetchurl { |
|
219 |
url = "https://pypi.python.org/packages/6 |
|
|
220 | md5 = "bed0c4b3b896702131f4d5c72f87c41d"; | |
|
245 | url = "https://pypi.python.org/packages/be/76/82af375d98724054b7e273b5d9369346937324f9bcc20980b45b068ef0b0/greenlet-0.4.12.tar.gz"; | |
|
246 | md5 = "e8637647d58a26c4a1f51ca393e53c00"; | |
|
221 | 247 | }; |
|
222 | 248 | meta = { |
|
223 | 249 | license = [ pkgs.lib.licenses.mit ]; |
|
224 | 250 | }; |
|
225 | 251 | }; |
|
226 | 252 | gunicorn = super.buildPythonPackage { |
|
227 |
name = "gunicorn-19. |
|
|
253 | name = "gunicorn-19.7.1"; | |
|
228 | 254 | buildInputs = with self; []; |
|
229 | 255 | doCheck = false; |
|
230 | 256 | propagatedBuildInputs = with self; []; |
|
231 | 257 | src = fetchurl { |
|
232 |
url = "https://pypi.python.org/packages/ |
|
|
233 | md5 = "338e5e8a83ea0f0625f768dba4597530"; | |
|
258 | url = "https://pypi.python.org/packages/30/3a/10bb213cede0cc4d13ac2263316c872a64bf4c819000c8ccd801f1d5f822/gunicorn-19.7.1.tar.gz"; | |
|
259 | md5 = "174d3c3cd670a5be0404d84c484e590c"; | |
|
234 | 260 | }; |
|
235 | 261 | meta = { |
|
236 | 262 | license = [ pkgs.lib.licenses.mit ]; |
@@ -250,18 +276,31 b'' | |||
|
250 | 276 | }; |
|
251 | 277 | }; |
|
252 | 278 | hgsubversion = super.buildPythonPackage { |
|
253 |
name = "hgsubversion-1.8. |
|
|
279 | name = "hgsubversion-1.8.7"; | |
|
254 | 280 | buildInputs = with self; []; |
|
255 | 281 | doCheck = false; |
|
256 | 282 | propagatedBuildInputs = with self; [mercurial subvertpy]; |
|
257 | 283 | src = fetchurl { |
|
258 | url = "https://pypi.python.org/packages/ce/97/032e5093ad250e9908cea04395cbddb6902d587f712a79b53b2d778bdfdd/hgsubversion-1.8.6.tar.gz"; | |
|
259 | md5 = "9310cb266031cf8d0779885782a84a5b"; | |
|
284 | url = "https://pypi.python.org/packages/1c/b8/ff4d2e0ec486f9765b410f09728c02a010e7485d68d6154968074498a403/hgsubversion-1.8.7.tar.gz"; | |
|
285 | md5 = "289f1c36c13bd6a3435a9be390a77bdc"; | |
|
260 | 286 | }; |
|
261 | 287 | meta = { |
|
262 | 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 | 304 | infrae.cache = super.buildPythonPackage { |
|
266 | 305 | name = "infrae.cache-1.0.1"; |
|
267 | 306 | buildInputs = with self; []; |
@@ -276,13 +315,13 b'' | |||
|
276 | 315 | }; |
|
277 | 316 | }; |
|
278 | 317 | ipdb = super.buildPythonPackage { |
|
279 |
name = "ipdb-0.10. |
|
|
318 | name = "ipdb-0.10.3"; | |
|
280 | 319 | buildInputs = with self; []; |
|
281 | 320 | doCheck = false; |
|
282 |
propagatedBuildInputs = with self; [ipython |
|
|
321 | propagatedBuildInputs = with self; [setuptools ipython]; | |
|
283 | 322 | src = fetchurl { |
|
284 | url = "https://pypi.python.org/packages/eb/0a/0a37dc19572580336ad3813792c0d18c8d7117c2d66fc63c501f13a7a8f8/ipdb-0.10.1.tar.gz"; | |
|
285 | md5 = "4aeab65f633ddc98ebdb5eebf08dc713"; | |
|
323 | url = "https://pypi.python.org/packages/ad/cc/0e7298e1fbf2efd52667c9354a12aa69fb6f796ce230cca03525051718ef/ipdb-0.10.3.tar.gz"; | |
|
324 | md5 = "def1f6ac075d54bdee07e6501263d4fa"; | |
|
286 | 325 | }; |
|
287 | 326 | meta = { |
|
288 | 327 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
@@ -354,13 +393,13 b'' | |||
|
354 | 393 | }; |
|
355 | 394 | }; |
|
356 | 395 | pathlib2 = super.buildPythonPackage { |
|
357 |
name = "pathlib2-2. |
|
|
396 | name = "pathlib2-2.3.0"; | |
|
358 | 397 | buildInputs = with self; []; |
|
359 | 398 | doCheck = false; |
|
360 | propagatedBuildInputs = with self; [six]; | |
|
399 | propagatedBuildInputs = with self; [six scandir]; | |
|
361 | 400 | src = fetchurl { |
|
362 |
url = "https://pypi.python.org/packages/c |
|
|
363 | md5 = "38e4f58b4d69dfcb9edb49a54a8b28d2"; | |
|
401 | url = "https://pypi.python.org/packages/a1/14/df0deb867c2733f7d857523c10942b3d6612a1b222502fdffa9439943dfb/pathlib2-2.3.0.tar.gz"; | |
|
402 | md5 = "89c90409d11fd5947966b6a30a47d18c"; | |
|
364 | 403 | }; |
|
365 | 404 | meta = { |
|
366 | 405 | license = [ pkgs.lib.licenses.mit ]; |
@@ -392,40 +431,66 b'' | |||
|
392 | 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 | 460 | prompt-toolkit = super.buildPythonPackage { |
|
396 |
name = "prompt-toolkit-1.0.1 |
|
|
461 | name = "prompt-toolkit-1.0.15"; | |
|
397 | 462 | buildInputs = with self; []; |
|
398 | 463 | doCheck = false; |
|
399 | 464 | propagatedBuildInputs = with self; [six wcwidth]; |
|
400 | 465 | src = fetchurl { |
|
401 |
url = "https://pypi.python.org/packages/55 |
|
|
402 | md5 = "f24061ae133ed32c6b764e92bd48c496"; | |
|
466 | url = "https://pypi.python.org/packages/8a/ad/cf6b128866e78ad6d7f1dc5b7f99885fb813393d9860778b2984582e81b5/prompt_toolkit-1.0.15.tar.gz"; | |
|
467 | md5 = "8fe70295006dbc8afedd43e5eba99032"; | |
|
403 | 468 | }; |
|
404 | 469 | meta = { |
|
405 | 470 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
|
406 | 471 | }; |
|
407 | 472 | }; |
|
408 | 473 | ptyprocess = super.buildPythonPackage { |
|
409 |
name = "ptyprocess-0.5. |
|
|
474 | name = "ptyprocess-0.5.2"; | |
|
410 | 475 | buildInputs = with self; []; |
|
411 | 476 | doCheck = false; |
|
412 | 477 | propagatedBuildInputs = with self; []; |
|
413 | 478 | src = fetchurl { |
|
414 |
url = "https://pypi.python.org/packages/d |
|
|
415 | md5 = "94e537122914cc9ec9c1eadcd36e73a1"; | |
|
479 | url = "https://pypi.python.org/packages/51/83/5d07dc35534640b06f9d9f1a1d2bc2513fb9cc7595a1b0e28ae5477056ce/ptyprocess-0.5.2.tar.gz"; | |
|
480 | md5 = "d3b8febae1b8c53b054bd818d0bb8665"; | |
|
416 | 481 | }; |
|
417 | 482 | meta = { |
|
418 | 483 | license = [ ]; |
|
419 | 484 | }; |
|
420 | 485 | }; |
|
421 | 486 | py = super.buildPythonPackage { |
|
422 |
name = "py-1.4.3 |
|
|
487 | name = "py-1.4.34"; | |
|
423 | 488 | buildInputs = with self; []; |
|
424 | 489 | doCheck = false; |
|
425 | 490 | propagatedBuildInputs = with self; []; |
|
426 | 491 | src = fetchurl { |
|
427 |
url = "https://pypi.python.org/packages/ |
|
|
428 | md5 = "5d2c63c56dc3f2115ec35c066ecd582b"; | |
|
492 | url = "https://pypi.python.org/packages/68/35/58572278f1c097b403879c1e9369069633d1cbad5239b9057944bb764782/py-1.4.34.tar.gz"; | |
|
493 | md5 = "d9c3d8f734b0819ff48e355d77bf1730"; | |
|
429 | 494 | }; |
|
430 | 495 | meta = { |
|
431 | 496 | license = [ pkgs.lib.licenses.mit ]; |
@@ -445,13 +510,13 b'' | |||
|
445 | 510 | }; |
|
446 | 511 | }; |
|
447 | 512 | pyramid = super.buildPythonPackage { |
|
448 |
name = "pyramid-1. |
|
|
513 | name = "pyramid-1.9.1"; | |
|
449 | 514 | buildInputs = with self; []; |
|
450 | 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 | 517 | src = fetchurl { |
|
453 | url = "https://pypi.python.org/packages/33/91/55f5c661f8923902cd1f68d75f2b937c45e7682857356cf18f0be5493899/pyramid-1.7.4.tar.gz"; | |
|
454 | md5 = "6ef1dfdcff9136d04490410757c4c446"; | |
|
518 | url = "https://pypi.python.org/packages/9a/57/73447be9e7d0512d601e3f0a1fb9d7d1efb941911f49efdfe036d2826507/pyramid-1.9.1.tar.gz"; | |
|
519 | md5 = "0163e19c58c2d12976a3b6fdb57e052d"; | |
|
455 | 520 | }; |
|
456 | 521 | meta = { |
|
457 | 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 | 551 | pytest = super.buildPythonPackage { |
|
487 |
name = "pytest-3. |
|
|
552 | name = "pytest-3.1.2"; | |
|
488 | 553 | buildInputs = with self; []; |
|
489 | 554 | doCheck = false; |
|
490 | propagatedBuildInputs = with self; [py]; | |
|
555 | propagatedBuildInputs = with self; [py setuptools]; | |
|
491 | 556 | src = fetchurl { |
|
492 | url = "https://pypi.python.org/packages/a8/87/b7ca49efe52d2b4169f2bfc49aa5e384173c4619ea8e635f123a0dac5b75/pytest-3.0.5.tar.gz"; | |
|
493 | md5 = "cefd527b59332688bf5db4a10aa8a7cb"; | |
|
557 | url = "https://pypi.python.org/packages/72/2b/2d3155e01f45a5a04427857352ee88220ee39550b2bc078f9db3190aea46/pytest-3.1.2.tar.gz"; | |
|
558 | md5 = "c4d179f89043cc925e1c169d03128e02"; | |
|
494 | 559 | }; |
|
495 | 560 | meta = { |
|
496 | 561 | license = [ pkgs.lib.licenses.mit ]; |
@@ -510,52 +575,52 b'' | |||
|
510 | 575 | }; |
|
511 | 576 | }; |
|
512 | 577 | pytest-cov = super.buildPythonPackage { |
|
513 |
name = "pytest-cov-2. |
|
|
578 | name = "pytest-cov-2.5.1"; | |
|
514 | 579 | buildInputs = with self; []; |
|
515 | 580 | doCheck = false; |
|
516 | 581 | propagatedBuildInputs = with self; [pytest coverage]; |
|
517 | 582 | src = fetchurl { |
|
518 |
url = "https://pypi.python.org/packages/0 |
|
|
519 | md5 = "2fda09677d232acc99ec1b3c5831e33f"; | |
|
583 | url = "https://pypi.python.org/packages/24/b4/7290d65b2f3633db51393bdf8ae66309b37620bc3ec116c5e357e3e37238/pytest-cov-2.5.1.tar.gz"; | |
|
584 | md5 = "5acf38d4909e19819eb5c1754fbfc0ac"; | |
|
520 | 585 | }; |
|
521 | 586 | meta = { |
|
522 | 587 | license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ]; |
|
523 | 588 | }; |
|
524 | 589 | }; |
|
525 | 590 | pytest-profiling = super.buildPythonPackage { |
|
526 |
name = "pytest-profiling-1.2. |
|
|
591 | name = "pytest-profiling-1.2.6"; | |
|
527 | 592 | buildInputs = with self; []; |
|
528 | 593 | doCheck = false; |
|
529 | 594 | propagatedBuildInputs = with self; [six pytest gprof2dot]; |
|
530 | 595 | src = fetchurl { |
|
531 |
url = "https://pypi.python.org/packages/73 |
|
|
532 | md5 = "0a16d7dda2d23b91e9730fa4558cf728"; | |
|
596 | url = "https://pypi.python.org/packages/f9/0d/df67fb9ce16c2cef201693da956321b1bccfbf9a4ead39748b9f9d1d74cb/pytest-profiling-1.2.6.tar.gz"; | |
|
597 | md5 = "50eb4c66c3762a2f1a49669bedc0b894"; | |
|
533 | 598 | }; |
|
534 | 599 | meta = { |
|
535 | 600 | license = [ pkgs.lib.licenses.mit ]; |
|
536 | 601 | }; |
|
537 | 602 | }; |
|
538 | 603 | pytest-runner = super.buildPythonPackage { |
|
539 |
name = "pytest-runner-2. |
|
|
604 | name = "pytest-runner-2.11.1"; | |
|
540 | 605 | buildInputs = with self; []; |
|
541 | 606 | doCheck = false; |
|
542 | 607 | propagatedBuildInputs = with self; []; |
|
543 | 608 | src = fetchurl { |
|
544 | url = "https://pypi.python.org/packages/11/d4/c335ddf94463e451109e3494e909765c3e5205787b772e3b25ee8601b86a/pytest-runner-2.9.tar.gz"; | |
|
545 | md5 = "2212a2e34404b0960b2fdc2c469247b2"; | |
|
609 | url = "https://pypi.python.org/packages/9e/4d/08889e5e27a9f5d6096b9ad257f4dea1faabb03c5ded8f665ead448f5d8a/pytest-runner-2.11.1.tar.gz"; | |
|
610 | md5 = "bdb73eb18eca2727944a2dcf963c5a81"; | |
|
546 | 611 | }; |
|
547 | 612 | meta = { |
|
548 | 613 | license = [ pkgs.lib.licenses.mit ]; |
|
549 | 614 | }; |
|
550 | 615 | }; |
|
551 | 616 | pytest-sugar = super.buildPythonPackage { |
|
552 |
name = "pytest-sugar-0. |
|
|
617 | name = "pytest-sugar-0.8.0"; | |
|
553 | 618 | buildInputs = with self; []; |
|
554 | 619 | doCheck = false; |
|
555 | 620 | propagatedBuildInputs = with self; [pytest termcolor]; |
|
556 | 621 | src = fetchurl { |
|
557 | url = "https://pypi.python.org/packages/03/97/05d988b4fa870e7373e8ee4582408543b9ca2bd35c3c67b569369c6f9c49/pytest-sugar-0.7.1.tar.gz"; | |
|
558 | md5 = "7400f7c11f3d572b2c2a3b60352d35fe"; | |
|
622 | url = "https://pypi.python.org/packages/a5/b0/b2773dee078f17773a5bf2dfad49b0be57b6354bbd84bbefe4313e509d87/pytest-sugar-0.8.0.tar.gz"; | |
|
623 | md5 = "8cafbdad648068e0e44b8fc5f9faae42"; | |
|
559 | 624 | }; |
|
560 | 625 | meta = { |
|
561 | 626 | license = [ pkgs.lib.licenses.bsdOriginal ]; |
@@ -588,7 +653,7 b'' | |||
|
588 | 653 | }; |
|
589 | 654 | }; |
|
590 | 655 | rhodecode-vcsserver = super.buildPythonPackage { |
|
591 |
name = "rhodecode-vcsserver-4. |
|
|
656 | name = "rhodecode-vcsserver-4.10.0"; | |
|
592 | 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 | 658 | doCheck = true; |
|
594 | 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 | 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 | 678 | setuptools = super.buildPythonPackage { |
|
601 | 679 | name = "setuptools-30.1.0"; |
|
602 | 680 | buildInputs = with self; []; |
@@ -624,13 +702,13 b'' | |||
|
624 | 702 | }; |
|
625 | 703 | }; |
|
626 | 704 | simplejson = super.buildPythonPackage { |
|
627 |
name = "simplejson-3. |
|
|
705 | name = "simplejson-3.11.1"; | |
|
628 | 706 | buildInputs = with self; []; |
|
629 | 707 | doCheck = false; |
|
630 | 708 | propagatedBuildInputs = with self; []; |
|
631 | 709 | src = fetchurl { |
|
632 |
url = "https://pypi.python.org/packages/6d |
|
|
633 | md5 = "a5fc7d05d4cb38492285553def5d4b46"; | |
|
710 | url = "https://pypi.python.org/packages/08/48/c97b668d6da7d7bebe7ea1817a6f76394b0ec959cb04214ca833c34359df/simplejson-3.11.1.tar.gz"; | |
|
711 | md5 = "6e2f1bd5fb0a926facf5d89d217a7183"; | |
|
634 | 712 | }; |
|
635 | 713 | meta = { |
|
636 | 714 | license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ]; |
@@ -650,13 +728,13 b'' | |||
|
650 | 728 | }; |
|
651 | 729 | }; |
|
652 | 730 | subprocess32 = super.buildPythonPackage { |
|
653 |
name = "subprocess32-3.2. |
|
|
731 | name = "subprocess32-3.2.7"; | |
|
654 | 732 | buildInputs = with self; []; |
|
655 | 733 | doCheck = false; |
|
656 | 734 | propagatedBuildInputs = with self; []; |
|
657 | 735 | src = fetchurl { |
|
658 |
url = "https://pypi.python.org/packages/ |
|
|
659 | md5 = "754c5ab9f533e764f931136974b618f1"; | |
|
736 | url = "https://pypi.python.org/packages/b8/2f/49e53b0d0e94611a2dc624a1ad24d41b6d94d0f1b0a078443407ea2214c2/subprocess32-3.2.7.tar.gz"; | |
|
737 | md5 = "824c801e479d3e916879aae3e9c15e16"; | |
|
660 | 738 | }; |
|
661 | 739 | meta = { |
|
662 | 740 | license = [ pkgs.lib.licenses.psfl ]; |
@@ -715,26 +793,26 b'' | |||
|
715 | 793 | }; |
|
716 | 794 | }; |
|
717 | 795 | venusian = super.buildPythonPackage { |
|
718 | name = "venusian-1.0"; | |
|
796 | name = "venusian-1.1.0"; | |
|
719 | 797 | buildInputs = with self; []; |
|
720 | 798 | doCheck = false; |
|
721 | 799 | propagatedBuildInputs = with self; []; |
|
722 | 800 | src = fetchurl { |
|
723 | url = "https://pypi.python.org/packages/86/20/1948e0dfc4930ddde3da8c33612f6a5717c0b4bc28f591a5c5cf014dd390/venusian-1.0.tar.gz"; | |
|
724 | md5 = "dccf2eafb7113759d60c86faf5538756"; | |
|
801 | url = "https://pypi.python.org/packages/38/24/b4b470ab9e0a2e2e9b9030c7735828c8934b4c6b45befd1bb713ec2aeb2d/venusian-1.1.0.tar.gz"; | |
|
802 | md5 = "56bc5e6756e4bda37bcdb94f74a72b8f"; | |
|
725 | 803 | }; |
|
726 | 804 | meta = { |
|
727 | 805 | license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ]; |
|
728 | 806 | }; |
|
729 | 807 | }; |
|
730 | 808 | waitress = super.buildPythonPackage { |
|
731 |
name = "waitress-1.0. |
|
|
809 | name = "waitress-1.0.2"; | |
|
732 | 810 | buildInputs = with self; []; |
|
733 | 811 | doCheck = false; |
|
734 | 812 | propagatedBuildInputs = with self; []; |
|
735 | 813 | src = fetchurl { |
|
736 |
url = "https://pypi.python.org/packages/ |
|
|
737 | md5 = "dda92358a7569669086155923a46e57c"; | |
|
814 | url = "https://pypi.python.org/packages/cd/f4/400d00863afa1e03618e31fd7e2092479a71b8c9718b00eb1eeb603746c6/waitress-1.0.2.tar.gz"; | |
|
815 | md5 = "b968f39e95d609f6194c6e50425d4bb7"; | |
|
738 | 816 | }; |
|
739 | 817 | meta = { |
|
740 | 818 | license = [ pkgs.lib.licenses.zpt21 ]; |
@@ -1,40 +1,41 b'' | |||
|
1 | 1 | ## core |
|
2 | 2 | setuptools==30.1.0 |
|
3 | 3 | |
|
4 |
Beaker==1. |
|
|
4 | Beaker==1.9.0 | |
|
5 | 5 | configobj==5.0.6 |
|
6 | 6 | decorator==4.0.11 |
|
7 | 7 | dulwich==0.13.0 |
|
8 |
hgsubversion==1.8. |
|
|
8 | hgsubversion==1.8.7 | |
|
9 | 9 | hg-evolve==6.6.0 |
|
10 | 10 | infrae.cache==1.0.1 |
|
11 | 11 | mercurial==4.2.3 |
|
12 | 12 | msgpack-python==0.4.8 |
|
13 | 13 | pyramid-jinja2==2.5 |
|
14 |
pyramid==1. |
|
|
14 | pyramid==1.9.1 | |
|
15 | 15 | pyramid-mako==1.0.2 |
|
16 | 16 | repoze.lru==0.6 |
|
17 |
simplejson==3. |
|
|
18 |
subprocess32==3.2. |
|
|
17 | simplejson==3.11.1 | |
|
18 | subprocess32==3.2.7 | |
|
19 | 19 | |
|
20 | 20 | # Custom subvertpy that is not available on pypi. |
|
21 | 21 | https://code.rhodecode.com/upstream/subvertpy/archive/subvertpy-0.9.3.tar.gz?md5=4e49da2fe07608239cc9a80a7bb8f33c#egg=subvertpy==0.9.3 |
|
22 | 22 | |
|
23 | 23 | six==1.9.0 |
|
24 | 24 | translationstring==1.3 |
|
25 |
WebOb==1. |
|
|
25 | WebOb==1.7.3 | |
|
26 | 26 | wheel==0.29.0 |
|
27 | 27 | zope.deprecation==4.1.2 |
|
28 | 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 | 36 | ## debug |
|
31 |
ipdb==0.10. |
|
|
37 | ipdb==0.10.3 | |
|
32 | 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 | 40 | ## test related requirements |
|
40 | 41 | -r requirements_test.txt |
@@ -1,15 +1,15 b'' | |||
|
1 | 1 | # test related requirements |
|
2 |
pytest==3. |
|
|
3 |
py==1.4.3 |
|
|
4 |
pytest-cov==2. |
|
|
5 |
pytest-sugar==0. |
|
|
6 |
pytest-runner==2. |
|
|
2 | pytest==3.1.2 | |
|
3 | py==1.4.34 | |
|
4 | pytest-cov==2.5.1 | |
|
5 | pytest-sugar==0.8.0 | |
|
6 | pytest-runner==2.11.1 | |
|
7 | 7 | pytest-catchlog==1.2.2 |
|
8 |
pytest-profiling==1.2. |
|
|
8 | pytest-profiling==1.2.6 | |
|
9 | 9 | gprof2dot==2016.10.13 |
|
10 | 10 | pytest-timeout==1.2.0 |
|
11 | 11 | |
|
12 | 12 | mock==1.0.1 |
|
13 |
WebTest== |
|
|
13 | WebTest==2.0.27 | |
|
14 | 14 | cov-core==1.15.0 |
|
15 | 15 | coverage==3.7.1 |
@@ -21,11 +21,31 b' class EchoApp(object):' | |||
|
21 | 21 | log.debug("Content-Length: %s", environ.get('CONTENT_LENGTH')) |
|
22 | 22 | environ['wsgi.input'].read() |
|
23 | 23 | status = '200 OK' |
|
24 | headers = [] | |
|
24 | headers = [('Content-Type', 'text/plain')] | |
|
25 | 25 | start_response(status, headers) |
|
26 | 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 | 49 | def create_app(): |
|
30 | 50 | """ |
|
31 | 51 | Allows to run this app directly in a WSGI server. |
@@ -628,6 +628,7 b' class GitRemote(object):' | |||
|
628 | 628 | |
|
629 | 629 | return ''.join(p), ''.join(p.error) |
|
630 | 630 | except (EnvironmentError, OSError) as err: |
|
631 | cmd = ' '.join(cmd) # human friendly CMD | |
|
631 | 632 | tb_err = ("Couldn't run git command (%s).\n" |
|
632 | 633 | "Original error was:%s\n" % (cmd, err)) |
|
633 | 634 | log.exception(tb_err) |
@@ -33,8 +33,8 b' from vcsserver.hgcompat import (' | |||
|
33 | 33 | archival, bin, clone, config as hgconfig, diffopts, hex, |
|
34 | 34 | hg_url as url_parser, httpbasicauthhandler, httpdigestauthhandler, |
|
35 | 35 | httppeer, localrepository, match, memctx, exchange, memfilectx, nullrev, |
|
36 |
patch, peer, revrange, ui, Abort, LookupError, RepoError, |
|
|
37 | InterventionRequired, RequirementError) | |
|
36 | patch, peer, revrange, ui, hg_tag, Abort, LookupError, RepoError, | |
|
37 | RepoLookupError, InterventionRequired, RequirementError) | |
|
38 | 38 | |
|
39 | 39 | log = logging.getLogger(__name__) |
|
40 | 40 | |
@@ -127,6 +127,9 b' class HgRemote(object):' | |||
|
127 | 127 | "message": self.ctx_description, |
|
128 | 128 | "parents": self.ctx_parents, |
|
129 | 129 | "status": self.ctx_status, |
|
130 | "obsolete": self.ctx_obsolete, | |
|
131 | "phase": self.ctx_phase, | |
|
132 | "hidden": self.ctx_hidden, | |
|
130 | 133 | "_file_paths": self.ctx_list, |
|
131 | 134 | } |
|
132 | 135 | |
@@ -629,7 +632,7 b' class HgRemote(object):' | |||
|
629 | 632 | |
|
630 | 633 | date = (tag_time, tag_timezone) |
|
631 | 634 | try: |
|
632 |
|
|
|
635 | hg_tag.tag(repo, name, node, message, local, user, date) | |
|
633 | 636 | except Abort as e: |
|
634 | 637 | log.exception("Tag operation aborted") |
|
635 | 638 | # Exception can contain unicode which we convert |
@@ -725,11 +728,11 b' class HgRemote(object):' | |||
|
725 | 728 | commands.merge(baseui, repo, rev=revision) |
|
726 | 729 | |
|
727 | 730 | @reraise_safe_exceptions |
|
728 | def commit(self, wire, message, username): | |
|
731 | def commit(self, wire, message, username, close_branch=False): | |
|
729 | 732 | repo = self._factory.repo(wire) |
|
730 | 733 | baseui = self._factory._create_config(wire['config']) |
|
731 | 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 | 737 | @reraise_safe_exceptions |
|
735 | 738 | def rebase(self, wire, source=None, dest=None, abort=False): |
@@ -36,6 +36,7 b' from mercurial import unionrepo' | |||
|
36 | 36 | from mercurial import localrepo |
|
37 | 37 | from mercurial import merge as hg_merge |
|
38 | 38 | from mercurial import subrepo |
|
39 | from mercurial import tags as hg_tag | |
|
39 | 40 | |
|
40 | 41 | from mercurial.commands import clone, nullid, pull |
|
41 | 42 | from mercurial.context import memctx, memfilectx |
@@ -18,6 +18,7 b'' | |||
|
18 | 18 | # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
19 | 19 | |
|
20 | 20 | import io |
|
21 | import os | |
|
21 | 22 | import sys |
|
22 | 23 | import json |
|
23 | 24 | import logging |
@@ -124,6 +125,7 b' def _get_hooks_client(extras):' | |||
|
124 | 125 | def _call_hook(hook_name, extras, writer): |
|
125 | 126 | hooks = _get_hooks_client(extras) |
|
126 | 127 | result = hooks(hook_name, extras) |
|
128 | log.debug('Hooks got result: %s', result) | |
|
127 | 129 | writer.write(result['output']) |
|
128 | 130 | _handle_exception(result) |
|
129 | 131 | |
@@ -131,22 +133,14 b' def _call_hook(hook_name, extras, writer' | |||
|
131 | 133 | |
|
132 | 134 | |
|
133 | 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 | 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 | 144 | def _rev_range_hash(repo, node): |
|
151 | 145 | |
|
152 | 146 | commits = [] |
@@ -159,6 +153,33 b' def _rev_range_hash(repo, node):' | |||
|
159 | 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 | 183 | def pre_push(ui, repo, node=None, **kwargs): |
|
163 | 184 | extras = _extras_from_ui(ui) |
|
164 | 185 | |
@@ -182,6 +203,27 b' def pre_push(ui, repo, node=None, **kwar' | |||
|
182 | 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 | 227 | def post_push(ui, repo, node, **kwargs): |
|
186 | 228 | extras = _extras_from_ui(ui) |
|
187 | 229 | |
@@ -208,12 +250,19 b' def post_push(ui, repo, node, **kwargs):' | |||
|
208 | 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 | 259 | def key_push(ui, repo, **kwargs): |
|
212 | 260 | if kwargs['new'] != '0' and kwargs['namespace'] == 'bookmarks': |
|
213 | 261 | # store new bookmarks in our UI object propagated later to post_push |
|
214 | 262 | ui._rc_pushkey_branches = repo[kwargs['key']].bookmarks() |
|
215 | 263 | return |
|
216 | 264 | |
|
265 | ||
|
217 | 266 | # backward compat |
|
218 | 267 | log_pull_action = post_pull |
|
219 | 268 |
@@ -23,6 +23,7 b' import wsgiref.util' | |||
|
23 | 23 | import traceback |
|
24 | 24 | from itertools import chain |
|
25 | 25 | |
|
26 | import simplejson as json | |
|
26 | 27 | import msgpack |
|
27 | 28 | from beaker.cache import CacheManager |
|
28 | 29 | from beaker.util import parse_cache_config_options |
@@ -269,7 +270,8 b' class HTTPApplication(object):' | |||
|
269 | 270 | return resp |
|
270 | 271 | |
|
271 | 272 | def status_view(self, request): |
|
272 | return {'status': 'OK'} | |
|
273 | import vcsserver | |
|
274 | return {'status': 'OK', 'vcsserver_version': vcsserver.__version__} | |
|
273 | 275 | |
|
274 | 276 | def service_view(self, request): |
|
275 | 277 | import vcsserver |
@@ -310,6 +312,25 b' class HTTPApplication(object):' | |||
|
310 | 312 | return value |
|
311 | 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 | 334 | def hg_proxy(self): |
|
314 | 335 | @wsgiapp |
|
315 | 336 | def _hg_proxy(environ, start_response): |
@@ -334,6 +355,7 b' class HTTPApplication(object):' | |||
|
334 | 355 | else: |
|
335 | 356 | @wsgiapp |
|
336 | 357 | def _hg_stream(environ, start_response): |
|
358 | log.debug('http-app: handling hg stream') | |
|
337 | 359 | repo_path = environ['HTTP_X_RC_REPO_PATH'] |
|
338 | 360 | repo_name = environ['HTTP_X_RC_REPO_NAME'] |
|
339 | 361 | packed_config = base64.b64decode( |
@@ -342,9 +364,13 b' class HTTPApplication(object):' | |||
|
342 | 364 | app = scm_app.create_hg_wsgi_app( |
|
343 | 365 | repo_path, repo_name, config) |
|
344 | 366 | |
|
345 | # Consitent path information for hgweb | |
|
367 | # Consistent path information for hgweb | |
|
346 | 368 | environ['PATH_INFO'] = environ['HTTP_X_RC_PATH_INFO'] |
|
347 | 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 | 374 | return app(environ, ResponseFilter(start_response)) |
|
349 | 375 | return _hg_stream |
|
350 | 376 | |
@@ -358,6 +384,7 b' class HTTPApplication(object):' | |||
|
358 | 384 | else: |
|
359 | 385 | @wsgiapp |
|
360 | 386 | def _git_stream(environ, start_response): |
|
387 | log.debug('http-app: handling git stream') | |
|
361 | 388 | repo_path = environ['HTTP_X_RC_REPO_PATH'] |
|
362 | 389 | repo_name = environ['HTTP_X_RC_REPO_NAME'] |
|
363 | 390 | packed_config = base64.b64decode( |
@@ -365,6 +392,8 b' class HTTPApplication(object):' | |||
|
365 | 392 | config = msgpack.unpackb(packed_config) |
|
366 | 393 | |
|
367 | 394 | environ['PATH_INFO'] = environ['HTTP_X_RC_PATH_INFO'] |
|
395 | self.set_env_from_config(environ, config) | |
|
396 | ||
|
368 | 397 | content_type = environ.get('CONTENT_TYPE', '') |
|
369 | 398 | |
|
370 | 399 | path = environ['PATH_INFO'] |
@@ -388,6 +417,9 b' class HTTPApplication(object):' | |||
|
388 | 417 | else: |
|
389 | 418 | app = scm_app.create_git_wsgi_app( |
|
390 | 419 | repo_path, repo_name, config) |
|
420 | ||
|
421 | log.debug('http-app: starting app handler ' | |
|
422 | 'with %s and process request', app) | |
|
391 | 423 | return app(environ, start_response) |
|
392 | 424 | |
|
393 | 425 | return _git_stream |
General Comments 0
You need to be logged in to leave comments.
Login now