-
Notifications
You must be signed in to change notification settings - Fork 923
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #15163 from rgacogne/dnsdist-meson-dist
dnsdist: Generate tarballs via `meson dist`
- Loading branch information
Showing
6 changed files
with
150 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
#!/bin/sh | ||
if [ ! -z "${BUILDER_VERSION}" ]; then | ||
printf ${BUILDER_VERSION} | ||
exit 0 | ||
fi | ||
|
||
VERSION="unknown" | ||
|
||
DIRTY="" | ||
git status | grep -q clean || DIRTY='.dirty' | ||
|
||
# Special environment variable to signal that we are building a release, as this | ||
# has consequences for the version number. | ||
if [ "${IS_RELEASE}" = "YES" ]; then | ||
TAG="$(git describe --tags --exact-match 2> /dev/null | cut -d- -f 2-)" | ||
if [ -n "${TAG}" ]; then | ||
# We're on a tag | ||
echo "${TAG}${DIRTY}" > .version | ||
printf "${TAG}${DIRTY}" | ||
exit 0 | ||
fi | ||
echo 'This is not a tag, either tag this commit or do not set $IS_RELEASE' >&2 | ||
exit 1 | ||
fi | ||
|
||
# | ||
# Generate the version number based on the branch | ||
# | ||
if [ ! -z "$(git rev-parse --abbrev-ref HEAD 2> /dev/null)" ]; then | ||
if [ -n "${BUILDER_MODULES}" ]; then | ||
match=${BUILDER_MODULES} | ||
[ $match = "authoritative" ] && match='auth' | ||
[ $match = "recursor" ] && match='rec' | ||
GIT_VERSION="$(git describe --match=${match}-* --tags | cut -d- -f2-)" | ||
if [ $(echo ${GIT_VERSION} | awk -F"-" '{print NF-1}') = '3' ]; then | ||
# A prerelease happened before | ||
LAST_TAG="$(echo ${GIT_VERSION} | cut -d- -f1-2)" | ||
COMMITS_SINCE_TAG="$(echo ${GIT_VERSION} | cut -d- -f3)" | ||
GIT_HASH="$(echo ${GIT_VERSION} | cut -d- -f4)" | ||
elif [ $(echo ${GIT_VERSION} | awk -F"-" '{print NF-1}') = '1' ]; then | ||
# Exactly on a pre-release | ||
LAST_TAG="$(echo ${GIT_VERSION} | cut -d- -f1-2)" | ||
else | ||
LAST_TAG="$(echo ${GIT_VERSION} | cut -d- -f1)" | ||
COMMITS_SINCE_TAG="$(echo ${GIT_VERSION} | cut -d- -f2)" | ||
GIT_HASH="$(echo ${GIT_VERSION} | cut -d- -f3)" | ||
fi | ||
fi | ||
|
||
if [ -z "${GIT_VERSION}" ]; then | ||
# BUILDER_SUPPORT has more than one product listed, fall back to the 0.0.0 logic | ||
|
||
# We used 0.0.XXXXgHASH for master in the previous incarnation of our build pipeline. | ||
# This now becomes 0.0.XXXX.0.gHASH, as 0.0.0.XXXX.gHASH (which is more correct) | ||
# would break upgrades for those running master | ||
# This _should_ be ok for forever if we stick to X.Y.Z for version numbers | ||
LAST_TAG=0.0 | ||
COMMITS_SINCE_TAG="$(git rev-list --count 12c868770afc20b6cc0da439d881105151d557dd..HEAD 2> /dev/null).0" | ||
[ "${COMMITS_SINCE_TAG}" = ".0" ] && COMMITS_SINCE_TAG=0.0 | ||
GIT_HASH="g$(git rev-parse HEAD | cut -c1-10 2> /dev/null)" | ||
fi | ||
|
||
BRANCH=".$(git rev-parse --abbrev-ref HEAD | perl -p -e 's/[^[:alnum:]]//g;')" | ||
|
||
TAG="$(git describe --tags --exact-match 2> /dev/null | cut -d- -f 2-)" | ||
if [ -n "${TAG}" ]; then # We're exactly on a tag | ||
COMMITS_SINCE_TAG="0" | ||
GIT_HASH="g$(git show --no-patch --format=format:%h HEAD 2>/dev/null)" | ||
if [ -z "$GIT_HASH" ]; then | ||
GIT_HASH="g$(git show --format=format:%h HEAD | head -n1)" | ||
fi | ||
fi | ||
|
||
VERSION="${LAST_TAG}.${COMMITS_SINCE_TAG}${BRANCH}.${GIT_HASH}${DIRTY}" | ||
fi | ||
|
||
printf $VERSION |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#!/bin/sh -e | ||
|
||
echo Running meson-dist-script | ||
echo PWD=$(pwd) | ||
echo MESON_SOURCE_ROOT=$MESON_SOURCE_ROOT | ||
echo MESON_PROJECT_DIST_ROOT=$MESON_PROJECT_DIST_ROOT | ||
|
||
cd "$MESON_PROJECT_DIST_ROOT" | ||
|
||
# Get all symlinks | ||
symlinks=$(find . -type l) | ||
|
||
# If these two get out-of-sync, fix it! It used to be a symlink but that can no longer be as we are | ||
# working with a partial checkout in the dist root dir. | ||
cmp "$MESON_SOURCE_ROOT"/../../builder-support/gen-version "$MESON_PROJECT_DIST_ROOT"/builder-support/gen-version | ||
|
||
# Get the dereffed symbolic links (the actual files being pointed to) from the source dir | ||
# Extract them over the existing symbolic links | ||
tar -C "$MESON_SOURCE_ROOT" -hcf - $symlinks | tar -xf - -C "$MESON_PROJECT_DIST_ROOT" | ||
|
||
# Run autoconf for people using autotools to build, this creates a configure script with VERSION set | ||
echo Running autoreconf -vi so distfile is still usable for autotools building | ||
# Run autoconf for people using autotools to build, this creates a configure sc | ||
autoreconf -vi | ||
|
||
# Generate man pages | ||
cd "$MESON_PROJECT_BUILD_ROOT" | ||
meson compile man-pages | ||
cp -vp *.1 "$MESON_PROJECT_DIST_ROOT" | ||
|
||
rm -rf "$MESON_PROJECT_DIST_ROOT"/autom4te.cache | ||
|
||
# Generate a few files to reduce build dependencies | ||
echo 'If the below command generates an error, remove dnslabeltext.cc from source dir (remains of an autotools build?) and start again with a clean meson setup' | ||
ninja libdnsdist-dnslabeltext.a.p/dnslabeltext.cc | ||
cp -vp libdnsdist-dnslabeltext.a.p/dnslabeltext.cc "$MESON_PROJECT_DIST_ROOT" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../recursordist/version.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters