mirror of
https://github.com/systemd/systemd.git
synced 2025-03-30 10:50:15 +03:00
Make vcs-tag do something useful for non-developer mode as well
When building packages of arbitrary commits of systemd-stable, distributors might want to include a git sha of the exact commit they're on. Let's extend vcs-tag a little to make this possible. If we're on a commit matching a tag, don't generate a git sha at all. If we're not on a commit matching a tag, generate a vcs tag as usually. However, if we're not in developer mode, don't append a '^' if the tree is dirty to accomodate package builds applying various patches to the tree which shouldn't be considered as "dirty" edits. (cherry picked from commit 944faf65986f36d7ed3a4ba5cb4cc763011f0f77)
This commit is contained in:
parent
5b9ad0bbb8
commit
1922d49fd6
@ -1995,14 +1995,11 @@ endif
|
||||
conf.set_quoted('VERSION_TAG', version_tag)
|
||||
|
||||
vcs_tag = get_option('vcs-tag')
|
||||
command = ['sh', '-c',
|
||||
vcs_tag and fs.exists(project_source_root / '.git') ?
|
||||
'echo "-g$(git -C . describe --abbrev=7 --match="" --always --dirty=^)"' : ':']
|
||||
version_h = vcs_tag(
|
||||
input : 'src/version/version.h.in',
|
||||
output : 'version.h',
|
||||
fallback : '',
|
||||
command : command,
|
||||
command : [vcs_tag ? 'tools/vcs-tag.sh' : 'true', get_option('mode')],
|
||||
)
|
||||
|
||||
shared_lib_tag = get_option('shared-lib-tag')
|
||||
|
17
tools/vcs-tag.sh
Executable file
17
tools/vcs-tag.sh
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
MODE="$1"
|
||||
|
||||
if ! [[ -d .git ]] || git describe --tags --exact-match &>/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$MODE" == "developer" ]]; then
|
||||
DIRTY="--dirty=^"
|
||||
else
|
||||
DIRTY=""
|
||||
fi
|
||||
|
||||
echo "-g$(git describe --abbrev=7 --match="" --always $DIRTY)"
|
Loading…
x
Reference in New Issue
Block a user