CR3 metadata decoding test of feature branch on Linux

@floessie, I did all the steps besides create a pull request. I have forked RT on GitHub, checked out metadata-exiv2 in my fork and created a metadata-exiv2-update branch, where I have merged in dev.

I can create a pull request, but I deliberately did not do it. I thought my fork needed some stand alone testing first. However I do not mind executing the pull request against RT metadata-exiv2 branch, if that is the best way forward.

The fork is here: GitHub - KarlMagnusLarsson/RawTherapee: A powerful cross-platform raw photo processing program

The fork has a branch metadata-exiv2-update which contains current RT dev + metadata-exiv2.

The metadata-exiv2-update branch requires exiv2 upgraded to v0.27.5 with -DEXIV2_ENABLE_BMFF=On.

I do not get exiv2 v0.27.5 with -DEXIV2_ENABLE_BMFF=On in Debian stable 11.3 => I have to build it.

mkdir ${HOME}/test/rt_exiv2
cd ${HOME}/test/rt_exiv2

git clone https://github.com/Exiv2/exiv2.git
cd exiv2
git checkout v0.27.5
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DEXIV2_ENABLE_BMFF=On -DCMAKE_INSTALL_PREFIX="$HOME/test/rt_exiv2" ..
make --build . -j8
cmake --install . 

Make sure RT find local exiv2 library and not system version. I put this into a file rt_definitions.sh

RT_PREFIX=${HOME}/test/rt_exiv2

# Used to find programs/tools during build
export PATH="${RT_PREFIX}/bin:$PATH"

# Used to detect the build dependencies
export PKG_CONFIG_PATH="${RT_PREFIX}/share/pkgconfig:${RT_PREFIX}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"

# Used to find the glib-introspection dependencies
export XDG_DATA_DIRS="${XDG_DATA_DIRS:+$XDG_DATA_DIRS:}${RT_PREFIX}/share:/usr/local/share:/usr/share"

# Used to find the libraries at runtime
export LD_LIBRARY_PATH="${RT_PREFIX}/lib:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

arch="$(dpkg-architecture -qDEB_HOST_MULTIARCH 2> /dev/null)"
export PKG_CONFIG_PATH="${RT_PREFIX}/lib/${arch}/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="${RT_PREFIX}/lib/${arch}:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

Source definitions:

source rt_definitions.sh

Get RT metadata-exiv2-update branch:

cd ${HOME}/test/rt_exiv2

git clone https://github.com/KarlMagnusLarsson/RawTherapee

cd RawTherapee

git checkout --track  origin/metadata-exiv2-update

Build RT:

cd ${HOME}/test/rt_exiv2/RawTherapee
mkdir build
cd build

cmake \
    -DCMAKE_BUILD_TYPE="release"  \
    -DCACHE_NAME_SUFFIX="5-dev" \
    -DPROC_TARGET_NUMBER="2" \
    -DBUILD_BUNDLE="ON" \
    -DBUNDLE_BASE_INSTALL_DIR="$HOME/test/rt_exiv2/install" \
    -DOPTION_OMP="ON" \
    -DWITH_LTO="OFF" \
    -DWITH_PROF="OFF" \
    -DWITH_SAN="OFF" \
    -DWITH_SYSTEM_KLT="OFF" \
    ..

make -j8

make install

I can now run the feature branch and decode CR3 metadata (I have to make sure I have executed source rt_definitions.sh in the console I use):

cd ${HOME}/test/rt_exiv2/install
./rawtherapee