Some of you may be seeing error from the 'repo' tool ...


e.g.
00:30:01 repo init -u 'https://opendev.org/starlingx/manifest' -b 'master'
00:30:01 Traceback (most recent call last):
00:30:01   File "/var/lib/jenkins/stx-repo/master/.repo/repo/main.py", line 56, in <module>
00:30:01     from subcmds.version import Version
00:30:01   File "/var/lib/jenkins/stx-repo/master/.repo/repo/subcmds/__init__.py", line 38, in <module>
00:30:01     ['%s' % name])
00:30:01   File "/var/lib/jenkins/stx-repo/master/.repo/repo/subcmds/upload.py", line 27, in <module>
00:30:01     from hooks import RepoHook
00:30:01   File "/var/lib/jenkins/stx-repo/master/.repo/repo/hooks.py", line 472
00:30:01     file=sys.stderr)
00:30:01         ^
00:30:01 SyntaxError: invalid syntax

repo put out an update that has broken python 2 compatibility. To get it working again, you may need to install python3 on your system.

If you still encounter errors, It may be because repo uses ...

#!/usr/bin/env python


Which means that it will use the first 'python' it finds in your PATH,

and there are various ways that 'python' might map to python2 or

python3 depending on your system. If your system is defaulting to

python2 and it otherwise is working for you, I'm reluctant to recommend

making python3 the default.


It might be safer to edit 'repo' and force it to use python3.


REPO=$(which repo)

PY3=$(which python3)

echo " $REPO $PY3"
/usr/local/bin/repo /usr/bin/python3


# If everything looks sane ...

sudo cp ${REPO} ${REPO}.original

sudo sed "s%#\!/usr/bin/env python%#\!${PY3}%" -i ${REPO}


# Did it work ?

head -n1 $REPO
    #!/usr/bin/python3


I'll be testing our build container, and if required posting an update to our Dockerfile.

Scott