- 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  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
- If this package cannot support installation for multiple versions of
Python, then set active version of Python using
- 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 .
- 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  for more details.
Fails with python 3;
pyext.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PyTypeObject'
pyext.c: In function 'syck_PyIntMaker':
pyext.c:33: warning: return makes pointer from integer without a cast
pyext.c: At top level:
pyext.c:47: warning: initialization from incompatible pointer type
pyext.c: In function 'py_syck_node_alloc':
pyext.c:56: error: 'SyckNodeType' undeclared (first use in this function)
pyext.c:56: error: (Each undeclared identifier is reported only once
pyext.c:56: error: for each function it appears in.)
pyext.c: In function 'py_syck_node_getattr':
Created attachment 229717 [details]
Ok got it to work even when Python 3 is set as main active version of Python.
RESTRICT_PYTHON_ABIS is intended only for packages, which can be installed for e.g. both Python 2.6 and 2.7 simultaneously.
distutils.eclass inherits python.eclass.
PYTHON_DEPEND="python? 2" should be set before inherit().
Created attachment 230757 [details]
Created attachment 230759 [details]
Created attachment 230811 [details]
After reviewing some of arfrever's ebuilds and starting to understand the guide this is my latest :)
There can be: DEPEND="python? ( !dev-python/pysyck )"
python_set_active_version should be inside 'if use python; then ...; fi' block.
Created attachment 240165 [details]
Ok hope this is correct, seems to work as expected :)
Looks like we have two items to address.
1. The ebuild needs to be updated to require python 2.7
2. Need a workaround to install this package on a machine that has been updated to python 3.x
*** Bug 359317 has been marked as a duplicate of this bug. ***
Fixed in dev-libs/syck-0.55-r4.