Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 317041 - x11-themes/fvwm-crystal: Verify and potentially improve Python-related code
Summary: x11-themes/fvwm-crystal: Verify and potentially improve Python-related code
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 308257
  Show dependency tree
 
Reported: 2010-04-24 18:55 UTC by Arfrever Frehtes Taifersar Arahesis (RETIRED)
Modified: 2012-01-23 10:14 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
fvwm-crystal-3.0.6-r1.ebuild.diff (fvwm-crystal-3.0.6-r1.ebuild.diff,916 bytes, text/plain)
2010-05-08 20:43 UTC, David Abbott (RETIRED)
Details
ebuild patch (fvwm-crystal.patch,1.95 KB, patch)
2011-11-25 15:49 UTC, Ian Delaney (RETIRED)
Details | Diff
revised ebuild patch (fvwm-crystal.patch,1.91 KB, patch)
2011-11-26 17:55 UTC, Ian Delaney (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2010-04-24 18:55:11 UTC
- 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
Comment 1 David Abbott (RETIRED) gentoo-dev 2010-05-08 20:26:26 UTC
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

Comment 2 David Abbott (RETIRED) gentoo-dev 2010-05-08 20:43:20 UTC
Created attachment 230817 [details]
fvwm-crystal-3.0.6-r1.ebuild.diff
Comment 3 Dominique Michel 2011-02-20 13:42:41 UTC
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 ?

Comment 4 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2011-02-20 14:39:45 UTC
(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.
Comment 5 Dominique Michel 2011-02-20 17:29:15 UTC
(In reply to comment #4)

Thanks. I will do this, and also write about this issue on the mailing list.
Comment 6 Ian Delaney (RETIRED) gentoo-dev 2011-11-25 15:49:39 UTC
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.
Comment 7 Ian Delaney (RETIRED) gentoo-dev 2011-11-26 17:55:10 UTC
Created attachment 293869 [details, diff]
revised ebuild patch
Comment 8 Samuli Suominen (RETIRED) gentoo-dev 2012-01-23 10:14:58 UTC
fixed in tree