I'm trying to test things to see what can use python3 instead of
python2, now that python2 is about to go End Of Life.

In my normal desktop builds I need polkit - ISTR that was for
usermode Xorg.  But polkit required JS-60.

Initially that fails with 'python not found'.

The configure script, which is what invokes python, contains:

which python2.7 > /dev/null && exec python2.7 "$TOPSRCDIR/configure.py" "$@" || 
exec python "$TOPSRCDIR/configure.py" "$@"

so I started with a sed 's/ python / python3 /' but that then
failed:

Traceback (most recent call last):
  File "../js/src/../../configure.py", line 16, in <module>
    from mozbuild.configure import ConfigureSandbox
  File 
"/scratch/working/mozjs-60.8.0/python/mozbuild/mozbuild/configure/__init__.py", 
line 7, in <module>
    import __builtin__
ModuleNotFoundError: No module named '__builtin__'

so I tried adding:

2to3 -w js/src/configure but that then failed:

RefactoringTool: Skipping optional fixer: buffer
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: set_literal
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Can't parse js/src/configure: ParseError: bad input: type=11, 
value=':', context=('#!/bin/sh\n# This Source Code Form is subject to the terms 
of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not 
distributed with this\n# file, You can obtain one at 
http://mozilla.org/MPL/2.0/.\n#\n# Welcome to the new world of configure. 
We\'re working on moving to a\n# python3 based configure. In the meanwhile, 
remains of the old autoconf\n# based configure is in old-configure.in.\n# If 
you need to add something, please come talk to the build system\n# peers for 
now.\n#\n# Because adding a configure file in the tree is going to conflict 
with\n# existing configure files in people\'s (and automation) work trees, 
and\n# because some automation jobs are still running autoconf and configure\n# 
"manually", this file is actually an m4 file that is processed by\n# autoconf, 
but doesn\'t call any autoconf macros. The `divert` line\n# below ensures the 
script that follows is output by autoconf.\n', (18, 0))
RefactoringTool: No files need to be modified.
RefactoringTool: There was 1 error:
RefactoringTool: Can't parse js/src/configure: ParseError: bad input: type=11, 
value=':', context=('#!/bin/sh\n# This Source Code Form is subject to the terms 
of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not 
distributed with this\n# file, You can obtain one at 
http://mozilla.org/MPL/2.0/.\n#\n# Welcome to the new world of configure. 
We\'re working on moving to a\n# python3 based configure. In the meanwhile, 
remains of the old autoconf\n# based configure is in old-configure.in.\n# If 
you need to add something, please come talk to the build system\n# peers for 
now.\n#\n# Because adding a configure file in the tree is going to conflict 
with\n# existing configure files in people\'s (and automation) work trees, 
and\n# because some automation jobs are still running autoconf and configure\n# 
"manually", this file is actually an m4 file that is processed by\n# autoconf, 
but doesn\'t call any autoconf macros. The `divert` line\n# below ensures the 
script that follows is output by autoconf.\n', (18, 0))

I then followed that with '||' to allow for failure status.  But
somewhere it is still trying to invoke python, because immediately
after that crap about not parsing the configure file it gives me:

../js/src/configure: line 27: exec: python: not found
Traceback (most recent call last):
  File "../js/src/../../configure.py", line 16, in <module>
    from mozbuild.configure import ConfigureSandbox
  File
"/scratch/working/mozjs-60.8.0/python/mozbuild/mozbuild/configure/__init__.py",
line 7, in <module>
    import __builtin__
ModuleNotFoundError: No module named '__builtin__'
Traceback (most recent call last):
  File "../js/src/../../configure.py", line 16, in <module>
    from mozbuild.configure import ConfigureSandbox
  File
"/scratch/working/mozjs-60.8.0/python/mozbuild/mozbuild/configure/__init__.py",
line 7, in <module>
    import __builtin__
ModuleNotFoundError: No module named '__builtin__'
Traceback (most recent call last):
  File "../js/src/../../configure.py", line 16, in <module>
    from mozbuild.configure import ConfigureSandbox
  File
"/scratch/working/mozjs-60.8.0/python/mozbuild/mozbuild/configure/__init__.py",
line 7, in <module>
    import __builtin__
ModuleNotFoundError: No module named '__builtin__'

Hmm, I see that fedora have a mozjs68-68.3.0.1-fc32.src.rpm - I
suppose I'll have to take a look at that, although since I think
fedora install python3 as just python, I'm not overly hopeful - a
quick look shows it untars firefox-68.3.0, adds some patches,
rmeoves some bundled security libs (nss, nspr I guess) and then
proceeds.

There is an issue for spidermonkey68 at gnome:
https://gitlab.gnome.org/GNOME/gjs/issues/270 which is apparently
waiting for 68.4.0 before it is ready.  Whether or not that will
help with building against python3 is a different question, to which
I have no answer (the missing __builtin__ suggests it might not).

Going forward, perhaps we need to install python3 as both python3
and python, and find a way to stop python2, if it is installed,
installing as python ?

Maybe as simple as:

1. in LFS ln -sv python3 /usr/bin/python

2. in BLFS, if installign python2 :
 rm /usr/bin/python
 ln -sv python3 /usr/bin/python

 ??

Yes, I know that upstream python has claimed that python should
still be python2, but I think we're fast going to reach the point
where that causes more trouble than it is worth.

For the moment, I'm giving up on this slithering mess.

Maybe I'll try creating the python symlink, or maybe it would be
easier to just start banging my head agaisnt a brick wall.

ĸen
-- 
          We've all got both light and dark inside of us.
          What matters is the part we choose to act on.
                                              -- Sirius Black
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to