diff mbox

[2/2] python3: Using PYTHON3_PYC_ONLY created an incomplete python installation

Message ID 1474031901-20941-1-git-send-email-fpa@sbtaqua.com
State Changes Requested
Headers show

Commit Message

Frederik Aalund Sept. 16, 2016, 1:18 p.m. UTC
The PYTHON3_PYC_ONLY option did the following:
    * Compile `*.py` into `__pycache__/*.pyc` files
    * Delete `*.py` files

I've changed it to do the following:
    * Compile `*.py` into `*.pyc` files
    * Delete `*.py` files

The problem with the old behaviour is that python does *not* look into the `__pycache__` directory if the `*.py` file is missing. Python will, however, find a `*.pyc` file where the `*.py` file was supposed to be. This is by design (PEP 3147).

The change of behaviour in this patch is accomplished by passing `legacy=True` to `compileall`. I've adopted `compileall`'s command line interface for `pycompile` and used `-b` to denote `legacy=True`.

Signed-off-by: Frederik Aalund <fpa@sbtaqua.com>
---
 package/python3/python3.mk   | 4 +++-
 support/scripts/pycompile.py | 5 ++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni Oct. 22, 2016, 8:01 p.m. UTC | #1
Hello Frederik,

On Fri, 16 Sep 2016 15:18:21 +0200, Frederik Aalund wrote:
> The PYTHON3_PYC_ONLY option did the following:
>     * Compile `*.py` into `__pycache__/*.pyc` files
>     * Delete `*.py` files
> 
> I've changed it to do the following:
>     * Compile `*.py` into `*.pyc` files
>     * Delete `*.py` files
> 
> The problem with the old behaviour is that python does *not* look
> into the `__pycache__` directory if the `*.py` file is missing.
> Python will, however, find a `*.pyc` file where the `*.py` file was
> supposed to be. This is by design (PEP 3147).
> 
> The change of behaviour in this patch is accomplished by passing
> `legacy=True` to `compileall`. I've adopted `compileall`'s command
> line interface for `pycompile` and used `-b` to denote `legacy=True`.
> 
> Signed-off-by: Frederik Aalund <fpa@sbtaqua.com>

Thanks for your patch. However, I don't really understand why it is
necessary. Even without your patch, the .pyc files for python3 are
properly generated in usr/lib/python3/, and there is no __pycache__
folder anywhere.

I've built the following configuration:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.08-613-ge98b4dd.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_PYTHON3=y
# BR2_PACKAGE_PYTHON3_PY_ONLY is not set
BR2_PACKAGE_PYTHON3_PYC_ONLY=y
# BR2_PACKAGE_PYTHON3_PY_PYC is not set
BR2_PACKAGE_PYTHON_CRCMOD=y
# BR2_TARGET_ROOTFS_TAR is not set

And it gives the following list of .pyc files in output/target:

./usr/lib/python3.5/http/server.pyc
./usr/lib/python3.5/http/cookiejar.pyc
./usr/lib/python3.5/http/cookies.pyc
./usr/lib/python3.5/http/__init__.pyc
./usr/lib/python3.5/http/client.pyc
./usr/lib/python3.5/chunk.pyc
./usr/lib/python3.5/ctypes/_endian.pyc
./usr/lib/python3.5/ctypes/wintypes.pyc
./usr/lib/python3.5/ctypes/macholib/dyld.pyc
./usr/lib/python3.5/ctypes/macholib/dylib.pyc
./usr/lib/python3.5/ctypes/macholib/__init__.pyc
./usr/lib/python3.5/ctypes/macholib/framework.pyc
./usr/lib/python3.5/ctypes/__init__.pyc
./usr/lib/python3.5/ctypes/util.pyc
./usr/lib/python3.5/dummy_threading.pyc
./usr/lib/python3.5/subprocess.pyc
./usr/lib/python3.5/pipes.pyc
./usr/lib/python3.5/stat.pyc
./usr/lib/python3.5/__phello__.foo.pyc
./usr/lib/python3.5/sre_constants.pyc
./usr/lib/python3.5/urllib/parse.pyc
./usr/lib/python3.5/urllib/error.pyc
./usr/lib/python3.5/urllib/robotparser.pyc
./usr/lib/python3.5/urllib/request.pyc
./usr/lib/python3.5/urllib/__init__.pyc
./usr/lib/python3.5/urllib/response.pyc
./usr/lib/python3.5/copy.pyc
./usr/lib/python3.5/shelve.pyc
./usr/lib/python3.5/hmac.pyc
./usr/lib/python3.5/zipapp.pyc
./usr/lib/python3.5/socket.pyc
./usr/lib/python3.5/sysconfig.pyc
./usr/lib/python3.5/difflib.pyc
./usr/lib/python3.5/opcode.pyc
./usr/lib/python3.5/logging/handlers.pyc
./usr/lib/python3.5/logging/__init__.pyc
./usr/lib/python3.5/logging/config.pyc
./usr/lib/python3.5/hashlib.pyc
./usr/lib/python3.5/optparse.pyc
./usr/lib/python3.5/pydoc.pyc
./usr/lib/python3.5/colorsys.pyc
./usr/lib/python3.5/_sitebuiltins.pyc
./usr/lib/python3.5/csv.pyc
./usr/lib/python3.5/_weakrefset.pyc
./usr/lib/python3.5/pyclbr.pyc
./usr/lib/python3.5/netrc.pyc
./usr/lib/python3.5/copyreg.pyc
./usr/lib/python3.5/_collections_abc.pyc
./usr/lib/python3.5/webbrowser.pyc
./usr/lib/python3.5/_compression.pyc
./usr/lib/python3.5/dis.pyc
./usr/lib/python3.5/traceback.pyc
./usr/lib/python3.5/getpass.pyc
./usr/lib/python3.5/tarfile.pyc
./usr/lib/python3.5/modulefinder.pyc
./usr/lib/python3.5/heapq.pyc
./usr/lib/python3.5/wsgiref/headers.pyc
./usr/lib/python3.5/wsgiref/validate.pyc
./usr/lib/python3.5/wsgiref/handlers.pyc
./usr/lib/python3.5/wsgiref/simple_server.pyc
./usr/lib/python3.5/wsgiref/__init__.pyc
./usr/lib/python3.5/wsgiref/util.pyc
./usr/lib/python3.5/textwrap.pyc
./usr/lib/python3.5/glob.pyc
./usr/lib/python3.5/lib-dynload/sysconfigdata/_sysconfigdata.pyc
./usr/lib/python3.5/xmlrpc/server.pyc
./usr/lib/python3.5/xmlrpc/__init__.pyc
./usr/lib/python3.5/xmlrpc/client.pyc
./usr/lib/python3.5/_markupbase.pyc
./usr/lib/python3.5/wave.pyc
./usr/lib/python3.5/shutil.pyc
./usr/lib/python3.5/uu.pyc
./usr/lib/python3.5/dbm/ndbm.pyc
./usr/lib/python3.5/dbm/dumb.pyc
./usr/lib/python3.5/dbm/__init__.pyc
./usr/lib/python3.5/dbm/gnu.pyc
./usr/lib/python3.5/symtable.pyc
./usr/lib/python3.5/datetime.pyc
./usr/lib/python3.5/_compat_pickle.pyc
./usr/lib/python3.5/locale.pyc
./usr/lib/python3.5/inspect.pyc
./usr/lib/python3.5/queue.pyc
./usr/lib/python3.5/reprlib.pyc
./usr/lib/python3.5/pkgutil.pyc
./usr/lib/python3.5/calendar.pyc
./usr/lib/python3.5/asyncio/subprocess.pyc
./usr/lib/python3.5/asyncio/events.pyc
./usr/lib/python3.5/asyncio/windows_utils.pyc
./usr/lib/python3.5/asyncio/streams.pyc
./usr/lib/python3.5/asyncio/locks.pyc
./usr/lib/python3.5/asyncio/queues.pyc
./usr/lib/python3.5/asyncio/base_subprocess.pyc
./usr/lib/python3.5/asyncio/selector_events.pyc
./usr/lib/python3.5/asyncio/base_events.pyc
./usr/lib/python3.5/asyncio/test_utils.pyc
./usr/lib/python3.5/asyncio/protocols.pyc
./usr/lib/python3.5/asyncio/log.pyc
./usr/lib/python3.5/asyncio/coroutines.pyc
./usr/lib/python3.5/asyncio/compat.pyc
./usr/lib/python3.5/asyncio/constants.pyc
./usr/lib/python3.5/asyncio/__init__.pyc
./usr/lib/python3.5/asyncio/transports.pyc
./usr/lib/python3.5/asyncio/proactor_events.pyc
./usr/lib/python3.5/asyncio/tasks.pyc
./usr/lib/python3.5/asyncio/sslproto.pyc
./usr/lib/python3.5/asyncio/unix_events.pyc
./usr/lib/python3.5/asyncio/windows_events.pyc
./usr/lib/python3.5/asyncio/futures.pyc
./usr/lib/python3.5/runpy.pyc
./usr/lib/python3.5/fnmatch.pyc
./usr/lib/python3.5/enum.pyc
./usr/lib/python3.5/imp.pyc
./usr/lib/python3.5/pstats.pyc
./usr/lib/python3.5/codecs.pyc
./usr/lib/python3.5/filecmp.pyc
./usr/lib/python3.5/venv/__main__.pyc
./usr/lib/python3.5/venv/__init__.pyc
./usr/lib/python3.5/cProfile.pyc
./usr/lib/python3.5/smtpd.pyc
./usr/lib/python3.5/codeop.pyc
./usr/lib/python3.5/trace.pyc
./usr/lib/python3.5/configparser.pyc
./usr/lib/python3.5/telnetlib.pyc
./usr/lib/python3.5/pty.pyc
./usr/lib/python3.5/uuid.pyc
./usr/lib/python3.5/genericpath.pyc
./usr/lib/python3.5/gettext.pyc
./usr/lib/python3.5/json/scanner.pyc
./usr/lib/python3.5/json/tool.pyc
./usr/lib/python3.5/json/decoder.pyc
./usr/lib/python3.5/json/__init__.pyc
./usr/lib/python3.5/json/encoder.pyc
./usr/lib/python3.5/encodings/cp869.pyc
./usr/lib/python3.5/encodings/mac_centeuro.pyc
./usr/lib/python3.5/encodings/iso8859_11.pyc
./usr/lib/python3.5/encodings/iso2022_jp_2004.pyc
./usr/lib/python3.5/encodings/hp_roman8.pyc
./usr/lib/python3.5/encodings/charmap.pyc
./usr/lib/python3.5/encodings/cp1140.pyc
./usr/lib/python3.5/encodings/mac_roman.pyc
./usr/lib/python3.5/encodings/cp860.pyc
./usr/lib/python3.5/encodings/hz.pyc
./usr/lib/python3.5/encodings/iso2022_jp.pyc
./usr/lib/python3.5/encodings/cp037.pyc
./usr/lib/python3.5/encodings/punycode.pyc
./usr/lib/python3.5/encodings/iso8859_6.pyc
./usr/lib/python3.5/encodings/unicode_escape.pyc
./usr/lib/python3.5/encodings/rot_13.pyc
./usr/lib/python3.5/encodings/koi8_r.pyc
./usr/lib/python3.5/encodings/cp720.pyc
./usr/lib/python3.5/encodings/cp500.pyc
./usr/lib/python3.5/encodings/cp1254.pyc
./usr/lib/python3.5/encodings/cp1257.pyc
./usr/lib/python3.5/encodings/iso2022_jp_1.pyc
./usr/lib/python3.5/encodings/cp855.pyc
./usr/lib/python3.5/encodings/iso2022_jp_ext.pyc
./usr/lib/python3.5/encodings/mac_iceland.pyc
./usr/lib/python3.5/encodings/shift_jis_2004.pyc
./usr/lib/python3.5/encodings/cp932.pyc
./usr/lib/python3.5/encodings/latin_1.pyc
./usr/lib/python3.5/encodings/euc_jisx0213.pyc
./usr/lib/python3.5/encodings/uu_codec.pyc
./usr/lib/python3.5/encodings/ascii.pyc
./usr/lib/python3.5/encodings/mac_latin2.pyc
./usr/lib/python3.5/encodings/cp875.pyc
./usr/lib/python3.5/encodings/cp1256.pyc
./usr/lib/python3.5/encodings/gb18030.pyc
./usr/lib/python3.5/encodings/mac_cyrillic.pyc
./usr/lib/python3.5/encodings/cp1258.pyc
./usr/lib/python3.5/encodings/iso8859_8.pyc
./usr/lib/python3.5/encodings/iso8859_13.pyc
./usr/lib/python3.5/encodings/cp862.pyc
./usr/lib/python3.5/encodings/cp852.pyc
./usr/lib/python3.5/encodings/zlib_codec.pyc
./usr/lib/python3.5/encodings/shift_jisx0213.pyc
./usr/lib/python3.5/encodings/koi8_u.pyc
./usr/lib/python3.5/encodings/base64_codec.pyc
./usr/lib/python3.5/encodings/raw_unicode_escape.pyc
./usr/lib/python3.5/encodings/utf_32_be.pyc
./usr/lib/python3.5/encodings/utf_16_be.pyc
./usr/lib/python3.5/encodings/iso2022_jp_2.pyc
./usr/lib/python3.5/encodings/mac_turkish.pyc
./usr/lib/python3.5/encodings/mac_arabic.pyc
./usr/lib/python3.5/encodings/cp1251.pyc
./usr/lib/python3.5/encodings/idna.pyc
./usr/lib/python3.5/encodings/cp857.pyc
./usr/lib/python3.5/encodings/cp858.pyc
./usr/lib/python3.5/encodings/iso8859_15.pyc
./usr/lib/python3.5/encodings/cp737.pyc
./usr/lib/python3.5/encodings/cp863.pyc
./usr/lib/python3.5/encodings/iso8859_1.pyc
./usr/lib/python3.5/encodings/cp1252.pyc
./usr/lib/python3.5/encodings/mac_croatian.pyc
./usr/lib/python3.5/encodings/cp775.pyc
./usr/lib/python3.5/encodings/iso2022_jp_3.pyc
./usr/lib/python3.5/encodings/cp424.pyc
./usr/lib/python3.5/encodings/iso8859_3.pyc
./usr/lib/python3.5/encodings/koi8_t.pyc
./usr/lib/python3.5/encodings/hex_codec.pyc
./usr/lib/python3.5/encodings/iso8859_14.pyc
./usr/lib/python3.5/encodings/euc_jp.pyc
./usr/lib/python3.5/encodings/cp866.pyc
./usr/lib/python3.5/encodings/mbcs.pyc
./usr/lib/python3.5/encodings/euc_jis_2004.pyc
./usr/lib/python3.5/encodings/johab.pyc
./usr/lib/python3.5/encodings/utf_32_le.pyc
./usr/lib/python3.5/encodings/iso2022_kr.pyc
./usr/lib/python3.5/encodings/utf_8_sig.pyc
./usr/lib/python3.5/encodings/cp1250.pyc
./usr/lib/python3.5/encodings/iso8859_16.pyc
./usr/lib/python3.5/encodings/utf_16.pyc
./usr/lib/python3.5/encodings/cp856.pyc
./usr/lib/python3.5/encodings/cp65001.pyc
./usr/lib/python3.5/encodings/cp865.pyc
./usr/lib/python3.5/encodings/mac_farsi.pyc
./usr/lib/python3.5/encodings/kz1048.pyc
./usr/lib/python3.5/encodings/gbk.pyc
./usr/lib/python3.5/encodings/iso8859_4.pyc
./usr/lib/python3.5/encodings/undefined.pyc
./usr/lib/python3.5/encodings/utf_16_le.pyc
./usr/lib/python3.5/encodings/iso8859_5.pyc
./usr/lib/python3.5/encodings/iso8859_7.pyc
./usr/lib/python3.5/encodings/mac_romanian.pyc
./usr/lib/python3.5/encodings/cp874.pyc
./usr/lib/python3.5/encodings/unicode_internal.pyc
./usr/lib/python3.5/encodings/shift_jis.pyc
./usr/lib/python3.5/encodings/mac_greek.pyc
./usr/lib/python3.5/encodings/cp850.pyc
./usr/lib/python3.5/encodings/ptcp154.pyc
./usr/lib/python3.5/encodings/big5.pyc
./usr/lib/python3.5/encodings/cp949.pyc
./usr/lib/python3.5/encodings/aliases.pyc
./usr/lib/python3.5/encodings/__init__.pyc
./usr/lib/python3.5/encodings/palmos.pyc
./usr/lib/python3.5/encodings/cp1006.pyc
./usr/lib/python3.5/encodings/cp864.pyc
./usr/lib/python3.5/encodings/cp437.pyc
./usr/lib/python3.5/encodings/cp950.pyc
./usr/lib/python3.5/encodings/cp1253.pyc
./usr/lib/python3.5/encodings/utf_8.pyc
./usr/lib/python3.5/encodings/euc_kr.pyc
./usr/lib/python3.5/encodings/iso8859_10.pyc
./usr/lib/python3.5/encodings/utf_7.pyc
./usr/lib/python3.5/encodings/cp273.pyc
./usr/lib/python3.5/encodings/quopri_codec.pyc
./usr/lib/python3.5/encodings/cp861.pyc
./usr/lib/python3.5/encodings/cp1026.pyc
./usr/lib/python3.5/encodings/iso8859_9.pyc
./usr/lib/python3.5/encodings/iso8859_2.pyc
./usr/lib/python3.5/encodings/tis_620.pyc
./usr/lib/python3.5/encodings/bz2_codec.pyc
./usr/lib/python3.5/encodings/big5hkscs.pyc
./usr/lib/python3.5/encodings/gb2312.pyc
./usr/lib/python3.5/encodings/cp1255.pyc
./usr/lib/python3.5/encodings/utf_32.pyc
./usr/lib/python3.5/encodings/cp1125.pyc
./usr/lib/python3.5/cgitb.pyc
./usr/lib/python3.5/functools.pyc
./usr/lib/python3.5/_osx_support.pyc
./usr/lib/python3.5/fileinput.pyc
./usr/lib/python3.5/macpath.pyc
./usr/lib/python3.5/bdb.pyc
./usr/lib/python3.5/py_compile.pyc
./usr/lib/python3.5/socketserver.pyc
./usr/lib/python3.5/sched.pyc
./usr/lib/python3.5/plat-linux/IN.pyc
./usr/lib/python3.5/plat-linux/DLFCN.pyc
./usr/lib/python3.5/plat-linux/TYPES.pyc
./usr/lib/python3.5/plat-linux/CDROM.pyc
./usr/lib/python3.5/cmd.pyc
./usr/lib/python3.5/xdrlib.pyc
./usr/lib/python3.5/linecache.pyc
./usr/lib/python3.5/nturl2path.pyc
./usr/lib/python3.5/asynchat.pyc
./usr/lib/python3.5/multiprocessing/popen_fork.pyc
./usr/lib/python3.5/multiprocessing/heap.pyc
./usr/lib/python3.5/multiprocessing/connection.pyc
./usr/lib/python3.5/multiprocessing/pool.pyc
./usr/lib/python3.5/multiprocessing/popen_forkserver.pyc
./usr/lib/python3.5/multiprocessing/queues.pyc
./usr/lib/python3.5/multiprocessing/synchronize.pyc
./usr/lib/python3.5/multiprocessing/popen_spawn_win32.pyc
./usr/lib/python3.5/multiprocessing/reduction.pyc
./usr/lib/python3.5/multiprocessing/resource_sharer.pyc
./usr/lib/python3.5/multiprocessing/process.pyc
./usr/lib/python3.5/multiprocessing/popen_spawn_posix.pyc
./usr/lib/python3.5/multiprocessing/__init__.pyc
./usr/lib/python3.5/multiprocessing/forkserver.pyc
./usr/lib/python3.5/multiprocessing/dummy/connection.pyc
./usr/lib/python3.5/multiprocessing/dummy/__init__.pyc
./usr/lib/python3.5/multiprocessing/util.pyc
./usr/lib/python3.5/multiprocessing/spawn.pyc
./usr/lib/python3.5/multiprocessing/semaphore_tracker.pyc
./usr/lib/python3.5/multiprocessing/sharedctypes.pyc
./usr/lib/python3.5/multiprocessing/context.pyc
./usr/lib/python3.5/multiprocessing/managers.pyc
./usr/lib/python3.5/site.pyc
./usr/lib/python3.5/ftplib.pyc
./usr/lib/python3.5/gzip.pyc
./usr/lib/python3.5/platform.pyc
./usr/lib/python3.5/compileall.pyc
./usr/lib/python3.5/types.pyc
./usr/lib/python3.5/smtplib.pyc
./usr/lib/python3.5/plistlib.pyc
./usr/lib/python3.5/this.pyc
./usr/lib/python3.5/ensurepip/__main__.pyc
./usr/lib/python3.5/ensurepip/_uninstall.pyc
./usr/lib/python3.5/ensurepip/__init__.pyc
./usr/lib/python3.5/binhex.pyc
./usr/lib/python3.5/quopri.pyc
./usr/lib/python3.5/poplib.pyc
./usr/lib/python3.5/symbol.pyc
./usr/lib/python3.5/os.pyc
./usr/lib/python3.5/timeit.pyc
./usr/lib/python3.5/sysconfigdata/_sysconfigdata.pyc
./usr/lib/python3.5/io.pyc
./usr/lib/python3.5/mailcap.pyc
./usr/lib/python3.5/ipaddress.pyc
./usr/lib/python3.5/struct.pyc
./usr/lib/python3.5/turtle.pyc
./usr/lib/python3.5/tokenize.pyc
./usr/lib/python3.5/base64.pyc
./usr/lib/python3.5/tempfile.pyc
./usr/lib/python3.5/sre_parse.pyc
./usr/lib/python3.5/antigravity.pyc
./usr/lib/python3.5/random.pyc
./usr/lib/python3.5/tracemalloc.pyc
./usr/lib/python3.5/__future__.pyc
./usr/lib/python3.5/pdb.pyc
./usr/lib/python3.5/fractions.pyc
./usr/lib/python3.5/cgi.pyc
./usr/lib/python3.5/ast.pyc
./usr/lib/python3.5/statistics.pyc
./usr/lib/python3.5/contextlib.pyc
./usr/lib/python3.5/profile.pyc
./usr/lib/python3.5/_dummy_thread.pyc
./usr/lib/python3.5/html/parser.pyc
./usr/lib/python3.5/html/entities.pyc
./usr/lib/python3.5/html/__init__.pyc
./usr/lib/python3.5/aifc.pyc
./usr/lib/python3.5/mailbox.pyc
./usr/lib/python3.5/weakref.pyc
./usr/lib/python3.5/selectors.pyc
./usr/lib/python3.5/code.pyc
./usr/lib/python3.5/crypt.pyc
./usr/lib/python3.5/rlcompleter.pyc
./usr/lib/python3.5/mimetypes.pyc
./usr/lib/python3.5/stringprep.pyc
./usr/lib/python3.5/lzma.pyc
./usr/lib/python3.5/signal.pyc
./usr/lib/python3.5/warnings.pyc
./usr/lib/python3.5/imghdr.pyc
./usr/lib/python3.5/operator.pyc
./usr/lib/python3.5/sndhdr.pyc
./usr/lib/python3.5/typing.pyc
./usr/lib/python3.5/pickletools.pyc
./usr/lib/python3.5/asyncore.pyc
./usr/lib/python3.5/string.pyc
./usr/lib/python3.5/_bootlocale.pyc
./usr/lib/python3.5/nntplib.pyc
./usr/lib/python3.5/macurl2path.pyc
./usr/lib/python3.5/email/mime/audio.pyc
./usr/lib/python3.5/email/mime/image.pyc
./usr/lib/python3.5/email/mime/message.pyc
./usr/lib/python3.5/email/mime/nonmultipart.pyc
./usr/lib/python3.5/email/mime/base.pyc
./usr/lib/python3.5/email/mime/application.pyc
./usr/lib/python3.5/email/mime/__init__.pyc
./usr/lib/python3.5/email/mime/text.pyc
./usr/lib/python3.5/email/mime/multipart.pyc
./usr/lib/python3.5/email/headerregistry.pyc
./usr/lib/python3.5/email/feedparser.pyc
./usr/lib/python3.5/email/charset.pyc
./usr/lib/python3.5/email/parser.pyc
./usr/lib/python3.5/email/iterators.pyc
./usr/lib/python3.5/email/message.pyc
./usr/lib/python3.5/email/_policybase.pyc
./usr/lib/python3.5/email/policy.pyc
./usr/lib/python3.5/email/base64mime.pyc
./usr/lib/python3.5/email/errors.pyc
./usr/lib/python3.5/email/quoprimime.pyc
./usr/lib/python3.5/email/generator.pyc
./usr/lib/python3.5/email/contentmanager.pyc
./usr/lib/python3.5/email/__init__.pyc
./usr/lib/python3.5/email/_encoded_words.pyc
./usr/lib/python3.5/email/utils.pyc
./usr/lib/python3.5/email/encoders.pyc
./usr/lib/python3.5/email/_header_value_parser.pyc
./usr/lib/python3.5/email/header.pyc
./usr/lib/python3.5/email/_parseaddr.pyc
./usr/lib/python3.5/turtledemo/lindenmayer.pyc
./usr/lib/python3.5/turtledemo/penrose.pyc
./usr/lib/python3.5/turtledemo/chaos.pyc
./usr/lib/python3.5/turtledemo/paint.pyc
./usr/lib/python3.5/turtledemo/__main__.pyc
./usr/lib/python3.5/turtledemo/two_canvases.pyc
./usr/lib/python3.5/turtledemo/clock.pyc
./usr/lib/python3.5/turtledemo/wikipedia.pyc
./usr/lib/python3.5/turtledemo/forest.pyc
./usr/lib/python3.5/turtledemo/bytedesign.pyc
./usr/lib/python3.5/turtledemo/colormixer.pyc
./usr/lib/python3.5/turtledemo/fractalcurves.pyc
./usr/lib/python3.5/turtledemo/minimal_hanoi.pyc
./usr/lib/python3.5/turtledemo/tree.pyc
./usr/lib/python3.5/turtledemo/planet_and_moon.pyc
./usr/lib/python3.5/turtledemo/round_dance.pyc
./usr/lib/python3.5/turtledemo/__init__.pyc
./usr/lib/python3.5/turtledemo/peace.pyc
./usr/lib/python3.5/turtledemo/sorting_animate.pyc
./usr/lib/python3.5/turtledemo/nim.pyc
./usr/lib/python3.5/turtledemo/yinyang.pyc
./usr/lib/python3.5/argparse.pyc
./usr/lib/python3.5/bisect.pyc
./usr/lib/python3.5/imaplib.pyc
./usr/lib/python3.5/bz2.pyc
./usr/lib/python3.5/posixpath.pyc
./usr/lib/python3.5/abc.pyc
./usr/lib/python3.5/_strptime.pyc
./usr/lib/python3.5/_sysconfigdata.pyc
./usr/lib/python3.5/tty.pyc
./usr/lib/python3.5/pprint.pyc
./usr/lib/python3.5/shlex.pyc
./usr/lib/python3.5/ntpath.pyc
./usr/lib/python3.5/decimal.pyc
./usr/lib/python3.5/tabnanny.pyc
./usr/lib/python3.5/formatter.pyc
./usr/lib/python3.5/keyword.pyc
./usr/lib/python3.5/ssl.pyc
./usr/lib/python3.5/sunau.pyc
./usr/lib/python3.5/zipfile.pyc
./usr/lib/python3.5/token.pyc
./usr/lib/python3.5/collections/__main__.pyc
./usr/lib/python3.5/collections/__init__.pyc
./usr/lib/python3.5/collections/abc.pyc
./usr/lib/python3.5/numbers.pyc
./usr/lib/python3.5/_pydecimal.pyc
./usr/lib/python3.5/threading.pyc
./usr/lib/python3.5/_threading_local.pyc
./usr/lib/python3.5/distutils/debug.pyc
./usr/lib/python3.5/distutils/sysconfig.pyc
./usr/lib/python3.5/distutils/command/sdist.pyc
./usr/lib/python3.5/distutils/command/bdist_dumb.pyc
./usr/lib/python3.5/distutils/command/build_clib.pyc
./usr/lib/python3.5/distutils/command/install_data.pyc
./usr/lib/python3.5/distutils/command/bdist_rpm.pyc
./usr/lib/python3.5/distutils/command/bdist_msi.pyc
./usr/lib/python3.5/distutils/command/bdist.pyc
./usr/lib/python3.5/distutils/command/install_headers.pyc
./usr/lib/python3.5/distutils/command/install_scripts.pyc
./usr/lib/python3.5/distutils/command/build_py.pyc
./usr/lib/python3.5/distutils/command/check.pyc
./usr/lib/python3.5/distutils/command/upload.pyc
./usr/lib/python3.5/distutils/command/install_egg_info.pyc
./usr/lib/python3.5/distutils/command/register.pyc
./usr/lib/python3.5/distutils/command/bdist_wininst.pyc
./usr/lib/python3.5/distutils/command/__init__.pyc
./usr/lib/python3.5/distutils/command/install_lib.pyc
./usr/lib/python3.5/distutils/command/build.pyc
./usr/lib/python3.5/distutils/command/install.pyc
./usr/lib/python3.5/distutils/command/clean.pyc
./usr/lib/python3.5/distutils/command/build_ext.pyc
./usr/lib/python3.5/distutils/command/config.pyc
./usr/lib/python3.5/distutils/command/build_scripts.pyc
./usr/lib/python3.5/distutils/text_file.pyc
./usr/lib/python3.5/distutils/versionpredicate.pyc
./usr/lib/python3.5/distutils/version.pyc
./usr/lib/python3.5/distutils/filelist.pyc
./usr/lib/python3.5/distutils/file_util.pyc
./usr/lib/python3.5/distutils/dir_util.pyc
./usr/lib/python3.5/distutils/cmd.pyc
./usr/lib/python3.5/distutils/dep_util.pyc
./usr/lib/python3.5/distutils/_msvccompiler.pyc
./usr/lib/python3.5/distutils/errors.pyc
./usr/lib/python3.5/distutils/fancy_getopt.pyc
./usr/lib/python3.5/distutils/log.pyc
./usr/lib/python3.5/distutils/core.pyc
./usr/lib/python3.5/distutils/extension.pyc
./usr/lib/python3.5/distutils/ccompiler.pyc
./usr/lib/python3.5/distutils/archive_util.pyc
./usr/lib/python3.5/distutils/msvccompiler.pyc
./usr/lib/python3.5/distutils/__init__.pyc
./usr/lib/python3.5/distutils/msvc9compiler.pyc
./usr/lib/python3.5/distutils/util.pyc
./usr/lib/python3.5/distutils/bcppcompiler.pyc
./usr/lib/python3.5/distutils/spawn.pyc
./usr/lib/python3.5/distutils/unixccompiler.pyc
./usr/lib/python3.5/distutils/dist.pyc
./usr/lib/python3.5/distutils/cygwinccompiler.pyc
./usr/lib/python3.5/distutils/config.pyc
./usr/lib/python3.5/re.pyc
./usr/lib/python3.5/unittest/mock.pyc
./usr/lib/python3.5/unittest/suite.pyc
./usr/lib/python3.5/unittest/result.pyc
./usr/lib/python3.5/unittest/__main__.pyc
./usr/lib/python3.5/unittest/signals.pyc
./usr/lib/python3.5/unittest/main.pyc
./usr/lib/python3.5/unittest/loader.pyc
./usr/lib/python3.5/unittest/case.pyc
./usr/lib/python3.5/unittest/__init__.pyc
./usr/lib/python3.5/unittest/util.pyc
./usr/lib/python3.5/unittest/runner.pyc
./usr/lib/python3.5/doctest.pyc
./usr/lib/python3.5/importlib/_bootstrap.pyc
./usr/lib/python3.5/importlib/_bootstrap_external.pyc
./usr/lib/python3.5/importlib/__init__.pyc
./usr/lib/python3.5/importlib/abc.pyc
./usr/lib/python3.5/importlib/util.pyc
./usr/lib/python3.5/importlib/machinery.pyc
./usr/lib/python3.5/_pyio.pyc
./usr/lib/python3.5/pathlib.pyc
./usr/lib/python3.5/site-packages/crcmod/crcmod.pyc
./usr/lib/python3.5/site-packages/crcmod/_crcfunpy.pyc
./usr/lib/python3.5/site-packages/crcmod/predefined.pyc
./usr/lib/python3.5/site-packages/crcmod/test.pyc
./usr/lib/python3.5/site-packages/crcmod/__init__.pyc
./usr/lib/python3.5/pickle.pyc
./usr/lib/python3.5/sre_compile.pyc
./usr/lib/python3.5/getopt.pyc
./usr/lib/python3.5/concurrent/futures/thread.pyc
./usr/lib/python3.5/concurrent/futures/_base.pyc
./usr/lib/python3.5/concurrent/futures/process.pyc
./usr/lib/python3.5/concurrent/futures/__init__.pyc
./usr/lib/python3.5/concurrent/__init__.pyc

This looks completely correct to me.

Which version of Python is used on your build machine? Do you have any
special environment variable defined?

Best regards,

Thomas
Frederik Aalund Oct. 28, 2016, 2:11 p.m. UTC | #2
Hi Thomas

I just tried again with a completely new OS installation and with the
master branch of buildroot. Everything worked as expected. I don't know
what was wrong with my previous installation.

Sorry about this series of patches. Seemingly, the errors were due to my
installation and not due to bugs in buildroot.

Thanks for investigating.

*Frederik Aalund*
Chief Information Officer, Co-owner

SBT Aqua
Copenhagen, Denmark
Mobile: +45 30340086
fpa@sbtaqua.com
sbtaqua.com

On Sat, 22 Oct 2016 at 22:01 Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:

> Hello Frederik,
>
> On Fri, 16 Sep 2016 15:18:21 +0200, Frederik Aalund wrote:
> > The PYTHON3_PYC_ONLY option did the following:
> >     * Compile `*.py` into `__pycache__/*.pyc` files
> >     * Delete `*.py` files
> >
> > I've changed it to do the following:
> >     * Compile `*.py` into `*.pyc` files
> >     * Delete `*.py` files
> >
> > The problem with the old behaviour is that python does *not* look
> > into the `__pycache__` directory if the `*.py` file is missing.
> > Python will, however, find a `*.pyc` file where the `*.py` file was
> > supposed to be. This is by design (PEP 3147).
> >
> > The change of behaviour in this patch is accomplished by passing
> > `legacy=True` to `compileall`. I've adopted `compileall`'s command
> > line interface for `pycompile` and used `-b` to denote `legacy=True`.
> >
> > Signed-off-by: Frederik Aalund <fpa@sbtaqua.com>
>
> Thanks for your patch. However, I don't really understand why it is
> necessary. Even without your patch, the .pyc files for python3 are
> properly generated in usr/lib/python3/, and there is no __pycache__
> folder anywhere.
>
> I've built the following configuration:
>
> BR2_arm=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_URL="
> http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.08-613-ge98b4dd.tar.bz2
> "
> BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y
> BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
> BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
> # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
> BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
> BR2_TOOLCHAIN_EXTERNAL_CXX=y
> BR2_INIT_NONE=y
> BR2_SYSTEM_BIN_SH_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_PYTHON3=y
> # BR2_PACKAGE_PYTHON3_PY_ONLY is not set
> BR2_PACKAGE_PYTHON3_PYC_ONLY=y
> # BR2_PACKAGE_PYTHON3_PY_PYC is not set
> BR2_PACKAGE_PYTHON_CRCMOD=y
> # BR2_TARGET_ROOTFS_TAR is not set
>
> And it gives the following list of .pyc files in output/target:
>
> ./usr/lib/python3.5/http/server.pyc
> ./usr/lib/python3.5/http/cookiejar.pyc
> ./usr/lib/python3.5/http/cookies.pyc
> ./usr/lib/python3.5/http/__init__.pyc
> ./usr/lib/python3.5/http/client.pyc
> ./usr/lib/python3.5/chunk.pyc
> ./usr/lib/python3.5/ctypes/_endian.pyc
> ./usr/lib/python3.5/ctypes/wintypes.pyc
> ./usr/lib/python3.5/ctypes/macholib/dyld.pyc
> ./usr/lib/python3.5/ctypes/macholib/dylib.pyc
> ./usr/lib/python3.5/ctypes/macholib/__init__.pyc
> ./usr/lib/python3.5/ctypes/macholib/framework.pyc
> ./usr/lib/python3.5/ctypes/__init__.pyc
> ./usr/lib/python3.5/ctypes/util.pyc
> ./usr/lib/python3.5/dummy_threading.pyc
> ./usr/lib/python3.5/subprocess.pyc
> ./usr/lib/python3.5/pipes.pyc
> ./usr/lib/python3.5/stat.pyc
> ./usr/lib/python3.5/__phello__.foo.pyc
> ./usr/lib/python3.5/sre_constants.pyc
> ./usr/lib/python3.5/urllib/parse.pyc
> ./usr/lib/python3.5/urllib/error.pyc
> ./usr/lib/python3.5/urllib/robotparser.pyc
> ./usr/lib/python3.5/urllib/request.pyc
> ./usr/lib/python3.5/urllib/__init__.pyc
> ./usr/lib/python3.5/urllib/response.pyc
> ./usr/lib/python3.5/copy.pyc
> ./usr/lib/python3.5/shelve.pyc
> ./usr/lib/python3.5/hmac.pyc
> ./usr/lib/python3.5/zipapp.pyc
> ./usr/lib/python3.5/socket.pyc
> ./usr/lib/python3.5/sysconfig.pyc
> ./usr/lib/python3.5/difflib.pyc
> ./usr/lib/python3.5/opcode.pyc
> ./usr/lib/python3.5/logging/handlers.pyc
> ./usr/lib/python3.5/logging/__init__.pyc
> ./usr/lib/python3.5/logging/config.pyc
> ./usr/lib/python3.5/hashlib.pyc
> ./usr/lib/python3.5/optparse.pyc
> ./usr/lib/python3.5/pydoc.pyc
> ./usr/lib/python3.5/colorsys.pyc
> ./usr/lib/python3.5/_sitebuiltins.pyc
> ./usr/lib/python3.5/csv.pyc
> ./usr/lib/python3.5/_weakrefset.pyc
> ./usr/lib/python3.5/pyclbr.pyc
> ./usr/lib/python3.5/netrc.pyc
> ./usr/lib/python3.5/copyreg.pyc
> ./usr/lib/python3.5/_collections_abc.pyc
> ./usr/lib/python3.5/webbrowser.pyc
> ./usr/lib/python3.5/_compression.pyc
> ./usr/lib/python3.5/dis.pyc
> ./usr/lib/python3.5/traceback.pyc
> ./usr/lib/python3.5/getpass.pyc
> ./usr/lib/python3.5/tarfile.pyc
> ./usr/lib/python3.5/modulefinder.pyc
> ./usr/lib/python3.5/heapq.pyc
> ./usr/lib/python3.5/wsgiref/headers.pyc
> ./usr/lib/python3.5/wsgiref/validate.pyc
> ./usr/lib/python3.5/wsgiref/handlers.pyc
> ./usr/lib/python3.5/wsgiref/simple_server.pyc
> ./usr/lib/python3.5/wsgiref/__init__.pyc
> ./usr/lib/python3.5/wsgiref/util.pyc
> ./usr/lib/python3.5/textwrap.pyc
> ./usr/lib/python3.5/glob.pyc
> ./usr/lib/python3.5/lib-dynload/sysconfigdata/_sysconfigdata.pyc
> ./usr/lib/python3.5/xmlrpc/server.pyc
> ./usr/lib/python3.5/xmlrpc/__init__.pyc
> ./usr/lib/python3.5/xmlrpc/client.pyc
> ./usr/lib/python3.5/_markupbase.pyc
> ./usr/lib/python3.5/wave.pyc
> ./usr/lib/python3.5/shutil.pyc
> ./usr/lib/python3.5/uu.pyc
> ./usr/lib/python3.5/dbm/ndbm.pyc
> ./usr/lib/python3.5/dbm/dumb.pyc
> ./usr/lib/python3.5/dbm/__init__.pyc
> ./usr/lib/python3.5/dbm/gnu.pyc
> ./usr/lib/python3.5/symtable.pyc
> ./usr/lib/python3.5/datetime.pyc
> ./usr/lib/python3.5/_compat_pickle.pyc
> ./usr/lib/python3.5/locale.pyc
> ./usr/lib/python3.5/inspect.pyc
> ./usr/lib/python3.5/queue.pyc
> ./usr/lib/python3.5/reprlib.pyc
> ./usr/lib/python3.5/pkgutil.pyc
> ./usr/lib/python3.5/calendar.pyc
> ./usr/lib/python3.5/asyncio/subprocess.pyc
> ./usr/lib/python3.5/asyncio/events.pyc
> ./usr/lib/python3.5/asyncio/windows_utils.pyc
> ./usr/lib/python3.5/asyncio/streams.pyc
> ./usr/lib/python3.5/asyncio/locks.pyc
> ./usr/lib/python3.5/asyncio/queues.pyc
> ./usr/lib/python3.5/asyncio/base_subprocess.pyc
> ./usr/lib/python3.5/asyncio/selector_events.pyc
> ./usr/lib/python3.5/asyncio/base_events.pyc
> ./usr/lib/python3.5/asyncio/test_utils.pyc
> ./usr/lib/python3.5/asyncio/protocols.pyc
> ./usr/lib/python3.5/asyncio/log.pyc
> ./usr/lib/python3.5/asyncio/coroutines.pyc
> ./usr/lib/python3.5/asyncio/compat.pyc
> ./usr/lib/python3.5/asyncio/constants.pyc
> ./usr/lib/python3.5/asyncio/__init__.pyc
> ./usr/lib/python3.5/asyncio/transports.pyc
> ./usr/lib/python3.5/asyncio/proactor_events.pyc
> ./usr/lib/python3.5/asyncio/tasks.pyc
> ./usr/lib/python3.5/asyncio/sslproto.pyc
> ./usr/lib/python3.5/asyncio/unix_events.pyc
> ./usr/lib/python3.5/asyncio/windows_events.pyc
> ./usr/lib/python3.5/asyncio/futures.pyc
> ./usr/lib/python3.5/runpy.pyc
> ./usr/lib/python3.5/fnmatch.pyc
> ./usr/lib/python3.5/enum.pyc
> ./usr/lib/python3.5/imp.pyc
> ./usr/lib/python3.5/pstats.pyc
> ./usr/lib/python3.5/codecs.pyc
> ./usr/lib/python3.5/filecmp.pyc
> ./usr/lib/python3.5/venv/__main__.pyc
> ./usr/lib/python3.5/venv/__init__.pyc
> ./usr/lib/python3.5/cProfile.pyc
> ./usr/lib/python3.5/smtpd.pyc
> ./usr/lib/python3.5/codeop.pyc
> ./usr/lib/python3.5/trace.pyc
> ./usr/lib/python3.5/configparser.pyc
> ./usr/lib/python3.5/telnetlib.pyc
> ./usr/lib/python3.5/pty.pyc
> ./usr/lib/python3.5/uuid.pyc
> ./usr/lib/python3.5/genericpath.pyc
> ./usr/lib/python3.5/gettext.pyc
> ./usr/lib/python3.5/json/scanner.pyc
> ./usr/lib/python3.5/json/tool.pyc
> ./usr/lib/python3.5/json/decoder.pyc
> ./usr/lib/python3.5/json/__init__.pyc
> ./usr/lib/python3.5/json/encoder.pyc
> ./usr/lib/python3.5/encodings/cp869.pyc
> ./usr/lib/python3.5/encodings/mac_centeuro.pyc
> ./usr/lib/python3.5/encodings/iso8859_11.pyc
> ./usr/lib/python3.5/encodings/iso2022_jp_2004.pyc
> ./usr/lib/python3.5/encodings/hp_roman8.pyc
> ./usr/lib/python3.5/encodings/charmap.pyc
> ./usr/lib/python3.5/encodings/cp1140.pyc
> ./usr/lib/python3.5/encodings/mac_roman.pyc
> ./usr/lib/python3.5/encodings/cp860.pyc
> ./usr/lib/python3.5/encodings/hz.pyc
> ./usr/lib/python3.5/encodings/iso2022_jp.pyc
> ./usr/lib/python3.5/encodings/cp037.pyc
> ./usr/lib/python3.5/encodings/punycode.pyc
> ./usr/lib/python3.5/encodings/iso8859_6.pyc
> ./usr/lib/python3.5/encodings/unicode_escape.pyc
> ./usr/lib/python3.5/encodings/rot_13.pyc
> ./usr/lib/python3.5/encodings/koi8_r.pyc
> ./usr/lib/python3.5/encodings/cp720.pyc
> ./usr/lib/python3.5/encodings/cp500.pyc
> ./usr/lib/python3.5/encodings/cp1254.pyc
> ./usr/lib/python3.5/encodings/cp1257.pyc
> ./usr/lib/python3.5/encodings/iso2022_jp_1.pyc
> ./usr/lib/python3.5/encodings/cp855.pyc
> ./usr/lib/python3.5/encodings/iso2022_jp_ext.pyc
> ./usr/lib/python3.5/encodings/mac_iceland.pyc
> ./usr/lib/python3.5/encodings/shift_jis_2004.pyc
> ./usr/lib/python3.5/encodings/cp932.pyc
> ./usr/lib/python3.5/encodings/latin_1.pyc
> ./usr/lib/python3.5/encodings/euc_jisx0213.pyc
> ./usr/lib/python3.5/encodings/uu_codec.pyc
> ./usr/lib/python3.5/encodings/ascii.pyc
> ./usr/lib/python3.5/encodings/mac_latin2.pyc
> ./usr/lib/python3.5/encodings/cp875.pyc
> ./usr/lib/python3.5/encodings/cp1256.pyc
> ./usr/lib/python3.5/encodings/gb18030.pyc
> ./usr/lib/python3.5/encodings/mac_cyrillic.pyc
> ./usr/lib/python3.5/encodings/cp1258.pyc
> ./usr/lib/python3.5/encodings/iso8859_8.pyc
> ./usr/lib/python3.5/encodings/iso8859_13.pyc
> ./usr/lib/python3.5/encodings/cp862.pyc
> ./usr/lib/python3.5/encodings/cp852.pyc
> ./usr/lib/python3.5/encodings/zlib_codec.pyc
> ./usr/lib/python3.5/encodings/shift_jisx0213.pyc
> ./usr/lib/python3.5/encodings/koi8_u.pyc
> ./usr/lib/python3.5/encodings/base64_codec.pyc
> ./usr/lib/python3.5/encodings/raw_unicode_escape.pyc
> ./usr/lib/python3.5/encodings/utf_32_be.pyc
> ./usr/lib/python3.5/encodings/utf_16_be.pyc
> ./usr/lib/python3.5/encodings/iso2022_jp_2.pyc
> ./usr/lib/python3.5/encodings/mac_turkish.pyc
> ./usr/lib/python3.5/encodings/mac_arabic.pyc
> ./usr/lib/python3.5/encodings/cp1251.pyc
> ./usr/lib/python3.5/encodings/idna.pyc
> ./usr/lib/python3.5/encodings/cp857.pyc
> ./usr/lib/python3.5/encodings/cp858.pyc
> ./usr/lib/python3.5/encodings/iso8859_15.pyc
> ./usr/lib/python3.5/encodings/cp737.pyc
> ./usr/lib/python3.5/encodings/cp863.pyc
> ./usr/lib/python3.5/encodings/iso8859_1.pyc
> ./usr/lib/python3.5/encodings/cp1252.pyc
> ./usr/lib/python3.5/encodings/mac_croatian.pyc
> ./usr/lib/python3.5/encodings/cp775.pyc
> ./usr/lib/python3.5/encodings/iso2022_jp_3.pyc
> ./usr/lib/python3.5/encodings/cp424.pyc
> ./usr/lib/python3.5/encodings/iso8859_3.pyc
> ./usr/lib/python3.5/encodings/koi8_t.pyc
> ./usr/lib/python3.5/encodings/hex_codec.pyc
> ./usr/lib/python3.5/encodings/iso8859_14.pyc
> ./usr/lib/python3.5/encodings/euc_jp.pyc
> ./usr/lib/python3.5/encodings/cp866.pyc
> ./usr/lib/python3.5/encodings/mbcs.pyc
> ./usr/lib/python3.5/encodings/euc_jis_2004.pyc
> ./usr/lib/python3.5/encodings/johab.pyc
> ./usr/lib/python3.5/encodings/utf_32_le.pyc
> ./usr/lib/python3.5/encodings/iso2022_kr.pyc
> ./usr/lib/python3.5/encodings/utf_8_sig.pyc
> ./usr/lib/python3.5/encodings/cp1250.pyc
> ./usr/lib/python3.5/encodings/iso8859_16.pyc
> ./usr/lib/python3.5/encodings/utf_16.pyc
> ./usr/lib/python3.5/encodings/cp856.pyc
> ./usr/lib/python3.5/encodings/cp65001.pyc
> ./usr/lib/python3.5/encodings/cp865.pyc
> ./usr/lib/python3.5/encodings/mac_farsi.pyc
> ./usr/lib/python3.5/encodings/kz1048.pyc
> ./usr/lib/python3.5/encodings/gbk.pyc
> ./usr/lib/python3.5/encodings/iso8859_4.pyc
> ./usr/lib/python3.5/encodings/undefined.pyc
> ./usr/lib/python3.5/encodings/utf_16_le.pyc
> ./usr/lib/python3.5/encodings/iso8859_5.pyc
> ./usr/lib/python3.5/encodings/iso8859_7.pyc
> ./usr/lib/python3.5/encodings/mac_romanian.pyc
> ./usr/lib/python3.5/encodings/cp874.pyc
> ./usr/lib/python3.5/encodings/unicode_internal.pyc
> ./usr/lib/python3.5/encodings/shift_jis.pyc
> ./usr/lib/python3.5/encodings/mac_greek.pyc
> ./usr/lib/python3.5/encodings/cp850.pyc
> ./usr/lib/python3.5/encodings/ptcp154.pyc
> ./usr/lib/python3.5/encodings/big5.pyc
> ./usr/lib/python3.5/encodings/cp949.pyc
> ./usr/lib/python3.5/encodings/aliases.pyc
> ./usr/lib/python3.5/encodings/__init__.pyc
> ./usr/lib/python3.5/encodings/palmos.pyc
> ./usr/lib/python3.5/encodings/cp1006.pyc
> ./usr/lib/python3.5/encodings/cp864.pyc
> ./usr/lib/python3.5/encodings/cp437.pyc
> ./usr/lib/python3.5/encodings/cp950.pyc
> ./usr/lib/python3.5/encodings/cp1253.pyc
> ./usr/lib/python3.5/encodings/utf_8.pyc
> ./usr/lib/python3.5/encodings/euc_kr.pyc
> ./usr/lib/python3.5/encodings/iso8859_10.pyc
> ./usr/lib/python3.5/encodings/utf_7.pyc
> ./usr/lib/python3.5/encodings/cp273.pyc
> ./usr/lib/python3.5/encodings/quopri_codec.pyc
> ./usr/lib/python3.5/encodings/cp861.pyc
> ./usr/lib/python3.5/encodings/cp1026.pyc
> ./usr/lib/python3.5/encodings/iso8859_9.pyc
> ./usr/lib/python3.5/encodings/iso8859_2.pyc
> ./usr/lib/python3.5/encodings/tis_620.pyc
> ./usr/lib/python3.5/encodings/bz2_codec.pyc
> ./usr/lib/python3.5/encodings/big5hkscs.pyc
> ./usr/lib/python3.5/encodings/gb2312.pyc
> ./usr/lib/python3.5/encodings/cp1255.pyc
> ./usr/lib/python3.5/encodings/utf_32.pyc
> ./usr/lib/python3.5/encodings/cp1125.pyc
> ./usr/lib/python3.5/cgitb.pyc
> ./usr/lib/python3.5/functools.pyc
> ./usr/lib/python3.5/_osx_support.pyc
> ./usr/lib/python3.5/fileinput.pyc
> ./usr/lib/python3.5/macpath.pyc
> ./usr/lib/python3.5/bdb.pyc
> ./usr/lib/python3.5/py_compile.pyc
> ./usr/lib/python3.5/socketserver.pyc
> ./usr/lib/python3.5/sched.pyc
> ./usr/lib/python3.5/plat-linux/IN.pyc
> ./usr/lib/python3.5/plat-linux/DLFCN.pyc
> ./usr/lib/python3.5/plat-linux/TYPES.pyc
> ./usr/lib/python3.5/plat-linux/CDROM.pyc
> ./usr/lib/python3.5/cmd.pyc
> ./usr/lib/python3.5/xdrlib.pyc
> ./usr/lib/python3.5/linecache.pyc
> ./usr/lib/python3.5/nturl2path.pyc
> ./usr/lib/python3.5/asynchat.pyc
> ./usr/lib/python3.5/multiprocessing/popen_fork.pyc
> ./usr/lib/python3.5/multiprocessing/heap.pyc
> ./usr/lib/python3.5/multiprocessing/connection.pyc
> ./usr/lib/python3.5/multiprocessing/pool.pyc
> ./usr/lib/python3.5/multiprocessing/popen_forkserver.pyc
> ./usr/lib/python3.5/multiprocessing/queues.pyc
> ./usr/lib/python3.5/multiprocessing/synchronize.pyc
> ./usr/lib/python3.5/multiprocessing/popen_spawn_win32.pyc
> ./usr/lib/python3.5/multiprocessing/reduction.pyc
> ./usr/lib/python3.5/multiprocessing/resource_sharer.pyc
> ./usr/lib/python3.5/multiprocessing/process.pyc
> ./usr/lib/python3.5/multiprocessing/popen_spawn_posix.pyc
> ./usr/lib/python3.5/multiprocessing/__init__.pyc
> ./usr/lib/python3.5/multiprocessing/forkserver.pyc
> ./usr/lib/python3.5/multiprocessing/dummy/connection.pyc
> ./usr/lib/python3.5/multiprocessing/dummy/__init__.pyc
> ./usr/lib/python3.5/multiprocessing/util.pyc
> ./usr/lib/python3.5/multiprocessing/spawn.pyc
> ./usr/lib/python3.5/multiprocessing/semaphore_tracker.pyc
> ./usr/lib/python3.5/multiprocessing/sharedctypes.pyc
> ./usr/lib/python3.5/multiprocessing/context.pyc
> ./usr/lib/python3.5/multiprocessing/managers.pyc
> ./usr/lib/python3.5/site.pyc
> ./usr/lib/python3.5/ftplib.pyc
> ./usr/lib/python3.5/gzip.pyc
> ./usr/lib/python3.5/platform.pyc
> ./usr/lib/python3.5/compileall.pyc
> ./usr/lib/python3.5/types.pyc
> ./usr/lib/python3.5/smtplib.pyc
> ./usr/lib/python3.5/plistlib.pyc
> ./usr/lib/python3.5/this.pyc
> ./usr/lib/python3.5/ensurepip/__main__.pyc
> ./usr/lib/python3.5/ensurepip/_uninstall.pyc
> ./usr/lib/python3.5/ensurepip/__init__.pyc
> ./usr/lib/python3.5/binhex.pyc
> ./usr/lib/python3.5/quopri.pyc
> ./usr/lib/python3.5/poplib.pyc
> ./usr/lib/python3.5/symbol.pyc
> ./usr/lib/python3.5/os.pyc
> ./usr/lib/python3.5/timeit.pyc
> ./usr/lib/python3.5/sysconfigdata/_sysconfigdata.pyc
> ./usr/lib/python3.5/io.pyc
> ./usr/lib/python3.5/mailcap.pyc
> ./usr/lib/python3.5/ipaddress.pyc
> ./usr/lib/python3.5/struct.pyc
> ./usr/lib/python3.5/turtle.pyc
> ./usr/lib/python3.5/tokenize.pyc
> ./usr/lib/python3.5/base64.pyc
> ./usr/lib/python3.5/tempfile.pyc
> ./usr/lib/python3.5/sre_parse.pyc
> ./usr/lib/python3.5/antigravity.pyc
> ./usr/lib/python3.5/random.pyc
> ./usr/lib/python3.5/tracemalloc.pyc
> ./usr/lib/python3.5/__future__.pyc
> ./usr/lib/python3.5/pdb.pyc
> ./usr/lib/python3.5/fractions.pyc
> ./usr/lib/python3.5/cgi.pyc
> ./usr/lib/python3.5/ast.pyc
> ./usr/lib/python3.5/statistics.pyc
> ./usr/lib/python3.5/contextlib.pyc
> ./usr/lib/python3.5/profile.pyc
> ./usr/lib/python3.5/_dummy_thread.pyc
> ./usr/lib/python3.5/html/parser.pyc
> ./usr/lib/python3.5/html/entities.pyc
> ./usr/lib/python3.5/html/__init__.pyc
> ./usr/lib/python3.5/aifc.pyc
> ./usr/lib/python3.5/mailbox.pyc
> ./usr/lib/python3.5/weakref.pyc
> ./usr/lib/python3.5/selectors.pyc
> ./usr/lib/python3.5/code.pyc
> ./usr/lib/python3.5/crypt.pyc
> ./usr/lib/python3.5/rlcompleter.pyc
> ./usr/lib/python3.5/mimetypes.pyc
> ./usr/lib/python3.5/stringprep.pyc
> ./usr/lib/python3.5/lzma.pyc
> ./usr/lib/python3.5/signal.pyc
> ./usr/lib/python3.5/warnings.pyc
> ./usr/lib/python3.5/imghdr.pyc
> ./usr/lib/python3.5/operator.pyc
> ./usr/lib/python3.5/sndhdr.pyc
> ./usr/lib/python3.5/typing.pyc
> ./usr/lib/python3.5/pickletools.pyc
> ./usr/lib/python3.5/asyncore.pyc
> ./usr/lib/python3.5/string.pyc
> ./usr/lib/python3.5/_bootlocale.pyc
> ./usr/lib/python3.5/nntplib.pyc
> ./usr/lib/python3.5/macurl2path.pyc
> ./usr/lib/python3.5/email/mime/audio.pyc
> ./usr/lib/python3.5/email/mime/image.pyc
> ./usr/lib/python3.5/email/mime/message.pyc
> ./usr/lib/python3.5/email/mime/nonmultipart.pyc
> ./usr/lib/python3.5/email/mime/base.pyc
> ./usr/lib/python3.5/email/mime/application.pyc
> ./usr/lib/python3.5/email/mime/__init__.pyc
> ./usr/lib/python3.5/email/mime/text.pyc
> ./usr/lib/python3.5/email/mime/multipart.pyc
> ./usr/lib/python3.5/email/headerregistry.pyc
> ./usr/lib/python3.5/email/feedparser.pyc
> ./usr/lib/python3.5/email/charset.pyc
> ./usr/lib/python3.5/email/parser.pyc
> ./usr/lib/python3.5/email/iterators.pyc
> ./usr/lib/python3.5/email/message.pyc
> ./usr/lib/python3.5/email/_policybase.pyc
> ./usr/lib/python3.5/email/policy.pyc
> ./usr/lib/python3.5/email/base64mime.pyc
> ./usr/lib/python3.5/email/errors.pyc
> ./usr/lib/python3.5/email/quoprimime.pyc
> ./usr/lib/python3.5/email/generator.pyc
> ./usr/lib/python3.5/email/contentmanager.pyc
> ./usr/lib/python3.5/email/__init__.pyc
> ./usr/lib/python3.5/email/_encoded_words.pyc
> ./usr/lib/python3.5/email/utils.pyc
> ./usr/lib/python3.5/email/encoders.pyc
> ./usr/lib/python3.5/email/_header_value_parser.pyc
> ./usr/lib/python3.5/email/header.pyc
> ./usr/lib/python3.5/email/_parseaddr.pyc
> ./usr/lib/python3.5/turtledemo/lindenmayer.pyc
> ./usr/lib/python3.5/turtledemo/penrose.pyc
> ./usr/lib/python3.5/turtledemo/chaos.pyc
> ./usr/lib/python3.5/turtledemo/paint.pyc
> ./usr/lib/python3.5/turtledemo/__main__.pyc
> ./usr/lib/python3.5/turtledemo/two_canvases.pyc
> ./usr/lib/python3.5/turtledemo/clock.pyc
> ./usr/lib/python3.5/turtledemo/wikipedia.pyc
> ./usr/lib/python3.5/turtledemo/forest.pyc
> ./usr/lib/python3.5/turtledemo/bytedesign.pyc
> ./usr/lib/python3.5/turtledemo/colormixer.pyc
> ./usr/lib/python3.5/turtledemo/fractalcurves.pyc
> ./usr/lib/python3.5/turtledemo/minimal_hanoi.pyc
> ./usr/lib/python3.5/turtledemo/tree.pyc
> ./usr/lib/python3.5/turtledemo/planet_and_moon.pyc
> ./usr/lib/python3.5/turtledemo/round_dance.pyc
> ./usr/lib/python3.5/turtledemo/__init__.pyc
> ./usr/lib/python3.5/turtledemo/peace.pyc
> ./usr/lib/python3.5/turtledemo/sorting_animate.pyc
> ./usr/lib/python3.5/turtledemo/nim.pyc
> ./usr/lib/python3.5/turtledemo/yinyang.pyc
> ./usr/lib/python3.5/argparse.pyc
> ./usr/lib/python3.5/bisect.pyc
> ./usr/lib/python3.5/imaplib.pyc
> ./usr/lib/python3.5/bz2.pyc
> ./usr/lib/python3.5/posixpath.pyc
> ./usr/lib/python3.5/abc.pyc
> ./usr/lib/python3.5/_strptime.pyc
> ./usr/lib/python3.5/_sysconfigdata.pyc
> ./usr/lib/python3.5/tty.pyc
> ./usr/lib/python3.5/pprint.pyc
> ./usr/lib/python3.5/shlex.pyc
> ./usr/lib/python3.5/ntpath.pyc
> ./usr/lib/python3.5/decimal.pyc
> ./usr/lib/python3.5/tabnanny.pyc
> ./usr/lib/python3.5/formatter.pyc
> ./usr/lib/python3.5/keyword.pyc
> ./usr/lib/python3.5/ssl.pyc
> ./usr/lib/python3.5/sunau.pyc
> ./usr/lib/python3.5/zipfile.pyc
> ./usr/lib/python3.5/token.pyc
> ./usr/lib/python3.5/collections/__main__.pyc
> ./usr/lib/python3.5/collections/__init__.pyc
> ./usr/lib/python3.5/collections/abc.pyc
> ./usr/lib/python3.5/numbers.pyc
> ./usr/lib/python3.5/_pydecimal.pyc
> ./usr/lib/python3.5/threading.pyc
> ./usr/lib/python3.5/_threading_local.pyc
> ./usr/lib/python3.5/distutils/debug.pyc
> ./usr/lib/python3.5/distutils/sysconfig.pyc
> ./usr/lib/python3.5/distutils/command/sdist.pyc
> ./usr/lib/python3.5/distutils/command/bdist_dumb.pyc
> ./usr/lib/python3.5/distutils/command/build_clib.pyc
> ./usr/lib/python3.5/distutils/command/install_data.pyc
> ./usr/lib/python3.5/distutils/command/bdist_rpm.pyc
> ./usr/lib/python3.5/distutils/command/bdist_msi.pyc
> ./usr/lib/python3.5/distutils/command/bdist.pyc
> ./usr/lib/python3.5/distutils/command/install_headers.pyc
> ./usr/lib/python3.5/distutils/command/install_scripts.pyc
> ./usr/lib/python3.5/distutils/command/build_py.pyc
> ./usr/lib/python3.5/distutils/command/check.pyc
> ./usr/lib/python3.5/distutils/command/upload.pyc
> ./usr/lib/python3.5/distutils/command/install_egg_info.pyc
> ./usr/lib/python3.5/distutils/command/register.pyc
> ./usr/lib/python3.5/distutils/command/bdist_wininst.pyc
> ./usr/lib/python3.5/distutils/command/__init__.pyc
> ./usr/lib/python3.5/distutils/command/install_lib.pyc
> ./usr/lib/python3.5/distutils/command/build.pyc
> ./usr/lib/python3.5/distutils/command/install.pyc
> ./usr/lib/python3.5/distutils/command/clean.pyc
> ./usr/lib/python3.5/distutils/command/build_ext.pyc
> ./usr/lib/python3.5/distutils/command/config.pyc
> ./usr/lib/python3.5/distutils/command/build_scripts.pyc
> ./usr/lib/python3.5/distutils/text_file.pyc
> ./usr/lib/python3.5/distutils/versionpredicate.pyc
> ./usr/lib/python3.5/distutils/version.pyc
> ./usr/lib/python3.5/distutils/filelist.pyc
> ./usr/lib/python3.5/distutils/file_util.pyc
> ./usr/lib/python3.5/distutils/dir_util.pyc
> ./usr/lib/python3.5/distutils/cmd.pyc
> ./usr/lib/python3.5/distutils/dep_util.pyc
> ./usr/lib/python3.5/distutils/_msvccompiler.pyc
> ./usr/lib/python3.5/distutils/errors.pyc
> ./usr/lib/python3.5/distutils/fancy_getopt.pyc
> ./usr/lib/python3.5/distutils/log.pyc
> ./usr/lib/python3.5/distutils/core.pyc
> ./usr/lib/python3.5/distutils/extension.pyc
> ./usr/lib/python3.5/distutils/ccompiler.pyc
> ./usr/lib/python3.5/distutils/archive_util.pyc
> ./usr/lib/python3.5/distutils/msvccompiler.pyc
> ./usr/lib/python3.5/distutils/__init__.pyc
> ./usr/lib/python3.5/distutils/msvc9compiler.pyc
> ./usr/lib/python3.5/distutils/util.pyc
> ./usr/lib/python3.5/distutils/bcppcompiler.pyc
> ./usr/lib/python3.5/distutils/spawn.pyc
> ./usr/lib/python3.5/distutils/unixccompiler.pyc
> ./usr/lib/python3.5/distutils/dist.pyc
> ./usr/lib/python3.5/distutils/cygwinccompiler.pyc
> ./usr/lib/python3.5/distutils/config.pyc
> ./usr/lib/python3.5/re.pyc
> ./usr/lib/python3.5/unittest/mock.pyc
> ./usr/lib/python3.5/unittest/suite.pyc
> ./usr/lib/python3.5/unittest/result.pyc
> ./usr/lib/python3.5/unittest/__main__.pyc
> ./usr/lib/python3.5/unittest/signals.pyc
> ./usr/lib/python3.5/unittest/main.pyc
> ./usr/lib/python3.5/unittest/loader.pyc
> ./usr/lib/python3.5/unittest/case.pyc
> ./usr/lib/python3.5/unittest/__init__.pyc
> ./usr/lib/python3.5/unittest/util.pyc
> ./usr/lib/python3.5/unittest/runner.pyc
> ./usr/lib/python3.5/doctest.pyc
> ./usr/lib/python3.5/importlib/_bootstrap.pyc
> ./usr/lib/python3.5/importlib/_bootstrap_external.pyc
> ./usr/lib/python3.5/importlib/__init__.pyc
> ./usr/lib/python3.5/importlib/abc.pyc
> ./usr/lib/python3.5/importlib/util.pyc
> ./usr/lib/python3.5/importlib/machinery.pyc
> ./usr/lib/python3.5/_pyio.pyc
> ./usr/lib/python3.5/pathlib.pyc
> ./usr/lib/python3.5/site-packages/crcmod/crcmod.pyc
> ./usr/lib/python3.5/site-packages/crcmod/_crcfunpy.pyc
> ./usr/lib/python3.5/site-packages/crcmod/predefined.pyc
> ./usr/lib/python3.5/site-packages/crcmod/test.pyc
> ./usr/lib/python3.5/site-packages/crcmod/__init__.pyc
> ./usr/lib/python3.5/pickle.pyc
> ./usr/lib/python3.5/sre_compile.pyc
> ./usr/lib/python3.5/getopt.pyc
> ./usr/lib/python3.5/concurrent/futures/thread.pyc
> ./usr/lib/python3.5/concurrent/futures/_base.pyc
> ./usr/lib/python3.5/concurrent/futures/process.pyc
> ./usr/lib/python3.5/concurrent/futures/__init__.pyc
> ./usr/lib/python3.5/concurrent/__init__.pyc
>
> This looks completely correct to me.
>
> Which version of Python is used on your build machine? Do you have any
> special environment variable defined?
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
>
diff mbox

Patch

diff --git a/package/python3/python3.mk b/package/python3/python3.mk
index 34e1297..1b63f95 100644
--- a/package/python3/python3.mk
+++ b/package/python3/python3.mk
@@ -213,7 +213,8 @@  define PYTHON3_CREATE_PYC_FILES
 	PYTHONPATH="$(PYTHON3_PATH)" \
 	$(HOST_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR) \
 		support/scripts/pycompile.py \
-		$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)
+		$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) \
+		$(PYTHON3_PYCOMPILE_ARGS)
 endef
 
 ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY)$(BR2_PACKAGE_PYTHON3_PY_PYC),y)
@@ -226,6 +227,7 @@  define PYTHON3_REMOVE_PY_FILES
 		xargs -0 --no-run-if-empty rm -f
 endef
 PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_PY_FILES
+PYTHON3_PYCOMPILE_ARGS += -b
 endif
 
 # Normally, *.pyc files should not have been compiled, but just in
diff --git a/support/scripts/pycompile.py b/support/scripts/pycompile.py
index fde711a..f9dee7f 100644
--- a/support/scripts/pycompile.py
+++ b/support/scripts/pycompile.py
@@ -21,4 +21,7 @@  class ReportProblem:
 
 report_problem = ReportProblem()
 
-compileall.compile_dir(sys.argv[1], quiet=report_problem)
+# Pass along the legacy parameter
+legacy = '-b' in sys.argv
+
+compileall.compile_dir(sys.argv[1], legacy=legacy, quiet=report_problem)