wtsi-npg / npg_conda

NPG Conda recipes and tools
1 stars 15 forks source link

Add iRODS 4.2.8 #231

Closed kjsanger closed 3 years ago

kjsanger commented 3 years ago

Add avrocpp 1.9.0 Add json 3.9.1 Add krb5 1.19.1 Add libarchive 3.5.1 Add nanodbc 2.13.0

The iRODS recipe builds three packages:

irods-runtime (libraries) irods-dev (headers and libraries, depends on irods-runtime) irods-icommands (clients, depends on irods-runtime)

The strategy used is to prevent the build using hard-coded places for tools or dependencies i.e. irods/externals, which would prevent us from using the existing Conda tools to build a portable package.

By adding CMake install targets for the development headers and libraries, we can install libraries, headers and executables directly into the Conda build $PREFIX path. Conda then does the work of creating packages, without the need for us to write custom tools. The CPack outputs are still created by the build, but are discarded.

The supporting recipes for the necessary dependencies allow us to avoid using the conda-forge channel at deployment time. The packages depend only on the Anaconda defaults channel and our own packages. This helps us to avoid the slow dependency solving that Conda is known for.

The conda-forge channel is required at build time because we obtain Clang from it. Ideally, we would use Conda's GCC to build, but that would require more extensive modification of the CMake configuration.

kjsanger commented 3 years ago

Work still TBD is to check the build numbers as some were incremented during recipe development and could be reset to 0 for clarity.