Channels and generating an index

Creating custom channels

create baw package
build.sh

#!/bin/bash

export C_INCLUDE_PATH=${PREFIX}/include
export LIBRARY_PATH=${PREFIX}/lib

make CFLAGS="${CFLAGS} -fcommon"
mkdir -p $PREFIX/bin
mkdir -p $PREFIX/share/man/man1
cp bwa $PREFIX/bin
cp xa2multi.pl $PREFIX/bin
cp qualfa2fq.pl $PREFIX/bin
cp bwa.1 $PREFIX/share/man/man1

Makefile.patch

diff --git a/Makefile b/Makefile
index 7151435..2f0a4fe 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,9 @@
-CC=			gcc
+#CC=			gcc
 #CC=			clang --analyze
 CFLAGS=		-g -Wall -Wno-unused-function -O2
 WRAP_MALLOC=-DUSE_MALLOC_WRAPPERS
 AR=			ar
-DFLAGS=		-DHAVE_PTHREAD $(WRAP_MALLOC)
+DFLAGS=		-DHAVE_PTHREAD $(WRAP_MALLOC) $(LDFLAGS)
 LOBJS=		utils.o kthread.o kstring.o ksw.o bwt.o bntseq.o bwa.o bwamem.o bwamem_pair.o bwamem_extra.o malloc_wrap.o \
 			QSufSort.o bwt_gen.o rope.o rle.o is.o bwtindex.o
 AOBJS=		bwashm.o bwase.o bwaseqio.o bwtgap.o bwtaln.o bamlite.o \

meta.yaml

{% set version = "0.7.17" %}
{% set sha256 = "980b9591b61c60042c4a39b9e31ccaad8d17ff179d44d347997825da3fdf47fd" %}

package:
  name: bwa
  version: {{ version }}

source:
  url: https://github.com/lh3/bwa/archive/v{{ version }}.tar.gz
  sha256: {{ sha256 }}
  patches:
    - Makefile.patch

build:
  number: 9

requirements:
  build:
    - make
    - {{ compiler('c') }}
  host:
    - zlib
  run:
    - zlib
    - perl

test:
  commands:
    - bwa 2>&1 | grep "index sequences in the"
    - which xa2multi.pl
    - which qualfa2fq.pl

about:
  home: https://github.com/lh3/bwa
  license: GPL3
  license_file: COPYING
  summary: The BWA read mapper.

extra:
  identifiers:
    - biotools:bwa
    - usegalaxy-eu:bwa_mem
    - usegalaxy-eu:bwa
TEST END: /home/wangyang/anaconda3/conda-bld/linux-64/bwa-0.7.17-h9bf148f_9.tar.bz2
Renaming work directory '/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work' to '/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work_moved_bwa-0.7.17-h9bf148f_9_linux-64_main_build_loop'
INFO:conda_build.utils:Renaming work directory '/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work' to '/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work_moved_bwa-0.7.17-h9bf148f_9_linux-64_main_build_loop'
shutil.move(work)=/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work, dest=/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work_moved_bwa-0.7.17-h9bf148f_9_linux-64_main_build_loop)
INFO:conda_build.utils:shutil.move(work)=/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work, dest=/home/wangyang/anaconda3/conda-bld/bwa_1660108670742/work_moved_bwa-0.7.17-h9bf148f_9_linux-64_main_build_loop)
# Automatic uploading is disabled
# If you want to upload package(s) to anaconda.org later, type:


# To have conda build upload to anaconda.org automatically, use
# conda config --set anaconda_upload yes
anaconda upload \
    /home/wangyang/anaconda3/conda-bld/linux-64/bwa-0.7.17-h9bf148f_9.tar.bz2
anaconda_upload is not set.  Not uploading wheels: []

INFO :: The inputs making up the hashes for the built packages are as follows:
{
  "bwa-0.7.17-h9bf148f_9": {
    "recipe": {
      "c_compiler": "gcc",
      "target_platform": "linux-64"
    }
  }
}


####################################################################################
Resource usage summary:

Total time: 0:01:33.8
CPU usage: sys=0:00:00.1, user=0:00:00.4
Maximum memory usage observed: 54.6M
Total disk usage observed (not including envs): 2.4K


####################################################################################
Source and build intermediates have been left in /home/wangyang/anaconda3/conda-bld.
There are currently 25 accumulated.
To remove them, you can run the ```conda build purge``` command
$ mkdir local-channel
$ cd local-channel
$ mkdir linux-64 osx-64
conda index .
p /home/wangyang/anaconda3/conda-bld/linux-64/bwa-0.7.17-h9bf148f_9.tar.bz2 noarch/
conda index .
conda search -c file:///home/wangyang/local-channel --override-channels bwa
els bwa
Loading channels: done
# Name                       Version           Build  Channel             
bwa                           0.7.17      h9bf148f_9  local-channel
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: - 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package zlib conflicts for:
bwa -> zlib[version='>=1.2.12,<1.3.0a0']
python=3.9 -> zlib[version='>=1.2.11,<1.3.0a0']

Package libgcc-ng conflicts for:
bwa -> libgcc-ng[version='>=11.2.0']
bwa -> zlib[version='>=1.2.12,<1.3.0a0'] -> libgcc-ng[version='>=7.5.0']The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.31=0
  - feature:|@/linux-64::__glibc==2.31=0
  - python=3.9 -> libgcc-ng[version='>=7.5.0'] -> __glibc[version='>=2.17']

Your installed version is: 2.31

Developing a build strategy

conda install gxx_linux-64

conda-build recipeDirectory

We set these variables in conda activate.d scripts, so any environment in which you will use the compilers must first be activated so the scripts will run. Conda-build does this activation for you using activation hooks installed with the compiler packages in CONDA_PREFIX/etc/conda/activate.d, so no additional effort is necessary.

conda skeleton pypi --extra-specs cython sep   --python-version 3.6

Defining metadata (meta.yaml)

Python entry points

build:
  entry_points:
    - bsdiff4 = bsdiff4.cli:main_bsdiff4
    - bspatch4 = bsdiff4.cli:main_bspatch4

build package

Building conda packages with conda skeleton

{% set version = "1.2.1" %}

package:
  name: sep
  version: {{ version }}

source:
  url: https://pypi.io/packages/source/s/sep/sep-{{ version }}.tar.gz
  sha256: 1b6a36a554b3b315a9a96d19159f1ae39d9dad75bef510b1dc084c5aa9a4489b

build:
  number: 0
  script: {{ PYTHON }} -m pip install . --no-deps -vv

requirements:
  build:
    - python                                 # [build_platform != target_platform]
    - cross-python_{{ target_platform }}     # [build_platform != target_platform]
    - cython                                 # [build_platform != target_platform]
    - numpy                                  # [build_platform != target_platform]
    - {{ compiler('c') }}
  host:
    - python
    - pip
    - numpy
    - cython
  run:
    - python
    - {{ pin_compatible('numpy') }}

test:
  imports:
    - sep

about:
  home: https://github.com/kbarbary/sep
  license: LGPL-3.0-or-later
  license_family: LGPL
  license_file: licenses/LGPL_LICENSE.txt
  summary: Astronomical source extraction and photometry library
  description: |
    SEP makes the core algorithms of Source Extractor available as a
    library of stand-alone functions and classes. These operate directly
    on in-memory arrays (no FITS files or configuration files). The code
    is derived from the Source Extractor code base (written in C) and aims
    to produce results compatible with Source Extractor whenever possible.
  doc_url: http://sep.readthedocs.io/
  dev_url: https://github.com/kbarbary/sep

extra:
  recipe-maintainers:
    - kbarbary
    - mwcraig

Building conda packages from scratch

package:
  name: click
  version: 7.0

source:
        #  git_rev: https://github.com/pallets/click.git
  git_url: https://github.com/pallets/click.git

requirements:
  build:
    - python
    - setuptools

  run:
    - python

test:
  imports:
    - click

about:
  home: https://github.com/pallets/click