We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Comprehensive list of broken recipes
When working on https://github.com/kivy/python-for-android/pull/1401 I realised we still have some broken recipes in the tree at least for python3crystax.
Even though we don't want to have red builds for things that were already broken, we still want to have a clear status of what's broken and what's not.
Basically the idea is to try to compile every single recipes and add the broken ones in the ignore list (`BROKEN_RECIPES`) from #1401. That way we can track and fix them later on meanwhile keeping a green build.
I would like to address it in this task. Basically the output of the task should be a PR making the `BROKEN_RECIPES` list comprehensive. With bonus points for creating an issue per broken recipes :smile: 


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `ci/constants.py`
Content:
```
1 from enum import Enum
2 
3 
4 class TargetPython(Enum):
5     python2 = 0
6     python3crystax = 1
7 
8 
9 # recipes that currently break the build
10 # a recipe could be broken for a target Python and not for the other,
11 # hence we're maintaining one list per Python target
12 BROKEN_RECIPES_PYTHON2 = set([])
13 BROKEN_RECIPES_PYTHON3_CRYSTAX = set([
14     # not yet python3crystax compatible
15     'apsw', 'atom', 'boost', 'brokenrecipe', 'cdecimal', 'cherrypy',
16     'coverage', 'dateutil', 'enaml', 'ethash', 'kiwisolver', 'libgeos',
17     'libnacl', 'libsodium', 'libtorrent', 'libtribler', 'libzbar', 'libzmq',
18     'm2crypto', 'mysqldb', 'ndghttpsclient', 'pil', 'pycrypto', 'pyethereum',
19     'pygame', 'pyleveldb', 'pyproj', 'pyzmq', 'regex', 'shapely',
20     'simple-crypt', 'twsisted', 'vispy', 'websocket-client', 'zbar',
21     'zeroconf', 'zope',
22     # https://github.com/kivy/python-for-android/issues/550
23     'audiostream',
24     # enum34 is not compatible with Python 3.6 standard library
25     # https://stackoverflow.com/a/45716067/185510
26     'enum34',
27     # https://github.com/kivy/python-for-android/issues/1398
28     'ifaddrs',
29     # https://github.com/kivy/python-for-android/issues/1399
30     'libglob',
31     # cannot find -lcrystax
32     'cffi', 'pycryptodome', 'pymuk', 'secp256k1',
33     # https://github.com/kivy/python-for-android/issues/1404
34     'cryptography',
35     # https://github.com/kivy/python-for-android/issues/1294
36     'ffmpeg', 'ffpyplayer',
37     # https://github.com/kivy/python-for-android/pull/1307 ?
38     'gevent',
39     'icu',
40     # https://github.com/kivy/python-for-android/issues/1354
41     'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',
42     'kivy',
43     # https://github.com/kivy/python-for-android/issues/1405
44     'libpq', 'psycopg2',
45     'netifaces',
46     # https://github.com/kivy/python-for-android/issues/1315 ?
47     'opencv',
48     'protobuf_cpp',
49     # most likely some setup in the Docker container, because it works in host
50     'pyjnius', 'pyopenal',
51     # SyntaxError: invalid syntax (Python2)
52     'storm',
53     'vlc',
54 ])
55 BROKEN_RECIPES = {
56     TargetPython.python2: BROKEN_RECIPES_PYTHON2,
57     TargetPython.python3crystax: BROKEN_RECIPES_PYTHON3_CRYSTAX,
58 }
59 # recipes that were already built will be skipped
60 CORE_RECIPES = set([
61     'pyjnius', 'kivy', 'openssl', 'requests', 'sqlite3', 'setuptools',
62     'numpy', 'android', 'python2',
63 ])
64
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/ci/constants.py b/ci/constants.py
--- a/ci/constants.py
+++ b/ci/constants.py
@@ -9,7 +9,57 @@
 # recipes that currently break the build
 # a recipe could be broken for a target Python and not for the other,
 # hence we're maintaining one list per Python target
-BROKEN_RECIPES_PYTHON2 = set([])
+BROKEN_RECIPES_PYTHON2 = set([
+    # pythonhelpers.h:12:18: fatal error: string: No such file or directory
+    'atom',
+    # https://github.com/kivy/python-for-android/issues/550
+    'audiostream',
+    'brokenrecipe',
+    # https://github.com/kivy/python-for-android/issues/1409
+    'enaml',
+    'evdev',
+    # distutils.errors.DistutilsError
+    # Could not find suitable distribution for Requirement.parse('cython')
+    'ffpyplayer',
+    'flask',
+    'groestlcoin_hash',
+    'hostpython3crystax',
+    # https://github.com/kivy/python-for-android/issues/1398
+    'ifaddrs',
+    # https://github.com/kivy/python-for-android/issues/1354
+    'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',
+    'kiwisolver',
+    # system dependencies autoconf, libtool
+    'libexpat',
+    'libgeos',
+    # https://github.com/kivy/python-for-android/issues/1399
+    'libglob',
+    # system dependencies cmake and compile error
+    'libmysqlclient',
+    'libsecp256k1',
+    'libtribler',
+    # system dependencies gettext, pkg-config
+    'libzbar',
+    'ndghttpsclient',
+    'm2crypto',
+    'netifaces',
+    'Pillow',
+    # https://github.com/kivy/python-for-android/issues/1405
+    'psycopg2',
+    'pygame',
+    # most likely some setup in the Docker container, because it works in host
+    'pyjnius', 'pyopenal',
+    'pyproj',
+    'pysdl2',
+    'pyzmq',
+    'secp256k1',
+    'shapely',
+    'twisted',
+    'vlc',
+    'websocket-client',
+    'zeroconf',
+    'zope',
+])
 BROKEN_RECIPES_PYTHON3_CRYSTAX = set([
     # not yet python3crystax compatible
     'apsw', 'atom', 'boost', 'brokenrecipe', 'cdecimal', 'cherrypy',
@@ -39,7 +89,8 @@
     'icu',
     # https://github.com/kivy/python-for-android/issues/1354
     'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',
-    'kivy',
+    # system dependencies autoconf, libtool
+    'libexpat',
     # https://github.com/kivy/python-for-android/issues/1405
     'libpq', 'psycopg2',
     'netifaces',

{"golden_diff": "diff --git a/ci/constants.py b/ci/constants.py\n--- a/ci/constants.py\n+++ b/ci/constants.py\n@@ -9,7 +9,57 @@\n # recipes that currently break the build\n # a recipe could be broken for a target Python and not for the other,\n # hence we're maintaining one list per Python target\n-BROKEN_RECIPES_PYTHON2 = set([])\n+BROKEN_RECIPES_PYTHON2 = set([\n+    # pythonhelpers.h:12:18: fatal error: string: No such file or directory\n+    'atom',\n+    # https://github.com/kivy/python-for-android/issues/550\n+    'audiostream',\n+    'brokenrecipe',\n+    # https://github.com/kivy/python-for-android/issues/1409\n+    'enaml',\n+    'evdev',\n+    # distutils.errors.DistutilsError\n+    # Could not find suitable distribution for Requirement.parse('cython')\n+    'ffpyplayer',\n+    'flask',\n+    'groestlcoin_hash',\n+    'hostpython3crystax',\n+    # https://github.com/kivy/python-for-android/issues/1398\n+    'ifaddrs',\n+    # https://github.com/kivy/python-for-android/issues/1354\n+    'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',\n+    'kiwisolver',\n+    # system dependencies autoconf, libtool\n+    'libexpat',\n+    'libgeos',\n+    # https://github.com/kivy/python-for-android/issues/1399\n+    'libglob',\n+    # system dependencies cmake and compile error\n+    'libmysqlclient',\n+    'libsecp256k1',\n+    'libtribler',\n+    # system dependencies gettext, pkg-config\n+    'libzbar',\n+    'ndghttpsclient',\n+    'm2crypto',\n+    'netifaces',\n+    'Pillow',\n+    # https://github.com/kivy/python-for-android/issues/1405\n+    'psycopg2',\n+    'pygame',\n+    # most likely some setup in the Docker container, because it works in host\n+    'pyjnius', 'pyopenal',\n+    'pyproj',\n+    'pysdl2',\n+    'pyzmq',\n+    'secp256k1',\n+    'shapely',\n+    'twisted',\n+    'vlc',\n+    'websocket-client',\n+    'zeroconf',\n+    'zope',\n+])\n BROKEN_RECIPES_PYTHON3_CRYSTAX = set([\n     # not yet python3crystax compatible\n     'apsw', 'atom', 'boost', 'brokenrecipe', 'cdecimal', 'cherrypy',\n@@ -39,7 +89,8 @@\n     'icu',\n     # https://github.com/kivy/python-for-android/issues/1354\n     'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',\n-    'kivy',\n+    # system dependencies autoconf, libtool\n+    'libexpat',\n     # https://github.com/kivy/python-for-android/issues/1405\n     'libpq', 'psycopg2',\n     'netifaces',\n", "issue": "Comprehensive list of broken recipes\nWhen working on https://github.com/kivy/python-for-android/pull/1401 I realised we still have some broken recipes in the tree at least for python3crystax.\r\nEven though we don't want to have red builds for things that were already broken, we still want to have a clear status of what's broken and what's not.\r\nBasically the idea is to try to compile every single recipes and add the broken ones in the ignore list (`BROKEN_RECIPES`) from #1401. That way we can track and fix them later on meanwhile keeping a green build.\r\nI would like to address it in this task. Basically the output of the task should be a PR making the `BROKEN_RECIPES` list comprehensive. With bonus points for creating an issue per broken recipes :smile: \r\n\n", "before_files": [{"content": "from enum import Enum\n\n\nclass TargetPython(Enum):\n    python2 = 0\n    python3crystax = 1\n\n\n# recipes that currently break the build\n# a recipe could be broken for a target Python and not for the other,\n# hence we're maintaining one list per Python target\nBROKEN_RECIPES_PYTHON2 = set([])\nBROKEN_RECIPES_PYTHON3_CRYSTAX = set([\n    # not yet python3crystax compatible\n    'apsw', 'atom', 'boost', 'brokenrecipe', 'cdecimal', 'cherrypy',\n    'coverage', 'dateutil', 'enaml', 'ethash', 'kiwisolver', 'libgeos',\n    'libnacl', 'libsodium', 'libtorrent', 'libtribler', 'libzbar', 'libzmq',\n    'm2crypto', 'mysqldb', 'ndghttpsclient', 'pil', 'pycrypto', 'pyethereum',\n    'pygame', 'pyleveldb', 'pyproj', 'pyzmq', 'regex', 'shapely',\n    'simple-crypt', 'twsisted', 'vispy', 'websocket-client', 'zbar',\n    'zeroconf', 'zope',\n    # https://github.com/kivy/python-for-android/issues/550\n    'audiostream',\n    # enum34 is not compatible with Python 3.6 standard library\n    # https://stackoverflow.com/a/45716067/185510\n    'enum34',\n    # https://github.com/kivy/python-for-android/issues/1398\n    'ifaddrs',\n    # https://github.com/kivy/python-for-android/issues/1399\n    'libglob',\n    # cannot find -lcrystax\n    'cffi', 'pycryptodome', 'pymuk', 'secp256k1',\n    # https://github.com/kivy/python-for-android/issues/1404\n    'cryptography',\n    # https://github.com/kivy/python-for-android/issues/1294\n    'ffmpeg', 'ffpyplayer',\n    # https://github.com/kivy/python-for-android/pull/1307 ?\n    'gevent',\n    'icu',\n    # https://github.com/kivy/python-for-android/issues/1354\n    'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',\n    'kivy',\n    # https://github.com/kivy/python-for-android/issues/1405\n    'libpq', 'psycopg2',\n    'netifaces',\n    # https://github.com/kivy/python-for-android/issues/1315 ?\n    'opencv',\n    'protobuf_cpp',\n    # most likely some setup in the Docker container, because it works in host\n    'pyjnius', 'pyopenal',\n    # SyntaxError: invalid syntax (Python2)\n    'storm',\n    'vlc',\n])\nBROKEN_RECIPES = {\n    TargetPython.python2: BROKEN_RECIPES_PYTHON2,\n    TargetPython.python3crystax: BROKEN_RECIPES_PYTHON3_CRYSTAX,\n}\n# recipes that were already built will be skipped\nCORE_RECIPES = set([\n    'pyjnius', 'kivy', 'openssl', 'requests', 'sqlite3', 'setuptools',\n    'numpy', 'android', 'python2',\n])\n", "path": "ci/constants.py"}], "after_files": [{"content": "from enum import Enum\n\n\nclass TargetPython(Enum):\n    python2 = 0\n    python3crystax = 1\n\n\n# recipes that currently break the build\n# a recipe could be broken for a target Python and not for the other,\n# hence we're maintaining one list per Python target\nBROKEN_RECIPES_PYTHON2 = set([\n    # pythonhelpers.h:12:18: fatal error: string: No such file or directory\n    'atom',\n    # https://github.com/kivy/python-for-android/issues/550\n    'audiostream',\n    'brokenrecipe',\n    # https://github.com/kivy/python-for-android/issues/1409\n    'enaml',\n    'evdev',\n    # distutils.errors.DistutilsError\n    # Could not find suitable distribution for Requirement.parse('cython')\n    'ffpyplayer',\n    'flask',\n    'groestlcoin_hash',\n    'hostpython3crystax',\n    # https://github.com/kivy/python-for-android/issues/1398\n    'ifaddrs',\n    # https://github.com/kivy/python-for-android/issues/1354\n    'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',\n    'kiwisolver',\n    # system dependencies autoconf, libtool\n    'libexpat',\n    'libgeos',\n    # https://github.com/kivy/python-for-android/issues/1399\n    'libglob',\n    # system dependencies cmake and compile error\n    'libmysqlclient',\n    'libsecp256k1',\n    'libtribler',\n    # system dependencies gettext, pkg-config\n    'libzbar',\n    'ndghttpsclient',\n    'm2crypto',\n    'netifaces',\n    'Pillow',\n    # https://github.com/kivy/python-for-android/issues/1405\n    'psycopg2',\n    'pygame',\n    # most likely some setup in the Docker container, because it works in host\n    'pyjnius', 'pyopenal',\n    'pyproj',\n    'pysdl2',\n    'pyzmq',\n    'secp256k1',\n    'shapely',\n    'twisted',\n    'vlc',\n    'websocket-client',\n    'zeroconf',\n    'zope',\n])\nBROKEN_RECIPES_PYTHON3_CRYSTAX = set([\n    # not yet python3crystax compatible\n    'apsw', 'atom', 'boost', 'brokenrecipe', 'cdecimal', 'cherrypy',\n    'coverage', 'dateutil', 'enaml', 'ethash', 'kiwisolver', 'libgeos',\n    'libnacl', 'libsodium', 'libtorrent', 'libtribler', 'libzbar', 'libzmq',\n    'm2crypto', 'mysqldb', 'ndghttpsclient', 'pil', 'pycrypto', 'pyethereum',\n    'pygame', 'pyleveldb', 'pyproj', 'pyzmq', 'regex', 'shapely',\n    'simple-crypt', 'twsisted', 'vispy', 'websocket-client', 'zbar',\n    'zeroconf', 'zope',\n    # https://github.com/kivy/python-for-android/issues/550\n    'audiostream',\n    # enum34 is not compatible with Python 3.6 standard library\n    # https://stackoverflow.com/a/45716067/185510\n    'enum34',\n    # https://github.com/kivy/python-for-android/issues/1398\n    'ifaddrs',\n    # https://github.com/kivy/python-for-android/issues/1399\n    'libglob',\n    # cannot find -lcrystax\n    'cffi', 'pycryptodome', 'pymuk', 'secp256k1',\n    # https://github.com/kivy/python-for-android/issues/1404\n    'cryptography',\n    # https://github.com/kivy/python-for-android/issues/1294\n    'ffmpeg', 'ffpyplayer',\n    # https://github.com/kivy/python-for-android/pull/1307 ?\n    'gevent',\n    'icu',\n    # https://github.com/kivy/python-for-android/issues/1354\n    'kivent_core', 'kivent_cymunk', 'kivent_particles', 'kivent_polygen',\n    # system dependencies autoconf, libtool\n    'libexpat',\n    # https://github.com/kivy/python-for-android/issues/1405\n    'libpq', 'psycopg2',\n    'netifaces',\n    # https://github.com/kivy/python-for-android/issues/1315 ?\n    'opencv',\n    'protobuf_cpp',\n    # most likely some setup in the Docker container, because it works in host\n    'pyjnius', 'pyopenal',\n    # SyntaxError: invalid syntax (Python2)\n    'storm',\n    'vlc',\n])\nBROKEN_RECIPES = {\n    TargetPython.python2: BROKEN_RECIPES_PYTHON2,\n    TargetPython.python3crystax: BROKEN_RECIPES_PYTHON3_CRYSTAX,\n}\n# recipes that were already built will be skipped\nCORE_RECIPES = set([\n    'pyjnius', 'kivy', 'openssl', 'requests', 'sqlite3', 'setuptools',\n    'numpy', 'android', 'python2',\n])\n", "path": "ci/constants.py"}]}