Here you are:
[stasis] jade ~ $ cd .local/git/
[stasis] jade ~/.local/git $ mv darktable darktable.ORG
[stasis] jade ~/.local/git $ git clone https://github.com/darktable-org/darktable.git
Cloning into 'darktable'...
.
.
[stasis] jade ~/.local/git $ cd darktable
[stasis] jade ~/.local/git/darktable $ git checkout release-3.4.1.1
Note: checking out 'release-3.4.1.1'.
.
.
HEAD is now at 3641764ed Revert "use dt_free_align for aligned memory, as free only works correctly on Linux"
[stasis] jade ~/.local/git/darktable $ git submodule init
.
.
[stasis] jade ~/.local/git/darktable $ git submodule update
.
.
[stasis] jade ~/.local/git/darktable $ ./build.sh
darktable build script
Building directory: /home/jade/.local/git/darktable/build
Installation prefix: /opt/darktable
Build type: RelWithDebInfo
Build generator: Unix Makefiles
Build tasks: 12
.
.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jade/.local/git/darktable/build
.
.
[100%] Built target toneequal
darktable finished building.
To actually install darktable you need to type:
$ cmake --build "/home/jade/.local/git/darktable/build" --target install -- -j12
[stasis] jade ~/.local/git/darktable $ ./build/bin/darktable --version
this is darktable 3.4.1.1
Works for me.
I do think that these 2 should be switched, though:
git checkout release-3.4.1.1
git submodule init
But as you can see from my above output it does work when using your order.