ales-erjavec / orange3-conda-recipe

Conda recipe for orange3
3 stars 1 forks source link

Problem compiling orange3 #1

Open ilanschnell opened 8 years ago

ilanschnell commented 8 years ago

First of all, thanks for the work. I haven't had any issues with the dependencies of orange3, however when running the orange3 recipe, I get:

Orange/classification/_simple_tree.c: In function ‘entropy’:
Orange/classification/_simple_tree.c:80: warning: implicit declaration of function ‘log2f’
Orange/classification/_simple_tree.c:80: warning: incompatible implicit declaration of built-in function ‘log2f’
Orange/classification/_simple_tree.c:84: warning: incompatible implicit declaration of built-in function ‘log2f’
Orange/classification/_simple_tree.c: At top level:
Orange/classification/_simple_tree.c:744: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_simple_tree_module’
Orange/classification/_simple_tree.c: In function ‘PyInit__simple_tree’:
Orange/classification/_simple_tree.c:755: warning: implicit declaration of function ‘PyModule_Create’
Orange/classification/_simple_tree.c:755: error: ‘_simple_tree_module’ undeclared (first use in this function)
Orange/classification/_simple_tree.c:755: error: (Each undeclared identifier is reported only once
Orange/classification/_simple_tree.c:755: error: for each function it appears in.)
Orange/classification/_simple_tree.c:757: warning: ‘return’ with a value, in function returning void
Orange/classification/_simple_tree.c:758: warning: ‘return’ with a value, in function returning void
Orange/classification/_simple_tree.c: In function ‘entropy’:
Orange/classification/_simple_tree.c:80: warning: implicit declaration of function ‘log2f’
Orange/classification/_simple_tree.c:80: warning: incompatible implicit declaration of built-in function ‘log2f’
Orange/classification/_simple_tree.c:84: warning: incompatible implicit declaration of built-in function ‘log2f’
Orange/classification/_simple_tree.c: At top level:
Orange/classification/_simple_tree.c:744: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_simple_tree_module’
Orange/classification/_simple_tree.c: In function ‘PyInit__simple_tree’:
Orange/classification/_simple_tree.c:755: warning: implicit declaration of function ‘PyModule_Create’
Orange/classification/_simple_tree.c:755: error: ‘_simple_tree_module’ undeclared (first use in this function)
Orange/classification/_simple_tree.c:755: error: (Each undeclared identifier is reported only once
Orange/classification/_simple_tree.c:755: error: for each function it appears in.)
Orange/classification/_simple_tree.c:757: warning: ‘return’ with a value, in function returning void
Orange/classification/_simple_tree.c:758: warning: ‘return’ with a value, in function returning void
error: Command "gcc44 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ilan/minonda/envs/_build/lib/python2.7/site-packages/numpy/core/include -I/home/ilan/minonda/envs/_build/include/python2.7 -c Orange/classification/_simple_tree.c -o build/temp.linux-x86_64-2.7/Orange/classification/_simple_tree.o" failed with exit status 1

Have you seen this? This is Centos 5.8 (64-bit) running gcc 4.4.7

ales-erjavec commented 8 years ago

Orange3 only works/compiles with python 3.

ales-erjavec commented 8 years ago

I tried putting a version dependency on requirements/build/python but then conda build would drop the py3{4,5} from the resulting .tar.bz2 package filename.

ilanschnell commented 8 years ago

Ah, thanks for the update. I thought the "3" in Orange3 referred to the Orange versions (not the Python version).

One should not add more specific version information to the python build/run requirement in a meta.yaml file. A recipe is generally for all versions of Python, but if you want to make clear that only Python 3 is supported, I would add the following to build.sh:

if [ $PY3K == 0 ]; then
    echo "This packages only supports Python 3"
    exit 1
fi