mirror of
https://github.com/systemd/systemd.git
synced 2024-11-23 18:23:32 +08: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 944faf6598
)
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…
Reference in New Issue
Block a user