You should be getting these OOTB - CMake already does -O3
for Release builds and dt already sets -march=native
if you don’t do -DBINARY_PACKAGE_BUILD=ON
(off by default).
Definitely not INTENTIONALLY changing anything!
I followed kofa’s advice and did:
git clean -d -f -x
git pull --rebase
git submodule update
…which got me to v4.6.0-dirty
Not sure what I did wrong. From what you guys have said, that should have got rid of the dirty flag. If anyone can see where I went wrong, sing out!
Thanks in advance.
My current prompt in the terminal looks like this:
~/Downloads/darktable/darktable #release-4.6.0 !1
I suspect that that “!1” on the end signifies 1 commit different from official, and hence the dirty flag. Is that the case?
What does git status
say?
~/Downloads/darktable/darktable #release-4.6.0 !1 git status INT ✘
HEAD detached at release-4.6.0
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: src/tests/integration (new commits)
no changes added to commit (use “git add” and/or “git commit -a”)
Yep, your tree is not in a good state, you have a mix of master branch and 4.6.0 tag. Which one do you actually want to build?
4.6.0 for now.
Then you need to actually check out that branch, and then reset to tag:
git checkout darktable-4.6.x
git reset --hard release-4.6.0
What is the status after these?
~/Downloads/darktable/darktable darktable-4.6.x ⇣15 !1 git status
On branch darktable-4.6.x
Your branch is behind ‘origin/darktable-4.6.x’ by 15 commits, and can be fast-forwarded.
(use “git pull” to update your local branch)
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: src/tests/integration (new commits)
no changes added to commit (use “git add” and/or “git commit -a”)
Working ahead here…
~/Downloads/darktable/darktable darktable-4.6.x ⇣15 !1 git pull
Updating b59cb9ada5…4de7eb2eab
Fast-forward
RELEASE_NOTES.md | 30 ++++++++++++++±--------------
src/iop/demosaic.c | 27 +++++++++++±--------------
src/iop/finalscale.c | 8 +++++±-
tools/release/generate-translation.sh | 8 +++±—
4 files changed, 37 insertions(+), 36 deletions(-)
~/Downloads/darktable/darktable darktable-4.6.x !1 git status
On branch darktable-4.6.x
Your branch is up to date with ‘origin/darktable-4.6.x’.
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: src/tests/integration (new commits)
no changes added to commit (use “git add” and/or “git commit -a”)
cd src/tests/integration
git reset --hard 8b8a87b
cd ../../..
~/Downloads/darktable/darktable darktable-4.6.x !1 cd src/test/integration
cd: no such file or directory: src/test/integration
Ahhh, we were missing the ‘s’ on testS.
BRB…
OK, done!
Ahhhh! This looks promising!
~/Downloads/darktable/darktable darktable-4.6.x
Running the build script now.
I now have v4.6.0+15~g4de7eb2eab.
Thanks for your assistance, kmilos!
This is what I do to compile and install:
Change to my darktable-git directory.
Inside I have this PKGBUILD file:
# Source: https://github.com/archlinux/svntogit-community/tree/master/darktable
# Maintainer: Bruno Pagani <archange@archlinux.org>
# Maintainer: Morten Linderud <foxboron@archlinux.org>
# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Christian Himpel <chressie at gmail dot com>
# Contributor: Johannes Hanika <hanatos at gmail dot com>
# Contributor: Rafa García <hi at rafagarcia dot net>
pkgname=darktable-git
_gitname=darktable
epoch=2
pkgver=4.7.0.22
pkgrel=1
pkgdesc="Utility to organize and develop raw images"
arch=('i686' 'x86_64')
url="git+https://darktable.org"
license=(GPL3)
depends=(pugixml libjpeg-turbo colord-gtk libgphoto2 openexr lensfun iso-codes zlib
exiv2 flickcurl openjpeg2 graphicsmagick lua osm-gps-map libsecret openmp
gmic libavif)
optdepends=('dcraw: base curve script'
'perl-image-exiftool: base curve script'
'imagemagick: base curve and noise profile scripts'
'ghostscript: noise profile script'
'portmidi: game and midi controller input devices'
'gnuplot: noise profile script')
makedepends=(git cmake intltool desktop-file-utils llvm clang portmidi python-jsonschema libwebp perl-pod-parser)
conflicts=(darktable)
provides=(darktable)
source=("git+https://github.com/darktable-org/darktable.git")
md5sums=('SKIP')
pkgver() {
cd $_gitname
git describe --long | sed 's/release-\(.*\)-\(.*\)-.*/\1.\2/' | sed 's/-/./g'
}
prepare() {
cd $_gitname
# git submodule init
git config submodule.src/tests/integration.update none
git submodule update --depth 1
git submodule update --init --recursive
}
build() {
cd $_gitname
[[ ! -d build ]] && mkdir -p build
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib \
-DCMAKE_BUILD_TYPE=Release \
-DBINARY_PACKAGE_BUILD=1 \
-DBUILD_USERMANUAL=False \
-DUSE_LIBSECRET=ON \
-DUSE_LUA=ON \
-DUSE_COLORD=ON \
-DBUILD_CURVE_TOOLS=ON \
-DBUILD_NOISE_TOOLS=ON \
-DRAWSPEED_ENABLE_LTO=ON \
-DPROJECT_VERSION=${pkgver}
make -j`grep -c '^processor' /proc/cpuinfo` -C build
}
package() {
cd $_gitname
make -C build DESTDIR=$pkgdir install
ln -s darktable/libdarktable.so "${pkgdir}"/usr/lib/libdarktable.so
}
Then, to compile, create the package and install:
makepkg -scf
sudo pacman -U darktable-git-...
If I want to directly compile, create the package and install, I use this one-liner:
makepkg -scfi
A little bit late as I see but anyway, I hope it helps you.
Now, if you ever update (pull) again, or switch (checkout) to a different branch, the key is to remember to run git submodule update --init --recursive
immediately after so the tree stays in sync.
Many thanks!