##// END OF EJS Templates
beaker: patch for better debugging of function locks
marcink -
r2680:59717596 default
parent child Browse files
Show More
@@ -0,0 +1,20 b''
1 diff -rup Beaker-1.9.1-orig/beaker/container.py Beaker-1.9.1/beaker/container.py
2 --- Beaker-1.9.1-orig/beaker/container.py 2018-04-10 10:23:04.000000000 +0200
3 +++ Beaker-1.9.1/beaker/container.py 2018-04-10 10:23:34.000000000 +0200
4 @@ -353,13 +353,13 @@ class Value(object):
5 debug("get_value returning old value while new one is created")
6 return value
7 else:
8 - debug("lock_creatfunc (didnt wait)")
9 + debug("lock_creatfunc `%s` (didnt wait)", self.createfunc.__name__)
10 has_createlock = True
11
12 if not has_createlock:
13 - debug("lock_createfunc (waiting)")
14 + debug("lock_createfunc `%s` (waiting)", self.createfunc.__name__)
15 creation_lock.acquire()
16 - debug("lock_createfunc (waited)")
17 + debug("lock_createfunc `%s` (waited)", self.createfunc.__name__)
18
19 try:
20 # see if someone created the value already
@@ -1,251 +1,257 b''
1 1 # Overrides for the generated python-packages.nix
2 2 #
3 3 # This function is intended to be used as an extension to the generated file
4 4 # python-packages.nix. The main objective is to add needed dependencies of C
5 5 # libraries and tweak the build instructions where needed.
6 6
7 7 { pkgs, basePythonPackages }:
8 8
9 9 let
10 10 sed = "sed -i";
11 11 localLicenses = {
12 12 repoze = {
13 13 fullName = "Repoze License";
14 14 url = http://www.repoze.org/LICENSE.txt;
15 15 };
16 16 };
17 17
18 18 in
19 19
20 20 self: super: {
21 21
22 22 appenlight-client = super.appenlight-client.override (attrs: {
23 23 meta = {
24 24 license = [ pkgs.lib.licenses.bsdOriginal ];
25 25 };
26 26 });
27 27
28 Beaker = super.Beaker.override (attrs: {
29 patches = [
30 ./patch-beaker-lock-func-debug.diff
31 ];
32 });
33
28 34 future = super.future.override (attrs: {
29 35 meta = {
30 36 license = [ pkgs.lib.licenses.mit ];
31 37 };
32 38 });
33 39
34 40 testpath = super.testpath.override (attrs: {
35 41 meta = {
36 42 license = [ pkgs.lib.licenses.mit ];
37 43 };
38 44 });
39 45
40 46 gnureadline = super.gnureadline.override (attrs: {
41 47 buildInputs = attrs.buildInputs ++ [
42 48 pkgs.ncurses
43 49 ];
44 50 patchPhase = ''
45 51 substituteInPlace setup.py --replace "/bin/bash" "${pkgs.bash}/bin/bash"
46 52 '';
47 53 });
48 54
49 55 gunicorn = super.gunicorn.override (attrs: {
50 56 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
51 57 # johbo: futures is needed as long as we are on Python 2, otherwise
52 58 # gunicorn explodes if used with multiple threads per worker.
53 59 self.futures
54 60 ];
55 61 });
56 62
57 63 nbconvert = super.nbconvert.override (attrs: {
58 64 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
59 65 # marcink: plug in jupyter-client for notebook rendering
60 66 self.jupyter-client
61 67 ];
62 68 });
63 69
64 70 ipython = super.ipython.override (attrs: {
65 71 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
66 72 self.gnureadline
67 73 ];
68 74 });
69 75
70 76 lxml = super.lxml.override (attrs: {
71 77 # johbo: On 16.09 we need this to compile on darwin, otherwise compilation
72 78 # fails on Darwin.
73 79 hardeningDisable = if pkgs.stdenv.isDarwin then [ "format" ] else null;
74 80 buildInputs = with self; [
75 81 pkgs.libxml2
76 82 pkgs.libxslt
77 83 ];
78 84 });
79 85
80 86 MySQL-python = super.MySQL-python.override (attrs: {
81 87 buildInputs = attrs.buildInputs ++ [
82 88 pkgs.openssl
83 89 ];
84 90 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
85 91 pkgs.libmysql
86 92 pkgs.zlib
87 93 ];
88 94 });
89 95
90 96 psutil = super.psutil.override (attrs: {
91 97 buildInputs = attrs.buildInputs ++
92 98 pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.IOKit;
93 99 });
94 100
95 101 psycopg2 = super.psycopg2.override (attrs: {
96 102 buildInputs = attrs.buildInputs ++
97 103 pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.openssl;
98 104 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
99 105 pkgs.postgresql
100 106 ];
101 107 meta = {
102 108 license = pkgs.lib.licenses.lgpl3Plus;
103 109 };
104 110 });
105 111
106 112 pycurl = super.pycurl.override (attrs: {
107 113 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
108 114 pkgs.curl
109 115 pkgs.openssl
110 116 ];
111 117 preConfigure = ''
112 118 substituteInPlace setup.py --replace '--static-libs' '--libs'
113 119 export PYCURL_SSL_LIBRARY=openssl
114 120 '';
115 121 meta = {
116 122 # TODO: It is LGPL and MIT
117 123 license = pkgs.lib.licenses.mit;
118 124 };
119 125 });
120 126
121 127 pyramid = super.pyramid.override (attrs: {
122 128 postFixup = ''
123 129 wrapPythonPrograms
124 130 # TODO: johbo: "wrapPython" adds this magic line which
125 131 # confuses pserve.
126 132 ${sed} '/import sys; sys.argv/d' $out/bin/.pserve-wrapped
127 133 '';
128 134 meta = {
129 135 license = localLicenses.repoze;
130 136 };
131 137 });
132 138
133 139 pyramid-debugtoolbar = super.pyramid-debugtoolbar.override (attrs: {
134 140 meta = {
135 141 license = [ pkgs.lib.licenses.bsdOriginal localLicenses.repoze ];
136 142 };
137 143 });
138 144
139 145 pysqlite = super.pysqlite.override (attrs: {
140 146 propagatedBuildInputs = [
141 147 pkgs.sqlite
142 148 ];
143 149 meta = {
144 150 license = [ pkgs.lib.licenses.zlib pkgs.lib.licenses.libpng ];
145 151 };
146 152 });
147 153
148 154 pytest-runner = super.pytest-runner.override (attrs: {
149 155 propagatedBuildInputs = [
150 156 self.setuptools-scm
151 157 ];
152 158 });
153 159
154 160 python-ldap = super.python-ldap.override (attrs: {
155 161 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
156 162 pkgs.cyrus_sasl
157 163 pkgs.openldap
158 164 pkgs.openssl
159 165 ];
160 166 # TODO: johbo: Remove the "or" once we drop 16.03 support.
161 167 NIX_CFLAGS_COMPILE = "-I${pkgs.cyrus_sasl.dev or pkgs.cyrus_sasl}/include/sasl";
162 168 });
163 169
164 170 python-pam = super.python-pam.override (attrs:
165 171 let
166 172 includeLibPam = pkgs.stdenv.isLinux;
167 173 in {
168 174 # TODO: johbo: Move the option up into the default.nix, we should
169 175 # include python-pam only on supported platforms.
170 176 propagatedBuildInputs = attrs.propagatedBuildInputs ++
171 177 pkgs.lib.optional includeLibPam [
172 178 pkgs.pam
173 179 ];
174 180 # TODO: johbo: Check if this can be avoided, or transform into
175 181 # a real patch
176 182 patchPhase = pkgs.lib.optionals includeLibPam ''
177 183 substituteInPlace pam.py \
178 184 --replace 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so.0"'
179 185 '';
180 186 });
181 187
182 188 URLObject = super.URLObject.override (attrs: {
183 189 meta = {
184 190 license = {
185 191 spdxId = "Unlicense";
186 192 fullName = "The Unlicense";
187 193 url = http://unlicense.org/;
188 194 };
189 195 };
190 196 });
191 197
192 198 docutils = super.docutils.override (attrs: {
193 199 meta = {
194 200 license = pkgs.lib.licenses.bsd2;
195 201 };
196 202 });
197 203
198 204 colander = super.colander.override (attrs: {
199 205 meta = {
200 206 license = localLicenses.repoze;
201 207 };
202 208 });
203 209
204 210 pyramid-beaker = super.pyramid-beaker.override (attrs: {
205 211 meta = {
206 212 license = localLicenses.repoze;
207 213 };
208 214 });
209 215
210 216 pyramid-mako = super.pyramid-mako.override (attrs: {
211 217 meta = {
212 218 license = localLicenses.repoze;
213 219 };
214 220 });
215 221
216 222 repoze.lru = super.repoze.lru.override (attrs: {
217 223 meta = {
218 224 license = localLicenses.repoze;
219 225 };
220 226 });
221 227
222 228 recaptcha-client = super.recaptcha-client.override (attrs: {
223 229 meta = {
224 230 # TODO: It is MIT/X11
225 231 license = pkgs.lib.licenses.mit;
226 232 };
227 233 });
228 234
229 235 python-editor = super.python-editor.override (attrs: {
230 236 meta = {
231 237 license = pkgs.lib.licenses.asl20;
232 238 };
233 239 });
234 240
235 241 translationstring = super.translationstring.override (attrs: {
236 242 meta = {
237 243 license = localLicenses.repoze;
238 244 };
239 245 });
240 246
241 247 venusian = super.venusian.override (attrs: {
242 248 meta = {
243 249 license = localLicenses.repoze;
244 250 };
245 251 });
246 252
247 253 # Avoid that setuptools is replaced, this leads to trouble
248 254 # with buildPythonPackage.
249 255 setuptools = basePythonPackages.setuptools;
250 256
251 257 }
General Comments 0
You need to be logged in to leave comments. Login now