Yesterday I achieved what the majority of subscribers to this forum seem have no trouble doing: namely compiling dt - in this case version 4.4.1. It all seems to work fine to me (which is hardly a definitive test, though, is it?). But I continue to be disturbed by the advice at darktable.org:
“As always, please don’t use the autogenerated tarball provided by github, but only our tar.xz file.”.
It bothers me that I download the tar.xz file as advised, but as a result of following the build instructions in the readme file on github, I seem to do nothing with this source file and do not see where a tarball provided by github’ appears in the process. That process is based on the instruction in Section 7 of the readme, sub-section “get the source, Latest Stable Release, 4.4.1”. There I find the commands
I assume this fetches the source of dt 4.4.1. so what do I do with the tar,xz file and how, exactly, do I avoid using the github tarball ? And have I a produced a valid build ?
You can use either a clone of the git repository (which is what you have done), or use the tar.xz file.
After the serie of git commands you used, you can start the build. If you follow this route, you do not need the tar.xz file.
If you want to use the tar.xz, you’ll have to unpack it first (tar xvf darktable<version>.tar.xz) before you can start the build.
In the situation you described, both should give you the same (valid) end result.
With the tar.xz file, you’re sure to have a published version, but you have no access to development versions (with all the potential risks of problems those entail).
But you need git installed. As I see it, git is useful if you want to make a habit of compiling your own version, or want to use development versions. If you are just doing an occasional build, the tar file is just as good.
The auto-generated tar from GitHub simply does not contain all the required source code to build a feature complete darktable.
Other software components are referenced as so called “sub-modules” and these are not included in the tar. GitHhub generates the tar using the git archive command and that does not support inclusion of sub-modules.
The provided git commands will assemble all the source coded needed, including the sub-modules.
Yeah, whenever a developer makes a github release for their software, github tries to be helpful and makes a source code tarball of what it thinks is needed to use the code. It largely is not helpful however, other files are needed to provide all the scripts necessary to work through a source-code build.
At my repo for rawproc, here’s the release page for 1.3:
The bottom two release files, called 'SourceCode.zip and SourceCode.tar.gz, are the github-generated files. The source code file I make is the one right above it, rawproc-1.3.tar.gz; unzipping it lays out everything you need to follow the build instructions.
If you don’t see a tarball, then all is pretty fine - you don’t need to see something that’s not recommended to use if you don’t have an idea how to deal with it
Yes, I think that is what I need to do, so that I don’t have to reply on others to build each new release of dt, the delay in which cause me to create a regrettable and dis-respectful post on this forum complaining that there is no binary for my version of Linux.
I imply from your other comments that my build of dt 4.4.1 is possibly valid - which gives me a great sense of relief, so I can continue using it. Thanks for the analysis and advice.