Subject: [bug#61928] [PATCH 1/2] gnu: rnp: Update to 0.16.2.

From: Jack Hill <[email-masked]>
Date: Thu, 2 Mar 2023 23:37:12 -0500

* gnu/packages/openpgp.scm (rnp): Update to 0.16.2.
[file-name]: Use git-file-name.
[patches]: Remove.
[arguments]: Disable downloading testing inputs in #:configure-flags.
[phases]{fixes}: Remove functionality that is no longer needed.
[native-inputs]: Replace googletest-source with googletest, remove
python2.
* gnu/packages/patches/rnp-add-version.cmake.patch,
* gnu/packages/patches/rnp-disable-ruby-rnp-tests.patch,
* gnu/packages/patches/rnp-unbundle-googletest.patch: Remove files.
* gnu/local.mk (dist_patch_DATA): Remove them.
---
 gnu/local.mk                                  |   3 -
 gnu/packages/openpgp.scm                      |  39 ++--
 .../patches/rnp-add-version.cmake.patch       | 169 ------------------
 .../patches/rnp-disable-ruby-rnp-tests.patch  |  26 ---
 .../patches/rnp-unbundle-googletest.patch     |  43 -----
 5 files changed, 10 insertions(+), 270 deletions(-)
 delete mode 100644 gnu/packages/patches/rnp-add-version.cmake.patch
 delete mode 100644 gnu/packages/patches/rnp-disable-ruby-rnp-tests.patch
 delete mode 100644 gnu/packages/patches/rnp-unbundle-googletest.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index dd1d546be5..3e8934179a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1803,9 +1803,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch	\
   %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
   %D%/packages/patches/r-mixedpower-r2power.patch		\
-  %D%/packages/patches/rnp-add-version.cmake.patch		\
-  %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
-  %D%/packages/patches/rnp-unbundle-googletest.patch		\
   %D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch 	\
   %D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch 	\
   %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch 	\
diff --git a/gnu/packages/openpgp.scm b/gnu/packages/openpgp.scm
index 40df62a6d7..422e9bdcd6 100644
--- a/gnu/packages/openpgp.scm
+++ b/gnu/packages/openpgp.scm
@@ -97,49 +97,31 @@ (define-public dkgpg
     (license license:gpl2+)))
 
 (define-public rnp
-  ;; Packaging the currently released version requires a large number of
-  ;; patches.  For now, we package a snapshot instead.
-  (let ((commit "203224f0b1505dba17837c03da603e5b98ab125a")
-        (revision "0")
-        (last-version "0.13.1")
-        (day-of-release "2020-07-21"))
+  (let ((day-of-release "2022-09-22"))
     (package
       (name "rnp")
-      (version (git-version last-version revision commit))
+      (version "0.16.2")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/rnpgp/rnp")
-                      (commit commit)))
-                (file-name
-                 (string-append name "-" (string-take commit 7) "-checkout"))
+                      (commit (string-append "v" version))))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1rnwhc9ys4v4mv584hmmrl0ycnqmsaigpffzm31qq337hz24zqya"))
-                (patches
-                 (search-patches "rnp-unbundle-googletest.patch"
-                                 "rnp-disable-ruby-rnp-tests.patch"
-                                 "rnp-add-version.cmake.patch"))))
+                  "13z5kxm48a72w4m2crwgdjdng4a4pwxsd72r2z3a4pcakfp2swi8"))))
       (build-system cmake-build-system)
       (arguments `(#:configure-flags
                    '("-DBUILD_SHARED_LIBS=on"
-                     "-DBUILD_TESTING=on")
+                     "-DBUILD_TESTING=on"
+                     "-DDOWNLOAD_GTEST=off"
+                     "-DDOWNLOAD_RUBYRNP=off")
                    #:phases
                    (modify-phases %standard-phases
                      (add-after 'unpack 'fixes
                        (lambda* (#:key inputs #:allow-other-keys)
-                         (copy-recursively (assoc-ref inputs "googletest-source")
-                                           "src/tests/googletest-src")
                          (substitute* "src/tests/support.cpp"
                            (("\"cp\"") (string-append "\"" (which "cp") "\"")))
-                         ;; Produce a version stamp in the format the upstream
-                         ;; project uses for unreleased revisions.
-                         (with-output-to-file "version.txt"
-                           (lambda _
-                             (display
-                              (string-append ,last-version
-                                             "-" ,revision
-                                             "-g" ,(string-take commit 7)))))
                          #t))
                      (replace 'check
                        (lambda _
@@ -149,11 +131,10 @@ (define-public rnp
                          (invoke "faketime" ,day-of-release "make" "test"))))))
       (native-inputs
        `(("gnupg" ,gnupg) ; for tests
-         ("googletest-source" ,(package-source googletest)) ; for tests
+         ("googletest" ,googletest)
          ("libfaketime" ,libfaketime) ; for tests
          ("pkg-config" ,pkg-config)
-         ("python" ,python)
-         ("python2" ,python-2.7)))
+         ("python" ,python)))
       (inputs (list botan bzip2 json-c zlib))
       (synopsis
        "RFC4880-compliant OpenPGP library written in C++")
diff --git a/gnu/packages/patches/rnp-add-version.cmake.patch b/gnu/packages/patches/rnp-add-version.cmake.patch
deleted file mode 100644
index 67e3b75457..0000000000
--- a/gnu/packages/patches/rnp-add-version.cmake.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From b4326f4649ceb146d5cc74f8579b68d8dc8f51e6 Mon Sep 17 00:00:00 2001
-From: Justus Winter <[email-masked]>
-Date: Mon, 27 Jul 2020 14:00:25 +0200
-Subject: [PATCH 3/3] Add external version.cmake.
-
-This file is maintained in an external repository.  It is only
-included in released versions.  For building snapshots of RNP, a fixed
-snapshot of version.cmake is downloaded on demand.  To avoid this,
-this patch explicitly provides the file.
----
- cmake/version.cmake | 146 ++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 146 insertions(+)
- create mode 100644 cmake/version.cmake
-
-diff --git a/cmake/version.cmake b/cmake/version.cmake
-new file mode 100644
-index 00000000..514027aa
---- /dev/null
-+++ b/cmake/version.cmake
-@@ -0,0 +1,146 @@
-+# Copyright (c) 2018 Ribose Inc.
-+# All rights reserved.
-+#
-+# Redistribution and use in source and binary forms, with or without
-+# modification, are permitted provided that the following conditions
-+# are met:
-+# 1. Redistributions of source code must retain the above copyright
-+#    notice, this list of conditions and the following disclaimer.
-+# 2. Redistributions in binary form must reproduce the above copyright
-+#    notice, this list of conditions and the following disclaimer in the
-+#    documentation and/or other materials provided with the distribution.
-+#
-+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
-+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-+# POSSIBILITY OF SUCH DAMAGE.
-+
-+# 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()
-+
-+# call git, store output in var (can not fail)
-+macro(git var)
-+  _git(${var} ${ARGN})
-+  if (NOT _git_ec EQUAL 0)
-+    string(REPLACE ";" " " args "${ARGN}")
-+    message(FATAL_ERROR "Failed to execute: git ${args}")
-+  endif()
-+endmacro()
-+
-+function(extract_version_info version var_prefix)
-+  # extract the main components
-+  #   v1.9.0-3-g5b92266+1546836556
-+  #   v1.9.0-3-g5b92266-dirty+1546836556
-+  string(REGEX MATCH "^v?([0-9]+\\.[0-9]+\\.[0-9]+)(-([0-9]+)-g([0-9a-f]+)(-dirty)?)?(\\+([0-9]+))?$" matches "${version}")
-+  if (NOT matches)
-+    message(FATAL_ERROR "Failed to extract version components.")
-+  endif()
-+  set(${var_prefix}_VERSION "${CMAKE_MATCH_1}" PARENT_SCOPE) # 1.9.0
-+  if (NOT CMAKE_MATCH_3)
-+    set(CMAKE_MATCH_3 "0")
-+  endif()
-+  set(${var_prefix}_VERSION_NCOMMITS "${CMAKE_MATCH_3}" PARENT_SCOPE) # 3
-+  if (NOT CMAKE_MATCH_4)
-+    set(CMAKE_MATCH_4 "0")
-+  endif()
-+  set(${var_prefix}_VERSION_GIT_REV "${CMAKE_MATCH_4}" PARENT_SCOPE) # 5b92266
-+  if (CMAKE_MATCH_5 STREQUAL "-dirty")
-+    set(${var_prefix}_VERSION_IS_DIRTY TRUE PARENT_SCOPE)
-+  else()
-+    set(${var_prefix}_VERSION_IS_DIRTY FALSE PARENT_SCOPE)
-+  endif()
-+  # timestamp is optional, default to 0
-+  if (NOT CMAKE_MATCH_7)
-+    set(CMAKE_MATCH_7 "0")
-+  endif()
-+  set(${var_prefix}_VERSION_COMMIT_TIMESTAMP "${CMAKE_MATCH_7}" PARENT_SCOPE) # 1546836556
-+endfunction()
-+
-+function(determine_version source_dir var_prefix)
-+  if (EXISTS "${source_dir}/.git")
-+    # for GIT_EXECUTABLE
-+    find_package(Git REQUIRED)
-+    # 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
-+      git(revision rev-parse --short=${GIT_REV_LEN} --verify HEAD)
-+      set(version "v0.0.0-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)
-+      string(APPEND version "+${commit_timestamp}")
-+    endif()
-+  else()
-+    # same as above, but used for snapshots
-+    file(STRINGS "${source_dir}/version.txt" version)
-+  endif()
-+  set(local_prefix "_determine_ver")
-+  extract_version_info("${version}" "${local_prefix}")
-+  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.")
-+    endif()
-+    set(${var_prefix}_${suffix} "${${local_prefix}_${suffix}}" PARENT_SCOPE)
-+    message(STATUS "${var_prefix}_${suffix}: ${${local_prefix}_${suffix}}")
-+  endforeach()
-+  # Set VERSION_SUFFIX and VERSION_FULL. When making changes, be aware that
-+  # this is used in packaging as well and will affect ordering.
-+  # | state            | version_full                |
-+  # |------------------------------------------------|
-+  # | exact tag        | 0.9.0                       |
-+  # | exact tag, dirty | 0.9.0+git20180604           |
-+  # | after tag        | 0.9.0+git20180604.1.085039f |
-+  # | no tag           | 0.0.0+git20180604.2ee02af   |
-+  string(TIMESTAMP date "%Y%m%d" UTC)
-+  set(version_suffix "")
-+  if ((NOT ${local_prefix}_VERSION_NCOMMITS EQUAL 0) OR (${local_prefix}_VERSION STREQUAL "0.0.0"))
-+    # 0.9.0+git20150604.4.289818b
-+    string(APPEND version_suffix "+git${date}")
-+    if (NOT ${local_prefix}_VERSION_NCOMMITS EQUAL 0)
-+      string(APPEND version_suffix ".${${local_prefix}_VERSION_NCOMMITS}")
-+    endif()
-+    string(APPEND version_suffix ".${${local_prefix}_VERSION_GIT_REV}")
-+  else()
-+    if (${local_prefix}_VERSION_IS_DIRTY)
-+      # 0.9.0+git20150604
-+      string(APPEND version_suffix "+git${date}")
-+    endif()
-+  endif()
-+  set(version_full "${${local_prefix}_VERSION}${version_suffix}")
-+  # set the results
-+  set(${var_prefix}_VERSION_SUFFIX "${version_suffix}" PARENT_SCOPE)
-+  set(${var_prefix}_VERSION_FULL "${version_full}" PARENT_SCOPE)
-+  # for informational purposes
-+  message(STATUS "${var_prefix}_VERSION_SUFFIX: ${version_suffix}")
-+  message(STATUS "${var_prefix}_VERSION_FULL: ${version_full}")
-+endfunction()
-+
--- 
-2.20.1
-
diff --git a/gnu/packages/patches/rnp-disable-ruby-rnp-tests.patch b/gnu/packages/patches/rnp-disable-ruby-rnp-tests.patch
deleted file mode 100644
index 5a75b6f40f..0000000000
--- a/gnu/packages/patches/rnp-disable-ruby-rnp-tests.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 40e53d639d86337cf58be3a2b9750b6c97a3c740 Mon Sep 17 00:00:00 2001
-From: Justus Winter <[email-masked]>
-Date: Tue, 21 Jul 2020 16:10:21 +0200
-Subject: [PATCH 2/2] Disable ruby-rnp tests.
-
-Prevents cmake from cloning the ruby-rnp repository in order to run its tests.
----
- src/tests/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
-index d3c4fbe6..e7e1965e 100644
---- a/src/tests/CMakeLists.txt
-+++ b/src/tests/CMakeLists.txt
-@@ -125,7 +125,7 @@ gtest_discover_tests(rnp_tests
- 
- # ruby-rnp
- # cruby does not currently play nice with ASaN et al.
--if (NOT ENABLE_SANITIZERS AND BUILD_SHARED_LIBS AND NOT WIN32)
-+if (NOT ENABLE_SANITIZERS AND BUILD_SHARED_LIBS AND NOT WIN32 AND IGNORE)
-   include(ExternalProject)
-   set(_sourcedir "${CMAKE_BINARY_DIR}/ruby-rnp")
-   if (DEFINED ENV{RUBY_RNP_INSTALL})
--- 
-2.20.1
-
diff --git a/gnu/packages/patches/rnp-unbundle-googletest.patch b/gnu/packages/patches/rnp-unbundle-googletest.patch
deleted file mode 100644
index b85bfd1f0e..0000000000
--- a/gnu/packages/patches/rnp-unbundle-googletest.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 4b4697c8dd66bd2b1e4d6b831bbde46e27d62c46 Mon Sep 17 00:00:00 2001
-From: Justus Winter <[email-masked]>
-Date: Tue, 21 Jul 2020 16:10:12 +0200
-Subject: [PATCH 1/2] Unbundle googletest.
-
----
- src/tests/CMakeLists.txt          | 2 +-
- src/tests/gtest-CMakeLists.txt.in | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
-index 0a841666..d3c4fbe6 100644
---- a/src/tests/CMakeLists.txt
-+++ b/src/tests/CMakeLists.txt
-@@ -53,7 +53,7 @@ endif()
- # maintain compiler/linker settings on Windows
- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
- # add to our build (provides gtest_main target)
--add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
-+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/googletest-src
-                  ${CMAKE_CURRENT_BINARY_DIR}/googletest-build
-                  EXCLUDE_FROM_ALL)
- 
-diff --git a/src/tests/gtest-CMakeLists.txt.in b/src/tests/gtest-CMakeLists.txt.in
-index a43e8e5d..3cc0ddd5 100644
---- a/src/tests/gtest-CMakeLists.txt.in
-+++ b/src/tests/gtest-CMakeLists.txt.in
-@@ -4,9 +4,9 @@ project(googletest-download NONE)
- 
- include(ExternalProject)
- ExternalProject_Add(googletest
--  GIT_REPOSITORY    https://github.com/google/googletest.git
--  GIT_TAG           c43f710
--  SOURCE_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
-+#  GIT_REPOSITORY    https://github.com/google/googletest.git
-+#  GIT_TAG           c43f710
-+  SOURCE_DIR        "${CMAKE_CURRENT_SOURCE_DIR}/googletest-src"
-   BINARY_DIR        "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
-   CONFIGURE_COMMAND ""
-   BUILD_COMMAND     ""
--- 
-2.20.1
-
-- 
2.39.1