Control: clone 760102 -1 Control: reassign -1 seahorse Control: tags -1 + patch Control: retitle -1 build seahorse compatible with gpg2
On Fri 2015-06-05 13:25:42 -0400, Michael Biebl wrote: > Am 05.06.2015 um 19:19 schrieb Daniel Kahn Gillmor: >> Given that 1.4.7 is older than oldoldstable, you ought to be able to >> drop the explicit gnupg dependency entirely from seahorse, iiuc. > > Well, assuming that seahorse does work properly with gnupg2. > That's basically my question. The seahorse source code seems to actually behave completely differently depending on whether it is built with modern versions of any branch (meaning: gpg >= 1.4.10, or gpg2 >= 2.0.12) versus older versions. (see pgp/seahorse-gpgme-key-op.h). :( This is not great engineering practice, because the version built against isn't guaranteed to match the version that's running. That said, even oldoldstable builds and runs "modern versions" by this metric. I just tested seahorse on a minimal-ish unstable gnome install, where i did "dpkg --force-depend --purge gnupg". Unfortunately, it looks like seahorse embeds the string "gpg" in it, so it's looking for /usr/bin/gpg. Running seahorse in this configuration produces lots of errors of this form: operation-Message: couldn't initialize gnupg properly: Invalid crypto engine The attached patch should resolve things for future versions of seahorse, though, both on build-time detection and on runtime flexibility. (the attached patch touches both ./configure.ac and ./configure -- since the package appears to be doing autoreconf, maybe the modifications to ./configure are unnecessary) The only failures i'm now running into with seahorse like this are failures due to gcr_importer hard-coding paths to gpg as well, so those are bugs i'll file separately.. Regards, --dkg
From 62f40108a1145016d128afe2fa40e20caa2d9d77 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor <d...@fifthhorseman.net> Date: Fri, 5 Jun 2015 14:24:29 -0400 Subject: [PATCH] avoid deps on a certain version of gpg --- debian/changelog | 7 +++++ debian/control | 3 +-- debian/control.in | 3 +-- debian/patches/series | 1 + debian/patches/use-any-gnupg.patch | 55 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 debian/patches/use-any-gnupg.patch diff --git a/debian/changelog b/debian/changelog index 190c57a..6e09d82 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +seahorse (3.16.0-1.1) unstable; urgency=medium + + * Non-maintainer upload + * avoid explicit dependencies on certain versions of gpg. + + -- Daniel Kahn Gillmor <d...@fifthhorseman.net> Fri, 05 Jun 2015 14:23:46 -0400 + seahorse (3.16.0-1) unstable; urgency=medium * New upstream release. diff --git a/debian/control b/debian/control index 5a64f68..6c399ec 100644 --- a/debian/control +++ b/debian/control @@ -36,8 +36,7 @@ Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, gcr (>= 3.4), - gnome-keyring (>= 3.4), - gnupg (>= 1.4.7) + gnome-keyring (>= 3.4) Recommends: openssh-client Description: GNOME front end for GnuPG Seahorse is a front end for GnuPG - the GNU Privacy Guard program - diff --git a/debian/control.in b/debian/control.in index 1431884..2ee9734 100644 --- a/debian/control.in +++ b/debian/control.in @@ -32,8 +32,7 @@ Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, gcr (>= 3.4), - gnome-keyring (>= 3.4), - gnupg (>= 1.4.7) + gnome-keyring (>= 3.4) Recommends: openssh-client Description: GNOME front end for GnuPG Seahorse is a front end for GnuPG - the GNU Privacy Guard program - diff --git a/debian/patches/series b/debian/patches/series index e69de29..c3b0125 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -0,0 +1 @@ +use-any-gnupg.patch diff --git a/debian/patches/use-any-gnupg.patch b/debian/patches/use-any-gnupg.patch new file mode 100644 index 0000000..f64aa22 --- /dev/null +++ b/debian/patches/use-any-gnupg.patch @@ -0,0 +1,55 @@ +Description: Use any version of GnuPG +Author: Daniel Kahn Gillmor <d...@fifthhorseman.net> + + +--- seahorse-3.16.0.orig/configure ++++ seahorse-3.16.0/configure +@@ -2531,7 +2531,7 @@ GCR_REQUIRED=3.11.91 + GTK_REQ=3.4.0 + GTK_MAX=GTK_VERSION_3_4 + +-GNUPG_ACCEPTED="1.2 1.4 2.0" ++GNUPG_ACCEPTED="1.2 1.4 2.0 2.1" + GPGME_REQUIRED=1.0.0 + LIBSECRET_REQUIRED=0.16 + AVAHI_GLIB_REQUIRED=0.6 +@@ -8569,7 +8569,7 @@ fi + + + if test "$DO_CHECK" = "yes"; then +- for ac_prog in gpg gpg2 ++ for ac_prog in gpg2 gpg + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +--- seahorse-3.16.0.orig/configure.ac ++++ seahorse-3.16.0/configure.ac +@@ -9,7 +9,7 @@ GCR_REQUIRED=3.11.91 + GTK_REQ=3.4.0 + GTK_MAX=GTK_VERSION_3_4 + +-GNUPG_ACCEPTED="1.2 1.4 2.0" ++GNUPG_ACCEPTED="1.2 1.4 2.0 2.1" + GPGME_REQUIRED=1.0.0 + LIBSECRET_REQUIRED=0.16 + AVAHI_GLIB_REQUIRED=0.6 +@@ -130,7 +130,7 @@ else + DO_CHECK=$enableval, DO_CHECK=yes) + + if test "$DO_CHECK" = "yes"; then +- AC_PATH_PROGS(GNUPG, [gpg gpg2], no) ++ AC_PATH_PROGS(GNUPG, [gpg2 gpg], no) + AC_DEFINE_UNQUOTED(GNUPG, "$GNUPG", [Path to gpg executable.]) + ok="no" + if test "$GNUPG" != "no"; then +--- seahorse-3.16.0.orig/pgp/seahorse-pgp-backend.c ++++ seahorse-3.16.0/pgp/seahorse-pgp-backend.c +@@ -311,7 +311,7 @@ seahorse_pgp_backend_initialize (void) + + g_return_if_fail (pgp_backend != NULL); + +- gpgme_set_engine_info (GPGME_PROTOCOL_OpenPGP, GNUPG, NULL); ++ gpgme_set_engine_info (GPGME_PROTOCOL_OpenPGP, NULL, NULL); + } + + SeahorseGpgmeKeyring * -- 2.1.4
signature.asc
Description: PGP signature