diff options
| -rw-r--r-- | meta/recipes-devtools/python/python-3.5-manifest.inc | 1129 | ||||
| -rw-r--r-- | meta/recipes-devtools/python/python-native-3.5-manifest.inc | 10 | ||||
| -rw-r--r-- | meta/recipes-devtools/python/python3-native_3.5.3.bb | 30 | ||||
| -rw-r--r-- | meta/recipes-devtools/python/python3/create_manifest3.py | 321 | ||||
| -rw-r--r-- | meta/recipes-devtools/python/python3/get_module_deps3.py | 146 | ||||
| -rw-r--r-- | meta/recipes-devtools/python/python3/python3-manifest.json | 1096 | ||||
| -rw-r--r-- | meta/recipes-devtools/python/python3_3.5.3.bb | 91 | ||||
| -rwxr-xr-x | scripts/contrib/python/generate-manifest-3.5.py | 442 |
8 files changed, 1675 insertions, 1590 deletions
diff --git a/meta/recipes-devtools/python/python-3.5-manifest.inc b/meta/recipes-devtools/python/python-3.5-manifest.inc deleted file mode 100644 index 1fce070290..0000000000 --- a/meta/recipes-devtools/python/python-3.5-manifest.inc +++ /dev/null | |||
| @@ -1,1129 +0,0 @@ | |||
| 1 | |||
| 2 | # WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. | ||
| 3 | # Generator: './scripts/contrib/python/generate-manifest-3.5.py' Version 20140131 (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de> | ||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | PROVIDES+="\ | ||
| 8 | ${PN}-2to3 \ | ||
| 9 | ${PN}-argparse \ | ||
| 10 | ${PN}-asyncio \ | ||
| 11 | ${PN}-audio \ | ||
| 12 | ${PN}-codecs \ | ||
| 13 | ${PN}-compile \ | ||
| 14 | ${PN}-compression \ | ||
| 15 | ${PN}-core \ | ||
| 16 | ${PN}-crypt \ | ||
| 17 | ${PN}-ctypes \ | ||
| 18 | ${PN}-curses \ | ||
| 19 | ${PN}-datetime \ | ||
| 20 | ${PN}-db \ | ||
| 21 | ${PN}-debugger \ | ||
| 22 | ${PN}-dev \ | ||
| 23 | ${PN}-difflib \ | ||
| 24 | ${PN}-distutils \ | ||
| 25 | ${PN}-distutils-staticdev \ | ||
| 26 | ${PN}-doctest \ | ||
| 27 | ${PN}-email \ | ||
| 28 | ${PN}-enum \ | ||
| 29 | ${PN}-fcntl \ | ||
| 30 | ${PN}-gdbm \ | ||
| 31 | ${PN}-html \ | ||
| 32 | ${PN}-idle \ | ||
| 33 | ${PN}-image \ | ||
| 34 | ${PN}-importlib \ | ||
| 35 | ${PN}-io \ | ||
| 36 | ${PN}-json \ | ||
| 37 | ${PN}-lang \ | ||
| 38 | ${PN}-logging \ | ||
| 39 | ${PN}-mailbox \ | ||
| 40 | ${PN}-math \ | ||
| 41 | ${PN}-mime \ | ||
| 42 | ${PN}-mmap \ | ||
| 43 | ${PN}-multiprocessing \ | ||
| 44 | ${PN}-netclient \ | ||
| 45 | ${PN}-netserver \ | ||
| 46 | ${PN}-numbers \ | ||
| 47 | ${PN}-pickle \ | ||
| 48 | ${PN}-pkgutil \ | ||
| 49 | ${PN}-plistlib \ | ||
| 50 | ${PN}-pprint \ | ||
| 51 | ${PN}-profile \ | ||
| 52 | ${PN}-pydoc \ | ||
| 53 | ${PN}-re \ | ||
| 54 | ${PN}-readline \ | ||
| 55 | ${PN}-reprlib \ | ||
| 56 | ${PN}-resource \ | ||
| 57 | ${PN}-runpy \ | ||
| 58 | ${PN}-selectors \ | ||
| 59 | ${PN}-shell \ | ||
| 60 | ${PN}-signal \ | ||
| 61 | ${PN}-smtpd \ | ||
| 62 | ${PN}-sqlite3 \ | ||
| 63 | ${PN}-sqlite3-tests \ | ||
| 64 | ${PN}-stringold \ | ||
| 65 | ${PN}-subprocess \ | ||
| 66 | ${PN}-syslog \ | ||
| 67 | ${PN}-terminal \ | ||
| 68 | ${PN}-tests \ | ||
| 69 | ${PN}-textutils \ | ||
| 70 | ${PN}-threading \ | ||
| 71 | ${PN}-tkinter \ | ||
| 72 | ${PN}-typing \ | ||
| 73 | ${PN}-unittest \ | ||
| 74 | ${PN}-unixadmin \ | ||
| 75 | ${PN}-xml \ | ||
| 76 | ${PN}-xmlrpc \ | ||
| 77 | " | ||
| 78 | |||
| 79 | PACKAGES="\ | ||
| 80 | ${PN}-dbg \ | ||
| 81 | ${PN}-2to3 \ | ||
| 82 | ${PN}-argparse \ | ||
| 83 | ${PN}-asyncio \ | ||
| 84 | ${PN}-audio \ | ||
| 85 | ${PN}-codecs \ | ||
| 86 | ${PN}-compile \ | ||
| 87 | ${PN}-compression \ | ||
| 88 | ${PN}-core \ | ||
| 89 | ${PN}-crypt \ | ||
| 90 | ${PN}-ctypes \ | ||
| 91 | ${PN}-curses \ | ||
| 92 | ${PN}-datetime \ | ||
| 93 | ${PN}-db \ | ||
| 94 | ${PN}-debugger \ | ||
| 95 | ${PN}-dev \ | ||
| 96 | ${PN}-difflib \ | ||
| 97 | ${PN}-distutils \ | ||
| 98 | ${PN}-distutils-staticdev \ | ||
| 99 | ${PN}-doctest \ | ||
| 100 | ${PN}-email \ | ||
| 101 | ${PN}-enum \ | ||
| 102 | ${PN}-fcntl \ | ||
| 103 | ${PN}-gdbm \ | ||
| 104 | ${PN}-html \ | ||
| 105 | ${PN}-idle \ | ||
| 106 | ${PN}-image \ | ||
| 107 | ${PN}-importlib \ | ||
| 108 | ${PN}-io \ | ||
| 109 | ${PN}-json \ | ||
| 110 | ${PN}-lang \ | ||
| 111 | ${PN}-logging \ | ||
| 112 | ${PN}-mailbox \ | ||
| 113 | ${PN}-math \ | ||
| 114 | ${PN}-mime \ | ||
| 115 | ${PN}-mmap \ | ||
| 116 | ${PN}-multiprocessing \ | ||
| 117 | ${PN}-netclient \ | ||
| 118 | ${PN}-netserver \ | ||
| 119 | ${PN}-numbers \ | ||
| 120 | ${PN}-pickle \ | ||
| 121 | ${PN}-pkgutil \ | ||
| 122 | ${PN}-plistlib \ | ||
| 123 | ${PN}-pprint \ | ||
| 124 | ${PN}-profile \ | ||
| 125 | ${PN}-pydoc \ | ||
| 126 | ${PN}-re \ | ||
| 127 | ${PN}-readline \ | ||
| 128 | ${PN}-reprlib \ | ||
| 129 | ${PN}-resource \ | ||
| 130 | ${PN}-runpy \ | ||
| 131 | ${PN}-selectors \ | ||
| 132 | ${PN}-shell \ | ||
| 133 | ${PN}-signal \ | ||
| 134 | ${PN}-smtpd \ | ||
| 135 | ${PN}-sqlite3 \ | ||
| 136 | ${PN}-sqlite3-tests \ | ||
| 137 | ${PN}-stringold \ | ||
| 138 | ${PN}-subprocess \ | ||
| 139 | ${PN}-syslog \ | ||
| 140 | ${PN}-terminal \ | ||
| 141 | ${PN}-tests \ | ||
| 142 | ${PN}-textutils \ | ||
| 143 | ${PN}-threading \ | ||
| 144 | ${PN}-tkinter \ | ||
| 145 | ${PN}-typing \ | ||
| 146 | ${PN}-unittest \ | ||
| 147 | ${PN}-unixadmin \ | ||
| 148 | ${PN}-xml \ | ||
| 149 | ${PN}-xmlrpc \ | ||
| 150 | ${PN}-modules \ | ||
| 151 | " | ||
| 152 | |||
| 153 | SUMMARY_${PN}-2to3="Python automated Python 2 to 3 code translator" | ||
| 154 | RDEPENDS_${PN}-2to3="${PN}-core" | ||
| 155 | FILES_${PN}-2to3="\ | ||
| 156 | ${libdir}/python3.5/lib2to3 \ | ||
| 157 | ${libdir}/python3.5/lib2to3/__pycache__ \ | ||
| 158 | " | ||
| 159 | |||
| 160 | SUMMARY_${PN}-argparse="Python command line argument parser" | ||
| 161 | RDEPENDS_${PN}-argparse="${PN}-core ${PN}-codecs ${PN}-textutils" | ||
| 162 | FILES_${PN}-argparse="\ | ||
| 163 | ${libdir}/python3.5/argparse.* \ | ||
| 164 | ${libdir}/python3.5/__pycache__/argparse.* \ | ||
| 165 | " | ||
| 166 | |||
| 167 | SUMMARY_${PN}-asyncio="Python Asynchronous I/O, event loop, coroutines and tasks" | ||
| 168 | RDEPENDS_${PN}-asyncio="${PN}-core" | ||
| 169 | FILES_${PN}-asyncio="\ | ||
| 170 | ${libdir}/python3.5/asyncio \ | ||
| 171 | ${libdir}/python3.5/asyncio/__pycache__ \ | ||
| 172 | " | ||
| 173 | |||
| 174 | SUMMARY_${PN}-audio="Python Audio Handling" | ||
| 175 | RDEPENDS_${PN}-audio="${PN}-core" | ||
| 176 | FILES_${PN}-audio="\ | ||
| 177 | ${libdir}/python3.5/wave.* \ | ||
| 178 | ${libdir}/python3.5/__pycache__/wave.* \ | ||
| 179 | ${libdir}/python3.5/chunk.* \ | ||
| 180 | ${libdir}/python3.5/__pycache__/chunk.* \ | ||
| 181 | ${libdir}/python3.5/sndhdr.* \ | ||
| 182 | ${libdir}/python3.5/__pycache__/sndhdr.* \ | ||
| 183 | ${libdir}/python3.5/lib-dynload/ossaudiodev.*.so \ | ||
| 184 | ${libdir}/python3.5/lib-dynload/__pycache__/ossaudiodev.*.so \ | ||
| 185 | ${libdir}/python3.5/lib-dynload/audioop.*.so \ | ||
| 186 | ${libdir}/python3.5/lib-dynload/__pycache__/audioop.*.so \ | ||
| 187 | ${libdir}/python3.5/audiodev.* \ | ||
| 188 | ${libdir}/python3.5/__pycache__/audiodev.* \ | ||
| 189 | ${libdir}/python3.5/sunaudio.* \ | ||
| 190 | ${libdir}/python3.5/__pycache__/sunaudio.* \ | ||
| 191 | ${libdir}/python3.5/sunau.* \ | ||
| 192 | ${libdir}/python3.5/__pycache__/sunau.* \ | ||
| 193 | ${libdir}/python3.5/toaiff.* \ | ||
| 194 | ${libdir}/python3.5/__pycache__/toaiff.* \ | ||
| 195 | " | ||
| 196 | |||
| 197 | SUMMARY_${PN}-codecs="Python codecs, encodings & i18n support" | ||
| 198 | RDEPENDS_${PN}-codecs="${PN}-core ${PN}-lang" | ||
| 199 | FILES_${PN}-codecs="\ | ||
| 200 | ${libdir}/python3.5/codecs.* \ | ||
| 201 | ${libdir}/python3.5/__pycache__/codecs.* \ | ||
| 202 | ${libdir}/python3.5/encodings \ | ||
| 203 | ${libdir}/python3.5/encodings/__pycache__ \ | ||
| 204 | ${libdir}/python3.5/gettext.* \ | ||
| 205 | ${libdir}/python3.5/__pycache__/gettext.* \ | ||
| 206 | ${libdir}/python3.5/locale.* \ | ||
| 207 | ${libdir}/python3.5/__pycache__/locale.* \ | ||
| 208 | ${libdir}/python3.5/lib-dynload/_locale.*.so \ | ||
| 209 | ${libdir}/python3.5/lib-dynload/__pycache__/_locale.*.so \ | ||
| 210 | ${libdir}/python3.5/lib-dynload/_codecs* \ | ||
| 211 | ${libdir}/python3.5/lib-dynload/_codecs*/__pycache__ \ | ||
| 212 | ${libdir}/python3.5/lib-dynload/_multibytecodec.*.so \ | ||
| 213 | ${libdir}/python3.5/lib-dynload/__pycache__/_multibytecodec.*.so \ | ||
| 214 | ${libdir}/python3.5/lib-dynload/unicodedata.*.so \ | ||
| 215 | ${libdir}/python3.5/lib-dynload/__pycache__/unicodedata.*.so \ | ||
| 216 | ${libdir}/python3.5/stringprep.* \ | ||
| 217 | ${libdir}/python3.5/__pycache__/stringprep.* \ | ||
| 218 | ${libdir}/python3.5/xdrlib.* \ | ||
| 219 | ${libdir}/python3.5/__pycache__/xdrlib.* \ | ||
| 220 | " | ||
| 221 | |||
| 222 | SUMMARY_${PN}-compile="Python bytecode compilation support" | ||
| 223 | RDEPENDS_${PN}-compile="${PN}-core" | ||
| 224 | FILES_${PN}-compile="\ | ||
| 225 | ${libdir}/python3.5/py_compile.* \ | ||
| 226 | ${libdir}/python3.5/__pycache__/py_compile.* \ | ||
| 227 | ${libdir}/python3.5/compileall.* \ | ||
| 228 | ${libdir}/python3.5/__pycache__/compileall.* \ | ||
| 229 | " | ||
| 230 | |||
| 231 | SUMMARY_${PN}-compression="Python high-level compression support" | ||
| 232 | RDEPENDS_${PN}-compression="${PN}-core ${PN}-codecs ${PN}-importlib ${PN}-threading ${PN}-shell" | ||
| 233 | FILES_${PN}-compression="\ | ||
| 234 | ${libdir}/python3.5/gzip.* \ | ||
| 235 | ${libdir}/python3.5/__pycache__/gzip.* \ | ||
| 236 | ${libdir}/python3.5/zipfile.* \ | ||
| 237 | ${libdir}/python3.5/__pycache__/zipfile.* \ | ||
| 238 | ${libdir}/python3.5/tarfile.* \ | ||
| 239 | ${libdir}/python3.5/__pycache__/tarfile.* \ | ||
| 240 | ${libdir}/python3.5/lib-dynload/bz2.*.so \ | ||
| 241 | ${libdir}/python3.5/lib-dynload/__pycache__/bz2.*.so \ | ||
| 242 | ${libdir}/python3.5/lib-dynload/zlib.*.so \ | ||
| 243 | ${libdir}/python3.5/lib-dynload/__pycache__/zlib.*.so \ | ||
| 244 | ${libdir}/python3.5/bz2.py \ | ||
| 245 | ${libdir}/python3.5/__pycache__/bz2.py \ | ||
| 246 | ${libdir}/python3.5/lzma.py \ | ||
| 247 | ${libdir}/python3.5/__pycache__/lzma.py \ | ||
| 248 | ${libdir}/python3.5/_compression.py \ | ||
| 249 | ${libdir}/python3.5/__pycache__/_compression.py \ | ||
| 250 | " | ||
| 251 | |||
| 252 | SUMMARY_${PN}-core="Python interpreter and core modules" | ||
| 253 | RDEPENDS_${PN}-core="${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io ${PN}-math" | ||
| 254 | FILES_${PN}-core="\ | ||
| 255 | ${libdir}/python3.5/__future__.* \ | ||
| 256 | ${libdir}/python3.5/__pycache__/__future__.* \ | ||
| 257 | ${libdir}/python3.5/_abcoll.* \ | ||
| 258 | ${libdir}/python3.5/__pycache__/_abcoll.* \ | ||
| 259 | ${libdir}/python3.5/abc.* \ | ||
| 260 | ${libdir}/python3.5/__pycache__/abc.* \ | ||
| 261 | ${libdir}/python3.5/ast.* \ | ||
| 262 | ${libdir}/python3.5/__pycache__/ast.* \ | ||
| 263 | ${libdir}/python3.5/copy.* \ | ||
| 264 | ${libdir}/python3.5/__pycache__/copy.* \ | ||
| 265 | ${libdir}/python3.5/copyreg.* \ | ||
| 266 | ${libdir}/python3.5/__pycache__/copyreg.* \ | ||
| 267 | ${libdir}/python3.5/configparser.* \ | ||
| 268 | ${libdir}/python3.5/__pycache__/configparser.* \ | ||
| 269 | ${libdir}/python3.5/genericpath.* \ | ||
| 270 | ${libdir}/python3.5/__pycache__/genericpath.* \ | ||
| 271 | ${libdir}/python3.5/getopt.* \ | ||
| 272 | ${libdir}/python3.5/__pycache__/getopt.* \ | ||
| 273 | ${libdir}/python3.5/linecache.* \ | ||
| 274 | ${libdir}/python3.5/__pycache__/linecache.* \ | ||
| 275 | ${libdir}/python3.5/new.* \ | ||
| 276 | ${libdir}/python3.5/__pycache__/new.* \ | ||
| 277 | ${libdir}/python3.5/os.* \ | ||
| 278 | ${libdir}/python3.5/__pycache__/os.* \ | ||
| 279 | ${libdir}/python3.5/posixpath.* \ | ||
| 280 | ${libdir}/python3.5/__pycache__/posixpath.* \ | ||
| 281 | ${libdir}/python3.5/struct.* \ | ||
| 282 | ${libdir}/python3.5/__pycache__/struct.* \ | ||
| 283 | ${libdir}/python3.5/warnings.* \ | ||
| 284 | ${libdir}/python3.5/__pycache__/warnings.* \ | ||
| 285 | ${libdir}/python3.5/site.* \ | ||
| 286 | ${libdir}/python3.5/__pycache__/site.* \ | ||
| 287 | ${libdir}/python3.5/stat.* \ | ||
| 288 | ${libdir}/python3.5/__pycache__/stat.* \ | ||
| 289 | ${libdir}/python3.5/UserDict.* \ | ||
| 290 | ${libdir}/python3.5/__pycache__/UserDict.* \ | ||
| 291 | ${libdir}/python3.5/UserList.* \ | ||
| 292 | ${libdir}/python3.5/__pycache__/UserList.* \ | ||
| 293 | ${libdir}/python3.5/UserString.* \ | ||
| 294 | ${libdir}/python3.5/__pycache__/UserString.* \ | ||
| 295 | ${libdir}/python3.5/lib-dynload/binascii.*.so \ | ||
| 296 | ${libdir}/python3.5/lib-dynload/__pycache__/binascii.*.so \ | ||
| 297 | ${libdir}/python3.5/lib-dynload/_struct.*.so \ | ||
| 298 | ${libdir}/python3.5/lib-dynload/__pycache__/_struct.*.so \ | ||
| 299 | ${libdir}/python3.5/lib-dynload/time.*.so \ | ||
| 300 | ${libdir}/python3.5/lib-dynload/__pycache__/time.*.so \ | ||
| 301 | ${libdir}/python3.5/lib-dynload/xreadlines.*.so \ | ||
| 302 | ${libdir}/python3.5/lib-dynload/__pycache__/xreadlines.*.so \ | ||
| 303 | ${libdir}/python3.5/types.* \ | ||
| 304 | ${libdir}/python3.5/__pycache__/types.* \ | ||
| 305 | ${libdir}/python3.5/platform.* \ | ||
| 306 | ${libdir}/python3.5/__pycache__/platform.* \ | ||
| 307 | ${bindir}/python* \ | ||
| 308 | ${libdir}/python3.5/_weakrefset.* \ | ||
| 309 | ${libdir}/python3.5/__pycache__/_weakrefset.* \ | ||
| 310 | ${libdir}/python3.5/sysconfig.* \ | ||
| 311 | ${libdir}/python3.5/__pycache__/sysconfig.* \ | ||
| 312 | ${libdir}/python3.5/_sysconfigdata.* \ | ||
| 313 | ${libdir}/python3.5/__pycache__/_sysconfigdata.* \ | ||
| 314 | ${includedir}/python${PYTHON_BINABI}/pyconfig*.h \ | ||
| 315 | ${libdir}/python${PYTHON_MAJMIN}/collections \ | ||
| 316 | ${libdir}/python${PYTHON_MAJMIN}/_collections_abc.* \ | ||
| 317 | ${libdir}/python${PYTHON_MAJMIN}/_markupbase.* \ | ||
| 318 | ${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.* \ | ||
| 319 | ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py \ | ||
| 320 | " | ||
| 321 | |||
| 322 | SUMMARY_${PN}-crypt="Python basic cryptographic and hashing support" | ||
| 323 | RDEPENDS_${PN}-crypt="${PN}-core" | ||
| 324 | FILES_${PN}-crypt="\ | ||
| 325 | ${libdir}/python3.5/hashlib.* \ | ||
| 326 | ${libdir}/python3.5/__pycache__/hashlib.* \ | ||
| 327 | ${libdir}/python3.5/md5.* \ | ||
| 328 | ${libdir}/python3.5/__pycache__/md5.* \ | ||
| 329 | ${libdir}/python3.5/sha.* \ | ||
| 330 | ${libdir}/python3.5/__pycache__/sha.* \ | ||
| 331 | ${libdir}/python3.5/lib-dynload/crypt.*.so \ | ||
| 332 | ${libdir}/python3.5/lib-dynload/__pycache__/crypt.*.so \ | ||
| 333 | ${libdir}/python3.5/lib-dynload/_hashlib.*.so \ | ||
| 334 | ${libdir}/python3.5/lib-dynload/__pycache__/_hashlib.*.so \ | ||
| 335 | ${libdir}/python3.5/lib-dynload/_sha256.*.so \ | ||
| 336 | ${libdir}/python3.5/lib-dynload/__pycache__/_sha256.*.so \ | ||
| 337 | ${libdir}/python3.5/lib-dynload/_sha512.*.so \ | ||
| 338 | ${libdir}/python3.5/lib-dynload/__pycache__/_sha512.*.so \ | ||
| 339 | " | ||
| 340 | |||
| 341 | SUMMARY_${PN}-ctypes="Python C types support" | ||
| 342 | RDEPENDS_${PN}-ctypes="${PN}-core ${PN}-subprocess" | ||
| 343 | FILES_${PN}-ctypes="\ | ||
| 344 | ${libdir}/python3.5/ctypes \ | ||
| 345 | ${libdir}/python3.5/ctypes/__pycache__ \ | ||
| 346 | ${libdir}/python3.5/lib-dynload/_ctypes.*.so \ | ||
| 347 | ${libdir}/python3.5/lib-dynload/__pycache__/_ctypes.*.so \ | ||
| 348 | ${libdir}/python3.5/lib-dynload/_ctypes_test.*.so \ | ||
| 349 | ${libdir}/python3.5/lib-dynload/__pycache__/_ctypes_test.*.so \ | ||
| 350 | " | ||
| 351 | |||
| 352 | SUMMARY_${PN}-curses="Python curses support" | ||
| 353 | RDEPENDS_${PN}-curses="${PN}-core" | ||
| 354 | FILES_${PN}-curses="\ | ||
| 355 | ${libdir}/python3.5/curses \ | ||
| 356 | ${libdir}/python3.5/curses/__pycache__ \ | ||
| 357 | ${libdir}/python3.5/lib-dynload/_curses.*.so \ | ||
| 358 | ${libdir}/python3.5/lib-dynload/__pycache__/_curses.*.so \ | ||
| 359 | ${libdir}/python3.5/lib-dynload/_curses_panel.*.so \ | ||
| 360 | ${libdir}/python3.5/lib-dynload/__pycache__/_curses_panel.*.so \ | ||
| 361 | " | ||
| 362 | |||
| 363 | SUMMARY_${PN}-datetime="Python calendar and time support" | ||
| 364 | RDEPENDS_${PN}-datetime="${PN}-core ${PN}-codecs" | ||
| 365 | FILES_${PN}-datetime="\ | ||
| 366 | ${libdir}/python3.5/_strptime.* \ | ||
| 367 | ${libdir}/python3.5/__pycache__/_strptime.* \ | ||
| 368 | ${libdir}/python3.5/calendar.* \ | ||
| 369 | ${libdir}/python3.5/__pycache__/calendar.* \ | ||
| 370 | ${libdir}/python3.5/datetime.* \ | ||
| 371 | ${libdir}/python3.5/__pycache__/datetime.* \ | ||
| 372 | ${libdir}/python3.5/lib-dynload/_datetime.*.so \ | ||
| 373 | ${libdir}/python3.5/lib-dynload/__pycache__/_datetime.*.so \ | ||
| 374 | " | ||
| 375 | |||
| 376 | SUMMARY_${PN}-db="Python file-based database support" | ||
| 377 | RDEPENDS_${PN}-db="${PN}-core" | ||
| 378 | FILES_${PN}-db="\ | ||
| 379 | ${libdir}/python3.5/anydbm.* \ | ||
| 380 | ${libdir}/python3.5/__pycache__/anydbm.* \ | ||
| 381 | ${libdir}/python3.5/dumbdbm.* \ | ||
| 382 | ${libdir}/python3.5/__pycache__/dumbdbm.* \ | ||
| 383 | ${libdir}/python3.5/whichdb.* \ | ||
| 384 | ${libdir}/python3.5/__pycache__/whichdb.* \ | ||
| 385 | ${libdir}/python3.5/dbm \ | ||
| 386 | ${libdir}/python3.5/dbm/__pycache__ \ | ||
| 387 | ${libdir}/python3.5/lib-dynload/_dbm.*.so \ | ||
| 388 | ${libdir}/python3.5/lib-dynload/__pycache__/_dbm.*.so \ | ||
| 389 | " | ||
| 390 | |||
| 391 | SUMMARY_${PN}-debugger="Python debugger" | ||
| 392 | RDEPENDS_${PN}-debugger="${PN}-core ${PN}-io ${PN}-lang ${PN}-re ${PN}-stringold ${PN}-shell ${PN}-pprint ${PN}-importlib ${PN}-pkgutil" | ||
| 393 | FILES_${PN}-debugger="\ | ||
| 394 | ${libdir}/python3.5/bdb.* \ | ||
| 395 | ${libdir}/python3.5/__pycache__/bdb.* \ | ||
| 396 | ${libdir}/python3.5/pdb.* \ | ||
| 397 | ${libdir}/python3.5/__pycache__/pdb.* \ | ||
| 398 | " | ||
| 399 | |||
| 400 | SUMMARY_${PN}-dev="Python development package" | ||
| 401 | RDEPENDS_${PN}-dev="${PN}-core" | ||
| 402 | FILES_${PN}-dev="\ | ||
| 403 | ${includedir} \ | ||
| 404 | ${libdir}/lib*${SOLIBSDEV} \ | ||
| 405 | ${libdir}/*.la \ | ||
| 406 | ${libdir}/*.a \ | ||
| 407 | ${libdir}/*.o \ | ||
| 408 | ${libdir}/pkgconfig \ | ||
| 409 | ${base_libdir}/*.a \ | ||
| 410 | ${base_libdir}/*.o \ | ||
| 411 | ${datadir}/aclocal \ | ||
| 412 | ${datadir}/pkgconfig \ | ||
| 413 | ${libdir}/python3.5/config*/Makefile \ | ||
| 414 | ${libdir}/python3.5/config*/Makefile/__pycache__ \ | ||
| 415 | " | ||
| 416 | |||
| 417 | SUMMARY_${PN}-difflib="Python helpers for computing deltas between objects" | ||
| 418 | RDEPENDS_${PN}-difflib="${PN}-lang ${PN}-re" | ||
| 419 | FILES_${PN}-difflib="\ | ||
| 420 | ${libdir}/python3.5/difflib.* \ | ||
| 421 | ${libdir}/python3.5/__pycache__/difflib.* \ | ||
| 422 | " | ||
| 423 | |||
| 424 | SUMMARY_${PN}-distutils="Python Distribution Utilities" | ||
| 425 | RDEPENDS_${PN}-distutils="${PN}-core ${PN}-email" | ||
| 426 | FILES_${PN}-distutils="\ | ||
| 427 | ${libdir}/python3.5/config \ | ||
| 428 | ${libdir}/python3.5/config/__pycache__ \ | ||
| 429 | ${libdir}/python3.5/distutils \ | ||
| 430 | ${libdir}/python3.5/distutils/__pycache__ \ | ||
| 431 | " | ||
| 432 | |||
| 433 | SUMMARY_${PN}-distutils-staticdev="Python distribution utilities (static libraries)" | ||
| 434 | RDEPENDS_${PN}-distutils-staticdev="${PN}-distutils" | ||
| 435 | FILES_${PN}-distutils-staticdev="\ | ||
| 436 | ${libdir}/python3.5/config/lib*.a \ | ||
| 437 | ${libdir}/python3.5/config/__pycache__/lib*.a \ | ||
| 438 | " | ||
| 439 | |||
| 440 | SUMMARY_${PN}-doctest="Python framework for running examples in docstrings" | ||
| 441 | RDEPENDS_${PN}-doctest="${PN}-core ${PN}-lang ${PN}-io ${PN}-re ${PN}-unittest ${PN}-debugger ${PN}-difflib" | ||
| 442 | FILES_${PN}-doctest="\ | ||
| 443 | ${libdir}/python3.5/doctest.* \ | ||
| 444 | ${libdir}/python3.5/__pycache__/doctest.* \ | ||
| 445 | " | ||
| 446 | |||
| 447 | SUMMARY_${PN}-email="Python email support" | ||
| 448 | RDEPENDS_${PN}-email="${PN}-core ${PN}-io ${PN}-re ${PN}-mime ${PN}-audio ${PN}-image ${PN}-netclient" | ||
| 449 | FILES_${PN}-email="\ | ||
| 450 | ${libdir}/python3.5/imaplib.* \ | ||
| 451 | ${libdir}/python3.5/__pycache__/imaplib.* \ | ||
| 452 | ${libdir}/python3.5/email \ | ||
| 453 | ${libdir}/python3.5/email/__pycache__ \ | ||
| 454 | " | ||
| 455 | |||
| 456 | SUMMARY_${PN}-enum="Python support for enumerations" | ||
| 457 | RDEPENDS_${PN}-enum="${PN}-core" | ||
| 458 | FILES_${PN}-enum="\ | ||
| 459 | ${libdir}/python3.5/enum.* \ | ||
| 460 | ${libdir}/python3.5/__pycache__/enum.* \ | ||
| 461 | " | ||
| 462 | |||
| 463 | SUMMARY_${PN}-fcntl="Python's fcntl interface" | ||
| 464 | RDEPENDS_${PN}-fcntl="${PN}-core" | ||
| 465 | FILES_${PN}-fcntl="\ | ||
| 466 | ${libdir}/python3.5/lib-dynload/fcntl.*.so \ | ||
| 467 | ${libdir}/python3.5/lib-dynload/__pycache__/fcntl.*.so \ | ||
| 468 | " | ||
| 469 | |||
| 470 | SUMMARY_${PN}-gdbm="Python GNU database support" | ||
| 471 | RDEPENDS_${PN}-gdbm="${PN}-core" | ||
| 472 | FILES_${PN}-gdbm="\ | ||
| 473 | ${libdir}/python3.5/lib-dynload/_gdbm.*.so \ | ||
| 474 | ${libdir}/python3.5/lib-dynload/__pycache__/_gdbm.*.so \ | ||
| 475 | " | ||
| 476 | |||
| 477 | SUMMARY_${PN}-html="Python HTML processing support" | ||
| 478 | RDEPENDS_${PN}-html="${PN}-core" | ||
| 479 | FILES_${PN}-html="\ | ||
| 480 | ${libdir}/python3.5/formatter.* \ | ||
| 481 | ${libdir}/python3.5/__pycache__/formatter.* \ | ||
| 482 | ${libdir}/python3.5/htmlentitydefs.* \ | ||
| 483 | ${libdir}/python3.5/__pycache__/htmlentitydefs.* \ | ||
| 484 | ${libdir}/python3.5/html \ | ||
| 485 | ${libdir}/python3.5/html/__pycache__ \ | ||
| 486 | ${libdir}/python3.5/htmllib.* \ | ||
| 487 | ${libdir}/python3.5/__pycache__/htmllib.* \ | ||
| 488 | ${libdir}/python3.5/markupbase.* \ | ||
| 489 | ${libdir}/python3.5/__pycache__/markupbase.* \ | ||
| 490 | ${libdir}/python3.5/sgmllib.* \ | ||
| 491 | ${libdir}/python3.5/__pycache__/sgmllib.* \ | ||
| 492 | ${libdir}/python3.5/HTMLParser.* \ | ||
| 493 | ${libdir}/python3.5/__pycache__/HTMLParser.* \ | ||
| 494 | " | ||
| 495 | |||
| 496 | SUMMARY_${PN}-idle="Python Integrated Development Environment" | ||
| 497 | RDEPENDS_${PN}-idle="${PN}-core ${PN}-tkinter" | ||
| 498 | FILES_${PN}-idle="\ | ||
| 499 | ${bindir}/idle \ | ||
| 500 | ${libdir}/python3.5/idlelib \ | ||
| 501 | ${libdir}/python3.5/idlelib/__pycache__ \ | ||
| 502 | " | ||
| 503 | |||
| 504 | SUMMARY_${PN}-image="Python graphical image handling" | ||
| 505 | RDEPENDS_${PN}-image="${PN}-core" | ||
| 506 | FILES_${PN}-image="\ | ||
| 507 | ${libdir}/python3.5/colorsys.* \ | ||
| 508 | ${libdir}/python3.5/__pycache__/colorsys.* \ | ||
| 509 | ${libdir}/python3.5/imghdr.* \ | ||
| 510 | ${libdir}/python3.5/__pycache__/imghdr.* \ | ||
| 511 | ${libdir}/python3.5/lib-dynload/imageop.*.so \ | ||
| 512 | ${libdir}/python3.5/lib-dynload/__pycache__/imageop.*.so \ | ||
| 513 | ${libdir}/python3.5/lib-dynload/rgbimg.*.so \ | ||
| 514 | ${libdir}/python3.5/lib-dynload/__pycache__/rgbimg.*.so \ | ||
| 515 | " | ||
| 516 | |||
| 517 | SUMMARY_${PN}-importlib="Python import implementation library" | ||
| 518 | RDEPENDS_${PN}-importlib="${PN}-core ${PN}-lang" | ||
| 519 | FILES_${PN}-importlib="\ | ||
| 520 | ${libdir}/python3.5/importlib \ | ||
| 521 | ${libdir}/python3.5/importlib/__pycache__ \ | ||
| 522 | ${libdir}/python3.5/imp.* \ | ||
| 523 | ${libdir}/python3.5/__pycache__/imp.* \ | ||
| 524 | " | ||
| 525 | |||
| 526 | SUMMARY_${PN}-io="Python low-level I/O" | ||
| 527 | RDEPENDS_${PN}-io="${PN}-core ${PN}-math" | ||
| 528 | FILES_${PN}-io="\ | ||
| 529 | ${libdir}/python3.5/lib-dynload/_socket.*.so \ | ||
| 530 | ${libdir}/python3.5/lib-dynload/__pycache__/_socket.*.so \ | ||
| 531 | ${libdir}/python3.5/lib-dynload/_io.*.so \ | ||
| 532 | ${libdir}/python3.5/lib-dynload/__pycache__/_io.*.so \ | ||
| 533 | ${libdir}/python3.5/lib-dynload/_ssl.*.so \ | ||
| 534 | ${libdir}/python3.5/lib-dynload/__pycache__/_ssl.*.so \ | ||
| 535 | ${libdir}/python3.5/lib-dynload/select.*.so \ | ||
| 536 | ${libdir}/python3.5/lib-dynload/__pycache__/select.*.so \ | ||
| 537 | ${libdir}/python3.5/lib-dynload/termios.*.so \ | ||
| 538 | ${libdir}/python3.5/lib-dynload/__pycache__/termios.*.so \ | ||
| 539 | ${libdir}/python3.5/lib-dynload/cStringIO.*.so \ | ||
| 540 | ${libdir}/python3.5/lib-dynload/__pycache__/cStringIO.*.so \ | ||
| 541 | ${libdir}/python3.5/ipaddress.* \ | ||
| 542 | ${libdir}/python3.5/__pycache__/ipaddress.* \ | ||
| 543 | ${libdir}/python3.5/pipes.* \ | ||
| 544 | ${libdir}/python3.5/__pycache__/pipes.* \ | ||
| 545 | ${libdir}/python3.5/socket.* \ | ||
| 546 | ${libdir}/python3.5/__pycache__/socket.* \ | ||
| 547 | ${libdir}/python3.5/ssl.* \ | ||
| 548 | ${libdir}/python3.5/__pycache__/ssl.* \ | ||
| 549 | ${libdir}/python3.5/tempfile.* \ | ||
| 550 | ${libdir}/python3.5/__pycache__/tempfile.* \ | ||
| 551 | ${libdir}/python3.5/StringIO.* \ | ||
| 552 | ${libdir}/python3.5/__pycache__/StringIO.* \ | ||
| 553 | ${libdir}/python3.5/io.* \ | ||
| 554 | ${libdir}/python3.5/__pycache__/io.* \ | ||
| 555 | ${libdir}/python3.5/_pyio.* \ | ||
| 556 | ${libdir}/python3.5/__pycache__/_pyio.* \ | ||
| 557 | " | ||
| 558 | |||
| 559 | SUMMARY_${PN}-json="Python JSON support" | ||
| 560 | RDEPENDS_${PN}-json="${PN}-core ${PN}-math ${PN}-re" | ||
| 561 | FILES_${PN}-json="\ | ||
| 562 | ${libdir}/python3.5/json \ | ||
| 563 | ${libdir}/python3.5/json/__pycache__ \ | ||
| 564 | ${libdir}/python3.5/lib-dynload/_json.*.so \ | ||
| 565 | ${libdir}/python3.5/lib-dynload/__pycache__/_json.*.so \ | ||
| 566 | " | ||
| 567 | |||
| 568 | SUMMARY_${PN}-lang="Python low-level language support" | ||
| 569 | RDEPENDS_${PN}-lang="${PN}-core ${PN}-importlib" | ||
| 570 | FILES_${PN}-lang="\ | ||
| 571 | ${libdir}/python3.5/lib-dynload/_bisect.*.so \ | ||
| 572 | ${libdir}/python3.5/lib-dynload/__pycache__/_bisect.*.so \ | ||
| 573 | ${libdir}/python3.5/lib-dynload/_collections.*.so \ | ||
| 574 | ${libdir}/python3.5/lib-dynload/__pycache__/_collections.*.so \ | ||
| 575 | ${libdir}/python3.5/lib-dynload/_heapq.*.so \ | ||
| 576 | ${libdir}/python3.5/lib-dynload/__pycache__/_heapq.*.so \ | ||
| 577 | ${libdir}/python3.5/lib-dynload/_weakref.*.so \ | ||
| 578 | ${libdir}/python3.5/lib-dynload/__pycache__/_weakref.*.so \ | ||
| 579 | ${libdir}/python3.5/lib-dynload/_functools.*.so \ | ||
| 580 | ${libdir}/python3.5/lib-dynload/__pycache__/_functools.*.so \ | ||
| 581 | ${libdir}/python3.5/lib-dynload/array.*.so \ | ||
| 582 | ${libdir}/python3.5/lib-dynload/__pycache__/array.*.so \ | ||
| 583 | ${libdir}/python3.5/lib-dynload/itertools.*.so \ | ||
| 584 | ${libdir}/python3.5/lib-dynload/__pycache__/itertools.*.so \ | ||
| 585 | ${libdir}/python3.5/lib-dynload/operator.*.so \ | ||
| 586 | ${libdir}/python3.5/lib-dynload/__pycache__/operator.*.so \ | ||
| 587 | ${libdir}/python3.5/lib-dynload/parser.*.so \ | ||
| 588 | ${libdir}/python3.5/lib-dynload/__pycache__/parser.*.so \ | ||
| 589 | ${libdir}/python3.5/atexit.* \ | ||
| 590 | ${libdir}/python3.5/__pycache__/atexit.* \ | ||
| 591 | ${libdir}/python3.5/bisect.* \ | ||
| 592 | ${libdir}/python3.5/__pycache__/bisect.* \ | ||
| 593 | ${libdir}/python3.5/code.* \ | ||
| 594 | ${libdir}/python3.5/__pycache__/code.* \ | ||
| 595 | ${libdir}/python3.5/codeop.* \ | ||
| 596 | ${libdir}/python3.5/__pycache__/codeop.* \ | ||
| 597 | ${libdir}/python3.5/collections.* \ | ||
| 598 | ${libdir}/python3.5/__pycache__/collections.* \ | ||
| 599 | ${libdir}/python3.5/_collections_abc.* \ | ||
| 600 | ${libdir}/python3.5/__pycache__/_collections_abc.* \ | ||
| 601 | ${libdir}/python3.5/contextlib.* \ | ||
| 602 | ${libdir}/python3.5/__pycache__/contextlib.* \ | ||
| 603 | ${libdir}/python3.5/dis.* \ | ||
| 604 | ${libdir}/python3.5/__pycache__/dis.* \ | ||
| 605 | ${libdir}/python3.5/functools.* \ | ||
| 606 | ${libdir}/python3.5/__pycache__/functools.* \ | ||
| 607 | ${libdir}/python3.5/heapq.* \ | ||
| 608 | ${libdir}/python3.5/__pycache__/heapq.* \ | ||
| 609 | ${libdir}/python3.5/inspect.* \ | ||
| 610 | ${libdir}/python3.5/__pycache__/inspect.* \ | ||
| 611 | ${libdir}/python3.5/keyword.* \ | ||
| 612 | ${libdir}/python3.5/__pycache__/keyword.* \ | ||
| 613 | ${libdir}/python3.5/opcode.* \ | ||
| 614 | ${libdir}/python3.5/__pycache__/opcode.* \ | ||
| 615 | ${libdir}/python3.5/operator.* \ | ||
| 616 | ${libdir}/python3.5/__pycache__/operator.* \ | ||
| 617 | ${libdir}/python3.5/symbol.* \ | ||
| 618 | ${libdir}/python3.5/__pycache__/symbol.* \ | ||
| 619 | ${libdir}/python3.5/repr.* \ | ||
| 620 | ${libdir}/python3.5/__pycache__/repr.* \ | ||
| 621 | ${libdir}/python3.5/token.* \ | ||
| 622 | ${libdir}/python3.5/__pycache__/token.* \ | ||
| 623 | ${libdir}/python3.5/tokenize.* \ | ||
| 624 | ${libdir}/python3.5/__pycache__/tokenize.* \ | ||
| 625 | ${libdir}/python3.5/traceback.* \ | ||
| 626 | ${libdir}/python3.5/__pycache__/traceback.* \ | ||
| 627 | ${libdir}/python3.5/weakref.* \ | ||
| 628 | ${libdir}/python3.5/__pycache__/weakref.* \ | ||
| 629 | " | ||
| 630 | |||
| 631 | SUMMARY_${PN}-logging="Python logging support" | ||
| 632 | RDEPENDS_${PN}-logging="${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-stringold" | ||
| 633 | FILES_${PN}-logging="\ | ||
| 634 | ${libdir}/python3.5/logging \ | ||
| 635 | ${libdir}/python3.5/logging/__pycache__ \ | ||
| 636 | " | ||
| 637 | |||
| 638 | SUMMARY_${PN}-mailbox="Python mailbox format support" | ||
| 639 | RDEPENDS_${PN}-mailbox="${PN}-core ${PN}-mime" | ||
| 640 | FILES_${PN}-mailbox="\ | ||
| 641 | ${libdir}/python3.5/mailbox.* \ | ||
| 642 | ${libdir}/python3.5/__pycache__/mailbox.* \ | ||
| 643 | " | ||
| 644 | |||
| 645 | SUMMARY_${PN}-math="Python math support" | ||
| 646 | RDEPENDS_${PN}-math="${PN}-core ${PN}-crypt" | ||
| 647 | FILES_${PN}-math="\ | ||
| 648 | ${libdir}/python3.5/lib-dynload/cmath.*.so \ | ||
| 649 | ${libdir}/python3.5/lib-dynload/__pycache__/cmath.*.so \ | ||
| 650 | ${libdir}/python3.5/lib-dynload/math.*.so \ | ||
| 651 | ${libdir}/python3.5/lib-dynload/__pycache__/math.*.so \ | ||
| 652 | ${libdir}/python3.5/lib-dynload/_random.*.so \ | ||
| 653 | ${libdir}/python3.5/lib-dynload/__pycache__/_random.*.so \ | ||
| 654 | ${libdir}/python3.5/random.* \ | ||
| 655 | ${libdir}/python3.5/__pycache__/random.* \ | ||
| 656 | ${libdir}/python3.5/sets.* \ | ||
| 657 | ${libdir}/python3.5/__pycache__/sets.* \ | ||
| 658 | " | ||
| 659 | |||
| 660 | SUMMARY_${PN}-mime="Python MIME handling APIs" | ||
| 661 | RDEPENDS_${PN}-mime="${PN}-core ${PN}-io" | ||
| 662 | FILES_${PN}-mime="\ | ||
| 663 | ${libdir}/python3.5/mimetools.* \ | ||
| 664 | ${libdir}/python3.5/__pycache__/mimetools.* \ | ||
| 665 | ${libdir}/python3.5/uu.* \ | ||
| 666 | ${libdir}/python3.5/__pycache__/uu.* \ | ||
| 667 | ${libdir}/python3.5/quopri.* \ | ||
| 668 | ${libdir}/python3.5/__pycache__/quopri.* \ | ||
| 669 | ${libdir}/python3.5/rfc822.* \ | ||
| 670 | ${libdir}/python3.5/__pycache__/rfc822.* \ | ||
| 671 | ${libdir}/python3.5/MimeWriter.* \ | ||
| 672 | ${libdir}/python3.5/__pycache__/MimeWriter.* \ | ||
| 673 | " | ||
| 674 | |||
| 675 | SUMMARY_${PN}-mmap="Python memory-mapped file support" | ||
| 676 | RDEPENDS_${PN}-mmap="${PN}-core ${PN}-io" | ||
| 677 | FILES_${PN}-mmap="\ | ||
| 678 | ${libdir}/python3.5/lib-dynload/mmap.*.so \ | ||
| 679 | ${libdir}/python3.5/lib-dynload/__pycache__/mmap.*.so \ | ||
| 680 | " | ||
| 681 | |||
| 682 | SUMMARY_${PN}-multiprocessing="Python multiprocessing support" | ||
| 683 | RDEPENDS_${PN}-multiprocessing="${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-threading ${PN}-ctypes ${PN}-mmap" | ||
| 684 | FILES_${PN}-multiprocessing="\ | ||
| 685 | ${libdir}/python3.5/lib-dynload/_multiprocessing.*.so \ | ||
| 686 | ${libdir}/python3.5/lib-dynload/__pycache__/_multiprocessing.*.so \ | ||
| 687 | ${libdir}/python3.5/multiprocessing \ | ||
| 688 | ${libdir}/python3.5/multiprocessing/__pycache__ \ | ||
| 689 | " | ||
| 690 | |||
| 691 | SUMMARY_${PN}-netclient="Python Internet Protocol clients" | ||
| 692 | RDEPENDS_${PN}-netclient="${PN}-argparse ${PN}-core ${PN}-crypt ${PN}-datetime ${PN}-io ${PN}-lang ${PN}-logging ${PN}-mime ${PN}-html" | ||
| 693 | FILES_${PN}-netclient="\ | ||
| 694 | ${libdir}/python3.5/*Cookie*.* \ | ||
| 695 | ${libdir}/python3.5/__pycache__/*Cookie*.* \ | ||
| 696 | ${libdir}/python3.5/base64.* \ | ||
| 697 | ${libdir}/python3.5/__pycache__/base64.* \ | ||
| 698 | ${libdir}/python3.5/cookielib.* \ | ||
| 699 | ${libdir}/python3.5/__pycache__/cookielib.* \ | ||
| 700 | ${libdir}/python3.5/ftplib.* \ | ||
| 701 | ${libdir}/python3.5/__pycache__/ftplib.* \ | ||
| 702 | ${libdir}/python3.5/gopherlib.* \ | ||
| 703 | ${libdir}/python3.5/__pycache__/gopherlib.* \ | ||
| 704 | ${libdir}/python3.5/hmac.* \ | ||
| 705 | ${libdir}/python3.5/__pycache__/hmac.* \ | ||
| 706 | ${libdir}/python3.5/http* \ | ||
| 707 | ${libdir}/python3.5/http*/__pycache__ \ | ||
| 708 | ${libdir}/python3.5/httplib.* \ | ||
| 709 | ${libdir}/python3.5/__pycache__/httplib.* \ | ||
| 710 | ${libdir}/python3.5/mimetypes.* \ | ||
| 711 | ${libdir}/python3.5/__pycache__/mimetypes.* \ | ||
| 712 | ${libdir}/python3.5/nntplib.* \ | ||
| 713 | ${libdir}/python3.5/__pycache__/nntplib.* \ | ||
| 714 | ${libdir}/python3.5/poplib.* \ | ||
| 715 | ${libdir}/python3.5/__pycache__/poplib.* \ | ||
| 716 | ${libdir}/python3.5/smtplib.* \ | ||
| 717 | ${libdir}/python3.5/__pycache__/smtplib.* \ | ||
| 718 | ${libdir}/python3.5/telnetlib.* \ | ||
| 719 | ${libdir}/python3.5/__pycache__/telnetlib.* \ | ||
| 720 | ${libdir}/python3.5/urllib \ | ||
| 721 | ${libdir}/python3.5/urllib/__pycache__ \ | ||
| 722 | ${libdir}/python3.5/uuid.* \ | ||
| 723 | ${libdir}/python3.5/__pycache__/uuid.* \ | ||
| 724 | ${libdir}/python3.5/rfc822.* \ | ||
| 725 | ${libdir}/python3.5/__pycache__/rfc822.* \ | ||
| 726 | ${libdir}/python3.5/mimetools.* \ | ||
| 727 | ${libdir}/python3.5/__pycache__/mimetools.* \ | ||
| 728 | " | ||
| 729 | |||
| 730 | SUMMARY_${PN}-netserver="Python Internet Protocol servers" | ||
| 731 | RDEPENDS_${PN}-netserver="${PN}-core ${PN}-netclient ${PN}-shell ${PN}-threading" | ||
| 732 | FILES_${PN}-netserver="\ | ||
| 733 | ${libdir}/python3.5/cgi.* \ | ||
| 734 | ${libdir}/python3.5/__pycache__/cgi.* \ | ||
| 735 | ${libdir}/python3.5/socketserver.* \ | ||
| 736 | ${libdir}/python3.5/__pycache__/socketserver.* \ | ||
| 737 | ${libdir}/python3.5/*HTTPServer.* \ | ||
| 738 | ${libdir}/python3.5/__pycache__/*HTTPServer.* \ | ||
| 739 | ${libdir}/python3.5/SocketServer.* \ | ||
| 740 | ${libdir}/python3.5/__pycache__/SocketServer.* \ | ||
| 741 | " | ||
| 742 | |||
| 743 | SUMMARY_${PN}-numbers="Python number APIs" | ||
| 744 | RDEPENDS_${PN}-numbers="${PN}-core ${PN}-lang ${PN}-re" | ||
| 745 | FILES_${PN}-numbers="\ | ||
| 746 | ${libdir}/python3.5/decimal.* \ | ||
| 747 | ${libdir}/python3.5/__pycache__/decimal.* \ | ||
| 748 | ${libdir}/python3.5/fractions.* \ | ||
| 749 | ${libdir}/python3.5/__pycache__/fractions.* \ | ||
| 750 | ${libdir}/python3.5/numbers.* \ | ||
| 751 | ${libdir}/python3.5/__pycache__/numbers.* \ | ||
| 752 | " | ||
| 753 | |||
| 754 | SUMMARY_${PN}-pickle="Python serialisation/persistence support" | ||
| 755 | RDEPENDS_${PN}-pickle="${PN}-core ${PN}-codecs ${PN}-io ${PN}-re" | ||
| 756 | FILES_${PN}-pickle="\ | ||
| 757 | ${libdir}/python3.5/_compat_pickle.* \ | ||
| 758 | ${libdir}/python3.5/__pycache__/_compat_pickle.* \ | ||
| 759 | ${libdir}/python3.5/pickle.* \ | ||
| 760 | ${libdir}/python3.5/__pycache__/pickle.* \ | ||
| 761 | ${libdir}/python3.5/shelve.* \ | ||
| 762 | ${libdir}/python3.5/__pycache__/shelve.* \ | ||
| 763 | ${libdir}/python3.5/lib-dynload/cPickle.*.so \ | ||
| 764 | ${libdir}/python3.5/lib-dynload/__pycache__/cPickle.*.so \ | ||
| 765 | ${libdir}/python3.5/pickletools.* \ | ||
| 766 | ${libdir}/python3.5/__pycache__/pickletools.* \ | ||
| 767 | " | ||
| 768 | |||
| 769 | SUMMARY_${PN}-pkgutil="Python package extension utility support" | ||
| 770 | RDEPENDS_${PN}-pkgutil="${PN}-core" | ||
| 771 | FILES_${PN}-pkgutil="\ | ||
| 772 | ${libdir}/python3.5/pkgutil.* \ | ||
| 773 | ${libdir}/python3.5/__pycache__/pkgutil.* \ | ||
| 774 | " | ||
| 775 | |||
| 776 | SUMMARY_${PN}-plistlib="Generate and parse Mac OS X .plist files" | ||
| 777 | RDEPENDS_${PN}-plistlib="${PN}-core ${PN}-datetime ${PN}-io" | ||
| 778 | FILES_${PN}-plistlib="\ | ||
| 779 | ${libdir}/python3.5/plistlib.* \ | ||
| 780 | ${libdir}/python3.5/__pycache__/plistlib.* \ | ||
| 781 | " | ||
| 782 | |||
| 783 | SUMMARY_${PN}-pprint="Python pretty-print support" | ||
| 784 | RDEPENDS_${PN}-pprint="${PN}-core ${PN}-io" | ||
| 785 | FILES_${PN}-pprint="\ | ||
| 786 | ${libdir}/python3.5/pprint.* \ | ||
| 787 | ${libdir}/python3.5/__pycache__/pprint.* \ | ||
| 788 | " | ||
| 789 | |||
| 790 | SUMMARY_${PN}-profile="Python basic performance profiling support" | ||
| 791 | RDEPENDS_${PN}-profile="${PN}-core ${PN}-textutils" | ||
| 792 | FILES_${PN}-profile="\ | ||
| 793 | ${libdir}/python3.5/profile.* \ | ||
| 794 | ${libdir}/python3.5/__pycache__/profile.* \ | ||
| 795 | ${libdir}/python3.5/pstats.* \ | ||
| 796 | ${libdir}/python3.5/__pycache__/pstats.* \ | ||
| 797 | ${libdir}/python3.5/cProfile.* \ | ||
| 798 | ${libdir}/python3.5/__pycache__/cProfile.* \ | ||
| 799 | ${libdir}/python3.5/lib-dynload/_lsprof.*.so \ | ||
| 800 | ${libdir}/python3.5/lib-dynload/__pycache__/_lsprof.*.so \ | ||
| 801 | " | ||
| 802 | |||
| 803 | SUMMARY_${PN}-pydoc="Python interactive help support" | ||
| 804 | RDEPENDS_${PN}-pydoc="${PN}-core ${PN}-lang ${PN}-stringold ${PN}-re" | ||
| 805 | FILES_${PN}-pydoc="\ | ||
| 806 | ${bindir}/pydoc \ | ||
| 807 | ${libdir}/python3.5/pydoc.* \ | ||
| 808 | ${libdir}/python3.5/__pycache__/pydoc.* \ | ||
| 809 | ${libdir}/python3.5/pydoc_data \ | ||
| 810 | ${libdir}/python3.5/pydoc_data/__pycache__ \ | ||
| 811 | " | ||
| 812 | |||
| 813 | SUMMARY_${PN}-re="Python Regular Expression APIs" | ||
| 814 | RDEPENDS_${PN}-re="${PN}-core" | ||
| 815 | FILES_${PN}-re="\ | ||
| 816 | ${libdir}/python3.5/re.* \ | ||
| 817 | ${libdir}/python3.5/__pycache__/re.* \ | ||
| 818 | ${libdir}/python3.5/sre.* \ | ||
| 819 | ${libdir}/python3.5/__pycache__/sre.* \ | ||
| 820 | ${libdir}/python3.5/sre_compile.* \ | ||
| 821 | ${libdir}/python3.5/__pycache__/sre_compile.* \ | ||
| 822 | ${libdir}/python3.5/sre_constants* \ | ||
| 823 | ${libdir}/python3.5/sre_constants*/__pycache__ \ | ||
| 824 | ${libdir}/python3.5/sre_parse.* \ | ||
| 825 | ${libdir}/python3.5/__pycache__/sre_parse.* \ | ||
| 826 | " | ||
| 827 | |||
| 828 | SUMMARY_${PN}-readline="Python readline support" | ||
| 829 | RDEPENDS_${PN}-readline="${PN}-core" | ||
| 830 | FILES_${PN}-readline="\ | ||
| 831 | ${libdir}/python3.5/lib-dynload/readline.*.so \ | ||
| 832 | ${libdir}/python3.5/lib-dynload/__pycache__/readline.*.so \ | ||
| 833 | ${libdir}/python3.5/rlcompleter.* \ | ||
| 834 | ${libdir}/python3.5/__pycache__/rlcompleter.* \ | ||
| 835 | " | ||
| 836 | |||
| 837 | SUMMARY_${PN}-reprlib="Python alternate repr() implementation" | ||
| 838 | RDEPENDS_${PN}-reprlib="${PN}-core" | ||
| 839 | FILES_${PN}-reprlib="\ | ||
| 840 | ${libdir}/python3.5/reprlib.py \ | ||
| 841 | ${libdir}/python3.5/__pycache__/reprlib.py \ | ||
| 842 | " | ||
| 843 | |||
| 844 | SUMMARY_${PN}-resource="Python resource control interface" | ||
| 845 | RDEPENDS_${PN}-resource="${PN}-core" | ||
| 846 | FILES_${PN}-resource="\ | ||
| 847 | ${libdir}/python3.5/lib-dynload/resource.*.so \ | ||
| 848 | ${libdir}/python3.5/lib-dynload/__pycache__/resource.*.so \ | ||
| 849 | " | ||
| 850 | |||
| 851 | SUMMARY_${PN}-runpy="Python script for locating/executing scripts in module namespace" | ||
| 852 | RDEPENDS_${PN}-runpy="${PN}-core ${PN}-pkgutil" | ||
| 853 | FILES_${PN}-runpy="\ | ||
| 854 | ${libdir}/python3.5/runpy.* \ | ||
| 855 | ${libdir}/python3.5/__pycache__/runpy.* \ | ||
| 856 | " | ||
| 857 | |||
| 858 | SUMMARY_${PN}-selectors="Python High-level I/O multiplexing" | ||
| 859 | RDEPENDS_${PN}-selectors="${PN}-core" | ||
| 860 | FILES_${PN}-selectors="\ | ||
| 861 | ${libdir}/python3.5/selectors.* \ | ||
| 862 | ${libdir}/python3.5/__pycache__/selectors.* \ | ||
| 863 | " | ||
| 864 | |||
| 865 | SUMMARY_${PN}-shell="Python shell-like functionality" | ||
| 866 | RDEPENDS_${PN}-shell="${PN}-core ${PN}-re ${PN}-compression" | ||
| 867 | FILES_${PN}-shell="\ | ||
| 868 | ${libdir}/python3.5/cmd.* \ | ||
| 869 | ${libdir}/python3.5/__pycache__/cmd.* \ | ||
| 870 | ${libdir}/python3.5/commands.* \ | ||
| 871 | ${libdir}/python3.5/__pycache__/commands.* \ | ||
| 872 | ${libdir}/python3.5/dircache.* \ | ||
| 873 | ${libdir}/python3.5/__pycache__/dircache.* \ | ||
| 874 | ${libdir}/python3.5/fnmatch.* \ | ||
| 875 | ${libdir}/python3.5/__pycache__/fnmatch.* \ | ||
| 876 | ${libdir}/python3.5/glob.* \ | ||
| 877 | ${libdir}/python3.5/__pycache__/glob.* \ | ||
| 878 | ${libdir}/python3.5/popen2.* \ | ||
| 879 | ${libdir}/python3.5/__pycache__/popen2.* \ | ||
| 880 | ${libdir}/python3.5/shlex.* \ | ||
| 881 | ${libdir}/python3.5/__pycache__/shlex.* \ | ||
| 882 | ${libdir}/python3.5/shutil.* \ | ||
| 883 | ${libdir}/python3.5/__pycache__/shutil.* \ | ||
| 884 | " | ||
| 885 | |||
| 886 | SUMMARY_${PN}-signal="Python set handlers for asynchronous events support" | ||
| 887 | RDEPENDS_${PN}-signal="${PN}-core ${PN}-enum" | ||
| 888 | FILES_${PN}-signal="\ | ||
| 889 | ${libdir}/python3.5/signal.* \ | ||
| 890 | ${libdir}/python3.5/__pycache__/signal.* \ | ||
| 891 | " | ||
| 892 | |||
| 893 | SUMMARY_${PN}-smtpd="Python Simple Mail Transport Daemon" | ||
| 894 | RDEPENDS_${PN}-smtpd="${PN}-core ${PN}-netserver ${PN}-email ${PN}-mime" | ||
| 895 | FILES_${PN}-smtpd="\ | ||
| 896 | ${bindir}/smtpd.* \ | ||
| 897 | ${libdir}/python3.5/smtpd.* \ | ||
| 898 | ${libdir}/python3.5/__pycache__/smtpd.* \ | ||
| 899 | " | ||
| 900 | |||
| 901 | SUMMARY_${PN}-sqlite3="Python Sqlite3 database support" | ||
| 902 | RDEPENDS_${PN}-sqlite3="${PN}-core ${PN}-datetime ${PN}-lang ${PN}-crypt ${PN}-io ${PN}-threading" | ||
| 903 | FILES_${PN}-sqlite3="\ | ||
| 904 | ${libdir}/python3.5/lib-dynload/_sqlite3.*.so \ | ||
| 905 | ${libdir}/python3.5/lib-dynload/__pycache__/_sqlite3.*.so \ | ||
| 906 | ${libdir}/python3.5/sqlite3/dbapi2.* \ | ||
| 907 | ${libdir}/python3.5/sqlite3/__pycache__/dbapi2.* \ | ||
| 908 | ${libdir}/python3.5/sqlite3/__init__.* \ | ||
| 909 | ${libdir}/python3.5/sqlite3/__pycache__/__init__.* \ | ||
| 910 | ${libdir}/python3.5/sqlite3/dump.* \ | ||
| 911 | ${libdir}/python3.5/sqlite3/__pycache__/dump.* \ | ||
| 912 | " | ||
| 913 | |||
| 914 | SUMMARY_${PN}-sqlite3-tests="Python Sqlite3 database support tests" | ||
| 915 | RDEPENDS_${PN}-sqlite3-tests="${PN}-core ${PN}-sqlite3" | ||
| 916 | FILES_${PN}-sqlite3-tests="\ | ||
| 917 | ${libdir}/python3.5/sqlite3/test \ | ||
| 918 | ${libdir}/python3.5/sqlite3/test/__pycache__ \ | ||
| 919 | " | ||
| 920 | |||
| 921 | SUMMARY_${PN}-stringold="Python string APIs [deprecated]" | ||
| 922 | RDEPENDS_${PN}-stringold="${PN}-core ${PN}-re" | ||
| 923 | FILES_${PN}-stringold="\ | ||
| 924 | ${libdir}/python3.5/lib-dynload/strop.*.so \ | ||
| 925 | ${libdir}/python3.5/lib-dynload/__pycache__/strop.*.so \ | ||
| 926 | ${libdir}/python3.5/string.* \ | ||
| 927 | ${libdir}/python3.5/__pycache__/string.* \ | ||
| 928 | ${libdir}/python3.5/stringold.* \ | ||
| 929 | ${libdir}/python3.5/__pycache__/stringold.* \ | ||
| 930 | " | ||
| 931 | |||
| 932 | SUMMARY_${PN}-subprocess="Python subprocess support" | ||
| 933 | RDEPENDS_${PN}-subprocess="${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle ${PN}-threading ${PN}-signal ${PN}-selectors" | ||
| 934 | FILES_${PN}-subprocess="\ | ||
| 935 | ${libdir}/python3.5/subprocess.* \ | ||
| 936 | ${libdir}/python3.5/__pycache__/subprocess.* \ | ||
| 937 | ${libdir}/python3.5/lib-dynload/_posixsubprocess.*.so \ | ||
| 938 | ${libdir}/python3.5/lib-dynload/__pycache__/_posixsubprocess.*.so \ | ||
| 939 | " | ||
| 940 | |||
| 941 | SUMMARY_${PN}-syslog="Python syslog interface" | ||
| 942 | RDEPENDS_${PN}-syslog="${PN}-core" | ||
| 943 | FILES_${PN}-syslog="\ | ||
| 944 | ${libdir}/python3.5/lib-dynload/syslog.*.so \ | ||
| 945 | ${libdir}/python3.5/lib-dynload/__pycache__/syslog.*.so \ | ||
| 946 | " | ||
| 947 | |||
| 948 | SUMMARY_${PN}-terminal="Python terminal controlling support" | ||
| 949 | RDEPENDS_${PN}-terminal="${PN}-core ${PN}-io" | ||
| 950 | FILES_${PN}-terminal="\ | ||
| 951 | ${libdir}/python3.5/pty.* \ | ||
| 952 | ${libdir}/python3.5/__pycache__/pty.* \ | ||
| 953 | ${libdir}/python3.5/tty.* \ | ||
| 954 | ${libdir}/python3.5/__pycache__/tty.* \ | ||
| 955 | " | ||
| 956 | |||
| 957 | SUMMARY_${PN}-tests="Python tests" | ||
| 958 | RDEPENDS_${PN}-tests="${PN}-core ${PN}-compression" | ||
| 959 | FILES_${PN}-tests="\ | ||
| 960 | ${libdir}/python3.5/test \ | ||
| 961 | ${libdir}/python3.5/test/__pycache__ \ | ||
| 962 | " | ||
| 963 | |||
| 964 | SUMMARY_${PN}-textutils="Python option parsing, text wrapping and CSV support" | ||
| 965 | RDEPENDS_${PN}-textutils="${PN}-core ${PN}-io ${PN}-re ${PN}-stringold" | ||
| 966 | FILES_${PN}-textutils="\ | ||
| 967 | ${libdir}/python3.5/lib-dynload/_csv.*.so \ | ||
| 968 | ${libdir}/python3.5/lib-dynload/__pycache__/_csv.*.so \ | ||
| 969 | ${libdir}/python3.5/csv.* \ | ||
| 970 | ${libdir}/python3.5/__pycache__/csv.* \ | ||
| 971 | ${libdir}/python3.5/optparse.* \ | ||
| 972 | ${libdir}/python3.5/__pycache__/optparse.* \ | ||
| 973 | ${libdir}/python3.5/textwrap.* \ | ||
| 974 | ${libdir}/python3.5/__pycache__/textwrap.* \ | ||
| 975 | " | ||
| 976 | |||
| 977 | SUMMARY_${PN}-threading="Python threading & synchronization support" | ||
| 978 | RDEPENDS_${PN}-threading="${PN}-core ${PN}-lang" | ||
| 979 | FILES_${PN}-threading="\ | ||
| 980 | ${libdir}/python3.5/_threading_local.* \ | ||
| 981 | ${libdir}/python3.5/__pycache__/_threading_local.* \ | ||
| 982 | ${libdir}/python3.5/dummy_thread.* \ | ||
| 983 | ${libdir}/python3.5/__pycache__/dummy_thread.* \ | ||
| 984 | ${libdir}/python3.5/dummy_threading.* \ | ||
| 985 | ${libdir}/python3.5/__pycache__/dummy_threading.* \ | ||
| 986 | ${libdir}/python3.5/mutex.* \ | ||
| 987 | ${libdir}/python3.5/__pycache__/mutex.* \ | ||
| 988 | ${libdir}/python3.5/threading.* \ | ||
| 989 | ${libdir}/python3.5/__pycache__/threading.* \ | ||
| 990 | ${libdir}/python3.5/queue.* \ | ||
| 991 | ${libdir}/python3.5/__pycache__/queue.* \ | ||
| 992 | " | ||
| 993 | |||
| 994 | SUMMARY_${PN}-tkinter="Python Tcl/Tk bindings" | ||
| 995 | RDEPENDS_${PN}-tkinter="${PN}-core" | ||
| 996 | FILES_${PN}-tkinter="\ | ||
| 997 | ${libdir}/python3.5/lib-dynload/_tkinter.*.so \ | ||
| 998 | ${libdir}/python3.5/lib-dynload/__pycache__/_tkinter.*.so \ | ||
| 999 | ${libdir}/python3.5/lib-tk \ | ||
| 1000 | ${libdir}/python3.5/lib-tk/__pycache__ \ | ||
| 1001 | ${libdir}/python3.5/tkinter \ | ||
| 1002 | ${libdir}/python3.5/tkinter/__pycache__ \ | ||
| 1003 | " | ||
| 1004 | |||
| 1005 | SUMMARY_${PN}-typing="Python typing support" | ||
| 1006 | RDEPENDS_${PN}-typing="${PN}-core" | ||
| 1007 | FILES_${PN}-typing="\ | ||
| 1008 | ${libdir}/python3.5/typing.* \ | ||
| 1009 | ${libdir}/python3.5/__pycache__/typing.* \ | ||
| 1010 | " | ||
| 1011 | |||
| 1012 | SUMMARY_${PN}-unittest="Python unit testing framework" | ||
| 1013 | RDEPENDS_${PN}-unittest="${PN}-core ${PN}-stringold ${PN}-lang ${PN}-io ${PN}-difflib ${PN}-pprint ${PN}-shell" | ||
| 1014 | FILES_${PN}-unittest="\ | ||
| 1015 | ${libdir}/python3.5/unittest/ \ | ||
| 1016 | ${libdir}/python3.5/unittest/__pycache__ \ | ||
| 1017 | " | ||
| 1018 | |||
| 1019 | SUMMARY_${PN}-unixadmin="Python Unix administration support" | ||
| 1020 | RDEPENDS_${PN}-unixadmin="${PN}-core" | ||
| 1021 | FILES_${PN}-unixadmin="\ | ||
| 1022 | ${libdir}/python3.5/lib-dynload/nis.*.so \ | ||
| 1023 | ${libdir}/python3.5/lib-dynload/__pycache__/nis.*.so \ | ||
| 1024 | ${libdir}/python3.5/lib-dynload/grp.*.so \ | ||
| 1025 | ${libdir}/python3.5/lib-dynload/__pycache__/grp.*.so \ | ||
| 1026 | ${libdir}/python3.5/lib-dynload/pwd.*.so \ | ||
| 1027 | ${libdir}/python3.5/lib-dynload/__pycache__/pwd.*.so \ | ||
| 1028 | ${libdir}/python3.5/getpass.* \ | ||
| 1029 | ${libdir}/python3.5/__pycache__/getpass.* \ | ||
| 1030 | " | ||
| 1031 | |||
| 1032 | SUMMARY_${PN}-xml="Python basic XML support" | ||
| 1033 | RDEPENDS_${PN}-xml="${PN}-core ${PN}-re" | ||
| 1034 | FILES_${PN}-xml="\ | ||
| 1035 | ${libdir}/python3.5/lib-dynload/_elementtree.*.so \ | ||
| 1036 | ${libdir}/python3.5/lib-dynload/__pycache__/_elementtree.*.so \ | ||
| 1037 | ${libdir}/python3.5/lib-dynload/pyexpat.*.so \ | ||
| 1038 | ${libdir}/python3.5/lib-dynload/__pycache__/pyexpat.*.so \ | ||
| 1039 | ${libdir}/python3.5/xml \ | ||
| 1040 | ${libdir}/python3.5/xml/__pycache__ \ | ||
| 1041 | ${libdir}/python3.5/xmllib.* \ | ||
| 1042 | ${libdir}/python3.5/__pycache__/xmllib.* \ | ||
| 1043 | " | ||
| 1044 | |||
| 1045 | SUMMARY_${PN}-xmlrpc="Python XML-RPC support" | ||
| 1046 | RDEPENDS_${PN}-xmlrpc="${PN}-core ${PN}-xml ${PN}-netserver ${PN}-lang ${PN}-pydoc" | ||
| 1047 | FILES_${PN}-xmlrpc="\ | ||
| 1048 | ${libdir}/python3.5/xmlrpclib.* \ | ||
| 1049 | ${libdir}/python3.5/__pycache__/xmlrpclib.* \ | ||
| 1050 | ${libdir}/python3.5/SimpleXMLRPCServer.* \ | ||
| 1051 | ${libdir}/python3.5/__pycache__/SimpleXMLRPCServer.* \ | ||
| 1052 | ${libdir}/python3.5/DocXMLRPCServer.* \ | ||
| 1053 | ${libdir}/python3.5/__pycache__/DocXMLRPCServer.* \ | ||
| 1054 | ${libdir}/python3.5/xmlrpc \ | ||
| 1055 | ${libdir}/python3.5/xmlrpc/__pycache__ \ | ||
| 1056 | " | ||
| 1057 | |||
| 1058 | SUMMARY_${PN}-modules="All Python modules" | ||
| 1059 | RDEPENDS_${PN}-modules=" \ | ||
| 1060 | ${PN}-2to3 \ | ||
| 1061 | ${PN}-argparse \ | ||
| 1062 | ${PN}-asyncio \ | ||
| 1063 | ${PN}-audio \ | ||
| 1064 | ${PN}-codecs \ | ||
| 1065 | ${PN}-compile \ | ||
| 1066 | ${PN}-compression \ | ||
| 1067 | ${PN}-core \ | ||
| 1068 | ${PN}-crypt \ | ||
| 1069 | ${PN}-ctypes \ | ||
| 1070 | ${PN}-curses \ | ||
| 1071 | ${PN}-datetime \ | ||
| 1072 | ${PN}-db \ | ||
| 1073 | ${PN}-debugger \ | ||
| 1074 | ${PN}-difflib \ | ||
| 1075 | ${PN}-distutils \ | ||
| 1076 | ${PN}-doctest \ | ||
| 1077 | ${PN}-email \ | ||
| 1078 | ${PN}-enum \ | ||
| 1079 | ${PN}-fcntl \ | ||
| 1080 | ${PN}-gdbm \ | ||
| 1081 | ${PN}-html \ | ||
| 1082 | ${PN}-idle \ | ||
| 1083 | ${PN}-image \ | ||
| 1084 | ${PN}-importlib \ | ||
| 1085 | ${PN}-io \ | ||
| 1086 | ${PN}-json \ | ||
| 1087 | ${PN}-lang \ | ||
| 1088 | ${PN}-logging \ | ||
| 1089 | ${PN}-mailbox \ | ||
| 1090 | ${PN}-math \ | ||
| 1091 | ${PN}-mime \ | ||
| 1092 | ${PN}-mmap \ | ||
| 1093 | ${PN}-multiprocessing \ | ||
| 1094 | ${PN}-netclient \ | ||
| 1095 | ${PN}-netserver \ | ||
| 1096 | ${PN}-numbers \ | ||
| 1097 | ${PN}-pickle \ | ||
| 1098 | ${PN}-pkgutil \ | ||
| 1099 | ${PN}-plistlib \ | ||
| 1100 | ${PN}-pprint \ | ||
| 1101 | ${PN}-profile \ | ||
| 1102 | ${PN}-pydoc \ | ||
| 1103 | ${PN}-re \ | ||
| 1104 | ${PN}-readline \ | ||
| 1105 | ${PN}-reprlib \ | ||
| 1106 | ${PN}-resource \ | ||
| 1107 | ${PN}-runpy \ | ||
| 1108 | ${PN}-selectors \ | ||
| 1109 | ${PN}-shell \ | ||
| 1110 | ${PN}-signal \ | ||
| 1111 | ${PN}-smtpd \ | ||
| 1112 | ${PN}-sqlite3 \ | ||
| 1113 | ${PN}-sqlite3-tests \ | ||
| 1114 | ${PN}-stringold \ | ||
| 1115 | ${PN}-subprocess \ | ||
| 1116 | ${PN}-syslog \ | ||
| 1117 | ${PN}-terminal \ | ||
| 1118 | ${PN}-textutils \ | ||
| 1119 | ${PN}-threading \ | ||
| 1120 | ${PN}-tkinter \ | ||
| 1121 | ${PN}-typing \ | ||
| 1122 | ${PN}-unittest \ | ||
| 1123 | ${PN}-unixadmin \ | ||
| 1124 | ${PN}-xml \ | ||
| 1125 | ${PN}-xmlrpc \ | ||
| 1126 | " | ||
| 1127 | ALLOW_EMPTY_${PN}-modules = "1" | ||
| 1128 | |||
| 1129 | |||
diff --git a/meta/recipes-devtools/python/python-native-3.5-manifest.inc b/meta/recipes-devtools/python/python-native-3.5-manifest.inc deleted file mode 100644 index f1f732eb84..0000000000 --- a/meta/recipes-devtools/python/python-native-3.5-manifest.inc +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | |||
| 2 | # WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. | ||
| 3 | # Generator: '../scripts/contrib/python/generate-manifest-3.5.py --native' Version 20140131 (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de> | ||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | RPROVIDES += "python3-modules-native python3-2to3-native python3-argparse-native python3-asyncio-native python3-audio-native python3-codecs-native python3-compile-native python3-compression-native python3-core-native python3-crypt-native python3-ctypes-native python3-curses-native python3-datetime-native python3-db-native python3-debugger-native python3-dev-native python3-difflib-native python3-distutils-native python3-distutils-staticdev-native python3-doctest-native python3-email-native python3-enum-native python3-fcntl-native python3-gdbm-native python3-html-native python3-idle-native python3-image-native python3-importlib-native python3-io-native python3-json-native python3-lang-native python3-logging-native python3-mailbox-native python3-math-native python3-mime-native python3-mmap-native python3-multiprocessing-native python3-netclient-native python3-netserver-native python3-numbers-native python3-pickle-native python3-pkgutil-native python3-pprint-native python3-profile-native python3-pydoc-native python3-re-native python3-readline-native python3-reprlib-native python3-resource-native python3-selectors-native python3-shell-native python3-signal-native python3-smtpd-native python3-sqlite3-native python3-sqlite3-tests-native python3-stringold-native python3-subprocess-native python3-syslog-native python3-terminal-native python3-tests-native python3-textutils-native python3-threading-native python3-tkinter-native python3-typing-native python3-unittest-native python3-unixadmin-native python3-xml-native python3-xmlrpc-native" | ||
| 8 | |||
| 9 | |||
| 10 | |||
diff --git a/meta/recipes-devtools/python/python3-native_3.5.3.bb b/meta/recipes-devtools/python/python3-native_3.5.3.bb index 8cd9c88a82..3053c4bace 100644 --- a/meta/recipes-devtools/python/python3-native_3.5.3.bb +++ b/meta/recipes-devtools/python/python3-native_3.5.3.bb | |||
| @@ -42,8 +42,6 @@ DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native s | |||
| 42 | 42 | ||
| 43 | inherit native | 43 | inherit native |
| 44 | 44 | ||
| 45 | require python-native-${PYTHON_MAJMIN}-manifest.inc | ||
| 46 | |||
| 47 | # uninative may be used on pre glibc 2.25 systems which don't have getentropy | 45 | # uninative may be used on pre glibc 2.25 systems which don't have getentropy |
| 48 | EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip ac_cv_func_getentropy=no" | 46 | EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip ac_cv_func_getentropy=no" |
| 49 | 47 | ||
| @@ -77,8 +75,30 @@ do_install() { | |||
| 77 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | 75 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT |
| 78 | done | 76 | done |
| 79 | 77 | ||
| 80 | # Tests are large and we don't need them in the native sysroot | 78 | # Add a symlink to the native Python so that scripts can just invoke |
| 81 | rm ${D}${libdir}/python${PYTHON_MAJMIN}/test -rf | 79 | # "nativepython" and get the right one without needing absolute paths |
| 80 | # (these often end up too long for the #! parser in the kernel as the | ||
| 81 | # buffer is 128 bytes long). | ||
| 82 | ln -s python3-native/python3 ${D}${bindir}/nativepython3 | ||
| 82 | } | 83 | } |
| 83 | 84 | ||
| 84 | RPROVIDES += "python3-misc-native" | 85 | python(){ |
| 86 | |||
| 87 | # Read JSON manifest | ||
| 88 | import json | ||
| 89 | pythondir = d.getVar('THISDIR',True) | ||
| 90 | with open(pythondir+'/python3/python3-manifest.json') as manifest_file: | ||
| 91 | python_manifest=json.load(manifest_file) | ||
| 92 | |||
| 93 | rprovides = d.getVar('RPROVIDES').split() | ||
| 94 | |||
| 95 | # Hardcoded since it cant be python3-native-foo, should be python3-foo-native | ||
| 96 | pn = 'python3' | ||
| 97 | |||
| 98 | for key in python_manifest: | ||
| 99 | pypackage = pn + '-' + key + '-native' | ||
| 100 | if pypackage not in rprovides: | ||
| 101 | rprovides.append(pypackage) | ||
| 102 | |||
| 103 | d.setVar('RPROVIDES', ' '.join(rprovides)) | ||
| 104 | } | ||
diff --git a/meta/recipes-devtools/python/python3/create_manifest3.py b/meta/recipes-devtools/python/python3/create_manifest3.py new file mode 100644 index 0000000000..ead27e9fcc --- /dev/null +++ b/meta/recipes-devtools/python/python3/create_manifest3.py | |||
| @@ -0,0 +1,321 @@ | |||
| 1 | # This script is used as a bitbake task to create a new python manifest | ||
| 2 | # $ bitbake python -c create_manifest | ||
| 3 | # | ||
| 4 | # Our goal is to keep python-core as small as posible and add other python | ||
| 5 | # packages only when the user needs them, hence why we split upstream python | ||
| 6 | # into several packages. | ||
| 7 | # | ||
| 8 | # In a very simplistic way what this does is: | ||
| 9 | # Launch python and see specifically what is required for it to run at a minimum | ||
| 10 | # | ||
| 11 | # Go through the python-manifest file and launch a separate task for every single | ||
| 12 | # one of the files on each package, this task will check what was required for that | ||
| 13 | # specific module to run, these modules will be called dependencies. | ||
| 14 | # The output of such task will be a list of the modules or dependencies that were | ||
| 15 | # found for that file. | ||
| 16 | # | ||
| 17 | # Such output will be parsed by this script, we will look for each dependency on the | ||
| 18 | # manifest and if we find that another package already includes it, then we will add | ||
| 19 | # that package as an RDEPENDS to the package we are currently checking; in case we dont | ||
| 20 | # find the current dependency on any other package we will add it to the current package | ||
| 21 | # as part of FILES. | ||
| 22 | # | ||
| 23 | # | ||
| 24 | # This way we will create a new manifest from the data structure that was built during | ||
| 25 | # this process, ont this new manifest each package will contain specifically only | ||
| 26 | # what it needs to run. | ||
| 27 | # | ||
| 28 | # There are some caveats which we try to deal with, such as repeated files on different | ||
| 29 | # packages, packages that include folders, wildcards, and special packages. | ||
| 30 | # Its also important to note that this method only works for python files, and shared | ||
| 31 | # libraries. Static libraries, header files and binaries need to be dealt with manually. | ||
| 32 | # | ||
| 33 | # This script differs from its python2 version mostly on how shared libraries are handled | ||
| 34 | # The manifest file for python3 has an extra field which contains the cached files for | ||
| 35 | # each package. | ||
| 36 | # Tha method to handle cached files does not work when a module includes a folder which | ||
| 37 | # itself contains the pycache folder, gladly this is almost never the case. | ||
| 38 | # | ||
| 39 | # Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com> | ||
| 40 | |||
| 41 | |||
| 42 | import sys | ||
| 43 | import subprocess | ||
| 44 | import json | ||
| 45 | import os | ||
| 46 | |||
| 47 | # Hack to get native python search path (for folders), not fond of it but it works for now | ||
| 48 | pivot='recipe-sysroot-native' | ||
| 49 | for p in sys.path: | ||
| 50 | if pivot in p: | ||
| 51 | nativelibfolder=p[:p.find(pivot)+len(pivot)] | ||
| 52 | |||
| 53 | # Empty dict to hold the whole manifest | ||
| 54 | new_manifest = {} | ||
| 55 | |||
| 56 | # Check for repeated files, folders and wildcards | ||
| 57 | allfiles=[] | ||
| 58 | repeated=[] | ||
| 59 | wildcards=[] | ||
| 60 | |||
| 61 | hasfolders=[] | ||
| 62 | allfolders=[] | ||
| 63 | |||
| 64 | def isFolder(value): | ||
| 65 | if os.path.isdir(value.replace('${libdir}',nativelibfolder+'/usr/lib')) or os.path.isdir(value.replace('${libdir}',nativelibfolder+'/usr/lib64')) or os.path.isdir(value.replace('${libdir}',nativelibfolder+'/usr/lib32')): | ||
| 66 | return True | ||
| 67 | else: | ||
| 68 | return False | ||
| 69 | |||
| 70 | def isCached(item): | ||
| 71 | if '__pycache__' in item: | ||
| 72 | return True | ||
| 73 | else: | ||
| 74 | return False | ||
| 75 | |||
| 76 | # Read existing JSON manifest | ||
| 77 | with open('python3-manifest.json') as manifest: | ||
| 78 | old_manifest=json.load(manifest) | ||
| 79 | |||
| 80 | |||
| 81 | # First pass to get core-package functionality, because we base everything on the fact that core is actually working | ||
| 82 | # Not exactly the same so it should not be a function | ||
| 83 | print ('Getting dependencies for core package:') | ||
| 84 | |||
| 85 | # Special call to check for core package | ||
| 86 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', 'python-core-package']).decode('utf8') | ||
| 87 | for item in output.split(): | ||
| 88 | # We append it so it doesnt hurt what we currently have: | ||
| 89 | if isCached(item): | ||
| 90 | if item not in old_manifest['core']['cached']: | ||
| 91 | # We use the same data structure since its the one which will be used to check | ||
| 92 | # dependencies for other packages | ||
| 93 | old_manifest['core']['cached'].append(item) | ||
| 94 | else: | ||
| 95 | if item not in old_manifest['core']['files']: | ||
| 96 | # We use the same data structure since its the one which will be used to check | ||
| 97 | # dependencies for other packages | ||
| 98 | old_manifest['core']['files'].append(item) | ||
| 99 | |||
| 100 | for value in old_manifest['core']['files']: | ||
| 101 | # Ignore folders, since we don't import those, difficult to handle multilib | ||
| 102 | if isFolder(value): | ||
| 103 | # Pass it directly | ||
| 104 | if isCached(value): | ||
| 105 | if value not in old_manifest['core']['cached']: | ||
| 106 | old_manifest['core']['cached'].append(value) | ||
| 107 | else: | ||
| 108 | if value not in old_manifest['core']['files']: | ||
| 109 | old_manifest['core']['files'].append(value) | ||
| 110 | continue | ||
| 111 | # Ignore binaries, since we don't import those, assume it was added correctly (manually) | ||
| 112 | if '${bindir}' in value: | ||
| 113 | # Pass it directly | ||
| 114 | if value not in old_manifest['core']['files']: | ||
| 115 | old_manifest['core']['files'].append(value) | ||
| 116 | continue | ||
| 117 | # Ignore empty values | ||
| 118 | if value == '': | ||
| 119 | continue | ||
| 120 | if '${includedir}' in value: | ||
| 121 | if value not in old_manifest['core']['files']: | ||
| 122 | old_manifest['core']['files'].append(value) | ||
| 123 | continue | ||
| 124 | # Get module name , shouldnt be affected by libdir/bindir | ||
| 125 | value = os.path.splitext(os.path.basename(os.path.normpath(value)))[0] | ||
| 126 | |||
| 127 | |||
| 128 | # Launch separate task for each module for deterministic behavior | ||
| 129 | # Each module will only import what is necessary for it to work in specific | ||
| 130 | print ('Getting dependencies for module: %s' % value) | ||
| 131 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % value]).decode('utf8') | ||
| 132 | print (output) | ||
| 133 | for item in output.split(): | ||
| 134 | # We append it so it doesnt hurt what we currently have: | ||
| 135 | if isCached(item): | ||
| 136 | if item not in old_manifest['core']['cached']: | ||
| 137 | # We use the same data structure since its the one which will be used to check | ||
| 138 | # dependencies for other packages | ||
| 139 | old_manifest['core']['cached'].append(item) | ||
| 140 | else: | ||
| 141 | if item not in old_manifest['core']['files']: | ||
| 142 | # We use the same data structure since its the one which will be used to check | ||
| 143 | # dependencies for other packages | ||
| 144 | old_manifest['core']['files'].append(item) | ||
| 145 | |||
| 146 | |||
| 147 | # We check which packages include folders | ||
| 148 | for key in old_manifest: | ||
| 149 | for value in old_manifest[key]['files']: | ||
| 150 | # Ignore folders, since we don't import those, difficult to handle multilib | ||
| 151 | if isFolder(value): | ||
| 152 | print ('%s is a folder' % value) | ||
| 153 | if key not in hasfolders: | ||
| 154 | hasfolders.append(key) | ||
| 155 | if value not in allfolders: | ||
| 156 | allfolders.append(value) | ||
| 157 | |||
| 158 | for key in old_manifest: | ||
| 159 | # Use an empty dict as data structure to hold data for each package and fill it up | ||
| 160 | new_manifest[key]={} | ||
| 161 | new_manifest[key]['files']=[] | ||
| 162 | |||
| 163 | new_manifest[key]['rdepends']=[] | ||
| 164 | # All packages should depend on core | ||
| 165 | if key != 'core': | ||
| 166 | new_manifest[key]['rdepends'].append('core') | ||
| 167 | new_manifest[key]['cached']=[] | ||
| 168 | else: | ||
| 169 | new_manifest[key]['cached']=old_manifest[key]['cached'] | ||
| 170 | new_manifest[key]['summary']=old_manifest[key]['summary'] | ||
| 171 | |||
| 172 | # Handle special cases, we assume that when they were manually added | ||
| 173 | # to the manifest we knew what we were doing. | ||
| 174 | print ('Handling package %s' % key) | ||
| 175 | special_packages=['misc', 'modules', 'dev'] | ||
| 176 | if key in special_packages or 'staticdev' in key: | ||
| 177 | print('Passing %s package directly' % key) | ||
| 178 | new_manifest[key]=old_manifest[key] | ||
| 179 | continue | ||
| 180 | |||
| 181 | for value in old_manifest[key]['files']: | ||
| 182 | # We already handled core on the first pass | ||
| 183 | if key == 'core': | ||
| 184 | new_manifest[key]['files'].append(value) | ||
| 185 | continue | ||
| 186 | # Ignore folders, since we don't import those, difficult to handle multilib | ||
| 187 | if isFolder(value): | ||
| 188 | # Pass folders directly | ||
| 189 | new_manifest[key]['files'].append(value) | ||
| 190 | # Ignore binaries, since we don't import those | ||
| 191 | if '${bindir}' in value: | ||
| 192 | # Pass it directly to the new manifest data structure | ||
| 193 | if value not in new_manifest[key]['files']: | ||
| 194 | new_manifest[key]['files'].append(value) | ||
| 195 | continue | ||
| 196 | # Ignore empty values | ||
| 197 | if value == '': | ||
| 198 | continue | ||
| 199 | if '${includedir}' in value: | ||
| 200 | if value not in new_manifest[key]['files']: | ||
| 201 | new_manifest[key]['files'].append(value) | ||
| 202 | continue | ||
| 203 | # Get module name , shouldnt be affected by libdir/bindir | ||
| 204 | value = os.path.splitext(os.path.basename(os.path.normpath(value)))[0] | ||
| 205 | |||
| 206 | # Launch separate task for each module for deterministic behavior | ||
| 207 | # Each module will only import what is necessary for it to work in specific | ||
| 208 | print ('Getting dependencies for module: %s' % value) | ||
| 209 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % value]).decode('utf8') | ||
| 210 | # We can print dependencies for debugging purposes | ||
| 211 | print (output) | ||
| 212 | # Output will have all dependencies | ||
| 213 | for item in output.split(): | ||
| 214 | |||
| 215 | # Warning: This first part is ugly | ||
| 216 | # One of the dependencies that was found, could be inside of one of the folders included by another package | ||
| 217 | # We need to check if this happens so we can add the package containing the folder as an rdependency | ||
| 218 | # e.g. Folder encodings contained in codecs | ||
| 219 | # This would be solved if no packages included any folders | ||
| 220 | |||
| 221 | # This can be done in two ways: | ||
| 222 | # 1 - We assume that if we take out the filename from the path we would get | ||
| 223 | # the folder string, then we would check if folder string is in the list of folders | ||
| 224 | # This would not work if a package contains a folder which contains another folder | ||
| 225 | # e.g. path/folder1/folder2/filename folder_string= path/folder1/folder2 | ||
| 226 | # folder_string would not match any value contained in the list of folders | ||
| 227 | # | ||
| 228 | # 2 - We do it the other way around, checking if the folder is contained in the path | ||
| 229 | # e.g. path/folder1/folder2/filename folder_string= path/folder1/folder2 | ||
| 230 | # is folder_string inside path/folder1/folder2/filename?, | ||
| 231 | # Yes, it works, but we waste a couple of milliseconds. | ||
| 232 | |||
| 233 | inFolders=False | ||
| 234 | for folder in allfolders: | ||
| 235 | if folder in item: | ||
| 236 | inFolders = True # Did we find a folder? | ||
| 237 | folderFound = False # Second flag to break inner for | ||
| 238 | # Loop only through packages which contain folders | ||
| 239 | for keyfolder in hasfolders: | ||
| 240 | if (folderFound == False): | ||
| 241 | #print('Checking folder %s on package %s' % (item,keyfolder)) | ||
| 242 | for file_folder in old_manifest[keyfolder]['files'] or file_folder in old_manifest[keyfolder]['cached']: | ||
| 243 | if file_folder==folder: | ||
| 244 | print ('%s found in %s' % (folder, keyfolder)) | ||
| 245 | folderFound = True | ||
| 246 | if keyfolder not in new_manifest[key]['rdepends'] and keyfolder != key: | ||
| 247 | new_manifest[key]['rdepends'].append(keyfolder) | ||
| 248 | |||
| 249 | else: | ||
| 250 | break | ||
| 251 | |||
| 252 | # A folder was found so we're done with this item, we can go on | ||
| 253 | if inFolders: | ||
| 254 | continue | ||
| 255 | |||
| 256 | # We might already have it on the dictionary since it could depend on a (previously checked) module | ||
| 257 | if item not in new_manifest[key]['files'] and item not in new_manifest[key]['cached']: | ||
| 258 | # Handle core as a special package, we already did it so we pass it to NEW data structure directly | ||
| 259 | if key=='core': | ||
| 260 | print('Adding %s to %s FILES' % (item, key)) | ||
| 261 | if item.endswith('*'): | ||
| 262 | wildcards.append(item) | ||
| 263 | if isCached(item): | ||
| 264 | new_manifest[key]['cached'].append(item) | ||
| 265 | else: | ||
| 266 | new_manifest[key]['files'].append(item) | ||
| 267 | |||
| 268 | # Check for repeated files | ||
| 269 | if item not in allfiles: | ||
| 270 | allfiles.append(item) | ||
| 271 | else: | ||
| 272 | repeated.append(item) | ||
| 273 | |||
| 274 | else: | ||
| 275 | |||
| 276 | # Check if this dependency is already contained on another package, so we add it | ||
| 277 | # as an RDEPENDS, or if its not, it means it should be contained on the current | ||
| 278 | # package, so we should add it to FILES | ||
| 279 | for newkey in old_manifest: | ||
| 280 | # Debug | ||
| 281 | #print('Checking %s ' % item + ' in %s' % newkey) | ||
| 282 | if item in old_manifest[newkey]['files'] or item in old_manifest[newkey]['cached']: | ||
| 283 | # Since were nesting, we need to check its not the same key | ||
| 284 | if(newkey!=key): | ||
| 285 | if newkey not in new_manifest[key]['rdepends']: | ||
| 286 | # Add it to the new manifest data struct | ||
| 287 | # Debug | ||
| 288 | print('Adding %s to %s RDEPENDS, because it contains %s' % (newkey, key, item)) | ||
| 289 | new_manifest[key]['rdepends'].append(newkey) | ||
| 290 | break | ||
| 291 | else: | ||
| 292 | # Debug | ||
| 293 | print('Adding %s to %s FILES' % (item, key)) | ||
| 294 | # Since it wasnt found on another package, its not an RDEP, so add it to FILES for this package | ||
| 295 | if isCached(item): | ||
| 296 | new_manifest[key]['cached'].append(item) | ||
| 297 | else: | ||
| 298 | new_manifest[key]['files'].append(item) | ||
| 299 | if item.endswith('*'): | ||
| 300 | wildcards.append(item) | ||
| 301 | if item not in allfiles: | ||
| 302 | allfiles.append(item) | ||
| 303 | else: | ||
| 304 | repeated.append(item) | ||
| 305 | |||
| 306 | print ('The following files are repeated (contained in more than one package), please check which package should get it:') | ||
| 307 | print (repeated) | ||
| 308 | print('The following files contain wildcards, please check they are necessary') | ||
| 309 | print(wildcards) | ||
| 310 | print('The following files contain folders, please check they are necessary') | ||
| 311 | print(hasfolders) | ||
| 312 | |||
| 313 | # Sort it just so it looks nicer | ||
| 314 | for key in new_manifest: | ||
| 315 | new_manifest[key]['files'].sort() | ||
| 316 | new_manifest[key]['cached'].sort() | ||
| 317 | new_manifest[key]['rdepends'].sort() | ||
| 318 | |||
| 319 | # Create the manifest from the data structure that was built | ||
| 320 | with open('python3-manifest.json.new','w') as outfile: | ||
| 321 | json.dump(new_manifest,outfile,sort_keys=True, indent=4) | ||
diff --git a/meta/recipes-devtools/python/python3/get_module_deps3.py b/meta/recipes-devtools/python/python3/get_module_deps3.py new file mode 100644 index 0000000000..fd12baad84 --- /dev/null +++ b/meta/recipes-devtools/python/python3/get_module_deps3.py | |||
| @@ -0,0 +1,146 @@ | |||
| 1 | # This script is launched on separate task for each python module | ||
| 2 | # It checks for dependencies for that specific module and prints | ||
| 3 | # them out, the output of this execution will have all dependencies | ||
| 4 | # for a specific module, which will be parsed an dealt on create_manifest.py | ||
| 5 | # | ||
| 6 | # Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com> | ||
| 7 | |||
| 8 | # We can get a log per module, for all the dependencies that were found, but its messy. | ||
| 9 | debug=False | ||
| 10 | |||
| 11 | import sys | ||
| 12 | |||
| 13 | # We can get a list of the modules which are currently required to run python | ||
| 14 | # so we run python-core and get its modules, we then import what we need | ||
| 15 | # and check what modules are currently running, if we substract them from the | ||
| 16 | # modules we had initially, we get the dependencies for the module we imported. | ||
| 17 | |||
| 18 | # We use importlib to achieve this, so we also need to know what modules importlib needs | ||
| 19 | import importlib | ||
| 20 | |||
| 21 | core_deps=set(sys.modules) | ||
| 22 | |||
| 23 | def fix_path(dep_path): | ||
| 24 | import os | ||
| 25 | # We DONT want the path on our HOST system | ||
| 26 | pivot='recipe-sysroot-native' | ||
| 27 | dep_path=dep_path[dep_path.find(pivot)+len(pivot):] | ||
| 28 | |||
| 29 | if '/usr/bin' in dep_path: | ||
| 30 | dep_path = dep_path.replace('/usr/bin''${bindir}') | ||
| 31 | |||
| 32 | # Handle multilib, is there a better way? | ||
| 33 | if '/usr/lib32' in dep_path: | ||
| 34 | dep_path = dep_path.replace('/usr/lib32','${libdir}') | ||
| 35 | if '/usr/lib64' in dep_path: | ||
| 36 | dep_path = dep_path.replace('/usr/lib64','${libdir}') | ||
| 37 | if '/usr/lib' in dep_path: | ||
| 38 | dep_path = dep_path.replace('/usr/lib','${libdir}') | ||
| 39 | if '/usr/include' in dep_path: | ||
| 40 | dep_path = dep_path.replace('/usr/include','${includedir}') | ||
| 41 | if '__init__.' in dep_path: | ||
| 42 | dep_path = os.path.split(dep_path)[0] | ||
| 43 | return dep_path | ||
| 44 | |||
| 45 | |||
| 46 | # Module to import was passed as an argument | ||
| 47 | current_module = str(sys.argv[1]).rstrip() | ||
| 48 | if(debug==True): | ||
| 49 | log = open('log_%s' % current_module,'w') | ||
| 50 | log.write('Module %s generated the following dependencies:\n' % current_module) | ||
| 51 | try: | ||
| 52 | importlib.import_module('%s' % current_module) | ||
| 53 | except ImportError as e: | ||
| 54 | if (debug==True): | ||
| 55 | log.write('Module was not found') | ||
| 56 | pass | ||
| 57 | |||
| 58 | |||
| 59 | # Get current module dependencies, dif will contain a list of specific deps for this module | ||
| 60 | module_deps=set(sys.modules) | ||
| 61 | |||
| 62 | # We handle the core package (1st pass on create_manifest.py) as a special case | ||
| 63 | if current_module == 'python-core-package': | ||
| 64 | dif = core_deps | ||
| 65 | else: | ||
| 66 | # We know this is not the core package, so there must be a difference. | ||
| 67 | dif = module_deps-core_deps | ||
| 68 | |||
| 69 | |||
| 70 | # Check where each dependency came from | ||
| 71 | for item in dif: | ||
| 72 | dep_path='' | ||
| 73 | try: | ||
| 74 | if (debug==True): | ||
| 75 | log.write('Calling: sys.modules[' + '%s' % item + '].__file__\n') | ||
| 76 | dep_path = sys.modules['%s' % item].__file__ | ||
| 77 | except AttributeError as e: | ||
| 78 | # Deals with thread (builtin module) not having __file__ attribute | ||
| 79 | if debug==True: | ||
| 80 | log.write(item + ' ') | ||
| 81 | log.write(str(e)) | ||
| 82 | log.write('\n') | ||
| 83 | pass | ||
| 84 | except NameError as e: | ||
| 85 | # Deals with NameError: name 'dep_path' is not defined | ||
| 86 | # because module is not found (wasn't compiled?), e.g. bddsm | ||
| 87 | if (debug==True): | ||
| 88 | log.write(item+' ') | ||
| 89 | log.write(str(e)) | ||
| 90 | pass | ||
| 91 | |||
| 92 | # Site-customize is a special case since we (OpenEmbedded) put it there manually | ||
| 93 | if 'sitecustomize' in dep_path: | ||
| 94 | dep_path = '${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py' | ||
| 95 | # Prints out result, which is what will be used by create_manifest | ||
| 96 | print (dep_path) | ||
| 97 | continue | ||
| 98 | |||
| 99 | dep_path = fix_path(dep_path) | ||
| 100 | |||
| 101 | import sysconfig | ||
| 102 | soabi=sysconfig.get_config_var('SOABI') | ||
| 103 | # Check if its a shared library and deconstruct it | ||
| 104 | if soabi in dep_path: | ||
| 105 | if (debug==True): | ||
| 106 | log.write('Shared library found in %s' % dep_path) | ||
| 107 | dep_path = dep_path.replace(soabi,'*') | ||
| 108 | print (dep_path) | ||
| 109 | continue | ||
| 110 | |||
| 111 | if (debug==True): | ||
| 112 | log.write(dep_path+'\n') | ||
| 113 | # Prints out result, which is what will be used by create_manifest | ||
| 114 | print (dep_path) | ||
| 115 | |||
| 116 | |||
| 117 | import imp | ||
| 118 | cpython_tag = imp.get_tag() | ||
| 119 | cached='' | ||
| 120 | # Theres no naive way to find *.pyc files on python3 | ||
| 121 | try: | ||
| 122 | if (debug==True): | ||
| 123 | log.write('Calling: sys.modules[' + '%s' % item + '].__cached__\n') | ||
| 124 | cached = sys.modules['%s' % item].__cached__ | ||
| 125 | except AttributeError as e: | ||
| 126 | # Deals with thread (builtin module) not having __cached__ attribute | ||
| 127 | if debug==True: | ||
| 128 | log.write(item + ' ') | ||
| 129 | log.write(str(e)) | ||
| 130 | log.write('\n') | ||
| 131 | pass | ||
| 132 | except NameError as e: | ||
| 133 | # Deals with NameError: name 'cached' is not defined | ||
| 134 | if (debug==True): | ||
| 135 | log.write(item+' ') | ||
| 136 | log.write(str(e)) | ||
| 137 | pass | ||
| 138 | if cached is not None: | ||
| 139 | if (debug==True): | ||
| 140 | log.write(cached) | ||
| 141 | cached = fix_path(cached) | ||
| 142 | cached = cached.replace(cpython_tag,'*') | ||
| 143 | print (cached) | ||
| 144 | |||
| 145 | if debug==True: | ||
| 146 | log.close() | ||
diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json new file mode 100644 index 0000000000..2d4c2ceb9f --- /dev/null +++ b/meta/recipes-devtools/python/python3/python3-manifest.json | |||
| @@ -0,0 +1,1096 @@ | |||
| 1 | { | ||
| 2 | "2to3": { | ||
| 3 | "cached": [], | ||
| 4 | "files": [ | ||
| 5 | "${bindir}/2to3-*", | ||
| 6 | "${libdir}/python3.5/lib2to3" | ||
| 7 | ], | ||
| 8 | "rdepends": [ | ||
| 9 | "core" | ||
| 10 | ], | ||
| 11 | "summary": "Python automated Python 2 to 3 code translator" | ||
| 12 | }, | ||
| 13 | "asyncio": { | ||
| 14 | "cached": [], | ||
| 15 | "files": [ | ||
| 16 | "${libdir}/python3.5/asyncio", | ||
| 17 | "${libdir}/python3.5/concurrent", | ||
| 18 | "${libdir}/python3.5/concurrent/futures" | ||
| 19 | ], | ||
| 20 | "rdepends": [ | ||
| 21 | "compression", | ||
| 22 | "core", | ||
| 23 | "crypt", | ||
| 24 | "io", | ||
| 25 | "logging", | ||
| 26 | "math", | ||
| 27 | "multiprocessing", | ||
| 28 | "netclient", | ||
| 29 | "pickle", | ||
| 30 | "shell", | ||
| 31 | "stringold", | ||
| 32 | "threading", | ||
| 33 | "unixadmin" | ||
| 34 | ], | ||
| 35 | "summary": "Python Asynchronous I/" | ||
| 36 | }, | ||
| 37 | "audio": { | ||
| 38 | "cached": [ | ||
| 39 | "${libdir}/python3.5/__pycache__/chunk.*.pyc", | ||
| 40 | "${libdir}/python3.5/__pycache__/sndhdr.*.pyc", | ||
| 41 | "${libdir}/python3.5/__pycache__/sunau.*.pyc", | ||
| 42 | "${libdir}/python3.5/__pycache__/wave.*.pyc" | ||
| 43 | ], | ||
| 44 | "files": [ | ||
| 45 | "${libdir}/python3.5/chunk.py", | ||
| 46 | "${libdir}/python3.5/lib-dynload/audioop.*.so", | ||
| 47 | "${libdir}/python3.5/lib-dynload/ossaudiodev.*.so", | ||
| 48 | "${libdir}/python3.5/sndhdr.py", | ||
| 49 | "${libdir}/python3.5/sunau.py", | ||
| 50 | "${libdir}/python3.5/wave.py" | ||
| 51 | ], | ||
| 52 | "rdepends": [ | ||
| 53 | "core" | ||
| 54 | ], | ||
| 55 | "summary": "Python Audio Handling" | ||
| 56 | }, | ||
| 57 | "codecs": { | ||
| 58 | "cached": [ | ||
| 59 | "${libdir}/python3.5/__pycache__/stringprep.*.pyc", | ||
| 60 | "${libdir}/python3.5/__pycache__/xdrlib.*.pyc" | ||
| 61 | ], | ||
| 62 | "files": [ | ||
| 63 | "${libdir}/python3.5/lib-dynload/_multibytecodec.*.so", | ||
| 64 | "${libdir}/python3.5/lib-dynload/unicodedata.*.so", | ||
| 65 | "${libdir}/python3.5/stringprep.py", | ||
| 66 | "${libdir}/python3.5/xdrlib.py" | ||
| 67 | ], | ||
| 68 | "rdepends": [ | ||
| 69 | "core" | ||
| 70 | ], | ||
| 71 | "summary": "Python codec" | ||
| 72 | }, | ||
| 73 | "compile": { | ||
| 74 | "cached": [ | ||
| 75 | "${libdir}/python3.5/__pycache__/compileall.*.pyc", | ||
| 76 | "${libdir}/python3.5/__pycache__/py_compile.*.pyc" | ||
| 77 | ], | ||
| 78 | "files": [ | ||
| 79 | "${libdir}/python3.5/compileall.py", | ||
| 80 | "${libdir}/python3.5/py_compile.py" | ||
| 81 | ], | ||
| 82 | "rdepends": [ | ||
| 83 | "asyncio", | ||
| 84 | "compression", | ||
| 85 | "core", | ||
| 86 | "crypt", | ||
| 87 | "io", | ||
| 88 | "logging", | ||
| 89 | "math", | ||
| 90 | "multiprocessing", | ||
| 91 | "pickle", | ||
| 92 | "shell", | ||
| 93 | "stringold", | ||
| 94 | "threading", | ||
| 95 | "unixadmin" | ||
| 96 | ], | ||
| 97 | "summary": "Python bytecode compilation support" | ||
| 98 | }, | ||
| 99 | "compression": { | ||
| 100 | "cached": [ | ||
| 101 | "${libdir}/python3.5/__pycache__/_compression.*.pyc", | ||
| 102 | "${libdir}/python3.5/__pycache__/bz2.*.pyc", | ||
| 103 | "${libdir}/python3.5/__pycache__/gzip.*.pyc", | ||
| 104 | "${libdir}/python3.5/__pycache__/lzma.*.pyc", | ||
| 105 | "${libdir}/python3.5/__pycache__/tarfile.*.pyc", | ||
| 106 | "${libdir}/python3.5/__pycache__/zipfile.*.pyc" | ||
| 107 | ], | ||
| 108 | "files": [ | ||
| 109 | "${libdir}/python3.5/_compression.py", | ||
| 110 | "${libdir}/python3.5/bz2.py", | ||
| 111 | "${libdir}/python3.5/gzip.py", | ||
| 112 | "${libdir}/python3.5/lib-dynload/_bz2.*.so", | ||
| 113 | "${libdir}/python3.5/lib-dynload/_lzma.*.so", | ||
| 114 | "${libdir}/python3.5/lib-dynload/zlib.*.so", | ||
| 115 | "${libdir}/python3.5/lzma.py", | ||
| 116 | "${libdir}/python3.5/tarfile.py", | ||
| 117 | "${libdir}/python3.5/zipfile.py" | ||
| 118 | ], | ||
| 119 | "rdepends": [ | ||
| 120 | "core", | ||
| 121 | "shell", | ||
| 122 | "unixadmin" | ||
| 123 | ], | ||
| 124 | "summary": "Python high-level compression support" | ||
| 125 | }, | ||
| 126 | "core": { | ||
| 127 | "cached": [ | ||
| 128 | "${libdir}/python3.5/__pycache__/__future__.*.pyc", | ||
| 129 | "${libdir}/python3.5/__pycache__/_bootlocale.*.pyc", | ||
| 130 | "${libdir}/python3.5/__pycache__/_collections_abc.*.pyc", | ||
| 131 | "${libdir}/python3.5/__pycache__/_sitebuiltins.*.pyc", | ||
| 132 | "${libdir}/python3.5/__pycache__/_sysconfigdata.*.pyc", | ||
| 133 | "${libdir}/python3.5/__pycache__/_weakrefset.*.pyc", | ||
| 134 | "${libdir}/python3.5/__pycache__/abc.*.pyc", | ||
| 135 | "${libdir}/python3.5/__pycache__/argparse.*.pyc", | ||
| 136 | "${libdir}/python3.5/__pycache__/ast.*.pyc", | ||
| 137 | "${libdir}/python3.5/__pycache__/bisect.*.pyc", | ||
| 138 | "${libdir}/python3.5/__pycache__/code.*.pyc", | ||
| 139 | "${libdir}/python3.5/__pycache__/codecs.*.pyc", | ||
| 140 | "${libdir}/python3.5/__pycache__/codeop.*.pyc", | ||
| 141 | "${libdir}/python3.5/__pycache__/configparser.*.pyc", | ||
| 142 | "${libdir}/python3.5/__pycache__/contextlib.*.pyc", | ||
| 143 | "${libdir}/python3.5/__pycache__/copy.*.pyc", | ||
| 144 | "${libdir}/python3.5/__pycache__/copyreg.*.pyc", | ||
| 145 | "${libdir}/python3.5/__pycache__/csv.*.pyc", | ||
| 146 | "${libdir}/python3.5/__pycache__/dis.*.pyc", | ||
| 147 | "${libdir}/python3.5/__pycache__/enum.*.pyc", | ||
| 148 | "${libdir}/python3.5/__pycache__/functools.*.pyc", | ||
| 149 | "${libdir}/python3.5/__pycache__/genericpath.*.pyc", | ||
| 150 | "${libdir}/python3.5/__pycache__/getopt.*.pyc", | ||
| 151 | "${libdir}/python3.5/__pycache__/gettext.*.pyc", | ||
| 152 | "${libdir}/python3.5/__pycache__/heapq.*.pyc", | ||
| 153 | "${libdir}/python3.5/__pycache__/imp.*.pyc", | ||
| 154 | "${libdir}/python3.5/__pycache__/inspect.*.pyc", | ||
| 155 | "${libdir}/python3.5/__pycache__/io.*.pyc", | ||
| 156 | "${libdir}/python3.5/__pycache__/keyword.*.pyc", | ||
| 157 | "${libdir}/python3.5/__pycache__/linecache.*.pyc", | ||
| 158 | "${libdir}/python3.5/__pycache__/locale.*.pyc", | ||
| 159 | "${libdir}/python3.5/__pycache__/opcode.*.pyc", | ||
| 160 | "${libdir}/python3.5/__pycache__/operator.*.pyc", | ||
| 161 | "${libdir}/python3.5/__pycache__/optparse.*.pyc", | ||
| 162 | "${libdir}/python3.5/__pycache__/os.*.pyc", | ||
| 163 | "${libdir}/python3.5/__pycache__/platform.*.pyc", | ||
| 164 | "${libdir}/python3.5/__pycache__/posixpath.*.pyc", | ||
| 165 | "${libdir}/python3.5/__pycache__/re.*.pyc", | ||
| 166 | "${libdir}/python3.5/__pycache__/reprlib.*.pyc", | ||
| 167 | "${libdir}/python3.5/__pycache__/rlcompleter.*.pyc", | ||
| 168 | "${libdir}/python3.5/__pycache__/selectors.*.pyc", | ||
| 169 | "${libdir}/python3.5/__pycache__/signal.*.pyc", | ||
| 170 | "${libdir}/python3.5/__pycache__/site.*.pyc", | ||
| 171 | "${libdir}/python3.5/__pycache__/sre_compile.*.pyc", | ||
| 172 | "${libdir}/python3.5/__pycache__/sre_constants.*.pyc", | ||
| 173 | "${libdir}/python3.5/__pycache__/sre_parse.*.pyc", | ||
| 174 | "${libdir}/python3.5/__pycache__/stat.*.pyc", | ||
| 175 | "${libdir}/python3.5/__pycache__/struct.*.pyc", | ||
| 176 | "${libdir}/python3.5/__pycache__/subprocess.*.pyc", | ||
| 177 | "${libdir}/python3.5/__pycache__/symbol.*.pyc", | ||
| 178 | "${libdir}/python3.5/__pycache__/sysconfig.*.pyc", | ||
| 179 | "${libdir}/python3.5/__pycache__/textwrap.*.pyc", | ||
| 180 | "${libdir}/python3.5/__pycache__/threading.*.pyc", | ||
| 181 | "${libdir}/python3.5/__pycache__/token.*.pyc", | ||
| 182 | "${libdir}/python3.5/__pycache__/tokenize.*.pyc", | ||
| 183 | "${libdir}/python3.5/__pycache__/traceback.*.pyc", | ||
| 184 | "${libdir}/python3.5/__pycache__/types.*.pyc", | ||
| 185 | "${libdir}/python3.5/__pycache__/warnings.*.pyc", | ||
| 186 | "${libdir}/python3.5/__pycache__/weakref.*.pyc", | ||
| 187 | "${libdir}/python3.5/collections/__pycache__", | ||
| 188 | "${libdir}/python3.5/collections/__pycache__/abc.*.pyc", | ||
| 189 | "${libdir}/python3.5/encodings/__pycache__", | ||
| 190 | "${libdir}/python3.5/encodings/__pycache__/aliases.*.pyc", | ||
| 191 | "${libdir}/python3.5/encodings/__pycache__/latin_1.*.pyc", | ||
| 192 | "${libdir}/python3.5/encodings/__pycache__/utf_8.*.pyc", | ||
| 193 | "${libdir}/python3.5/importlib/__pycache__", | ||
| 194 | "${libdir}/python3.5/importlib/__pycache__/abc.*.pyc", | ||
| 195 | "${libdir}/python3.5/importlib/__pycache__/machinery.*.pyc", | ||
| 196 | "${libdir}/python3.5/importlib/__pycache__/util.*.pyc" | ||
| 197 | ], | ||
| 198 | "files": [ | ||
| 199 | "${bindir}/python*[!-config]", | ||
| 200 | "${includedir}/python${PYTHON_BINABI}/pyconfig*.h", | ||
| 201 | "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py", | ||
| 202 | "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py", | ||
| 203 | "${libdir}/python${PYTHON_MAJMIN}/collections", | ||
| 204 | "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py", | ||
| 205 | "${libdir}/python3.5/UserDict.py", | ||
| 206 | "${libdir}/python3.5/UserList.py", | ||
| 207 | "${libdir}/python3.5/UserString.py", | ||
| 208 | "${libdir}/python3.5/__future__.py", | ||
| 209 | "${libdir}/python3.5/_abcoll.py", | ||
| 210 | "${libdir}/python3.5/_bootlocale.py", | ||
| 211 | "${libdir}/python3.5/_collections_abc.py", | ||
| 212 | "${libdir}/python3.5/_sitebuiltins.py", | ||
| 213 | "${libdir}/python3.5/_sysconfigdata.py", | ||
| 214 | "${libdir}/python3.5/_weakrefset.py", | ||
| 215 | "${libdir}/python3.5/abc.py", | ||
| 216 | "${libdir}/python3.5/argparse.py", | ||
| 217 | "${libdir}/python3.5/ast.py", | ||
| 218 | "${libdir}/python3.5/bisect.py", | ||
| 219 | "${libdir}/python3.5/code.py", | ||
| 220 | "${libdir}/python3.5/codecs.py", | ||
| 221 | "${libdir}/python3.5/codeop.py", | ||
| 222 | "${libdir}/python3.5/collections", | ||
| 223 | "${libdir}/python3.5/collections/abc.py", | ||
| 224 | "${libdir}/python3.5/configparser.py", | ||
| 225 | "${libdir}/python3.5/contextlib.py", | ||
| 226 | "${libdir}/python3.5/copy.py", | ||
| 227 | "${libdir}/python3.5/copyreg.py", | ||
| 228 | "${libdir}/python3.5/csv.py", | ||
| 229 | "${libdir}/python3.5/dis.py", | ||
| 230 | "${libdir}/python3.5/encodings", | ||
| 231 | "${libdir}/python3.5/encodings/aliases.py", | ||
| 232 | "${libdir}/python3.5/encodings/latin_1.py", | ||
| 233 | "${libdir}/python3.5/encodings/utf_8.py", | ||
| 234 | "${libdir}/python3.5/enum.py", | ||
| 235 | "${libdir}/python3.5/functools.py", | ||
| 236 | "${libdir}/python3.5/genericpath.py", | ||
| 237 | "${libdir}/python3.5/getopt.py", | ||
| 238 | "${libdir}/python3.5/gettext.py", | ||
| 239 | "${libdir}/python3.5/heapq.py", | ||
| 240 | "${libdir}/python3.5/imp.py", | ||
| 241 | "${libdir}/python3.5/importlib", | ||
| 242 | "${libdir}/python3.5/importlib/_bootstrap.py", | ||
| 243 | "${libdir}/python3.5/importlib/_bootstrap_external.py", | ||
| 244 | "${libdir}/python3.5/importlib/abc.py", | ||
| 245 | "${libdir}/python3.5/importlib/machinery.py", | ||
| 246 | "${libdir}/python3.5/importlib/util.py", | ||
| 247 | "${libdir}/python3.5/inspect.py", | ||
| 248 | "${libdir}/python3.5/io.py", | ||
| 249 | "${libdir}/python3.5/keyword.py", | ||
| 250 | "${libdir}/python3.5/lib-dynload/__pycache__/_struct.*.so", | ||
| 251 | "${libdir}/python3.5/lib-dynload/__pycache__/binascii.*.so", | ||
| 252 | "${libdir}/python3.5/lib-dynload/__pycache__/time.*.so", | ||
| 253 | "${libdir}/python3.5/lib-dynload/__pycache__/xreadlines.*.so", | ||
| 254 | "${libdir}/python3.5/lib-dynload/_bisect.*.so", | ||
| 255 | "${libdir}/python3.5/lib-dynload/_csv.*.so", | ||
| 256 | "${libdir}/python3.5/lib-dynload/_heapq.*.so", | ||
| 257 | "${libdir}/python3.5/lib-dynload/_opcode.*.so", | ||
| 258 | "${libdir}/python3.5/lib-dynload/_posixsubprocess.*.so", | ||
| 259 | "${libdir}/python3.5/lib-dynload/_struct.*.so", | ||
| 260 | "${libdir}/python3.5/lib-dynload/array.*.so", | ||
| 261 | "${libdir}/python3.5/lib-dynload/binascii.*.so", | ||
| 262 | "${libdir}/python3.5/lib-dynload/math.*.so", | ||
| 263 | "${libdir}/python3.5/lib-dynload/parser.*.so", | ||
| 264 | "${libdir}/python3.5/lib-dynload/readline.*.so", | ||
| 265 | "${libdir}/python3.5/lib-dynload/select.*.so", | ||
| 266 | "${libdir}/python3.5/lib-dynload/time.*.so", | ||
| 267 | "${libdir}/python3.5/lib-dynload/xreadlines.*.so", | ||
| 268 | "${libdir}/python3.5/linecache.py", | ||
| 269 | "${libdir}/python3.5/locale.py", | ||
| 270 | "${libdir}/python3.5/new.py", | ||
| 271 | "${libdir}/python3.5/opcode.py", | ||
| 272 | "${libdir}/python3.5/operator.py", | ||
| 273 | "${libdir}/python3.5/optparse.py", | ||
| 274 | "${libdir}/python3.5/os.py", | ||
| 275 | "${libdir}/python3.5/platform.py", | ||
| 276 | "${libdir}/python3.5/posixpath.py", | ||
| 277 | "${libdir}/python3.5/re.py", | ||
| 278 | "${libdir}/python3.5/reprlib.py", | ||
| 279 | "${libdir}/python3.5/rlcompleter.py", | ||
| 280 | "${libdir}/python3.5/selectors.py", | ||
| 281 | "${libdir}/python3.5/signal.py", | ||
| 282 | "${libdir}/python3.5/site.py", | ||
| 283 | "${libdir}/python3.5/sre_compile.py", | ||
| 284 | "${libdir}/python3.5/sre_constants.py", | ||
| 285 | "${libdir}/python3.5/sre_parse.py", | ||
| 286 | "${libdir}/python3.5/stat.py", | ||
| 287 | "${libdir}/python3.5/struct.py", | ||
| 288 | "${libdir}/python3.5/subprocess.py", | ||
| 289 | "${libdir}/python3.5/symbol.py", | ||
| 290 | "${libdir}/python3.5/sysconfig.py", | ||
| 291 | "${libdir}/python3.5/textwrap.py", | ||
| 292 | "${libdir}/python3.5/threading.py", | ||
| 293 | "${libdir}/python3.5/token.py", | ||
| 294 | "${libdir}/python3.5/tokenize.py", | ||
| 295 | "${libdir}/python3.5/traceback.py", | ||
| 296 | "${libdir}/python3.5/types.py", | ||
| 297 | "${libdir}/python3.5/warnings.py", | ||
| 298 | "${libdir}/python3.5/weakref.py" | ||
| 299 | ], | ||
| 300 | "rdepends": [], | ||
| 301 | "summary": "Python interpreter and core modules" | ||
| 302 | }, | ||
| 303 | "crypt": { | ||
| 304 | "cached": [ | ||
| 305 | "${libdir}/python3.5/__pycache__/crypt.*.pyc", | ||
| 306 | "${libdir}/python3.5/__pycache__/hashlib.*.pyc" | ||
| 307 | ], | ||
| 308 | "files": [ | ||
| 309 | "${libdir}/python3.5/crypt.py", | ||
| 310 | "${libdir}/python3.5/hashlib.py", | ||
| 311 | "${libdir}/python3.5/lib-dynload/_crypt.*.so", | ||
| 312 | "${libdir}/python3.5/lib-dynload/_hashlib.*.so", | ||
| 313 | "${libdir}/python3.5/lib-dynload/_sha256.*.so", | ||
| 314 | "${libdir}/python3.5/lib-dynload/_sha512.*.so" | ||
| 315 | ], | ||
| 316 | "rdepends": [ | ||
| 317 | "core", | ||
| 318 | "math", | ||
| 319 | "stringold" | ||
| 320 | ], | ||
| 321 | "summary": "Python basic cryptographic and hashing support" | ||
| 322 | }, | ||
| 323 | "ctypes": { | ||
| 324 | "cached": [], | ||
| 325 | "files": [ | ||
| 326 | "${libdir}/python3.5/ctypes", | ||
| 327 | "${libdir}/python3.5/lib-dynload/_ctypes.*.so", | ||
| 328 | "${libdir}/python3.5/lib-dynload/_ctypes_test.*.so" | ||
| 329 | ], | ||
| 330 | "rdepends": [ | ||
| 331 | "core" | ||
| 332 | ], | ||
| 333 | "summary": "Python C types support" | ||
| 334 | }, | ||
| 335 | "curses": { | ||
| 336 | "cached": [], | ||
| 337 | "files": [ | ||
| 338 | "${libdir}/python3.5/curses", | ||
| 339 | "${libdir}/python3.5/lib-dynload/_curses.*.so", | ||
| 340 | "${libdir}/python3.5/lib-dynload/_curses_panel.*.so" | ||
| 341 | ], | ||
| 342 | "rdepends": [ | ||
| 343 | "core" | ||
| 344 | ], | ||
| 345 | "summary": "Python curses support" | ||
| 346 | }, | ||
| 347 | "datetime": { | ||
| 348 | "cached": [ | ||
| 349 | "${libdir}/python3.5/__pycache__/_strptime.*.pyc", | ||
| 350 | "${libdir}/python3.5/__pycache__/calendar.*.pyc", | ||
| 351 | "${libdir}/python3.5/__pycache__/datetime.*.pyc" | ||
| 352 | ], | ||
| 353 | "files": [ | ||
| 354 | "${libdir}/python3.5/_strptime.py", | ||
| 355 | "${libdir}/python3.5/calendar.py", | ||
| 356 | "${libdir}/python3.5/datetime.py", | ||
| 357 | "${libdir}/python3.5/lib-dynload/_datetime.*.so" | ||
| 358 | ], | ||
| 359 | "rdepends": [ | ||
| 360 | "core" | ||
| 361 | ], | ||
| 362 | "summary": "Python calendar and time support" | ||
| 363 | }, | ||
| 364 | "db": { | ||
| 365 | "cached": [], | ||
| 366 | "files": [ | ||
| 367 | "${libdir}/python3.5/dbm" | ||
| 368 | ], | ||
| 369 | "rdepends": [ | ||
| 370 | "core" | ||
| 371 | ], | ||
| 372 | "summary": "Python file-based database support" | ||
| 373 | }, | ||
| 374 | "debugger": { | ||
| 375 | "cached": [ | ||
| 376 | "${libdir}/python3.5/__pycache__/bdb.*.pyc", | ||
| 377 | "${libdir}/python3.5/__pycache__/pdb.*.pyc" | ||
| 378 | ], | ||
| 379 | "files": [ | ||
| 380 | "${libdir}/python3.5/bdb.py", | ||
| 381 | "${libdir}/python3.5/pdb.py" | ||
| 382 | ], | ||
| 383 | "rdepends": [ | ||
| 384 | "core", | ||
| 385 | "pprint", | ||
| 386 | "shell", | ||
| 387 | "stringold" | ||
| 388 | ], | ||
| 389 | "summary": "Python debugger" | ||
| 390 | }, | ||
| 391 | "dev": { | ||
| 392 | "cached": [], | ||
| 393 | "files": [ | ||
| 394 | "${base_libdir}/*.a", | ||
| 395 | "${base_libdir}/*.o", | ||
| 396 | "${bindir}/python*-config", | ||
| 397 | "${datadir}/aclocal", | ||
| 398 | "${datadir}/pkgconfig", | ||
| 399 | "${includedir}", | ||
| 400 | "${libdir}/*.a", | ||
| 401 | "${libdir}/*.la", | ||
| 402 | "${libdir}/*.o", | ||
| 403 | "${libdir}/lib*${SOLIBSDEV}", | ||
| 404 | "${libdir}/pkgconfig", | ||
| 405 | "${libdir}/python3.5/config*/Makefile", | ||
| 406 | "${libdir}/python3.5/config*/Makefile/__pycache__" | ||
| 407 | ], | ||
| 408 | "rdepends": [ | ||
| 409 | "core" | ||
| 410 | ], | ||
| 411 | "summary": "Python development package" | ||
| 412 | }, | ||
| 413 | "difflib": { | ||
| 414 | "cached": [ | ||
| 415 | "${libdir}/python3.5/__pycache__/difflib.*.pyc" | ||
| 416 | ], | ||
| 417 | "files": [ | ||
| 418 | "${libdir}/python3.5/difflib.py" | ||
| 419 | ], | ||
| 420 | "rdepends": [ | ||
| 421 | "core" | ||
| 422 | ], | ||
| 423 | "summary": "Python helpers for computing deltas between objects" | ||
| 424 | }, | ||
| 425 | "distutils": { | ||
| 426 | "cached": [], | ||
| 427 | "files": [ | ||
| 428 | "${libdir}/python3.5/distutils" | ||
| 429 | ], | ||
| 430 | "rdepends": [ | ||
| 431 | "core" | ||
| 432 | ], | ||
| 433 | "summary": "Python Distribution Utilities" | ||
| 434 | }, | ||
| 435 | "distutils-staticdev": { | ||
| 436 | "cached": [ | ||
| 437 | "${libdir}/python3.5/config/__pycache__/lib*.a" | ||
| 438 | ], | ||
| 439 | "files": [ | ||
| 440 | "${libdir}/python3.5/config/lib*.a" | ||
| 441 | ], | ||
| 442 | "rdepends": [ | ||
| 443 | "distutils" | ||
| 444 | ], | ||
| 445 | "summary": "Python distribution utilities (static libraries)" | ||
| 446 | }, | ||
| 447 | "doctest": { | ||
| 448 | "cached": [ | ||
| 449 | "${libdir}/python3.5/__pycache__/doctest.*.pyc" | ||
| 450 | ], | ||
| 451 | "files": [ | ||
| 452 | "${libdir}/python3.5/doctest.py" | ||
| 453 | ], | ||
| 454 | "rdepends": [ | ||
| 455 | "core", | ||
| 456 | "debugger", | ||
| 457 | "difflib", | ||
| 458 | "logging", | ||
| 459 | "pprint", | ||
| 460 | "shell", | ||
| 461 | "stringold", | ||
| 462 | "unittest" | ||
| 463 | ], | ||
| 464 | "summary": "Python framework for running examples in docstrings" | ||
| 465 | }, | ||
| 466 | "email": { | ||
| 467 | "cached": [ | ||
| 468 | "${libdir}/python3.5/__pycache__/imaplib.*.pyc" | ||
| 469 | ], | ||
| 470 | "files": [ | ||
| 471 | "${libdir}/python3.5/email", | ||
| 472 | "${libdir}/python3.5/imaplib.py" | ||
| 473 | ], | ||
| 474 | "rdepends": [ | ||
| 475 | "core", | ||
| 476 | "crypt", | ||
| 477 | "datetime", | ||
| 478 | "io", | ||
| 479 | "math", | ||
| 480 | "netclient" | ||
| 481 | ], | ||
| 482 | "summary": "Python email support" | ||
| 483 | }, | ||
| 484 | "fcntl": { | ||
| 485 | "cached": [], | ||
| 486 | "files": [ | ||
| 487 | "${libdir}/python3.5/lib-dynload/fcntl.*.so" | ||
| 488 | ], | ||
| 489 | "rdepends": [ | ||
| 490 | "core" | ||
| 491 | ], | ||
| 492 | "summary": "Python's fcntl interface" | ||
| 493 | }, | ||
| 494 | "html": { | ||
| 495 | "cached": [ | ||
| 496 | "${libdir}/python3.5/__pycache__/formatter.*.pyc" | ||
| 497 | ], | ||
| 498 | "files": [ | ||
| 499 | "${libdir}/python3.5/formatter.py", | ||
| 500 | "${libdir}/python3.5/html" | ||
| 501 | ], | ||
| 502 | "rdepends": [ | ||
| 503 | "core" | ||
| 504 | ], | ||
| 505 | "summary": "Python HTML processing support" | ||
| 506 | }, | ||
| 507 | "idle": { | ||
| 508 | "cached": [], | ||
| 509 | "files": [ | ||
| 510 | "${bindir}/idle*", | ||
| 511 | "${libdir}/python3.5/idlelib" | ||
| 512 | ], | ||
| 513 | "rdepends": [ | ||
| 514 | "core" | ||
| 515 | ], | ||
| 516 | "summary": "Python Integrated Development Environment" | ||
| 517 | }, | ||
| 518 | "image": { | ||
| 519 | "cached": [ | ||
| 520 | "${libdir}/python3.5/__pycache__/colorsys.*.pyc", | ||
| 521 | "${libdir}/python3.5/__pycache__/imghdr.*.pyc" | ||
| 522 | ], | ||
| 523 | "files": [ | ||
| 524 | "${libdir}/python3.5/colorsys.py", | ||
| 525 | "${libdir}/python3.5/imghdr.py" | ||
| 526 | ], | ||
| 527 | "rdepends": [ | ||
| 528 | "core" | ||
| 529 | ], | ||
| 530 | "summary": "Python graphical image handling" | ||
| 531 | }, | ||
| 532 | "io": { | ||
| 533 | "cached": [ | ||
| 534 | "${libdir}/python3.5/__pycache__/_pyio.*.pyc", | ||
| 535 | "${libdir}/python3.5/__pycache__/ipaddress.*.pyc", | ||
| 536 | "${libdir}/python3.5/__pycache__/pipes.*.pyc", | ||
| 537 | "${libdir}/python3.5/__pycache__/socket.*.pyc", | ||
| 538 | "${libdir}/python3.5/__pycache__/ssl.*.pyc", | ||
| 539 | "${libdir}/python3.5/__pycache__/tempfile.*.pyc" | ||
| 540 | ], | ||
| 541 | "files": [ | ||
| 542 | "${libdir}/python3.5/_pyio.py", | ||
| 543 | "${libdir}/python3.5/ipaddress.py", | ||
| 544 | "${libdir}/python3.5/lib-dynload/_socket.*.so", | ||
| 545 | "${libdir}/python3.5/lib-dynload/_ssl.*.so", | ||
| 546 | "${libdir}/python3.5/lib-dynload/termios.*.so", | ||
| 547 | "${libdir}/python3.5/pipes.py", | ||
| 548 | "${libdir}/python3.5/socket.py", | ||
| 549 | "${libdir}/python3.5/ssl.py", | ||
| 550 | "${libdir}/python3.5/tempfile.py" | ||
| 551 | ], | ||
| 552 | "rdepends": [ | ||
| 553 | "compression", | ||
| 554 | "core", | ||
| 555 | "crypt", | ||
| 556 | "math", | ||
| 557 | "netclient", | ||
| 558 | "shell", | ||
| 559 | "unixadmin" | ||
| 560 | ], | ||
| 561 | "summary": "Python low-level I/O" | ||
| 562 | }, | ||
| 563 | "json": { | ||
| 564 | "cached": [], | ||
| 565 | "files": [ | ||
| 566 | "${libdir}/python3.5/json", | ||
| 567 | "${libdir}/python3.5/lib-dynload/_json.*.so" | ||
| 568 | ], | ||
| 569 | "rdepends": [ | ||
| 570 | "core" | ||
| 571 | ], | ||
| 572 | "summary": "Python JSON support" | ||
| 573 | }, | ||
| 574 | "logging": { | ||
| 575 | "cached": [], | ||
| 576 | "files": [ | ||
| 577 | "${libdir}/python3.5/logging" | ||
| 578 | ], | ||
| 579 | "rdepends": [ | ||
| 580 | "core", | ||
| 581 | "stringold" | ||
| 582 | ], | ||
| 583 | "summary": "Python logging support" | ||
| 584 | }, | ||
| 585 | "mailbox": { | ||
| 586 | "cached": [ | ||
| 587 | "${libdir}/python3.5/__pycache__/mailbox.*.pyc" | ||
| 588 | ], | ||
| 589 | "files": [ | ||
| 590 | "${libdir}/python3.5/mailbox.py" | ||
| 591 | ], | ||
| 592 | "rdepends": [ | ||
| 593 | "core", | ||
| 594 | "crypt", | ||
| 595 | "datetime", | ||
| 596 | "email", | ||
| 597 | "fcntl", | ||
| 598 | "io", | ||
| 599 | "math", | ||
| 600 | "mime", | ||
| 601 | "netclient", | ||
| 602 | "stringold" | ||
| 603 | ], | ||
| 604 | "summary": "Python mailbox format support" | ||
| 605 | }, | ||
| 606 | "math": { | ||
| 607 | "cached": [ | ||
| 608 | "${libdir}/python3.5/__pycache__/random.*.pyc" | ||
| 609 | ], | ||
| 610 | "files": [ | ||
| 611 | "${libdir}/python3.5/lib-dynload/_random.*.so", | ||
| 612 | "${libdir}/python3.5/lib-dynload/cmath.*.so", | ||
| 613 | "${libdir}/python3.5/random.py" | ||
| 614 | ], | ||
| 615 | "rdepends": [ | ||
| 616 | "core", | ||
| 617 | "crypt" | ||
| 618 | ], | ||
| 619 | "summary": "Python math support" | ||
| 620 | }, | ||
| 621 | "mime": { | ||
| 622 | "cached": [ | ||
| 623 | "${libdir}/python3.5/__pycache__/quopri.*.pyc", | ||
| 624 | "${libdir}/python3.5/__pycache__/uu.*.pyc" | ||
| 625 | ], | ||
| 626 | "files": [ | ||
| 627 | "${libdir}/python3.5/quopri.py", | ||
| 628 | "${libdir}/python3.5/uu.py" | ||
| 629 | ], | ||
| 630 | "rdepends": [ | ||
| 631 | "core" | ||
| 632 | ], | ||
| 633 | "summary": "Python MIME handling APIs" | ||
| 634 | }, | ||
| 635 | "mmap": { | ||
| 636 | "cached": [], | ||
| 637 | "files": [ | ||
| 638 | "${libdir}/python3.5/lib-dynload/mmap.*.so" | ||
| 639 | ], | ||
| 640 | "rdepends": [ | ||
| 641 | "core" | ||
| 642 | ], | ||
| 643 | "summary": "Python memory-mapped file support" | ||
| 644 | }, | ||
| 645 | "modules": { | ||
| 646 | "cached": [], | ||
| 647 | "files": [], | ||
| 648 | "rdepends": [ | ||
| 649 | "2to3", | ||
| 650 | "asyncio", | ||
| 651 | "audio", | ||
| 652 | "codecs", | ||
| 653 | "compile", | ||
| 654 | "compression", | ||
| 655 | "core", | ||
| 656 | "crypt", | ||
| 657 | "ctypes", | ||
| 658 | "curses", | ||
| 659 | "datetime", | ||
| 660 | "db", | ||
| 661 | "debugger", | ||
| 662 | "difflib", | ||
| 663 | "distutils", | ||
| 664 | "doctest", | ||
| 665 | "email", | ||
| 666 | "fcntl", | ||
| 667 | "html", | ||
| 668 | "idle", | ||
| 669 | "image", | ||
| 670 | "io", | ||
| 671 | "json", | ||
| 672 | "logging", | ||
| 673 | "mailbox", | ||
| 674 | "math", | ||
| 675 | "mime", | ||
| 676 | "mmap", | ||
| 677 | "multiprocessing", | ||
| 678 | "netclient", | ||
| 679 | "netserver", | ||
| 680 | "numbers", | ||
| 681 | "pickle", | ||
| 682 | "pkgutil", | ||
| 683 | "pprint", | ||
| 684 | "profile", | ||
| 685 | "pydoc", | ||
| 686 | "resource", | ||
| 687 | "shell", | ||
| 688 | "smtpd", | ||
| 689 | "sqlite3", | ||
| 690 | "stringold", | ||
| 691 | "syslog", | ||
| 692 | "terminal", | ||
| 693 | "threading", | ||
| 694 | "tkinter", | ||
| 695 | "typing", | ||
| 696 | "unittest", | ||
| 697 | "unixadmin", | ||
| 698 | "xml", | ||
| 699 | "xmlrpc" | ||
| 700 | ], | ||
| 701 | "summary": "All Python modules" | ||
| 702 | }, | ||
| 703 | "multiprocessing": { | ||
| 704 | "cached": [], | ||
| 705 | "files": [ | ||
| 706 | "${libdir}/python3.5/lib-dynload/_multiprocessing.*.so", | ||
| 707 | "${libdir}/python3.5/multiprocessing" | ||
| 708 | ], | ||
| 709 | "rdepends": [ | ||
| 710 | "core" | ||
| 711 | ], | ||
| 712 | "summary": "Python multiprocessing support" | ||
| 713 | }, | ||
| 714 | "netclient": { | ||
| 715 | "cached": [ | ||
| 716 | "${libdir}/python3.5/__pycache__/base64.*.pyc", | ||
| 717 | "${libdir}/python3.5/__pycache__/ftplib.*.pyc", | ||
| 718 | "${libdir}/python3.5/__pycache__/hmac.*.pyc", | ||
| 719 | "${libdir}/python3.5/__pycache__/mimetypes.*.pyc", | ||
| 720 | "${libdir}/python3.5/__pycache__/nntplib.*.pyc", | ||
| 721 | "${libdir}/python3.5/__pycache__/poplib.*.pyc", | ||
| 722 | "${libdir}/python3.5/__pycache__/smtplib.*.pyc", | ||
| 723 | "${libdir}/python3.5/__pycache__/telnetlib.*.pyc", | ||
| 724 | "${libdir}/python3.5/__pycache__/uuid.*.pyc" | ||
| 725 | ], | ||
| 726 | "files": [ | ||
| 727 | "${libdir}/python3.5/base64.py", | ||
| 728 | "${libdir}/python3.5/ftplib.py", | ||
| 729 | "${libdir}/python3.5/hmac.py", | ||
| 730 | "${libdir}/python3.5/mimetypes.py", | ||
| 731 | "${libdir}/python3.5/nntplib.py", | ||
| 732 | "${libdir}/python3.5/poplib.py", | ||
| 733 | "${libdir}/python3.5/smtplib.py", | ||
| 734 | "${libdir}/python3.5/telnetlib.py", | ||
| 735 | "${libdir}/python3.5/urllib", | ||
| 736 | "${libdir}/python3.5/urllib/__pycache__", | ||
| 737 | "${libdir}/python3.5/uuid.py" | ||
| 738 | ], | ||
| 739 | "rdepends": [ | ||
| 740 | "compression", | ||
| 741 | "core", | ||
| 742 | "crypt", | ||
| 743 | "ctypes", | ||
| 744 | "datetime", | ||
| 745 | "email", | ||
| 746 | "io", | ||
| 747 | "math", | ||
| 748 | "mime", | ||
| 749 | "shell", | ||
| 750 | "stringold", | ||
| 751 | "unixadmin" | ||
| 752 | ], | ||
| 753 | "summary": "Python Internet Protocol clients" | ||
| 754 | }, | ||
| 755 | "netserver": { | ||
| 756 | "cached": [ | ||
| 757 | "${libdir}/python3.5/__pycache__/cgi.*.pyc", | ||
| 758 | "${libdir}/python3.5/__pycache__/socketserver.*.pyc" | ||
| 759 | ], | ||
| 760 | "files": [ | ||
| 761 | "${libdir}/python3.5/cgi.py", | ||
| 762 | "${libdir}/python3.5/socketserver.py" | ||
| 763 | ], | ||
| 764 | "rdepends": [ | ||
| 765 | "compression", | ||
| 766 | "core", | ||
| 767 | "crypt", | ||
| 768 | "datetime", | ||
| 769 | "email", | ||
| 770 | "html", | ||
| 771 | "io", | ||
| 772 | "math", | ||
| 773 | "mime", | ||
| 774 | "netclient", | ||
| 775 | "shell", | ||
| 776 | "stringold", | ||
| 777 | "unixadmin" | ||
| 778 | ], | ||
| 779 | "summary": "Python Internet Protocol servers" | ||
| 780 | }, | ||
| 781 | "numbers": { | ||
| 782 | "cached": [ | ||
| 783 | "${libdir}/python3.5/__pycache__/decimal.*.pyc", | ||
| 784 | "${libdir}/python3.5/__pycache__/fractions.*.pyc", | ||
| 785 | "${libdir}/python3.5/__pycache__/numbers.*.pyc" | ||
| 786 | ], | ||
| 787 | "files": [ | ||
| 788 | "${libdir}/python3.5/decimal.py", | ||
| 789 | "${libdir}/python3.5/fractions.py", | ||
| 790 | "${libdir}/python3.5/lib-dynload/_decimal.*.so", | ||
| 791 | "${libdir}/python3.5/numbers.py" | ||
| 792 | ], | ||
| 793 | "rdepends": [ | ||
| 794 | "core" | ||
| 795 | ], | ||
| 796 | "summary": "Python number APIs" | ||
| 797 | }, | ||
| 798 | "pickle": { | ||
| 799 | "cached": [ | ||
| 800 | "${libdir}/python3.5/__pycache__/_compat_pickle.*.pyc", | ||
| 801 | "${libdir}/python3.5/__pycache__/pickle.*.pyc", | ||
| 802 | "${libdir}/python3.5/__pycache__/pickletools.*.pyc", | ||
| 803 | "${libdir}/python3.5/__pycache__/shelve.*.pyc" | ||
| 804 | ], | ||
| 805 | "files": [ | ||
| 806 | "${libdir}/python3.5/_compat_pickle.py", | ||
| 807 | "${libdir}/python3.5/lib-dynload/_pickle.*.so", | ||
| 808 | "${libdir}/python3.5/pickle.py", | ||
| 809 | "${libdir}/python3.5/pickletools.py", | ||
| 810 | "${libdir}/python3.5/shelve.py" | ||
| 811 | ], | ||
| 812 | "rdepends": [ | ||
| 813 | "core" | ||
| 814 | ], | ||
| 815 | "summary": "Python serialisation/persistence support" | ||
| 816 | }, | ||
| 817 | "pkgutil": { | ||
| 818 | "cached": [ | ||
| 819 | "${libdir}/python3.5/__pycache__/pkgutil.*.pyc" | ||
| 820 | ], | ||
| 821 | "files": [ | ||
| 822 | "${libdir}/python3.5/pkgutil.py" | ||
| 823 | ], | ||
| 824 | "rdepends": [ | ||
| 825 | "core" | ||
| 826 | ], | ||
| 827 | "summary": "Python package extension utility support" | ||
| 828 | }, | ||
| 829 | "pprint": { | ||
| 830 | "cached": [ | ||
| 831 | "${libdir}/python3.5/__pycache__/pprint.*.pyc" | ||
| 832 | ], | ||
| 833 | "files": [ | ||
| 834 | "${libdir}/python3.5/pprint.py" | ||
| 835 | ], | ||
| 836 | "rdepends": [ | ||
| 837 | "core" | ||
| 838 | ], | ||
| 839 | "summary": "Python pretty-print support" | ||
| 840 | }, | ||
| 841 | "profile": { | ||
| 842 | "cached": [ | ||
| 843 | "${libdir}/python3.5/__pycache__/cProfile.*.pyc", | ||
| 844 | "${libdir}/python3.5/__pycache__/profile.*.pyc", | ||
| 845 | "${libdir}/python3.5/__pycache__/pstats.*.pyc" | ||
| 846 | ], | ||
| 847 | "files": [ | ||
| 848 | "${libdir}/python3.5/cProfile.py", | ||
| 849 | "${libdir}/python3.5/lib-dynload/_lsprof.*.so", | ||
| 850 | "${libdir}/python3.5/profile.py", | ||
| 851 | "${libdir}/python3.5/pstats.py" | ||
| 852 | ], | ||
| 853 | "rdepends": [ | ||
| 854 | "core" | ||
| 855 | ], | ||
| 856 | "summary": "Python basic performance profiling support" | ||
| 857 | }, | ||
| 858 | "pydoc": { | ||
| 859 | "cached": [ | ||
| 860 | "${libdir}/python3.5/__pycache__/pydoc.*.pyc" | ||
| 861 | ], | ||
| 862 | "files": [ | ||
| 863 | "${bindir}/pydoc*", | ||
| 864 | "${libdir}/python3.5/pydoc.py", | ||
| 865 | "${libdir}/python3.5/pydoc_data" | ||
| 866 | ], | ||
| 867 | "rdepends": [ | ||
| 868 | "core", | ||
| 869 | "netclient", | ||
| 870 | "pkgutil" | ||
| 871 | ], | ||
| 872 | "summary": "Python interactive help support" | ||
| 873 | }, | ||
| 874 | "resource": { | ||
| 875 | "cached": [], | ||
| 876 | "files": [ | ||
| 877 | "${libdir}/python3.5/lib-dynload/resource.*.so" | ||
| 878 | ], | ||
| 879 | "rdepends": [ | ||
| 880 | "core" | ||
| 881 | ], | ||
| 882 | "summary": "Python resource control interface" | ||
| 883 | }, | ||
| 884 | "shell": { | ||
| 885 | "cached": [ | ||
| 886 | "${libdir}/python3.5/__pycache__/cmd.*.pyc", | ||
| 887 | "${libdir}/python3.5/__pycache__/fnmatch.*.pyc", | ||
| 888 | "${libdir}/python3.5/__pycache__/glob.*.pyc", | ||
| 889 | "${libdir}/python3.5/__pycache__/shlex.*.pyc", | ||
| 890 | "${libdir}/python3.5/__pycache__/shutil.*.pyc" | ||
| 891 | ], | ||
| 892 | "files": [ | ||
| 893 | "${libdir}/python3.5/cmd.py", | ||
| 894 | "${libdir}/python3.5/fnmatch.py", | ||
| 895 | "${libdir}/python3.5/glob.py", | ||
| 896 | "${libdir}/python3.5/shlex.py", | ||
| 897 | "${libdir}/python3.5/shutil.py" | ||
| 898 | ], | ||
| 899 | "rdepends": [ | ||
| 900 | "compression", | ||
| 901 | "core", | ||
| 902 | "stringold", | ||
| 903 | "unixadmin" | ||
| 904 | ], | ||
| 905 | "summary": "Python shell-like functionality" | ||
| 906 | }, | ||
| 907 | "smtpd": { | ||
| 908 | "cached": [ | ||
| 909 | "${libdir}/python3.5/__pycache__/asynchat.*.pyc", | ||
| 910 | "${libdir}/python3.5/__pycache__/asyncore.*.pyc", | ||
| 911 | "${libdir}/python3.5/__pycache__/smtpd.*.pyc" | ||
| 912 | ], | ||
| 913 | "files": [ | ||
| 914 | "${bindir}/smtpd.py", | ||
| 915 | "${libdir}/python3.5/asynchat.py", | ||
| 916 | "${libdir}/python3.5/asyncore.py", | ||
| 917 | "${libdir}/python3.5/smtpd.py" | ||
| 918 | ], | ||
| 919 | "rdepends": [ | ||
| 920 | "core", | ||
| 921 | "crypt", | ||
| 922 | "datetime", | ||
| 923 | "email", | ||
| 924 | "io", | ||
| 925 | "math", | ||
| 926 | "mime", | ||
| 927 | "netclient", | ||
| 928 | "stringold" | ||
| 929 | ], | ||
| 930 | "summary": "Python Simple Mail Transport Daemon" | ||
| 931 | }, | ||
| 932 | "sqlite3": { | ||
| 933 | "cached": [], | ||
| 934 | "files": [ | ||
| 935 | "${libdir}/python3.5/lib-dynload/_sqlite3.*.so" | ||
| 936 | ], | ||
| 937 | "rdepends": [ | ||
| 938 | "core" | ||
| 939 | ], | ||
| 940 | "summary": "Python Sqlite3 database support" | ||
| 941 | }, | ||
| 942 | "sqlite3-tests": { | ||
| 943 | "cached": [], | ||
| 944 | "files": [ | ||
| 945 | "${libdir}/python3.5/sqlite3/test" | ||
| 946 | ], | ||
| 947 | "rdepends": [ | ||
| 948 | "core", | ||
| 949 | "tests" | ||
| 950 | ], | ||
| 951 | "summary": "Python Sqlite3 database support tests" | ||
| 952 | }, | ||
| 953 | "stringold": { | ||
| 954 | "cached": [ | ||
| 955 | "${libdir}/python3.5/__pycache__/string.*.pyc" | ||
| 956 | ], | ||
| 957 | "files": [ | ||
| 958 | "${libdir}/python3.5/string.py" | ||
| 959 | ], | ||
| 960 | "rdepends": [ | ||
| 961 | "core" | ||
| 962 | ], | ||
| 963 | "summary": "Python string APIs [deprecated]" | ||
| 964 | }, | ||
| 965 | "syslog": { | ||
| 966 | "cached": [], | ||
| 967 | "files": [ | ||
| 968 | "${libdir}/python3.5/lib-dynload/syslog.*.so" | ||
| 969 | ], | ||
| 970 | "rdepends": [ | ||
| 971 | "core" | ||
| 972 | ], | ||
| 973 | "summary": "Python syslog interface" | ||
| 974 | }, | ||
| 975 | "terminal": { | ||
| 976 | "cached": [ | ||
| 977 | "${libdir}/python3.5/__pycache__/pty.*.pyc", | ||
| 978 | "${libdir}/python3.5/__pycache__/tty.*.pyc" | ||
| 979 | ], | ||
| 980 | "files": [ | ||
| 981 | "${libdir}/python3.5/pty.py", | ||
| 982 | "${libdir}/python3.5/tty.py" | ||
| 983 | ], | ||
| 984 | "rdepends": [ | ||
| 985 | "core", | ||
| 986 | "io" | ||
| 987 | ], | ||
| 988 | "summary": "Python terminal controlling support" | ||
| 989 | }, | ||
| 990 | "tests": { | ||
| 991 | "cached": [], | ||
| 992 | "files": [ | ||
| 993 | "${libdir}/python3.5/test" | ||
| 994 | ], | ||
| 995 | "rdepends": [ | ||
| 996 | "core" | ||
| 997 | ], | ||
| 998 | "summary": "Python tests" | ||
| 999 | }, | ||
| 1000 | "threading": { | ||
| 1001 | "cached": [ | ||
| 1002 | "${libdir}/python3.5/__pycache__/_dummy_thread.*.pyc", | ||
| 1003 | "${libdir}/python3.5/__pycache__/_threading_local.*.pyc", | ||
| 1004 | "${libdir}/python3.5/__pycache__/dummy_threading.*.pyc", | ||
| 1005 | "${libdir}/python3.5/__pycache__/queue.*.pyc" | ||
| 1006 | ], | ||
| 1007 | "files": [ | ||
| 1008 | "${libdir}/python3.5/_dummy_thread.py", | ||
| 1009 | "${libdir}/python3.5/_threading_local.py", | ||
| 1010 | "${libdir}/python3.5/dummy_threading.py", | ||
| 1011 | "${libdir}/python3.5/queue.py" | ||
| 1012 | ], | ||
| 1013 | "rdepends": [ | ||
| 1014 | "core" | ||
| 1015 | ], | ||
| 1016 | "summary": "Python threading & synchronization support" | ||
| 1017 | }, | ||
| 1018 | "tkinter": { | ||
| 1019 | "cached": [], | ||
| 1020 | "files": [ | ||
| 1021 | "${libdir}/python3.5/tkinter" | ||
| 1022 | ], | ||
| 1023 | "rdepends": [ | ||
| 1024 | "core" | ||
| 1025 | ], | ||
| 1026 | "summary": "Python Tcl/Tk bindings" | ||
| 1027 | }, | ||
| 1028 | "typing": { | ||
| 1029 | "cached": [ | ||
| 1030 | "${libdir}/python3.5/__pycache__/typing.*.pyc" | ||
| 1031 | ], | ||
| 1032 | "files": [ | ||
| 1033 | "${libdir}/python3.5/typing.py" | ||
| 1034 | ], | ||
| 1035 | "rdepends": [ | ||
| 1036 | "core" | ||
| 1037 | ], | ||
| 1038 | "summary": "Python typing support" | ||
| 1039 | }, | ||
| 1040 | "unittest": { | ||
| 1041 | "cached": [], | ||
| 1042 | "files": [ | ||
| 1043 | "${libdir}/python3.5/unittest", | ||
| 1044 | "${libdir}/python3.5/unittest/", | ||
| 1045 | "${libdir}/python3.5/unittest/__pycache__" | ||
| 1046 | ], | ||
| 1047 | "rdepends": [ | ||
| 1048 | "core", | ||
| 1049 | "difflib", | ||
| 1050 | "logging", | ||
| 1051 | "pprint", | ||
| 1052 | "shell", | ||
| 1053 | "stringold" | ||
| 1054 | ], | ||
| 1055 | "summary": "Python unit testing framework" | ||
| 1056 | }, | ||
| 1057 | "unixadmin": { | ||
| 1058 | "cached": [ | ||
| 1059 | "${libdir}/python3.5/__pycache__/getpass.*.pyc" | ||
| 1060 | ], | ||
| 1061 | "files": [ | ||
| 1062 | "${libdir}/python3.5/getpass.py", | ||
| 1063 | "${libdir}/python3.5/lib-dynload/grp.*.so", | ||
| 1064 | "${libdir}/python3.5/lib-dynload/nis.*.so" | ||
| 1065 | ], | ||
| 1066 | "rdepends": [ | ||
| 1067 | "core", | ||
| 1068 | "io" | ||
| 1069 | ], | ||
| 1070 | "summary": "Python Unix administration support" | ||
| 1071 | }, | ||
| 1072 | "xml": { | ||
| 1073 | "cached": [], | ||
| 1074 | "files": [ | ||
| 1075 | "${libdir}/python3.5/lib-dynload/_elementtree.*.so", | ||
| 1076 | "${libdir}/python3.5/lib-dynload/pyexpat.*.so", | ||
| 1077 | "${libdir}/python3.5/xml" | ||
| 1078 | ], | ||
| 1079 | "rdepends": [ | ||
| 1080 | "core" | ||
| 1081 | ], | ||
| 1082 | "summary": "Python basic XML support" | ||
| 1083 | }, | ||
| 1084 | "xmlrpc": { | ||
| 1085 | "cached": [], | ||
| 1086 | "files": [ | ||
| 1087 | "${libdir}/python3.5/xmlrpc", | ||
| 1088 | "${libdir}/python3.5/xmlrpc/__pycache__" | ||
| 1089 | ], | ||
| 1090 | "rdepends": [ | ||
| 1091 | "core", | ||
| 1092 | "xml" | ||
| 1093 | ], | ||
| 1094 | "summary": "Python XML-RPC support" | ||
| 1095 | } | ||
| 1096 | } | ||
diff --git a/meta/recipes-devtools/python/python3_3.5.3.bb b/meta/recipes-devtools/python/python3_3.5.3.bb index 7f54ea4ecd..970ba63445 100644 --- a/meta/recipes-devtools/python/python3_3.5.3.bb +++ b/meta/recipes-devtools/python/python3_3.5.3.bb | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | require recipes-devtools/python/python.inc | 1 | require recipes-devtools/python/python.inc |
| 2 | 2 | ||
| 3 | DEPENDS = "python3-native libffi bzip2 gdbm openssl readline sqlite3 zlib virtual/libintl xz" | 3 | DEPENDS = "python3-native libffi bzip2 gdbm openssl readline sqlite3 zlib virtual/libintl xz" |
| 4 | |||
| 4 | PR = "${INC_PR}.0" | 5 | PR = "${INC_PR}.0" |
| 5 | PYTHON_MAJMIN = "3.5" | 6 | PYTHON_MAJMIN = "3.5" |
| 6 | PYTHON_BINABI= "${PYTHON_MAJMIN}m" | 7 | PYTHON_BINABI= "${PYTHON_MAJMIN}m" |
| @@ -196,11 +197,8 @@ py_package_preprocess () { | |||
| 196 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py | 197 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py |
| 197 | } | 198 | } |
| 198 | 199 | ||
| 199 | require python-${PYTHON_MAJMIN}-manifest.inc | ||
| 200 | |||
| 201 | # manual dependency additions | 200 | # manual dependency additions |
| 202 | RPROVIDES_${PN}-modules = "${PN}" | 201 | RPROVIDES_${PN}-modules = "${PN}" |
| 203 | RRECOMMENDS_${PN}-core = "${PN}-readline" | ||
| 204 | RRECOMMENDS_${PN}-crypt = "openssl" | 202 | RRECOMMENDS_${PN}-crypt = "openssl" |
| 205 | RRECOMMENDS_${PN}-crypt_class-nativesdk = "nativesdk-openssl" | 203 | RRECOMMENDS_${PN}-crypt_class-nativesdk = "nativesdk-openssl" |
| 206 | 204 | ||
| @@ -219,7 +217,7 @@ INSANE_SKIP_${PN}-dev += "dev-elf" | |||
| 219 | 217 | ||
| 220 | # catch all the rest (unsorted) | 218 | # catch all the rest (unsorted) |
| 221 | PACKAGES += "${PN}-misc" | 219 | PACKAGES += "${PN}-misc" |
| 222 | RDEPENDS_${PN}-misc += "${PN}-core ${PN}-email ${PN}-codecs ${PN}-textutils ${PN}-argparse" | 220 | RDEPENDS_${PN}-misc += "${PN}-core ${PN}-email ${PN}-codecs" |
| 223 | RDEPENDS_${PN}-modules += "${PN}-misc" | 221 | RDEPENDS_${PN}-modules += "${PN}-misc" |
| 224 | FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}" | 222 | FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}" |
| 225 | 223 | ||
| @@ -228,3 +226,88 @@ PACKAGES += "${PN}-man" | |||
| 228 | FILES_${PN}-man = "${datadir}/man" | 226 | FILES_${PN}-man = "${datadir}/man" |
| 229 | 227 | ||
| 230 | BBCLASSEXTEND = "nativesdk" | 228 | BBCLASSEXTEND = "nativesdk" |
| 229 | |||
| 230 | RPROVIDES_${PN} += "${PN}-modules" | ||
| 231 | |||
| 232 | # We want bytecode precompiled .py files (.pyc's) by default | ||
| 233 | # but the user may set it on their own conf | ||
| 234 | |||
| 235 | INCLUDE_PYCS ?= "1" | ||
| 236 | |||
| 237 | python(){ | ||
| 238 | |||
| 239 | pythondir = d.getVar('THISDIR',True) | ||
| 240 | |||
| 241 | # Read JSON manifest | ||
| 242 | import json | ||
| 243 | with open(pythondir+'/python3/python3-manifest.json') as manifest_file: | ||
| 244 | python_manifest=json.load(manifest_file) | ||
| 245 | |||
| 246 | include_pycs = d.getVar('INCLUDE_PYCS') | ||
| 247 | |||
| 248 | packages = d.getVar('PACKAGES').split() | ||
| 249 | pn = d.getVar('PN') | ||
| 250 | |||
| 251 | newpackages=[] | ||
| 252 | for key in python_manifest: | ||
| 253 | pypackage= pn + '-' + key | ||
| 254 | |||
| 255 | if pypackage not in packages: | ||
| 256 | # We need to prepend, otherwise python-misc gets everything | ||
| 257 | # so we use a new variable | ||
| 258 | newpackages.append(pypackage) | ||
| 259 | |||
| 260 | # "Build" python's manifest FILES, RDEPENDS and SUMMARY | ||
| 261 | d.setVar('FILES_' + pypackage, '') | ||
| 262 | for value in python_manifest[key]['files']: | ||
| 263 | d.appendVar('FILES_' + pypackage, ' ' + value) | ||
| 264 | |||
| 265 | # Add cached files | ||
| 266 | if include_pycs == '1': | ||
| 267 | for value in python_manifest[key]['cached']: | ||
| 268 | d.appendVar('FILES_' + pypackage, ' ' + value) | ||
| 269 | |||
| 270 | d.setVar('RDEPENDS_' + pypackage, '') | ||
| 271 | for value in python_manifest[key]['rdepends']: | ||
| 272 | # Make it work with or without $PN | ||
| 273 | if '${PN}' in value: | ||
| 274 | value=value.split('-')[1] | ||
| 275 | d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value) | ||
| 276 | d.setVar('SUMMARY_' + pypackage, python_manifest[key]['summary']) | ||
| 277 | |||
| 278 | # We need to ensure staticdev packages match for files first so we sort in reverse | ||
| 279 | newpackages.sort(reverse=True) | ||
| 280 | # Prepending so to avoid python-misc getting everything | ||
| 281 | packages = newpackages + packages | ||
| 282 | d.setVar('PACKAGES', ' '.join(packages)) | ||
| 283 | d.setVar('ALLOW_EMPTY_${PN}-modules', '1') | ||
| 284 | } | ||
| 285 | do_split_packages[file-checksums] += "${THISDIR}/python/python3-manifest.json:True" | ||
| 286 | |||
| 287 | |||
| 288 | |||
| 289 | # Files needed to create a new manifest | ||
| 290 | SRC_URI += "file://create_manifest3.py file://get_module_deps3.py file://python3-manifest.json" | ||
| 291 | |||
| 292 | do_create_manifest() { | ||
| 293 | |||
| 294 | # This task should be run with every new release of Python. | ||
| 295 | # We must ensure that PACKAGECONFIG enables everything when creating | ||
| 296 | # a new manifest, this is to base our new manifest on a complete | ||
| 297 | # native python build, containing all dependencies, otherwise the task | ||
| 298 | # wont be able to find the required files. | ||
| 299 | # e.g. BerkeleyDB is an optional build dependency so it may or may not | ||
| 300 | # be present, we must ensure it is. | ||
| 301 | |||
| 302 | cd ${WORKDIR} | ||
| 303 | # This needs to be executed by python-native and NOT by HOST's python | ||
| 304 | nativepython3 create_manifest3.py | ||
| 305 | cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json | ||
| 306 | } | ||
| 307 | |||
| 308 | # bitbake python -c create_manifest | ||
| 309 | addtask do_create_manifest | ||
| 310 | |||
| 311 | # Make sure we have native python ready when we create a new manifest | ||
| 312 | do_create_manifest[depends] += "python3:do_prepare_recipe_sysroot" | ||
| 313 | do_create_manifest[depends] += "python3:do_patch" | ||
diff --git a/scripts/contrib/python/generate-manifest-3.5.py b/scripts/contrib/python/generate-manifest-3.5.py deleted file mode 100755 index 7dfae46992..0000000000 --- a/scripts/contrib/python/generate-manifest-3.5.py +++ /dev/null | |||
| @@ -1,442 +0,0 @@ | |||
| 1 | #!/usr/bin/env python | ||
| 2 | |||
| 3 | # generate Python Manifest for the OpenEmbedded build system | ||
| 4 | # (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de> | ||
| 5 | # (C) 2007 Jeremy Laine | ||
| 6 | # licensed under MIT, see COPYING.MIT | ||
| 7 | # | ||
| 8 | # June 22, 2011 -- Mark Hatle <mark.hatle@windriver.com> | ||
| 9 | # * Updated to no longer generate special -dbg package, instead use the | ||
| 10 | # single system -dbg | ||
| 11 | # * Update version with ".1" to indicate this change | ||
| 12 | # | ||
| 13 | # 2014 Khem Raj <raj.khem@gmail.com> | ||
| 14 | # Added python3 support | ||
| 15 | # | ||
| 16 | # February 26, 2017 -- Ming Liu <peter.x.liu@external.atlascopco.com> | ||
| 17 | # * Updated to support generating manifest for native python3 | ||
| 18 | |||
| 19 | import os | ||
| 20 | import sys | ||
| 21 | import time | ||
| 22 | import argparse | ||
| 23 | |||
| 24 | VERSION = "3.5.0" | ||
| 25 | |||
| 26 | __author__ = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>" | ||
| 27 | __version__ = "20140131" | ||
| 28 | |||
| 29 | class MakefileMaker: | ||
| 30 | |||
| 31 | def __init__( self, outfile, isNative ): | ||
| 32 | """initialize""" | ||
| 33 | self.packages = {} | ||
| 34 | self.excluded_pkgs = [] | ||
| 35 | self.targetPrefix = "${libdir}/python%s/" % VERSION[:3] | ||
| 36 | self.isNative = isNative | ||
| 37 | self.output = outfile | ||
| 38 | self.out( """ | ||
| 39 | # WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file. | ||
| 40 | # Generator: '%s%s' Version %s (C) 2002-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de> | ||
| 41 | """ % ( sys.argv[0], ' --native' if isNative else '', __version__ ) ) | ||
| 42 | |||
| 43 | # | ||
| 44 | # helper functions | ||
| 45 | # | ||
| 46 | |||
| 47 | def out( self, data ): | ||
| 48 | """print a line to the output file""" | ||
| 49 | self.output.write( "%s\n" % data ) | ||
| 50 | |||
| 51 | def setPrefix( self, targetPrefix ): | ||
| 52 | """set a file prefix for addPackage files""" | ||
| 53 | self.targetPrefix = targetPrefix | ||
| 54 | |||
| 55 | def doProlog( self ): | ||
| 56 | self.out( """ """ ) | ||
| 57 | self.out( "" ) | ||
| 58 | |||
| 59 | def addPackage( self, name, description, dependencies, filenames, mod_exclude = False ): | ||
| 60 | """add a package to the Makefile""" | ||
| 61 | if type( filenames ) == type( "" ): | ||
| 62 | filenames = filenames.split() | ||
| 63 | fullFilenames = [] | ||
| 64 | for filename in filenames: | ||
| 65 | if filename[0] != "$": | ||
| 66 | fullFilenames.append( "%s%s" % ( self.targetPrefix, filename ) ) | ||
| 67 | fullFilenames.append( "%s%s" % ( self.targetPrefix, | ||
| 68 | self.pycachePath( filename ) ) ) | ||
| 69 | else: | ||
| 70 | fullFilenames.append( filename ) | ||
| 71 | if mod_exclude: | ||
| 72 | self.excluded_pkgs.append( name ) | ||
| 73 | self.packages[name] = description, dependencies, fullFilenames | ||
| 74 | |||
| 75 | def pycachePath( self, filename ): | ||
| 76 | dirname = os.path.dirname( filename ) | ||
| 77 | basename = os.path.basename( filename ) | ||
| 78 | if '.' in basename: | ||
| 79 | return os.path.join( dirname, '__pycache__', basename ) | ||
| 80 | else: | ||
| 81 | return os.path.join( dirname, basename, '__pycache__' ) | ||
| 82 | |||
| 83 | def doBody( self ): | ||
| 84 | """generate body of Makefile""" | ||
| 85 | |||
| 86 | global VERSION | ||
| 87 | |||
| 88 | # | ||
| 89 | # generate rprovides line for native | ||
| 90 | # | ||
| 91 | |||
| 92 | if self.isNative: | ||
| 93 | pkglist = [] | ||
| 94 | for name in ['${PN}-modules'] + sorted(self.packages): | ||
| 95 | pkglist.append('%s-native' % name.replace('${PN}', 'python3')) | ||
| 96 | |||
| 97 | self.out('RPROVIDES += "%s"' % " ".join(pkglist)) | ||
| 98 | return | ||
| 99 | |||
| 100 | # | ||
| 101 | # generate provides line | ||
| 102 | # | ||
| 103 | |||
| 104 | provideLine = 'PROVIDES+="\\\n' | ||
| 105 | for name in sorted(self.packages): | ||
| 106 | provideLine += " %s \\\n" % name | ||
| 107 | provideLine += '"' | ||
| 108 | |||
| 109 | self.out( provideLine ) | ||
| 110 | self.out( "" ) | ||
| 111 | |||
| 112 | # | ||
| 113 | # generate package line | ||
| 114 | # | ||
| 115 | |||
| 116 | packageLine = 'PACKAGES="\\\n' | ||
| 117 | packageLine += ' ${PN}-dbg \\\n' | ||
| 118 | for name in sorted(self.packages): | ||
| 119 | if name.startswith("${PN}-distutils"): | ||
| 120 | if name == "${PN}-distutils": | ||
| 121 | packageLine += "%s \\\n %s-staticdev \\\n" % (name, name) | ||
| 122 | elif name != '${PN}-dbg': | ||
| 123 | packageLine += " %s \\\n" % name | ||
| 124 | packageLine += ' ${PN}-modules \\\n"' | ||
| 125 | |||
| 126 | self.out( packageLine ) | ||
| 127 | self.out( "" ) | ||
| 128 | |||
| 129 | # | ||
| 130 | # generate package variables | ||
| 131 | # | ||
| 132 | |||
| 133 | for name, data in sorted(self.packages.items()): | ||
| 134 | desc, deps, files = data | ||
| 135 | |||
| 136 | # | ||
| 137 | # write out the description, revision and dependencies | ||
| 138 | # | ||
| 139 | self.out( 'SUMMARY_%s="%s"' % ( name, desc ) ) | ||
| 140 | self.out( 'RDEPENDS_%s="%s"' % ( name, deps ) ) | ||
| 141 | |||
| 142 | line = 'FILES_%s="\\\n' % name | ||
| 143 | |||
| 144 | # | ||
| 145 | # check which directories to make in the temporary directory | ||
| 146 | # | ||
| 147 | |||
| 148 | dirset = {} # if python had a set-datatype this would be sufficient. for now, we're using a dict instead. | ||
| 149 | for target in files: | ||
| 150 | dirset[os.path.dirname( target )] = True | ||
| 151 | |||
| 152 | # | ||
| 153 | # generate which files to copy for the target (-dfR because whole directories are also allowed) | ||
| 154 | # | ||
| 155 | |||
| 156 | for target in files: | ||
| 157 | line += " %s \\\n" % target | ||
| 158 | |||
| 159 | line += '"' | ||
| 160 | self.out( line ) | ||
| 161 | self.out( "" ) | ||
| 162 | |||
| 163 | self.out( 'SUMMARY_${PN}-modules="All Python modules"' ) | ||
| 164 | line = 'RDEPENDS_${PN}-modules=" \\\n' | ||
| 165 | |||
| 166 | for name, data in sorted(self.packages.items()): | ||
| 167 | if name not in ['${PN}-dev', '${PN}-distutils-staticdev'] and name not in self.excluded_pkgs: | ||
| 168 | line += " %s \\\n" % name | ||
| 169 | |||
| 170 | line += '"' | ||
| 171 | self.out( line ) | ||
| 172 | self.out( 'ALLOW_EMPTY_${PN}-modules = "1"' ) | ||
| 173 | |||
| 174 | def doEpilog( self ): | ||
| 175 | self.out( """""" ) | ||
| 176 | self.out( "" ) | ||
| 177 | |||
| 178 | def make( self ): | ||
| 179 | self.doProlog() | ||
| 180 | self.doBody() | ||
| 181 | self.doEpilog() | ||
| 182 | |||
| 183 | if __name__ == "__main__": | ||
| 184 | parser = argparse.ArgumentParser( description='generate python3 manifest' ) | ||
| 185 | parser.add_argument( '-n', '--native', help='generate manifest for native python3', action='store_true' ) | ||
| 186 | parser.add_argument( 'outfile', metavar='OUTPUT_FILE', nargs='?', default='', help='Output file (defaults to stdout)' ) | ||
| 187 | args = parser.parse_args() | ||
| 188 | |||
| 189 | if args.outfile: | ||
| 190 | try: | ||
| 191 | os.unlink( args.outfile ) | ||
| 192 | except Exception: | ||
| 193 | sys.exc_clear() | ||
| 194 | outfile = open( args.outfile, "w" ) | ||
| 195 | else: | ||
| 196 | outfile = sys.stdout | ||
| 197 | |||
| 198 | m = MakefileMaker( outfile, args.native ) | ||
| 199 | |||
| 200 | # Add packages here. Only specify dlopen-style library dependencies here, no ldd-style dependencies! | ||
| 201 | # Parameters: revision, name, description, dependencies, filenames | ||
| 202 | # | ||
| 203 | |||
| 204 | m.addPackage( "${PN}-core", "Python interpreter and core modules", "${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io ${PN}-math", | ||
| 205 | "__future__.* _abcoll.* abc.* ast.* copy.* copyreg.* configparser.* " + | ||
| 206 | "genericpath.* getopt.* linecache.* new.* " + | ||
| 207 | "os.* posixpath.* struct.* " + | ||
| 208 | "warnings.* site.* stat.* " + | ||
| 209 | "UserDict.* UserList.* UserString.* " + | ||
| 210 | "lib-dynload/binascii.*.so lib-dynload/_struct.*.so lib-dynload/time.*.so " + | ||
| 211 | "lib-dynload/xreadlines.*.so types.* platform.* ${bindir}/python* " + | ||
| 212 | "_weakrefset.* sysconfig.* _sysconfigdata.* " + | ||
| 213 | "${includedir}/python${PYTHON_BINABI}/pyconfig*.h " + | ||
| 214 | "${libdir}/python${PYTHON_MAJMIN}/collections " + | ||
| 215 | "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.* " + | ||
| 216 | "${libdir}/python${PYTHON_MAJMIN}/_markupbase.* " + | ||
| 217 | "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.* " + | ||
| 218 | "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py ") | ||
| 219 | |||
| 220 | m.addPackage( "${PN}-dev", "Python development package", "${PN}-core", | ||
| 221 | "${includedir} " + | ||
| 222 | "${libdir}/lib*${SOLIBSDEV} " + | ||
| 223 | "${libdir}/*.la " + | ||
| 224 | "${libdir}/*.a " + | ||
| 225 | "${libdir}/*.o " + | ||
| 226 | "${libdir}/pkgconfig " + | ||
| 227 | "${base_libdir}/*.a " + | ||
| 228 | "${base_libdir}/*.o " + | ||
| 229 | "${datadir}/aclocal " + | ||
| 230 | "${datadir}/pkgconfig " + | ||
| 231 | "config*/Makefile ") | ||
| 232 | |||
| 233 | m.addPackage( "${PN}-2to3", "Python automated Python 2 to 3 code translator", "${PN}-core", | ||
| 234 | "lib2to3" ) # package | ||
| 235 | |||
| 236 | m.addPackage( "${PN}-idle", "Python Integrated Development Environment", "${PN}-core ${PN}-tkinter", | ||
| 237 | "${bindir}/idle idlelib" ) # package | ||
| 238 | |||
| 239 | m.addPackage( "${PN}-pydoc", "Python interactive help support", "${PN}-core ${PN}-lang ${PN}-stringold ${PN}-re", | ||
| 240 | "${bindir}/pydoc pydoc.* pydoc_data" ) | ||
| 241 | |||
| 242 | m.addPackage( "${PN}-smtpd", "Python Simple Mail Transport Daemon", "${PN}-core ${PN}-netserver ${PN}-email ${PN}-mime", | ||
| 243 | "${bindir}/smtpd.* smtpd.*" ) | ||
| 244 | |||
| 245 | m.addPackage( "${PN}-audio", "Python Audio Handling", "${PN}-core", | ||
| 246 | "wave.* chunk.* sndhdr.* lib-dynload/ossaudiodev.*.so lib-dynload/audioop.*.so audiodev.* sunaudio.* sunau.* toaiff.*" ) | ||
| 247 | |||
| 248 | m.addPackage( "${PN}-argparse", "Python command line argument parser", "${PN}-core ${PN}-codecs ${PN}-textutils", | ||
| 249 | "argparse.*" ) | ||
| 250 | |||
| 251 | m.addPackage( "${PN}-asyncio", "Python Asynchronous I/O, event loop, coroutines and tasks", "${PN}-core", | ||
| 252 | "asyncio" ) | ||
| 253 | |||
| 254 | m.addPackage( "${PN}-codecs", "Python codecs, encodings & i18n support", "${PN}-core ${PN}-lang", | ||
| 255 | "codecs.* encodings gettext.* locale.* lib-dynload/_locale.*.so lib-dynload/_codecs* lib-dynload/_multibytecodec.*.so lib-dynload/unicodedata.*.so stringprep.* xdrlib.*" ) | ||
| 256 | |||
| 257 | m.addPackage( "${PN}-compile", "Python bytecode compilation support", "${PN}-core", | ||
| 258 | "py_compile.* compileall.*" ) | ||
| 259 | |||
| 260 | m.addPackage( "${PN}-compression", "Python high-level compression support", "${PN}-core ${PN}-codecs ${PN}-importlib ${PN}-threading ${PN}-shell", | ||
| 261 | "gzip.* zipfile.* tarfile.* lib-dynload/bz2.*.so lib-dynload/zlib.*.so bz2.py lzma.py _compression.py" ) | ||
| 262 | |||
| 263 | m.addPackage( "${PN}-crypt", "Python basic cryptographic and hashing support", "${PN}-core", | ||
| 264 | "hashlib.* md5.* sha.* lib-dynload/crypt.*.so lib-dynload/_hashlib.*.so lib-dynload/_sha256.*.so lib-dynload/_sha512.*.so" ) | ||
| 265 | |||
| 266 | m.addPackage( "${PN}-textutils", "Python option parsing, text wrapping and CSV support", "${PN}-core ${PN}-io ${PN}-re ${PN}-stringold", | ||
| 267 | "lib-dynload/_csv.*.so csv.* optparse.* textwrap.*" ) | ||
| 268 | |||
| 269 | m.addPackage( "${PN}-curses", "Python curses support", "${PN}-core", | ||
| 270 | "curses lib-dynload/_curses.*.so lib-dynload/_curses_panel.*.so" ) # directory + low level module | ||
| 271 | |||
| 272 | m.addPackage( "${PN}-ctypes", "Python C types support", "${PN}-core ${PN}-subprocess", | ||
| 273 | "ctypes lib-dynload/_ctypes.*.so lib-dynload/_ctypes_test.*.so" ) # directory + low level module | ||
| 274 | |||
| 275 | m.addPackage( "${PN}-datetime", "Python calendar and time support", "${PN}-core ${PN}-codecs", | ||
| 276 | "_strptime.* calendar.* datetime.* lib-dynload/_datetime.*.so" ) | ||
| 277 | |||
| 278 | m.addPackage( "${PN}-db", "Python file-based database support", "${PN}-core", | ||
| 279 | "anydbm.* dumbdbm.* whichdb.* dbm lib-dynload/_dbm.*.so" ) | ||
| 280 | |||
| 281 | m.addPackage( "${PN}-debugger", "Python debugger", "${PN}-core ${PN}-io ${PN}-lang ${PN}-re ${PN}-stringold ${PN}-shell ${PN}-pprint ${PN}-importlib ${PN}-pkgutil", | ||
| 282 | "bdb.* pdb.*" ) | ||
| 283 | |||
| 284 | m.addPackage( "${PN}-difflib", "Python helpers for computing deltas between objects", "${PN}-lang ${PN}-re", | ||
| 285 | "difflib.*" ) | ||
| 286 | |||
| 287 | m.addPackage( "${PN}-distutils-staticdev", "Python distribution utilities (static libraries)", "${PN}-distutils", | ||
| 288 | "config/lib*.a" ) # package | ||
| 289 | |||
| 290 | m.addPackage( "${PN}-distutils", "Python Distribution Utilities", "${PN}-core ${PN}-email", | ||
| 291 | "config distutils" ) # package | ||
| 292 | |||
| 293 | m.addPackage( "${PN}-doctest", "Python framework for running examples in docstrings", "${PN}-core ${PN}-lang ${PN}-io ${PN}-re ${PN}-unittest ${PN}-debugger ${PN}-difflib", | ||
| 294 | "doctest.*" ) | ||
| 295 | |||
| 296 | m.addPackage( "${PN}-email", "Python email support", "${PN}-core ${PN}-io ${PN}-re ${PN}-mime ${PN}-audio ${PN}-image ${PN}-netclient", | ||
| 297 | "imaplib.* email" ) # package | ||
| 298 | |||
| 299 | m.addPackage( "${PN}-enum", "Python support for enumerations", "${PN}-core", | ||
| 300 | "enum.*" ) | ||
| 301 | |||
| 302 | m.addPackage( "${PN}-fcntl", "Python's fcntl interface", "${PN}-core", | ||
| 303 | "lib-dynload/fcntl.*.so" ) | ||
| 304 | |||
| 305 | m.addPackage( "${PN}-html", "Python HTML processing support", "${PN}-core", | ||
| 306 | "formatter.* htmlentitydefs.* html htmllib.* markupbase.* sgmllib.* HTMLParser.* " ) | ||
| 307 | |||
| 308 | m.addPackage( "${PN}-importlib", "Python import implementation library", "${PN}-core ${PN}-lang", | ||
| 309 | "importlib imp.*" ) | ||
| 310 | |||
| 311 | m.addPackage( "${PN}-gdbm", "Python GNU database support", "${PN}-core", | ||
| 312 | "lib-dynload/_gdbm.*.so" ) | ||
| 313 | |||
| 314 | m.addPackage( "${PN}-image", "Python graphical image handling", "${PN}-core", | ||
| 315 | "colorsys.* imghdr.* lib-dynload/imageop.*.so lib-dynload/rgbimg.*.so" ) | ||
| 316 | |||
| 317 | m.addPackage( "${PN}-io", "Python low-level I/O", "${PN}-core ${PN}-math", | ||
| 318 | "lib-dynload/_socket.*.so lib-dynload/_io.*.so lib-dynload/_ssl.*.so lib-dynload/select.*.so lib-dynload/termios.*.so lib-dynload/cStringIO.*.so " + | ||
| 319 | "ipaddress.* pipes.* socket.* ssl.* tempfile.* StringIO.* io.* _pyio.*" ) | ||
| 320 | |||
| 321 | m.addPackage( "${PN}-json", "Python JSON support", "${PN}-core ${PN}-math ${PN}-re", | ||
| 322 | "json lib-dynload/_json.*.so" ) # package | ||
| 323 | |||
| 324 | m.addPackage( "${PN}-lang", "Python low-level language support", "${PN}-core ${PN}-importlib", | ||
| 325 | "lib-dynload/_bisect.*.so lib-dynload/_collections.*.so lib-dynload/_heapq.*.so lib-dynload/_weakref.*.so lib-dynload/_functools.*.so " + | ||
| 326 | "lib-dynload/array.*.so lib-dynload/itertools.*.so lib-dynload/operator.*.so lib-dynload/parser.*.so " + | ||
| 327 | "atexit.* bisect.* code.* codeop.* collections.* _collections_abc.* contextlib.* dis.* functools.* heapq.* inspect.* keyword.* opcode.* operator.* symbol.* repr.* token.* " + | ||
| 328 | "tokenize.* traceback.* weakref.*" ) | ||
| 329 | |||
| 330 | m.addPackage( "${PN}-logging", "Python logging support", "${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-stringold", | ||
| 331 | "logging" ) # package | ||
| 332 | |||
| 333 | m.addPackage( "${PN}-mailbox", "Python mailbox format support", "${PN}-core ${PN}-mime", | ||
| 334 | "mailbox.*" ) | ||
| 335 | |||
| 336 | m.addPackage( "${PN}-math", "Python math support", "${PN}-core ${PN}-crypt", | ||
| 337 | "lib-dynload/cmath.*.so lib-dynload/math.*.so lib-dynload/_random.*.so random.* sets.*" ) | ||
| 338 | |||
| 339 | m.addPackage( "${PN}-mime", "Python MIME handling APIs", "${PN}-core ${PN}-io", | ||
| 340 | "mimetools.* uu.* quopri.* rfc822.* MimeWriter.*" ) | ||
| 341 | |||
| 342 | m.addPackage( "${PN}-mmap", "Python memory-mapped file support", "${PN}-core ${PN}-io", | ||
| 343 | "lib-dynload/mmap.*.so " ) | ||
| 344 | |||
| 345 | m.addPackage( "${PN}-multiprocessing", "Python multiprocessing support", "${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-threading ${PN}-ctypes ${PN}-mmap", | ||
| 346 | "lib-dynload/_multiprocessing.*.so multiprocessing" ) # package | ||
| 347 | |||
| 348 | m.addPackage( "${PN}-netclient", "Python Internet Protocol clients", "${PN}-argparse ${PN}-core ${PN}-crypt ${PN}-datetime ${PN}-io ${PN}-lang ${PN}-logging ${PN}-mime ${PN}-html", | ||
| 349 | "*Cookie*.* " + | ||
| 350 | "base64.* cookielib.* ftplib.* gopherlib.* hmac.* http* httplib.* mimetypes.* nntplib.* poplib.* smtplib.* telnetlib.* urllib uuid.* rfc822.* mimetools.*" ) | ||
| 351 | |||
| 352 | m.addPackage( "${PN}-netserver", "Python Internet Protocol servers", "${PN}-core ${PN}-netclient ${PN}-shell ${PN}-threading", | ||
| 353 | "cgi.* socketserver.* *HTTPServer.* SocketServer.*" ) | ||
| 354 | |||
| 355 | m.addPackage( "${PN}-numbers", "Python number APIs", "${PN}-core ${PN}-lang ${PN}-re", | ||
| 356 | "decimal.* fractions.* numbers.*" ) | ||
| 357 | |||
| 358 | m.addPackage( "${PN}-pickle", "Python serialisation/persistence support", "${PN}-core ${PN}-codecs ${PN}-io ${PN}-re", | ||
| 359 | "_compat_pickle.* pickle.* shelve.* lib-dynload/cPickle.*.so pickletools.*" ) | ||
| 360 | |||
| 361 | m.addPackage( "${PN}-pkgutil", "Python package extension utility support", "${PN}-core", | ||
| 362 | "pkgutil.*") | ||
| 363 | |||
| 364 | m.addPackage( "${PN}-plistlib", "Generate and parse Mac OS X .plist files", "${PN}-core ${PN}-datetime ${PN}-io", | ||
| 365 | "plistlib.*") | ||
| 366 | |||
| 367 | m.addPackage( "${PN}-pprint", "Python pretty-print support", "${PN}-core ${PN}-io", | ||
| 368 | "pprint.*" ) | ||
| 369 | |||
| 370 | m.addPackage( "${PN}-profile", "Python basic performance profiling support", "${PN}-core ${PN}-textutils", | ||
| 371 | "profile.* pstats.* cProfile.* lib-dynload/_lsprof.*.so" ) | ||
| 372 | |||
| 373 | m.addPackage( "${PN}-re", "Python Regular Expression APIs", "${PN}-core", | ||
| 374 | "re.* sre.* sre_compile.* sre_constants* sre_parse.*" ) # _sre is builtin | ||
| 375 | |||
| 376 | m.addPackage( "${PN}-readline", "Python readline support", "${PN}-core", | ||
| 377 | "lib-dynload/readline.*.so rlcompleter.*" ) | ||
| 378 | |||
| 379 | m.addPackage( "${PN}-reprlib", "Python alternate repr() implementation", "${PN}-core", | ||
| 380 | "reprlib.py" ) | ||
| 381 | |||
| 382 | m.addPackage( "${PN}-resource", "Python resource control interface", "${PN}-core", | ||
| 383 | "lib-dynload/resource.*.so" ) | ||
| 384 | |||
| 385 | m.addPackage( "${PN}-runpy", "Python script for locating/executing scripts in module namespace", "${PN}-core ${PN}-pkgutil", | ||
| 386 | "runpy.*" ) | ||
| 387 | |||
| 388 | m.addPackage( "${PN}-selectors", "Python High-level I/O multiplexing", "${PN}-core", | ||
| 389 | "selectors.*" ) | ||
| 390 | |||
| 391 | m.addPackage( "${PN}-shell", "Python shell-like functionality", "${PN}-core ${PN}-re ${PN}-compression", | ||
| 392 | "cmd.* commands.* dircache.* fnmatch.* glob.* popen2.* shlex.* shutil.*" ) | ||
| 393 | |||
| 394 | m.addPackage( "${PN}-signal", "Python set handlers for asynchronous events support", "${PN}-core ${PN}-enum", | ||
| 395 | "signal.*" ) | ||
| 396 | |||
| 397 | m.addPackage( "${PN}-subprocess", "Python subprocess support", "${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle ${PN}-threading ${PN}-signal ${PN}-selectors", | ||
| 398 | "subprocess.* lib-dynload/_posixsubprocess.*.so" ) | ||
| 399 | |||
| 400 | m.addPackage( "${PN}-sqlite3", "Python Sqlite3 database support", "${PN}-core ${PN}-datetime ${PN}-lang ${PN}-crypt ${PN}-io ${PN}-threading", | ||
| 401 | "lib-dynload/_sqlite3.*.so sqlite3/dbapi2.* sqlite3/__init__.* sqlite3/dump.*" ) | ||
| 402 | |||
| 403 | m.addPackage( "${PN}-sqlite3-tests", "Python Sqlite3 database support tests", "${PN}-core ${PN}-sqlite3", | ||
| 404 | "sqlite3/test" ) | ||
| 405 | |||
| 406 | m.addPackage( "${PN}-stringold", "Python string APIs [deprecated]", "${PN}-core ${PN}-re", | ||
| 407 | "lib-dynload/strop.*.so string.* stringold.*" ) | ||
| 408 | |||
| 409 | m.addPackage( "${PN}-syslog", "Python syslog interface", "${PN}-core", | ||
| 410 | "lib-dynload/syslog.*.so" ) | ||
| 411 | |||
| 412 | m.addPackage( "${PN}-terminal", "Python terminal controlling support", "${PN}-core ${PN}-io", | ||
| 413 | "pty.* tty.*" ) | ||
| 414 | |||
| 415 | m.addPackage( "${PN}-tests", "Python tests", "${PN}-core ${PN}-compression", | ||
| 416 | "test", True ) # package | ||
| 417 | |||
| 418 | m.addPackage( "${PN}-threading", "Python threading & synchronization support", "${PN}-core ${PN}-lang", | ||
| 419 | "_threading_local.* dummy_thread.* dummy_threading.* mutex.* threading.* queue.*" ) | ||
| 420 | |||
| 421 | m.addPackage( "${PN}-tkinter", "Python Tcl/Tk bindings", "${PN}-core", | ||
| 422 | "lib-dynload/_tkinter.*.so lib-tk tkinter" ) # package | ||
| 423 | |||
| 424 | m.addPackage( "${PN}-typing", "Python typing support", "${PN}-core", | ||
| 425 | "typing.*" ) | ||
| 426 | |||
| 427 | m.addPackage( "${PN}-unittest", "Python unit testing framework", "${PN}-core ${PN}-stringold ${PN}-lang ${PN}-io ${PN}-difflib ${PN}-pprint ${PN}-shell", | ||
| 428 | "unittest/" ) | ||
| 429 | |||
| 430 | m.addPackage( "${PN}-unixadmin", "Python Unix administration support", "${PN}-core", | ||
| 431 | "lib-dynload/nis.*.so lib-dynload/grp.*.so lib-dynload/pwd.*.so getpass.*" ) | ||
| 432 | |||
| 433 | m.addPackage( "${PN}-xml", "Python basic XML support", "${PN}-core ${PN}-re", | ||
| 434 | "lib-dynload/_elementtree.*.so lib-dynload/pyexpat.*.so xml xmllib.*" ) # package | ||
| 435 | |||
| 436 | m.addPackage( "${PN}-xmlrpc", "Python XML-RPC support", "${PN}-core ${PN}-xml ${PN}-netserver ${PN}-lang ${PN}-pydoc", | ||
| 437 | "xmlrpclib.* SimpleXMLRPCServer.* DocXMLRPCServer.* xmlrpc" ) | ||
| 438 | |||
| 439 | m.addPackage( "${PN}-mailbox", "Python mailbox format support", "${PN}-core ${PN}-mime", | ||
| 440 | "mailbox.*" ) | ||
| 441 | |||
| 442 | m.make() | ||
