diff options
Diffstat (limited to 'debian/patches/0003-Do-not-use-git-to-derive-version-information.patch')
-rw-r--r-- | debian/patches/0003-Do-not-use-git-to-derive-version-information.patch | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/debian/patches/0003-Do-not-use-git-to-derive-version-information.patch b/debian/patches/0003-Do-not-use-git-to-derive-version-information.patch new file mode 100644 index 0000000..27b065f --- /dev/null +++ b/debian/patches/0003-Do-not-use-git-to-derive-version-information.patch @@ -0,0 +1,88 @@ +From: Daniel Kahn Gillmor <dkg@fifthhorseman.net> +Date: Wed, 21 Jun 2023 11:28:38 -0400 +Subject: Do not use git to derive version information + +For debian, we want the versioning to come from the tarball, whether +or not it's being built from a git repository. + +Forwarded: not-needed +--- + cmake/version.cmake | 58 ----------------------------------------------------- + 1 file changed, 58 deletions(-) + +diff --git a/cmake/version.cmake b/cmake/version.cmake +index 41287e4..511d56f 100644 +--- a/cmake/version.cmake ++++ b/cmake/version.cmake +@@ -19,21 +19,6 @@ + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + # + +-# desired length of commit hash +-set(GIT_REV_LEN 7) +- +-# call git, store output in var (can fail) +-macro(_git var) +- execute_process( +- COMMAND "${GIT_EXECUTABLE}" ${ARGN} +- WORKING_DIRECTORY "${source_dir}" +- RESULT_VARIABLE _git_ec +- OUTPUT_VARIABLE ${var} +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ERROR_QUIET +- ) +-endmacro() +- + function(extract_version_info version var_prefix) + # extract the main components + # v1.9.0-3-g5b92266+1546836556 +@@ -79,49 +64,6 @@ function(determine_version source_dir var_prefix) + else() + message(STATUS "Found no version.txt.") + endif() +- # for GIT_EXECUTABLE +- find_package(Git) +- # get a description of the version, something like: +- # v1.9.1-0-g38ffe82 (a tagged release) +- # v1.9.1-0-g38ffe82-dirty (a tagged release with local modifications) +- # v1.9.0-3-g5b92266 (post-release snapshot) +- # v1.9.0-3-g5b92266-dirty (post-release snapshot with local modifications) +- _git(version describe --abbrev=${GIT_REV_LEN} --match "v[0-9]*" --long --dirty) +- if (NOT _git_ec EQUAL 0) +- # no annotated tags, fake one +- message(STATUS "Found no annotated tags.") +- _git(revision rev-parse --short=${GIT_REV_LEN} --verify HEAD) +- if (_git_ec EQUAL 0) +- set(version "v${base_version}-0-g${revision}") +- # check if dirty (this won't detect untracked files, but should be ok) +- _git(changes diff-index --quiet HEAD --) +- if (NOT _git_ec EQUAL 0) +- string(APPEND version "-dirty") +- endif() +- # append the commit timestamp of the most recent commit (only +- # in non-release branches -- typically master) +- _git(commit_timestamp show -s --format=%ct) +- if (_git_ec EQUAL 0) +- string(APPEND version "+${commit_timestamp}") +- endif() +- elseif(has_version_txt) +- # Nothing to get from git - so use version.txt completely +- set(version "${version_file}") +- else() +- # Sad case - no git, no version.txt +- set(version "v${base_version}") +- endif() +- else() +- set(has_release_tag YES) +- message(STATUS "Found annotated tag ${version}") +- endif() +- extract_version_info("${version}" "${local_prefix}") +- if ("${has_version_txt}" AND NOT ${base_version} STREQUAL ${local_prefix}_VERSION) +- message(WARNING "Tagged version ${${local_prefix}_VERSION} doesn't match one from the version.txt: ${base_version}") +- if (${base_version} VERSION_GREATER ${local_prefix}_VERSION) +- set(${local_prefix}_VERSION ${base_version}) +- endif() +- endif() + foreach(suffix VERSION VERSION_NCOMMITS VERSION_GIT_REV VERSION_IS_DIRTY VERSION_COMMIT_TIMESTAMP) + if (NOT DEFINED ${local_prefix}_${suffix}) + message(FATAL_ERROR "Unable to determine version.") |