When I try to build app-emulation/spice-0.12.6 with app-emulation/spice-protocol-0.12.10, It failed because a missing dependency on dev-python/six. We probably should add dev-python/six as app-emulation/spice-protocol RDEPEND. Reproducible: Always Steps to Reproduce: 1. emerge app-emulation/spice with >=app-emulation/spice-protocol-0.12.10 and without dev-python/six installed. 2. 3. Actual Results: config.status: executing libtool commands Spice 0.12.6 ============== prefix: /usr c compiler: x86_64-pc-linux-gnu-gcc -std=gnu99 c++ compiler: python: /usr/bin/python3.4 OpenGL: no LZ4 support: no Smartcard: no SASL support: no Automated tests: no Manual: yes Now type 'make' to build spice >>> Source configured. >>> Compiling source in /var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6 ... make -j3 make all-recursive make[1]: Entering directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6' Making all in spice-common make[2]: Entering directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6/spice-common' make all-recursive make[3]: Entering directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6/spice-common' Making all in common make[4]: Entering directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6/spice-common/common' /usr/bin/python3.4 /usr/lib64/spice-protocol/spice_codegen.py --generate-demarshallers --client --include common/messages.h /usr/lib64/spice-protocol/spice.proto generated_client_demarshallers.c >/dev/null /usr/bin/python3.4 /usr/lib64/spice-protocol/spice_codegen.py --generate-demarshallers --client --include common/messages.h --prefix 1 --ptrsize 8 /usr/lib64/spice-protocol/spice1.proto generated_client_demarshallers1.c >/dev/null /usr/bin/python3.4 /usr/lib64/spice-protocol/spice_codegen.py --generate-marshallers -P --include common/messages.h --include client_marshallers.h --client /usr/lib64/spice-protocol/spice.proto generated_client_marshallers.c >/dev/null Traceback (most recent call last): Traceback (most recent call last): File "/usr/lib64/spice-protocol/spice_codegen.py", line 7, in <module> File "/usr/lib64/spice-protocol/spice_codegen.py", line 7, in <module> from python_modules import spice_parser from python_modules import spice_parser File "/usr/lib64/spice-protocol/python_modules/spice_parser.py", line 1, in <module> File "/usr/lib64/spice-protocol/python_modules/spice_parser.py", line 1, in <module> import six import six ImportError: No module named 'six' ImportError: No module named 'six' Traceback (most recent call last): File "/usr/lib64/spice-protocol/spice_codegen.py", line 7, in <module> from python_modules import spice_parser File "/usr/lib64/spice-protocol/python_modules/spice_parser.py", line 1, in <module> import six ImportError: No module named 'six' Makefile:794: recipe for target 'generated_client_demarshallers.c' failed make[4]: *** [generated_client_demarshallers.c] Error 1 make[4]: *** Waiting for unfinished jobs.... Makefile:797: recipe for target 'generated_client_demarshallers1.c' failed make[4]: *** [generated_client_demarshallers1.c] Error 1 Makefile:800: recipe for target 'generated_client_marshallers.c' failed make[4]: *** [generated_client_marshallers.c] Error 1 make[4]: Leaving directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6/spice-common/common' Makefile:445: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6/spice-common' Makefile:377: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6/spice-common' Makefile:514: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/var/tmp/portage/app-emulation/spice-0.12.6/work/spice-0.12.6' Makefile:423: recipe for target 'all' failed make: *** [all] Error 2 * ERROR: app-emulation/spice-0.12.6::gentoo failed (compile phase): * emake failed
Created attachment 417216 [details, diff] quick fix
app-emulation/spice-0.12.6-r1 has add dependency to python-six. For me it's a issue related to "/usr/lib64/spice-protocol/spice_codegen.py" provided by app-emulation/spice-protocol.
I would like to keep the dependency-footprint of app-emulation/spice-protocols as minimal as possible, i.e. none. This means that it is the burden of consumers (such as app-emulation/spice, etc.) to ensure that dev-python/six is correctly installed prior to using this script. app-emulation/spice-protocols installs just fine without dev-python/six
Ok understand. I was thinking of using a use flag in app-emulation/spice-protocols (like maybe codegen, or something like that) to activate the RDEPEND on dev-python/six and make app-emulation/spice depends on spice-protocols[codegen]. But, like many I don't need spice_codegen.py for any other needs than building app-emulation/spice. So now that the dependency is fixed in app-emulation/spice, it works for me.