summaryrefslogtreecommitdiffstats
path: root/debian/patches/0003-Do-not-use-git-to-derive-version-information.patch
blob: 27b065f6b304b84004276c1ecdf2b2e52fc9b2f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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.")