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