summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason E. Hale <jhale@FreeBSD.org>2025-06-24 04:48:49 -0400
committerJason E. Hale <jhale@FreeBSD.org>2025-06-24 09:05:37 -0400
commitbd760bb0a20d36ec737782fb2e4f1a852482aeb2 (patch)
treed84f1f97c21ba97160d19853ef6b0988d87d1337
parentdevel/git-who: new port: Git blame for file trees (diff)
security/p5-Crypt-GpgME: Adapt for GpgME 2.0.0
The trustlist feature, which only worked for a short period in 2003, has been long deprecated and was finally removed in GpgME 2.0.0. Still wondering why this port was even added in 2022 when upstream activity died in 2009. According to repology, we're the only folks still shipping this.
-rw-r--r--security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm16
-rw-r--r--security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c42
-rw-r--r--security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h14
-rw-r--r--security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs35
4 files changed, 107 insertions, 0 deletions
diff --git a/security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm b/security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm
new file mode 100644
index 000000000000..61bb81fa0777
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm
@@ -0,0 +1,16 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- lib/Crypt/GpgME.pm.orig 2009-11-17 22:51:18 UTC
++++ lib/Crypt/GpgME.pm
+@@ -226,10 +226,6 @@ Returns a new Crypt::GpgME instance. Throws an excepti
+
+ my $key = $ctx->signers_enum($seq);
+
+-=head2 trustlist
+-
+- my @trustlist = $ctx->trustlist($pattern, $maxlevel);
+-
+ =head2 verify
+
+ my ($result, $plain) = $ctx->verify($sig);
diff --git a/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c
new file mode 100644
index 000000000000..f8452fcf45dc
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c
@@ -0,0 +1,42 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- perl_glue/perl_gpgme.c.orig 2008-04-30 04:10:10 UTC
++++ perl_glue/perl_gpgme.c
+@@ -762,36 +762,6 @@ SV *
+ }
+
+ SV *
+-perl_gpgme_hashref_from_trust_item (gpgme_trust_item_t item) {
+- SV *sv;
+- HV *hv;
+-
+- hv = newHV ();
+-
+- if (item->keyid) {
+- perl_gpgme_hv_store (hv, "keyid", 5, newSVpv (item->keyid, 0));
+- }
+-
+- perl_gpgme_hv_store (hv, "type", 4, newSVpv (item->type == 1 ? "key" : "uid", 0));
+- perl_gpgme_hv_store (hv, "level", 5, newSViv (item->level));
+-
+- if (item->type == 1 && item->owner_trust) {
+- perl_gpgme_hv_store (hv, "owner_trust", 11, newSVpv (item->owner_trust, 0));
+- }
+-
+- if (item->validity) {
+- perl_gpgme_hv_store (hv, "validity", 8, newSVpv (item->validity, 0));
+- }
+-
+- if (item->type == 2 && item->name) {
+- perl_gpgme_hv_store (hv, "name", 4, newSVpv (item->name, 0));
+- }
+-
+- sv = newRV_noinc ((SV *)hv);
+- return sv;
+-}
+-
+-SV *
+ perl_gpgme_sv_from_status_code (gpgme_status_code_t status) {
+ int i;
+ SV *ret = NULL;
diff --git a/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h
new file mode 100644
index 000000000000..4b7fa2763638
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h
@@ -0,0 +1,14 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- perl_glue/perl_gpgme.h.orig 2007-12-19 23:55:38 UTC
++++ perl_glue/perl_gpgme.h
+@@ -117,8 +117,6 @@ SV *perl_gpgme_hash_algo_to_string (gpgme_hash_algo_t
+
+ SV *perl_gpgme_hash_algo_to_string (gpgme_hash_algo_t algo);
+
+-SV *perl_gpgme_hashref_from_trust_item (gpgme_trust_item_t item);
+-
+ SV *perl_gpgme_sv_from_status_code (gpgme_status_code_t status);
+
+ SV *perl_gpgme_genkey_result_to_sv (gpgme_genkey_result_t result);
diff --git a/security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs b/security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs
new file mode 100644
index 000000000000..42f999ad3888
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs
@@ -0,0 +1,35 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- xs/GpgME.xs.orig 2008-04-30 04:10:27 UTC
++++ xs/GpgME.xs
+@@ -453,29 +453,6 @@ gpgme_keylist (ctx, pattern, secret_only=0)
+ perl_gpgme_assert_error (err);
+ }
+
+-void
+-gpgme_trustlist (ctx, pattern, max_level)
+- gpgme_ctx_t ctx
+- const char *pattern
+- int max_level
+- PREINIT:
+- gpgme_error_t err;
+- gpgme_trust_item_t item;
+- PPCODE:
+- err = gpgme_op_trustlist_start (ctx, pattern, max_level);
+- perl_gpgme_assert_error (err);
+-
+- while ((err = gpgme_op_trustlist_next (ctx, &item)) == GPG_ERR_NO_ERROR) {
+- XPUSHs (perl_gpgme_hashref_from_trust_item (item));
+- gpgme_trust_item_unref (item);
+- }
+-
+- if (gpg_err_code (err) != GPG_ERR_EOF) {
+- perl_gpgme_assert_error (err);
+- }
+-
+- gpgme_op_trustlist_end (ctx);
+-
+ NO_OUTPUT gpgme_error_t
+ gpgme_engine_check_version (ctx, proto)
+ perl_gpgme_ctx_or_null_t ctx