summaryrefslogtreecommitdiffstats
path: root/debian/patches/0003-Do-not-use-git-to-derive-version-information.patch
diff options
context:
space:
mode:
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.patch88
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.")