I'm attempting to build this external package with conda.
This is a large C++ framework used in particle physics. It has a Python binding which I'm trying to integrate into my build system.
package:
name: root
version: "6.06.02"
source:
fn: root_v6.06.02.source.tar.gz
requirements:
build:
- python
--
The build.sh is pretty simple and just consists of the following:
--
./configure --prefix=$PREFIX
make install
--
The download and compilation step seems to work fine.
But I'm having some trouble at the step where conda tries to replace the build prefix with the installation dir.
I get this cryptic traceback from the build:
updating shebang: bin/rootbrowse
[...]
Traceback (most recent call last):
File "/work/conda-build/miniconda/bin/conda-build", line 5, in <module>
sys.exit(main())
File "/work/conda-build/miniconda/lib/python2.7/site-packages/conda_build/main_build.py", line 208, in main
args_func(args, p)
File "/work/conda-build/miniconda/lib/python2.7/site-packages/conda_build/main_build.py", line 493, in args_func
args.func(args, p)
File "/work/conda-build/miniconda/lib/python2.7/site-packages/conda_build/main_build.py", line 438, in execute
include_recipe=args.include_recipe)
File "/work/conda-build/miniconda/lib/python2.7/site-packages/conda_build/build.py", line 515, in build
post_build(m, sorted(files2 - files1))
File "/work/conda-build/miniconda/lib/python2.7/site-packages/conda_build/post.py", line 332, in post_build
fix_shebang(f, osx_is_app=osx_is_app)
File "/work/conda-build/miniconda/lib/python2.7/site-packages/conda_build/post.py", line 76, in fix_shebang
fo.write(new_data)
TypeError: must be unicode, not str
When installed normally outside of conda the 'bin/rootbrowse' file is just a short Python script. But here when I look in the build directory, 'bin/rootbrowse' ends up as an empty file with size 0, presumably because conda has clobbered its contents somehow.
Now I'm not sure this is problem with Conda itself (probably not), but I'm unable to determine here what is happening such that this file cannot be processed correctly. There's nothing really special about it. In fact, the file doesn't even contain the build prefix, so it could be skipped entirely! (something which I don't know how to do)
Here's my relevant conda env:
[1019 $] conda info
Current conda install:
platform : linux-64
conda version : 4.0.5
conda-build version : 1.20.1
python version : 2.7.11.final.0
requests version : 2.9.1
[..]
config file : None
is foreign system : False
Can anyone give me some clues here as to what might be going on so that Conda chokes on this file during the substitution of the install prefix into text files?
Is there any way to skip certain files during this step? If so I could not find it in the docs.
Any way to turn on extra debugging info so I can get more details about what conda is doing here?
Thanks.
--Jeremy