conda-build fails to recognise libraries
I am trying to build a package using conda-build. This is my first time trying to build a conda package, and I am having far more problems than I expected too.
Here is my build.sh
CMAKE_PLATFORM_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE="${RECIPE_DIR}/cross-linux.cmake")
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$PREFIX ${CMAKE_PLATFORM_FLAGS[@]} .
make
cp surveyor.py random_pos_generator.py $PREFIX/bin/
cp add_filtering_info call_insertions clip_consensus_builder dc_remapper filter nor开发者_如何学编程malise reads_categorizer $PREFIX/bin/
And here is my meta.yaml:
{% set name = "insurveyor" %}
{% set version = "1.0.1" %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
url: https://github.com/kensung-lab/INSurVeyor/archive/refs/tags/1.0.2.tar.gz
sha256: 33c85157892d3256abc96bb2a9053f05da9dcf55befeed720e965577db0b78b5
build:
skip: True # [not linux]
number: 0
requirements:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- cmake >=3.5
- autoconf ==2.69
host:
- libcurl
- bzip2
- xz
- zlib
- libdeflate
- openssl
- htslib >=1.13
run:
- python
- numpy >=1.21.2
test:
source_files:
- demo/
about:
home: https://github.com/kensung-lab/INSurVeyor
summary: 'An insertion caller for Illumina paired-end WGS data.'
description: XXX
license: GPL-3.0-only
license_file: LICENSE
extra:
recipe-maintainers:
- Mesh89
And here is the output of the process:
https://justpaste.it/3gfzf
(stack overflow would think the log is spam)
There are plenty of worrying messages, for example:
Warning: rpath /home/user/anaconda3/conda-bld/insurveyor_1670384223059/_build_env/lib is outside prefix /home/user/anaconda3/conda-bld/insurveyor_1670384223059/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ (removing it)
Unknown format
WARNING :: Failed to get_static_lib_exports(/home/user/anaconda3/conda-bld/insurveyor_1670384223059/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/libssl.a)
Unknown format
Binary doesn't have a program header
When I try to run any executable, I get
symbol lookup error: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0
I have spent a long time trying to figure out what is wrong and I am completely lost. When I google the warning/error messages, I cannot find any results. I wonder if there is something fundamental that I misunderstand about the build process. For example, why does conda complain about the rpath of the executables pointing to the build environment? Why those "Unknown format" warnings regarding the static libraries?
精彩评论