Kerberos + Qpopper Build fails

Douglas E. Engert deengert at anl.gov
Tue Jul 26 17:39:14 EDT 2005


Try something like this with qpopper-4.0.5 and krb5-1.4.1.


--- ./qpopper4.0.5/popper/,pop_init.c	Mon Mar 17 13:08:52 2003
+++ ./qpopper4.0.5/popper/pop_init.c	Wed Jul 13 13:04:05 2005
@@ -313,6 +313,7 @@
           * _both_ V5 and V4 pop services.
           */

+#ifdef KRB5_KRB4_COMPAT
          retval = krb5_compat_recvauth ( pop_context, &auth_context,
                                 (krb5_pointer) &sock,
                                 KRB5_APPL_VERSION, server,
@@ -330,6 +331,13 @@
                                 NULL,           /* Key schedule (unused) */
                                 &v4_version     /* V4 version */
                                        );
+#else
+		auth_sys = KRB5_RECVAUTH_V5;
+		retval = krb5_recvauth_version(pop_context, &auth_context,
+						(krb5_pointer) &sock,
+						NULL, 0, NULL, &ticket, &v4_version);
+#endif
+
          if ( retval ) {
              pop_msg ( p, POP_FAILURE, HERE, "recvauth failed--%s",
                        error_message(retval) );
@@ -418,6 +426,7 @@
              EXIT ( -1 );
          } /* krb5_aname_to_localname failed */
  #    endif /* NO_CROSSREALM */
+	p->AuthType = kerberos;
      }
  #  endif /* KRB5 */
  #else  /* not KERBEROS */
--- ./qpopper4.0.5/popper/,pop_updt.c	Wed Jan  1 20:39:03 2003
+++ ./qpopper4.0.5/popper/pop_updt.c	Tue Jul 12 08:37:13 2005
@@ -293,7 +293,7 @@
      DEBUG_LOG0 ( p, "Checking to see if all messages were deleted" );

      if ( p->bStats ) {
-        pop_log ( p, POP_PRIORITY, HERE, "Stats: %s %d %ld %d %ld %s %s",
+        pop_log ( p, LOG_CRIT/*POP_PRIORITY*/, HERE, "Stats: %s %d %ld %d %ld %s %s",
                    p->user, p->msgs_deleted, p->bytes_deleted,
                    p->msg_count - p->msgs_deleted,
                    p->drop_size - p->bytes_deleted,
--- ./qpopper4.0.5/popper/,pop_user.c	Wed Mar 12 20:06:38 2003
+++ ./qpopper4.0.5/popper/pop_user.c	Wed Jul 13 14:10:06 2005
@@ -235,6 +235,7 @@
  #  endif /* APOP_ONLY */
  #endif /* SCRAM_ONLY */

+	if (p->AuthType != kerberos) {

  #ifdef AUTHON

@@ -425,6 +426,8 @@

      } while ( 0 );      /* so a break will work */
  #endif  /* defined(__bsdi__) && _BSDI_VERSION >= 199608 */
+
+} /* p->AuthType != kerberos */

      if ( p->AuthType == noauth )  /* If authentication method is unknown (i.e.  */
          p->AuthType = plain;      /*  not Kerberos) then assume plain text      */
--- ./qpopper4.0.5/,configure.in	Tue Feb  4 21:06:08 2003
+++ ./qpopper4.0.5/configure.in	Tue Jul 12 15:08:53 2005
@@ -630,8 +630,8 @@
      fi
      AC_DEFINE(KERBEROS)
      AC_DEFINE(KRB5)
-    AC_DEFINE(KRB5_KRB4_COMPAT)
-    KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5util -lkrb5 -ldes425 -lcom_err"
+    dnl DEE NO KRB4 AC_DEFINE(KRB5_KRB4_COMPAT)
+    KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5 -ldes425 -lcom_err"
      AC_CHECK_LIB( k5crypto, krb5_c_string_to_key, KERBEROS_LIBS="$KERBEROS_LIBS -lk5crypto" )
      AC_CHECK_LIB( crypto,   krb5_c_string_to_key, KERBEROS_LIBS="$KERBEROS_LIBS -lcrypto"   )
      AC_CHECK_LIB( krb4,     krb_create_ticket,    KERBEROS_LIBS="$KERBEROS_LIBS -lkrb4"     )
@@ -929,7 +929,7 @@
                 [5]*) OS_DEFS="$OS_DEFS -DSOLARIS2 -DGNU_PASS"
                       OS_DEFS="$OS_DEFS -DNO_GETLINE -DCONTENT_LENGTH=1"
                       if test $krb5_prefix != "no" -a $krb5_prefix != "yes"; then
-                         KERBEROS_LIBS="$KERBEROS_LIBS -R${krb5_prefix}/lib"
+                         KERBEROS_LIBS="$KERBEROS_LIBS "
                       fi;;
                 [4]*) OS_DEFS="$OS_DEFS -DSUNOS4"
                           IS_SUNOS4=yes;;
--- ./qpopper4.0.5/,configure	Tue Feb  4 21:06:30 2003
+++ ./qpopper4.0.5/configure	Tue Jul 12 15:08:04 2005
@@ -3175,11 +3175,7 @@
  #define KRB5 1
  EOF

-    cat >>confdefs.h <<\EOF
-#define KRB5_KRB4_COMPAT 1
-EOF
-
-    KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5util -lkrb5 -ldes425 -lcom_err"
+    KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5 -ldes425 -lcom_err"
      echo "$as_me:3183: checking for krb5_c_string_to_key in -lk5crypto" >&5
  echo $ECHO_N "checking for krb5_c_string_to_key in -lk5crypto... $ECHO_C" >&6
  if test "${ac_cv_lib_k5crypto_krb5_c_string_to_key+set}" = set; then
@@ -3895,7 +3891,7 @@
                 5*) OS_DEFS="$OS_DEFS -DSOLARIS2 -DGNU_PASS"
                       OS_DEFS="$OS_DEFS -DNO_GETLINE -DCONTENT_LENGTH=1"
                       if test $krb5_prefix != "no" -a $krb5_prefix != "yes"; then
-                         KERBEROS_LIBS="$KERBEROS_LIBS -R${krb5_prefix}/lib"
+                         KERBEROS_LIBS="$KERBEROS_LIBS "
                       fi;;
                 4*) OS_DEFS="$OS_DEFS -DSUNOS4"
                           IS_SUNOS4=yes;;
Viji wrote:

> Hi All,
> 
> I am using kerberos version 1.4.1. Till kerberos version 1.2.8 "libkrb5util" library was available. But from 1.3 series "libkrb5util" library is not available. 
> 
> I want to build qpopper with kerberos. Qpopper requires "libkrb5util" library. What do i need to do to get this library? Or Is there any other way to build qpopper with kerberos?
> 
> I have used the following build steps.
> kerberos (1.4.1) build
> #./configure --prefix=/usr/local/krb5 --with-krb4
> #gmake
> #gmake install
> 
> Qpopper(4.0.8) Build
> #./configure --prefix=/usr/local/qpopper --with-kerberos5=/usr/local/krb5
> No problem with configure. 
> #gmake
> gcc   pop_dele.o pop_dropcopy.o pop_get_command.o pop_get_subcommand.o pop_init.o pop_last.o pop_list.o pop_log.o pop_lower.o pop_msg.o pop_parse.o pop_pass.o pop_quit.o pop_rset.o pop_send.o pop_stat.o pop_updt.o pop_user.o pop_xtnd.o pop_xmit.o popper.o pop_bull.o xtnd_xlst.o pop_uidl.o mktemp.o pop_rpop.o pop_apop.o md5.o pop_auth.o pop_pope.o pop_extend.o scram.o hmac.o base64.o pop_util.o get_sub_opt.o msg_ptr.o drac.o pop_config.o pop_tls.o pop_tls_openssl.o pop_tls_sslplus.o sslplus_utils.o main.o pop_cache.o genpath.o  -o popper ../mmangle/libmangle.a \
>         -I../common ../common/libcommon.a \
>         -lnsl  -L/usr/local/krb5/lib -lkrb5util -lkrb5 -ldes425 -lcom_err -lk5crypto   -lsec -lcrypt -lpam 
> /usr/ccs/bin/ld: Can't find library: "krb5util"
> collect2: ld returned 1 exit status
> gmake[1]: *** [popper] Error 1
> 
> kerberos version 1.4.1 doesnot contain this "libkrb5util" library. Previously i used kerberos 1.2.2, it is having "libkrb5util" library. But i want to update to the latest version(1.4.1) of kerberos. What i need to do to make qpopper to work with kerberos 1.4.1? 
> 
> Any help will be useful to me.
> 
> Thanks in advance,
> Vijayalakshmi.
> 
> ________________________________________________
> Kerberos mailing list           Kerberos at mit.edu
> https://mailman.mit.edu/mailman/listinfo/kerberos
> 
> 
> 

-- 

  Douglas E. Engert  <DEEngert at anl.gov>
  Argonne National Laboratory
  9700 South Cass Avenue
  Argonne, Illinois  60439
  (630) 252-5444


More information about the Kerberos mailing list