darktable
darktable copied to clipboard
builds on conda-forge
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
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
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".
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.
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.
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.
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 :)
@MStraeten @kmilos @TurboGit as far as I can see you do not execute any unit tests in the build.sh. Am I overlooking something?
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 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.
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.