Jump to content


Photo

develop: python3 transition


  • Please log in to reply
371 replies to this topic

Re: develop: python3 transition #281 Beeker

  • PLi® Contributor
  • 1,604 posts

+203
Excellent

Posted 23 January 2022 - 20:46

Hains and you should have access now, I've send an invitation to Nautilus7.

Thanks!


Dreambox dm920, Uclan Ustym4Kpro, Gigablue UHD TRIO 4K and Dreambox dm8000. Wavefrontier T55 13.0|19.2|23.5|28.2 + Ziggo.


Re: develop: python3 transition #282 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 25 January 2022 - 19:47

p>Python 2 (precompiled *.pyo files):

p>Send a *.py to the box. File compiles and overwrites the *.pyo.

p> 

p>Python 3 (precompiled *.pyc files in the source folders):

p>Send a *.py to the box. File compiles and creates a new *.pyc in _pycache_ . The *.pyc is not touched. If you now delete the *.py you are going to have a *.pyc hanging around in _pycache_ that software updates will never overwrite/remove. 

p> 

p>Edit: something wrong with the forum software


Edited by Huevos, 25 January 2022 - 19:51.


Re: develop: python3 transition #283 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 25 January 2022 - 21:13

Are you testing OpenPLi image from hardknott-py3 branch?


Edited by athoik, 25 January 2022 - 22:08.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #284 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 26 January 2022 - 02:36

I am using the OpenViX image after the OE-Alliance change. Compiled pyc in the legacy location. No source py files present. OE is Honister and Python version is 3.9.7. The py file compiles to pycache, not overwrites the pyc in the legacy location.

 

e.g. add ./Screens/MessageBox.py and pyc appears in ./Screens/pycache/MessageBox-Python-3.9.7.pyc

Attached Files

  • Attached File  1.jpg   102.77KB   5 downloads

Edited by Huevos, 26 January 2022 - 02:55.


Re: develop: python3 transition #285 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 26 January 2022 - 13:30

That's why I asked what image are you testing.

 

Obviously the PLi-OE is not OE-A-OE.

 

OE-A currently applied only the quick and dirty hack to compile py files into their legacy names and locations.

 

On the other hand, for PLi-OE the whole imporlib pached to support legacy names and locations, without the "compileall" hack.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #286 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 26 January 2022 - 14:43

That's why I asked what image are you testing.

 

Obviously the PLi-OE is not OE-A-OE.

 

OE-A currently applied only the quick and dirty hack to compile py files into their legacy names and locations.

 

On the other hand, for PLi-OE the whole imporlib pached to support legacy names and locations, without the "compileall" hack.

Maybe what I am saying is not clear.

 

PLI-OE and current OE-A-OE both precompile .pyc to the legacy location.

 

But if you send a .py to the box the new compiled pyc will appear in pycache.

 

The original pyc in the legacy location will remain without modification.

 

This behaviour is nothing to do with the build process or OE version... it is happening on the STB.



Re: develop: python3 transition #287 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 26 January 2022 - 16:17

PLI-OE and current OE-A-OE both precompile .pyc to the legacy location.


That is correct, but precompile on PLi-OE is happening automatically using unmodified recipes, because the python importlib was patched on OE to support legacy filenames and locations.

But if you send a .py to the box the new compiled pyc will appear in pycache.

The original pyc in the legacy location will remain without modification.


Yes, that's the behavior of unpatched importlib. It works using non-legacy way, supporting multiple python versions.

This behaviour is nothing to do with the build process or OE version... it is happening on the STB.


Partially correct, it is happening on STB, but build of python and other components required to build an image, are cooked by OE.
OE is responsible to build the image, and part of the image is python.

Python on OE-A-OE is not patched to support legacy filenames and locations.

Check #270 https://forums.openp...14#entry1422146 it has the base patch (without the importlib patch).

That part is currently on PLi-OE and no other changes regarding "compileall" and behavior matches the python 2.7 era.
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #288 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 26 January 2022 - 18:19

Damn, I don't understand the patch. :(

 

https://github.com/O...09d99e333254e28

 

What are the relevant lines there?



Re: develop: python3 transition #289 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 26 January 2022 - 19:08

Only "ALTERNATIVE" is optional, it will make scripts using /usr/bin/env python to work  without having to specifically define python3.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #290 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 26 January 2022 - 19:15

I mean which part of the patch will make files that compile on the box go to legacy locations.



Re: develop: python3 transition #291 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 26 January 2022 - 19:56

The change in Lib/importlib/_bootstrap_external.py and the resulting importlib.h produced from change in previous .py file.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #292 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 27 January 2022 - 15:39

diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index fe31f43..6ce18db 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -389,13 +389,13 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
     tag = sys.implementation.cache_tag
     if tag is None:
         raise NotImplementedError('sys.implementation.cache_tag is None')
-    almost_filename = ''.join([(base if base else rest), sep, tag])
+    almost_filename = ''.join([(base if base else rest)])
     if optimization is None:
         if sys.flags.optimize == 0:
             optimization = ''
         else:
             optimization = sys.flags.optimize
-    optimization = str(optimization)
+    optimization = ''
     if optimization != '':
         if not optimization.isalnum():
             raise ValueError('{!r} is not alphanumeric'.format(optimization))
@@ -426,7 +426,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
             head.lstrip(path_separators),
             filename,
         )
-    return _path_join(head, _PYCACHE, filename)
+    return _path_join(head, filename)


 def source_from_cache(path):

So, I added that.

 

Then I ran:

bitbake -c clean python3
bitbake -c patch python3

Then I checked:
./tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/python3/python3-3.9.7-r0/Python-3.9.7/Lib/importlib/_bootstrap_external.py

 

It now looks like this:

def cache_from_source(path, debug_override=None, *, optimization=None):
    """Given the path to a .py file, return the path to its .pyc file.

    The .py file does not need to exist; this simply returns the path to the
    .pyc file calculated as if the .py file were imported.

    The 'optimization' parameter controls the presumed optimization level of
    the bytecode file. If 'optimization' is not None, the string representation
    of the argument is taken and verified to be alphanumeric (else ValueError
    is raised).

    The debug_override parameter is deprecated. If debug_override is not None,
    a True value is the same as setting 'optimization' to the empty string
    while a False value is equivalent to setting 'optimization' to '1'.

    If sys.implementation.cache_tag is None then NotImplementedError is raised.

    """
    if debug_override is not None:
        _warnings.warn('the debug_override parameter is deprecated; use '
                       "'optimization' instead", DeprecationWarning)
        if optimization is not None:
            message = 'debug_override or optimization must be set to None'
            raise TypeError(message)
        optimization = '' if debug_override else 1
    path = _os.fspath(path)
    head, tail = _path_split(path)
    base, sep, rest = tail.rpartition('.')
    tag = sys.implementation.cache_tag
    if tag is None:
        raise NotImplementedError('sys.implementation.cache_tag is None')
    almost_filename = ''.join([(base if base else rest)])
    if optimization is None:
        if sys.flags.optimize == 0:
            optimization = ''
        else:
            optimization = sys.flags.optimize
    optimization = ''
    if optimization != '':
        if not optimization.isalnum():
            raise ValueError('{!r} is not alphanumeric'.format(optimization))
        almost_filename = '{}.{}{}'.format(almost_filename, _OPT, optimization)
    filename = almost_filename + BYTECODE_SUFFIXES[0]
    if sys.pycache_prefix is not None:
        # We need an absolute path to the py file to avoid the possibility of
        # collisions within sys.pycache_prefix, if someone has two different
        # `foo/bar.py` on their system and they import both of them using the
        # same sys.pycache_prefix. Let's say sys.pycache_prefix is
        # `C:\Bytecode`; the idea here is that if we get `Foo\Bar`, we first
        # make it absolute (`C:\Somewhere\Foo\Bar`), then make it root-relative
        # (`Somewhere\Foo\Bar`), so we end up placing the bytecode file in an
        # unambiguous `C:\Bytecode\Somewhere\Foo\Bar\`.
        if not _path_isabs(head):
            head = _path_join(_os.getcwd(), head)

        # Strip initial drive from a Windows path. We know we have an absolute
        # path here, so the second part of the check rules out a POSIX path that
        # happens to contain a colon at the second character.
        if head[1] == ':' and head[0] not in path_separators:
            head = head[2:]

        # Strip initial path separator from `head` to complete the conversion
        # back to a root-relative path before joining.
        return _path_join(
            sys.pycache_prefix,
            head.lstrip(path_separators),
            filename,
        )
    return _path_join(head, filename)

So I complete the build and flash the image to the STB and py files compiled on the box still end up in pycache. What is going wrong?



Re: develop: python3 transition #293 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 27 January 2022 - 18:57

You missed the importlib.h patch.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #294 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 28 January 2022 - 12:09

You missed the importlib.h patch.

So I just need these two?:

diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
diff --git a/Python/importlib.h b/Python/importlib.h

If so, it still does not work. It compiles to PEP-3147 location, not legacy.


Edited by Huevos, 28 January 2022 - 12:17.


Re: develop: python3 transition #295 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 28 January 2022 - 17:00

I've tried adding:

diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
diff --git a/Python/importlib.h b/Python/importlib.h
diff --git a/Python/importlib_external.h b/Python/importlib_external.h

But that causes the build to fail:

| rm -r /home/openvix/5.6/builds/openvix/Py3/vuultimo4k/tmp/work/x86_64-linux/python3-native/python3-native-3.9.7-r0/image/home/openvix/5.6/builds/openvix/Py3/vuultimo4k/tmp/work/x86_64-linux/python3-native/python3-native-3.9.7-r0/recipe-sysroot-native/usr/lib/python3.9/lib-dynload/__pycache__
| rm: cannot remove '/home/openvix/5.6/builds/openvix/Py3/vuultimo4k/tmp/work/x86_64-linux/python3-native/python3-native-3.9.7-r0/image/home/openvix/5.6/builds/openvix/Py3/vuultimo4k/tmp/work/x86_64-linux/python3-native/python3-native-3.9.7-r0/recipe-sysroot-native/usr/lib/python3.9/lib-dynload/__pycache__': No such file or directory
| make: [Makefile:1707: sharedinstall] Error 1 (ignored)

 



Re: develop: python3 transition #296 foxbob

  • Senior Member
  • 624 posts

+18
Neutral

Posted 28 January 2022 - 18:42

Maybe it's just me.For some reason the openwebif plugin is not working.The folder is there but there are no files *.pyc in it.



Re: develop: python3 transition #297 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 28 January 2022 - 20:24

Maybe it's just me.For some reason the openwebif plugin is not working.The folder is there but there are no files *.pyc in it.

root@osmio4k:~# opkg files enigma2-plugin-extensions-openwebif | grep .pyc$
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgsearch.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayeradd.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/timers.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgbouquet.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/index.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/edittimer.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/movies.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/OWFMovieList.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/renderevtblock.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/bqe.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getcurrent.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getipv6.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/current.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/removelocation.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/satfinder.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/epgr.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/movielistm3u.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/stream.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getpid.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/providers.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgmulti.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/wol.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/AT.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/main.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/screenshot.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayerwrite.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/at.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/owibranding.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/config.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/timers.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/movierename.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/about.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayerremove.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/movies.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timerlist.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/event.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/eventdescription.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/head.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayercurrent.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/mediaplayer.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/config.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getallservices.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/plugin.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/stream.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getservices.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgservicenext.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/mobile.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/subservices.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/radio.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/bouqueteditor/web/getprotectionsettings.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/messageanswer.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/moviemove.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/movies.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/providers.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/defaults.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/index.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/tvradio.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/volume.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/satfinder.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timerchange.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/editmovie.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/powerstate.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/currenttime.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/web.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getaudiotracks.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/movielist.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/bouqueteditor/web/getservices.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/index.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgsimilar.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/main.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/boxinfo.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/css.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timercleanup.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/message.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/remotecontrol.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/webtv.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/powerstate.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timeraddbyeventid.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/locations.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/config.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/grab.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/control.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/message.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/epgdialog.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/tv.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/movies.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/boxinfo.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/satellites.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/external.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/restarttwisted.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/vtiaddon.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgservice.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgnow.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/vol.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgnext.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/epgpop.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/saveepg.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/zap.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/services.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/info.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/bqe.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/moviedetails.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timerlistwrite.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/ER.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/BQE.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/channels.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/epgdialog.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getcurrlocation.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/servicelist.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/about.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/myepg.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/plugins.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/movietags.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/channels.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/bouquets.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timertogglestatus.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/tunersignal.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/base.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/powerstate.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timerdelete.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/servicelistplayable.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/bouquets.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/channelinfo.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/channels.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/parentcontrollist.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/pluginlistread.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/webtv.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgnownext.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/ajax.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/satellites.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/screenshot.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/message.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgsearchrss.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/bouquets.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/moviedelete.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/renderevtblock.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayerlist.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/multiepg.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/recordnow.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/at.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/bouquets.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgservicenow.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/remote.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/selectaudiotrack.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/multiepg.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayerfindfile.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/transcoding.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/about.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/eventview.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/rest.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/streamsubservices.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/serviceplayable.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/loadepg.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/movielisthtml.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/epgr.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/settings.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/epgxmltv.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/moviesearch.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/control.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/NET.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/about.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/BouquetEditor.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/audiotrack.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/settings.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayercmd.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/getlocations.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/screenshot.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/servicelistreload.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/movielistrss.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/file.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/backport/OrderedDict.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/addlocation.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/settings.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/utilities.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/deviceinfo.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayerplay.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/backport/__init__.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/httpserver.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/edittimer.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/timeradd.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/tv.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/i18n.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/ipkg.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/servicesxspf.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/event.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/mediaplayerload.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/mobile/timerlist.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/models/timers.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/responsive/ajax/terminal.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/eventdescription.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/tvbrowser.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/gettags.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/radio.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/servicesm3u.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/root.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web/sleeptimer.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/terminal.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/sslcertificate.pyc
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/ajax/current.pyc

 

No problem here.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #298 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 28 January 2022 - 20:38

 

You missed the importlib.h patch.

So I just need these two?:

diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
diff --git a/Python/importlib.h b/Python/importlib.h

If so, it still does not work. It compiles to PEP-3147 location, not legacy.

 

 

How exactly are you applying the patch?

 

Just adding the patch with .bbappend on OE-A is not working?

 

If patch doesn't apply, you need to recreate it, for your OE-A version.

 

 

Apply the patches on Python (only the python changes, not the header) and then use "make regen-importlib" to create header.

 

Create a patch from the new generated header files (they include byte-code from importlib freezed into header files).

 

Use above patch and compile an image with new patched python.

 

That's all.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: develop: python3 transition #299 Huevos

  • PLi® Contributor
  • 4,663 posts

+163
Excellent

Posted 28 January 2022 - 21:50

How exactly are you applying the patch?

 

Just adding the patch with .bbappend on OE-A is not working?

 

If patch doesn't apply, you need to recreate it, for your OE-A version.

 

So here: https://github.com/o..._3.9.%.bbappend

 

I add:

FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://importlib.patch"

Patch file is your patch file from line 1 to line 1660: https://github.com/O...09d99e333254e28

bitbake -c patch python3

That runs clean. No complaining. No fuzz.
 

Apply the patches on Python (only the python changes, not the header) and then use "make regen-importlib" to create header.

 

Create a patch from the new generated header files (they include byte-code from importlib freezed into header files).

 

Use above patch and compile an image with new patched python.

 

I don't understand this bit.



Re: develop: python3 transition #300 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 28 January 2022 - 22:14

Just apply the whole patch.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916


5 user(s) are reading this topic

0 members, 4 guests, 0 anonymous users


    Bing (1)