build: Preserve upstream git versioning using meson dist

When distributions build and package libcamera libraries, they may not
necessarily run the build in the upstream source tree. In these cases, the git
SHA1 versioning information will be lost.

This change addresses that problem by requiring package managers to run
'meson dist' to create a tarball of the source files and build from there.
On runing 'meson dist', the utils/run-dist.sh script will create a
.tarball-version file in the release tarball with the version string generated
from the existing utils/gen-version.sh script.

The utils/gen-version.sh script has been updated to check for the presence of
this .tarball-version file and read the version string from it instead of
creating one.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2021-10-18 10:29:42 +01:00 committed by Laurent Pinchart
parent 54637a615d
commit db39cc7698
3 changed files with 23 additions and 0 deletions

View file

@ -6,6 +6,15 @@
build_dir="$1"
src_dir="$2"
# If .tarball-version exists, output the version string from the file and exit.
# This file is auto-generated on a 'meson dist' command from the run-dist.sh
# script.
if [ -n "$src_dir" ] && [ -f "$src_dir"/.tarball-version ]
then
cat "$src_dir"/.tarball-version
exit 0
fi
# Bail out if the directory isn't under git control
git_dir=$(git rev-parse --git-dir 2>&1) || exit 1

11
utils/run-dist.sh Normal file
View file

@ -0,0 +1,11 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
#
# On a meson dist run, generate the version string and store it in a file.
# This will later be picked up by the utils/gen-version.sh script and used
# instead of re-generating it. This way, if we are not building in the upstream
# git source tree, the upstream version information will be preserved.
cd "$MESON_SOURCE_ROOT" || return
./utils/gen-version.sh > "$MESON_DIST_ROOT"/.tarball-version