- If this package can be used as a library and installs Python modules (*.so or *.py) into site-packages directories, then consider supporting installation for multiple Python versions. Please read section "Types of packages" in documentation [1] to decide if this package can support installation for multiple Python versions. - Ensure that the ebuilds do not use deprecated functions or variables. - Please check if Python 3 is supported by this package. You can temporarily set Python 3 as main active version of Python to properly test if this package supports Python 3. - If this package does not support Python 3: - Specify dependency on Python 2. You can use PYTHON_DEPEND helper variable, which should be set before inheriting of python eclass. Please read section "Specification of dependency on Python" in documentation [1]. - If this package cannot support installation for multiple versions of Python, then set active version of Python using python_set_active_version(). - Ensure that shebangs in installed scripts specify correct version of Python. If shebangs are too generic (e.g. '#!/usr/bin/python'), then you can use python_convert_shebangs() to convert shebangs. (Wrapper scripts generated by python_generate_wrapper_scripts() do not require any changes.) Please read section "Shebangs in installed scripts" in documentation [1]. - To ensure that changes applied to the ebuilds are sufficient, please temporarily set Python 3 as main active version of Python and test if this package can be properly installed and if it works at run time. Please see documentation [1] for more details. [1] http://www.gentoo.org/proj/en/Python/developersguide.xml
installs fine with both 2 and 3 but one of the scripts; vim /usr/share/fvwm-crystal/fvwm/scripts/FvwmMPD/stripnames.py has the old style print statment #!/usr/bin/env python import sys if __name__ == "__main__": stripped = sys.argv[1] index=0 while (index > -1): stripped = stripped[index+1:] index = stripped.find('/') print stripped
Created attachment 230817 [details] fvwm-crystal-3.0.6-r1.ebuild.diff
Hi, I am working on a new fvwm-crystal release, but I don't know anything to python. For the new style print statement into /usr/share/fvwm-crystal/fvwm/scripts/FvwmMPD/stripnames.py, will it be correct to change it like: #!/usr/bin/env python import sys if __name__ == "__main__": stripped = sys.argv[1] index=0 while (index > -1): stripped = stripped[index+1:] index = stripped.find('/') print (stripped) For the shebangs, will it be correct to write, in all the python scripts, after I made the changes above: #!/usr/bin/env python3 or is it better to let portage to choose the python version to use with python_convert_shebangs ?
(In reply to comment #3) There can be other errors (beside syntax of print) occuring when running code under Python 3. If you don't have experience with porting of Python code from Python 2 to Python 3, then it's better to use hardcode Python 2 shebangs in scripts.
(In reply to comment #4) Thanks. I will do this, and also write about this issue on the mailing list.
Created attachment 293723 [details, diff] ebuild patch Now I know what I'm doing with the shebang fixer, this python_convert_shebangs 2 "${ED}"usr/share/${PN}/fvwm/scripts/FvwmMPD/*.py is more efficient than python_convert_shebangs -r 2 "${ED}". It's only another 25 chars or so.
Created attachment 293869 [details, diff] revised ebuild patch
fixed in tree