darktable icon indicating copy to clipboard operation
darktable copied to clipboard

builds on conda-forge

Open gschramm opened this issue 1 year ago • 9 comments

Is your feature request related to a problem? Please describe.

This is not a problem, but rather a suggestion / question: Would building / distributing darktable on conda-forge make life easier?
All the required dependencies seem to be on conda-forge which would allow to create a build recipe (I haven't checked all opt. dependencies). Conda-forge offer reproducible builds for linux (+cuda), windows (+cuda), and also macos (intel and silicon).

Describe the solution you'd like

Create a build recipe for darkrable on conda-forge.

Alternatives

Additional context

gschramm avatar Dec 13 '23 14:12 gschramm

maybe, maybe not - as long as no one spends the effort to do it, no one will see… it’s not about tools for packaging, it’s about maintaining

MStraeten avatar Dec 13 '23 20:12 MStraeten

true. I guess the "potential" advantage is the fact that the whol conda-forge infrastructure is highly automated which makes live easier when new verisons got released. I am willing to create a "test" recipe to see what we can build on conda-forge.

Question: Does a build with the "necessary" requirements only make sense? Or would you say that some of the optional dependencies are "more than nice to have".

gschramm avatar Dec 14 '23 12:12 gschramm

Frankly, I find the whole conda-forge infrastructure and the associated recipes and build scripts and stages overly complicated (and have no interest in supporting it), but you're welcome to experiment. Also note that the Windows build of dt is not done using MSVC (may or may not work), while most of conda-forge is. While linking to deps built w/ MSVC could/should work, but YMMV.

Or would you say that some of the optional dependencies are "more than nice to have".

Yes. If they're available/installed, they are already enabled by default.

kmilos avatar Dec 14 '23 13:12 kmilos

Question: Does a build with the "necessary" requirements only make sense? Or would you say that some of the optional dependencies are "more than nice to have".

Well better having CUPS to have the print module for example and if possible the library for avif/webp/tiff (tiff is maybe mandatory). There is probably some others to have for better user experiences.

TurboGit avatar Dec 14 '23 18:12 TurboGit

Frankly, I find the whole conda-forge infrastructure and the associated recipes and build scripts and stages overly complicated (and have no interest in supporting it), but you're welcome to experiment. Also note that the Windows build of dt is not done using MSVC (may or may not work), while most of conda-forge is. While linking to deps built w/ MSVC could/should work, but YMMV.

Or would you say that some of the optional dependencies are "more than nice to have".

Yes. If they're available/installed, they are already enabled by default.

It is true that there is a bit of a learning curve for conda-forge build eco-system, but it has the advantage that everything is very reproducible + it is "easy/clean" to specify dependencies. To get started, we could start with a linux build.

gschramm avatar Dec 14 '23 18:12 gschramm

It seems that most of the optional dependencies (e.g. cups) are already in conda-forge, so there is hope that we could build a version with most of the opt. functionalities :)

gschramm avatar Dec 14 '23 18:12 gschramm

@MStraeten @kmilos @TurboGit as far as I can see you do not execute any unit tests in the build.sh. Am I overlooking something?

gschramm avatar Dec 14 '23 19:12 gschramm

Honestly, it would be interesting to have only one build system for all platforms. Only for macOS we already have two package managers: MacPorts and Homebrew. Both are well maintained and documented in packages/macosx.

I can remember having played with Conda some years ago and I agree with @kmilos: I found it very complicated.

So this step needs to be commited by all maintainers for Windows, Linux and macOS.

zisoft avatar Dec 15 '23 07:12 zisoft

@zisoft In principle conda-forge would allow to use one build system for all platforms (various Linux architecutues, MacOS Intel + Silicon, Windows) (also allow CUDA build if ever needed ...).

As mentioned, there is a bit of a learning curve, but the people from conda-forge are very friendly, responsive and willing to help.

The crux is that all dependencies need be on conda-forge, which seems the case for all required dependencies, but not for all optional ones.

@zisoft @kmilos @MStraeten @TurboGit I am willing to invest time in the future to help with the conda-forge builds of darktable (and maybe some opt. dependencies). To verify whether new builds are functional, it would be nice to better understand how your unit tests works / which of those should be executed.

Last but not least, I am also checking whether build using git submodules are possible.

gschramm avatar Dec 15 '23 08:12 gschramm

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar Feb 14 '24 00:02 github-actions[bot]