GNOME Bugzilla – Bug 161697
Make seahorse work with GnuPG 1.4
Last modified: 2005-02-18 17:58:17 UTC
install gnupg-1.4 unpack seahorse-0.7.5 ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-gtk-doc configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes checking whether make sets $(MAKE)... yes checking for working aclocal-1.4... found checking for working autoconf... found checking for working automake-1.4... found checking for working autoheader... found checking for working makeinfo... found checking whether to enable maintainer-specific portions of Makefiles... no checking for perl... /usr/bin/perl checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu .... checking for pkg-config... /usr/bin/pkg-config checking for libgnomeui-2.0 libglade-2.0 gtk+-2.0 >= 2.4.0 eel-2.0 gnome-mime-data-2.0 libbonobo-2.0 libbonoboui-2.0 bonobo-activation-2.0 gnome-vfs-2.0... yes checking SEAHORSE_CFLAGS... -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/eel-2 -I/usr/include/gail-1.0 checking SEAHORSE_LIBS... -Wl,--export-dynamic -pthread -L/usr/X11R6/lib -leel-2 -lgnomeui-2 -lSM -lICE -lgailutil -lglade-2.0 -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 checking for gpg... /usr/bin/gpg checking for GnuPG >= 1.2.1... configure: error: GnuPG not found. Please install version 1.2.1 or greater gpg --version gpg (GnuPG) 1.4.0 Copyright (C) 2004 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Home: ~/.gnupg Supported algorithms: Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512 Compression: Uncompressed, ZIP, ZLIB bash-2.05b$ emerge info Portage 2.0.51-r8 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20040808-r1, 2.6.8-gentoo-r10 i686) ================================================================= System uname: 2.6.8-gentoo-r10 i686 AMD Athlon(tm) XP 1900+ Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Oct 24 2004, 08:06:09)] distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.3 [enabled] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.59-r5 sys-devel/automake: 1.8.5-r1 sys-devel/binutils: 2.15.90.0.1.1-r3 sys-devel/libtool: 1.5.2-r7 virtual/os-headers: 2.6.8.1-r1
Gnome's bugzilla was refusing attachments so forgive me for the inline comment. This patch fixes the comparison logic when testing the gpg version. It also applies the same logic for gpgme cause I put the code in the wrong spot originally and saw no need to remove it. --- configure.in.orig 2004-11-01 03:24:04.000000000 +0930 +++ configure.in 2004-12-19 21:11:35.832207728 +0930 @@ -52,13 +52,17 @@ micro=`echo $gnupg_version | \ sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\. \([[0-9]]*\).*/\3/'` - if test "$major" -eq "$req_major"; then - if test "$minor" -eq "$req_minor"; then - if test "$micro" -ge "$req_micro"; then - ok="yes" - fi + if test "$major" -gt "$req_major"; then + ok="yes" + elif test "$major" -eq "$req_major"; then + if test "$minor" -gt "$req_minor"; then + ok="yes" + elif test "$minor" -eq "$req_minor"; then + if test "$micro" -ge "$req_micro"; then + ok="yes" fi - fi + fi + fi fi if test "$ok" = "yes"; then @@ -93,8 +97,12 @@ micro=`echo $gpgme_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` - if test "$major" -eq "$req_major"; then - if test "$minor" -eq "$req_minor"; then + if test "$major" -gt "$req_major"; then + ok="yes" + elif test "$major" -eq "$req_major"; then + if test "$minor" -gt "$req_minor"; then + ok="yes" + elif test "$minor" -eq "$req_minor"; then if test "$micro" -ge "$req_micro"; then ok="yes" fi
Thanks for the patch. However, all seahorse functionality that is directly dependant on GPG needs to be tested with the new versions of GPG, to ensure compatibility. This includes: - Modifying of gpg.conf when using seahorse-agent - GPG keyserver plugins (only found in CVS) - Exporting of secret keys (soon to arrive in CVS) The current method for using unstable GPG versions with seahorse is to pass --disable-gpg-check to ./configure, in which case you assume the risks of using an untested version. Please reopen this bug if this doesn't work for you. BTW, the message (install version 1.2.1 or greater) has been clarified in the CVS version of seahorse.
Hmmm, I just saw that GPG has in fact released 1.4 as stable several days ago. This means we're going to have to get the two working together. I'll reopen this bug.
Since we made sure seahorse-agent works correctly with the new version, and I will vouch that searching LDAP keyservers still works, what else needs to be checked before we edit the configure script?
As outlined on seahorse-devel we need to come up with a list of ways we interact with GPG directly, then we can check those.
I've committed changes which allow use with GPG 1.4. Adam, could you check if it works properly, and also look at the list in the HACKING file of the direct uses of GPG to see if they all still work properly.
As nearly as I can tell, everything listed in HACKING works as specified with GPG 1.4.0. The only suggestion I can make and this is not pertaining to operation is when seahorse-agent adds its agent string to the bottom of gpg.conf, it doens't use double slashes. * gpg-agent-info /tmp//seahorse-20aJT7/S.gpg-agent:7149:1 * use-agent This doesn't affect usability or functionality, it just looks wrong.
Thanks for testing. The _PATH_TMP problem is one that has to actually be coded in, as some platforms put a trailing slash on _PATH_TMP and others don't. Don't have time to fix that today before the release. But I guess we can get to it later.