Allow to build w/o curl.
authorWerner Koch <wk@gnupg.org>
Tue, 26 Sep 2006 14:15:17 +0000 (14:15 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 26 Sep 2006 14:15:17 +0000 (14:15 +0000)
13 files changed:
doc/DETAILS
g10/ChangeLog
g10/skclist.c
keyserver/ChangeLog
keyserver/Makefile.am
keyserver/gpgkeys_curl.c
keyserver/gpgkeys_finger.c
keyserver/gpgkeys_hkp.c
keyserver/gpgkeys_ldap.c
keyserver/ksutil.c
keyserver/ksutil.h
scripts/ChangeLog
scripts/autogen.sh

index 51a31a5..986b908 100644 (file)
@@ -1,4 +1,7 @@
                                                               -*- text -*-
+
+NOTE: The definitive reference is the file from the SVN trunk.
+
 Format of colon listings
 ========================
 First an example:
index 2c4cef7..bfe4f7a 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-21  Werner Koch  <wk@g10code.com>
+
+       * skclist.c (is_insecure): Also test for uppercase version of the
+       insecure string.
+
 2006-07-31  Werner Koch  <wk@g10code.com>
 
        * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Search backwards for
index 21db10c..5e55e24 100644 (file)
@@ -69,7 +69,8 @@ is_insecure( PKT_secret_key *sk )
                 continue; /* skip attribute packets */
             if ( strstr( id->name, "(insecure!)" )
                  || strstr( id->name, "not secure" )
-                 || strstr( id->name, "do not use" ) ) {
+                 || strstr( id->name, "do not use" )
+                 || strstr( id->name, "(INSECURE!)" ) ) {
                 insecure = 1;
                 break;
             }
index a676d47..355a8b9 100644 (file)
@@ -1,3 +1,19 @@
+2006-09-26  Werner Koch  <wk@g10code.com>
+
+       * gpgkeys_finger.c (get_key): Cast away signed/unsigned char ptr
+       mismatches.
+
+       * ksutil.c (ks_hextobyte, ks_toupper, ks_strcasecmp): New.  Use
+       them instead of there ascii_foo counterparts.
+       * gpgkeys_ldap.c (main): Replaced BUG by assert.
+
+       * gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c, ksutil.c:
+       * ksutil.h: Add special license exception for OpenSSL.  This helps
+       to avoid license conflicts if OpenLDAP or cURL is linked against
+       OpenSSL and we would thus indirectly link to OpenSSL.  This is
+       considered a bug fix and forgives all possible violations,
+       pertaining to this issue, possibly occured in the past.
+
 2006-07-26  David Shaw  <dshaw@jabberwocky.com>
 
        * Makefile.am: Fix missing include path for gpgkeys_finger (needs
index dafc853..9233fbe 100644 (file)
@@ -36,7 +36,7 @@ gpgkeys_curl_SOURCES = gpgkeys_curl.c ksutil.c ksutil.h
 other_libs = $(LIBICONV) $(LIBINTL) $(CAPLIBS)
 
 gpgkeys_ldap_CPPFLAGS = @LDAP_CPPFLAGS@
-gpgkeys_ldap_LDADD = ../util/libutil.a @LDAPLIBS@ @NETLIBS@ $(other_libs) @GETOPT@ @W32LIBS@
+gpgkeys_ldap_LDADD = @LDAPLIBS@ @NETLIBS@ $(other_libs) @GETOPT@ @W32LIBS@
 
 gpgkeys_finger_LDADD = ../util/libutil.a @NETLIBS@ $(other_libs) @GETOPT@ @W32LIBS@
 
index 9e4b567..192f9ba 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  * USA.
+ *
+ * In addition, as a special exception, the Free Software Foundation
+ * gives permission to link the code of the keyserver helper tools:
+ * gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
+ * project's "OpenSSL" library (or with modified versions of it that
+ * use the same license as the "OpenSSL" library), and distribute the
+ * linked executables.  You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL".  If
+ * you modify this file, you may extend this exception to your version
+ * of the file, but you are not obligated to do so.  If you do not
+ * wish to do so, delete this exception statement from your version.
  */
 
 #include <config.h>
index 4124ebc..c91022c 100644 (file)
@@ -324,13 +324,13 @@ get_key (char *getkey)
       
       if(gotit)
         {
-         print_nocr(output,line);
-          if (!strncmp(line,END,strlen(END)))
+         print_nocr (output, (const char*)line);
+          if (!strncmp((char*)line,END,strlen(END)))
             break;
         }
-      else if(!strncmp(line,BEGIN,strlen(BEGIN)))
+      else if(!strncmp((char*)line,BEGIN,strlen(BEGIN)))
         {
-         print_nocr(output,line);
+         print_nocr(output, (const char*)line);
           gotit=1;
         }
     }
index e6de363..1692a50 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  * USA.
+ *
+ * In addition, as a special exception, the Free Software Foundation
+ * gives permission to link the code of the keyserver helper tools:
+ * gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
+ * project's "OpenSSL" library (or with modified versions of it that
+ * use the same license as the "OpenSSL" library), and distribute the
+ * linked executables.  You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL".  If
+ * you modify this file, you may extend this exception to your version
+ * of the file, but you are not obligated to do so.  If you do not
+ * wish to do so, delete this exception statement from your version.
  */
 
 #include <config.h>
index 357c874..216ed1e 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  * USA.
+ *
+ * In addition, as a special exception, the Free Software Foundation
+ * gives permission to link the code of the keyserver helper tools:
+ * gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
+ * project's "OpenSSL" library (or with modified versions of it that
+ * use the same license as the "OpenSSL" library), and distribute the
+ * linked executables.  You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL".  If
+ * you modify this file, you may extend this exception to your version
+ * of the file, but you are not obligated to do so.  If you do not
+ * wish to do so, delete this exception statement from your version.
  */
 
 #include <config.h>
@@ -29,6 +40,7 @@
 #endif
 #include <stdlib.h>
 #include <errno.h>
+#include <assert.h>
 
 #ifdef _WIN32
 #include <winsock2.h>
@@ -355,7 +367,7 @@ build_attrs(LDAPMod ***modlist,char *line)
   if((record=strsep(&line,":"))==NULL)
     return;
 
-  if(ascii_strcasecmp("pub",record)==0)
+  if (ks_strcasecmp("pub",record)==0)
     {
       char *tok;
       int disabled=0,revoked=0;
@@ -461,7 +473,7 @@ build_attrs(LDAPMod ***modlist,char *line)
       make_one_attr(modlist,"pgpDisabled",disabled?"1":"0");
       make_one_attr(modlist,"pgpRevoked",revoked?"1":"0");
     }
-  else if(ascii_strcasecmp("sub",record)==0)
+  else if (ks_strcasecmp("sub",record)==0)
     {
       char *tok;
 
@@ -499,7 +511,7 @@ build_attrs(LDAPMod ***modlist,char *line)
       /* Ignore the rest of the items for subkeys since the LDAP
         schema doesn't store them. */
     }
-  else if(ascii_strcasecmp("uid",record)==0)
+  else if (ks_strcasecmp("uid",record)==0)
     {
       char *userid,*tok;
 
@@ -520,7 +532,7 @@ build_attrs(LDAPMod ***modlist,char *line)
       while(*tok)
        if(tok[0]=='%' && tok[1] && tok[2])
          {
-           if((userid[i]=hextobyte(&tok[1]))==-1)
+           if((userid[i]=ks_hextobyte(&tok[1]))==-1)
              userid[i]='?';
 
            i++;
@@ -536,7 +548,7 @@ build_attrs(LDAPMod ***modlist,char *line)
 
       make_one_attr(modlist,"pgpUserID",userid);
     }
-  else if(ascii_strcasecmp("sig",record)==0)
+  else if(ks_strcasecmp("sig",record)==0)
     {
       char *tok;
 
@@ -2325,7 +2337,7 @@ main(int argc,char *argv[])
       free(searchkey);
     }
   else
-    BUG();
+    assert (!"invalid action");
 
   if(!failed)
     ret=KEYSERVER_OK;
index 64912bb..c302598 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  * USA.
+ *
+ * In addition, as a special exception, the Free Software Foundation
+ * gives permission to link the code of the keyserver helper tools:
+ * gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
+ * project's "OpenSSL" library (or with modified versions of it that
+ * use the same license as the "OpenSSL" library), and distribute the
+ * linked executables.  You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL".  If
+ * you modify this file, you may extend this exception to your version
+ * of the file, but you are not obligated to do so.  If you do not
+ * wish to do so, delete this exception statement from your version.
  */
 
 #include <config.h>
@@ -538,3 +549,54 @@ curl_writer_finalize(struct curl_writer_ctx *ctx)
       ctx->flags.done=1;
     }
 }
+
+int
+ks_hextobyte (const char *s)
+{
+  int c;
+
+  if ( *s >= '0' && *s <= '9' )
+    c = 16 * (*s - '0');
+  else if ( *s >= 'A' && *s <= 'F' )
+    c = 16 * (10 + *s - 'A');
+  else if ( *s >= 'a' && *s <= 'f' )
+    c = 16 * (10 + *s - 'a');
+  else
+    return -1;
+  s++;
+  if ( *s >= '0' && *s <= '9' )
+    c += *s - '0';
+  else if ( *s >= 'A' && *s <= 'F' )
+    c += 10 + *s - 'A';
+  else if ( *s >= 'a' && *s <= 'f' )
+    c += 10 + *s - 'a';
+  else
+    return -1;
+  return c;
+}
+
+
+/* Non localized version of toupper.  */
+int 
+ks_toupper (int c)
+{
+  if (c >= 'a' && c <= 'z')
+    c &= ~0x20;
+  return c;
+}
+
+
+/* Non localized version of strcasecmp.  */
+int
+ks_strcasecmp (const char *a, const char *b)
+{
+  if (a == b)
+    return 0;
+
+  for (; *a && *b; a++, b++)
+    {
+      if (*a != *b && ks_toupper (*a) != ks_toupper (*b))
+        break;
+    }
+  return *a == *b? 0 : (ks_toupper (*a) - ks_toupper (*b));
+}
index 16c1ebf..0001bba 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  * USA.
+ *
+ * In addition, as a special exception, the Free Software Foundation
+ * gives permission to link the code of the keyserver helper tools:
+ * gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
+ * project's "OpenSSL" library (or with modified versions of it that
+ * use the same license as the "OpenSSL" library), and distribute the
+ * linked executables.  You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL".  If
+ * you modify this file, you may extend this exception to your version
+ * of the file, but you are not obligated to do so.  If you do not
+ * wish to do so, delete this exception statement from your version.
  */
 
 #ifndef _KSUTIL_H_
@@ -127,4 +138,9 @@ struct curl_writer_ctx
 size_t curl_writer(const void *ptr,size_t size,size_t nmemb,void *cw_ctx);
 void curl_writer_finalize(struct curl_writer_ctx *ctx);
 
+int ks_hextobyte (const char *s);
+int ks_toupper (int c);
+int ks_strcasecmp (const char *a, const char *b);
+
+
 #endif /* !_KSUTIL_H_ */
index 9c768fe..692598f 100644 (file)
@@ -1,3 +1,7 @@
+2006-09-13  Werner Koch  <wk@g10code.com>
+
+       * autogen.sh: Better detection of the cross compiler.
+
 2006-04-03  Werner Koch  <wk@g10code.com>
 
        * w32installer.nsi: Install curl and not http keyserver helper.
index c39471e..232de14 100755 (executable)
@@ -51,34 +51,26 @@ if test "$1" = "--build-w32"; then
     fi
     build=`$tsdir/scripts/config.guess`
 
-    # See whether we have the Debian cross compiler package or the
-    # old mingw32/cpd system
-    if i586-mingw32msvc-gcc --version >/dev/null 2>&1 ; then
-       host=i586-mingw32msvc
-       crossbindir=/usr/$host/bin
-       conf_CC="CC=${host}-gcc"
-    else
-       host=i386--mingw32
-       if ! mingw32 --version >/dev/null; then
-          echo "We need at least version 0.3 of MingW32/CPD" >&2
-          exit 1
-       fi
-       echo "MingW32/CPD is no longer supported" >&2
-       exit 1
-       # crossbindir=`mingw32 --install-dir`/bin
-       # # Old autoconf version required us to setup the environment
-       # # with the proper tool names.
-       # CC=`mingw32 --get-path gcc`
-       # CPP=`mingw32 --get-path cpp`
-       # AR=`mingw32 --get-path ar`
-       # RANLIB=`mingw32 --get-path ranlib`
-       # export CC CPP AR RANLIB 
-       # conf_CC=""
+    # Locate the cross compiler
+    crossbindir=
+    for host in i586-mingw32msvc i386-mingw32msvc; do
+        if ${host}-gcc --version >/dev/null 2>&1 ; then
+            crossbindir=/usr/${host}/bin
+            conf_CC="CC=${host}-gcc"
+            break;
+        fi
+    done
+    if [ -z "$crossbindir" ]; then
+        echo "Cross compiler kit not installed" >&2
+        echo "Under Debian GNU/Linux, you may install it using" >&2
+        echo "  apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2 
+        echo "Stop." >&2
+        exit 1
     fi
    
     if [ -f "$tsdir/config.log" ]; then
         if ! head $tsdir/config.log | grep "$host" >/dev/null; then
-            echo "Pease run a 'make distclean' first" >&2
+            echo "Please run a 'make distclean' first" >&2
             exit 1
         fi
     fi