conda-forge / conda-forge/conda-forge.github.io

Dependencies on libraries

Open
#23 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
170
Forks
320
Avg merge
2d 10h
Merged PRs (30d)
5

Description

What should the policies be about dependencies on libs?

Key question: what system libs can be depended on.

Secondary question -- what should be done with libs needed:
- statically link ?
- ship dll, so, etc with package
- provide separate packge for lib (dll, so, etc.)

@JanSchulz wrote (in issue #16 ) (with my comments):

> IMO: Linux: xserver but nothing else?

Plus the core libc of course -- essentially what Anaconda is built on .

> Windows: no extra installed packages but the MS compilers, e.g. repackage r-tools and libswhich are > needed (tk, ...). No special libpath locations (old mpl recipe in conda-recipes),

+1

> no extra installations of dependencies (e.g. python-igraph needs igraph (c lib) as dependency).

I don't get this -- did python-igraph require that you separately install igraph?

> This would mean that we have to put c libs into the same conda channel as the python libs.

Yes -- that is definitely what should be done. If you are packaging a python wrapper around alib, the lib itself should be provided as a conda package.

> Also interesting: what to compile in as a static dependency: I have the feeling that on windows pretty
> much everything is included in the final package and not used via a dll file...

yeah, it's looking that way -- I assumed that part of the POINT of conda was to be abel to provide libs that various packages could use. But I've been wrestling with this -- having to hack in a change to the PATH environment variable at run time -- ugly! But conda may have fixed this -- I think the LIbrary dir is now added to path in miniconda/anaconda -- but I haven't tested yet.

But if it can work, I think we should prefer that libs are installed as dlls by a separate package -- that way they can be used by multiple other packages. But statically link if it really is a only for this package lib.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.