Bug 48442 - security/cyrus-sasl: Bento fails to build libkerberos + Upgrade
Summary: security/cyrus-sasl: Bento fails to build libkerberos + Upgrade
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Edwin Groothuis
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-02-18 21:20 UTC by Scot W. Hetzel
Modified: 2003-04-17 19:00 UTC (History)
0 users

See Also:


Attachments
file.diff (27.31 KB, patch)
2003-02-18 21:20 UTC, Scot W. Hetzel
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Scot W. Hetzel 2003-02-18 21:20:06 UTC
	Bento fails to proberly package the port on -CURRENT due to
	-CURRENT no longer has libdes.* as the des functions have been
	moved to the libcrypto.* library.

Fix: The attached patch corrects the above problem, as well as upgrades
	the port to 1.5.28.

	Changed Files:
	    Makefile
	    distinfo
	    pkg-deinstall
	    pkg-install
	    pkg-plist
	    files/patch-ab
	    patch-saslauthd::Makefile.am
	    files/pwcheck.sh
	    files/saslauthd.sh
	    scripts/configure.sasl

	New Files:
	    files/cyrus_sasl1

	Removed Files:
	    files/patch-plugins::gssapi.c
How-To-Repeat: 	Try to build the port on -CURRENT with /usr/lib/libkrb.* libraries
	installed.  During the configure phase the DES functions will not
	be detected, and disable the KERBEROS_V4 mech.  Then it will fail
	during package creation due to missing libkerberos4.* libraries.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2003-02-23 06:52:17 UTC
State Changed
From-To: open->feedback

[~/ports/security/cyrus-sasl] edwin@ref5>MASTER_SITE_OVERRIDE=1 make fetch 

Comment 2 Scot W. Hetzel 2003-02-24 21:39:17 UTC
From: "Edwin Groothuis" <edwin@FreeBSD.org>
> [~/ports/security/cyrus-sasl] edwin@ref5>MASTER_SITE_OVERRIDE=1 make fetch
> >> sasl-1.5.28-ldap-ssl-filter-mysql-patch.tgz doesn't seem to exist in
/home/edwin/ports/distfiles/.
> >> Attempting to fetch from http://www.surf.org.uk/downloads/.
> Receiving sasl-1.5.28-ldap-ssl-filter-mysql-patch (9841 bytes): 100%
> 9841 bytes transferred in 0.3 seconds (31.36 kBps)
> [~/ports/security/cyrus-sasl] edwin@ref5>make checksum
> >> Checksum OK for cyrus-sasl-1.5.28.tar.gz.
> >> Checksum mismatch for sasl-1.5.28-ldap-ssl-filter-mysql-patch.tgz.
> >> Checksum OK for sasl_apop_patch.gz.
> >> Checksum OK for cyrus-sasl-1.5.28-ipv6-20020106.diff.gz.
>
>
> Can you please verify that file?
>
The file at surf.org is missing a patch to correct a SIG 11 problem when
alias_deref is not defined in imapd.conf.  I have notified Simon of the
problem, and hopefully he'll update the patch at his website.

Scot

diff -ruN ldap-mysql_sasl-1.5.28.orig/ChangeLog
ldap-mysql_sasl-1.5.28/ChangeLog
--- ldap-mysql_sasl-1.5.28.orig/ChangeLog       Thu Oct 31 09:56:55 2002
+++ ldap-mysql_sasl-1.5.28/ChangeLog    Mon Sep  9 23:30:34 2002
@@ -1,9 +1,3 @@
-31-10-2002 - Scot Hetzel
-
-  If ldap_alias_deref wasn't defined in the imapd.conf file, the check
-  would cause a sig 11 due to a null pointer was assigned to 'alias_deref'
-  in lib/checkpw.c.  Fix provided by:  Thomas Klein <gourdin@gcu-squad.org>
-
 09-09-2002 - Scot Hetzel

   Update to patch against 1.5.28
diff -ruN ldap-mysql_sasl-1.5.28.orig/sasl-ldap+mysql.patch
ldap-mysql_sasl-1.5.28/sasl-ldap+mysql.patch
--- ldap-mysql_sasl-1.5.28.orig/sasl-ldap+mysql.patch   Thu Oct 31 09:53:23
2002
+++ ldap-mysql_sasl-1.5.28/sasl-ldap+mysql.patch        Mon Sep  9 23:50:06
2002
@@ -785,11 +785,11 @@
 +
 +  if (!alias_deref || *alias_deref == 'n' || *alias_deref =='N')
 +     { ldap_deref=LDAP_DEREF_NEVER; }
-+  else if (*alias_deref == 's' || *alias_deref =='S')
++  if (*alias_deref == 's' || *alias_deref =='S')
 +     { ldap_deref=LDAP_DEREF_SEARCHING; }
-+  else if (*alias_deref == 'f' || *alias_deref =='F')
++  if (*alias_deref == 'f' || *alias_deref =='F')
 +     { ldap_deref=LDAP_DEREF_FINDING; }
-+  else if (*alias_deref == 'a' || *alias_deref =='A')
++  if (*alias_deref == 'a' || *alias_deref =='A')
 +     { ldap_deref=LDAP_DEREF_ALWAYS; }
 +  /* test for ssl mode */
 +  /* this will only work with openldap > v2
Comment 3 Scot W. Hetzel 2003-02-25 00:12:47 UTC
Simon at surf.org has uploaded the corrected
sasl-1.5.28-ldap-ssl-filter-mysql-patch.tgz file.  It now has an md5 of
1cb8cd37573b6baa91339bcef2912e1a.  You'll need to use makesum to update
distinfo.

Scot
Comment 4 Patrick Oonk 2003-02-25 16:02:47 UTC
This was also mistakenly submitted to PR ports/3671.

I cvsupped to 1.5.28 and still get errors on FreeBSD 4.8-PRELEASE

# New ports collection makefile for:    cyrus-sasl
# Date created:                         Nov 1 1999
# Whom:                                 hetzels@westbend.net
#
# $FreeBSD: ports/security/cyrus-sasl/Makefile,v 1.48 2003/02/21 
13:26:42 knu Exp $
#

PORTNAME=       cyrus-sasl
PORTVERSION=    1.5.28

....

FreeBSD sco 4.8-PRERELEASE FreeBSD 4.8-PRERELEASE #1: Fri Feb 21 
15:02:50 CET 2003     pine@sco:/usr/obj/usr/src/sys/SCO  i386

...

creating libdigestmd5.la
(cd .libs && rm -f libdigestmd5.la && ln -s ../libdigestmd5.la 
libdigestmd5.la)
/bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I.. 
-I../include  -I/usr/local/includee/db3 -I/usr/include/openssl  
-I/usr/local/include  -Wall -W -O -pipe -c kerberos4.c
rm -f .libs/kerberos4.lo
cc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/db3 
-I/usr/include/openssl -I/usr//local/include -Wall -W -O -pipe -c 
kerberos4.c  -fPIC -DPIC -o .libs/kerberos4.lo
kerberos4.c:731: unterminated macro call
kerberos4.c:1402: warning: preprocessing directive not recognized 
within macro arg
kerberos4.c:1402: warning: preprocessing directive not recognized 
within macro arg
kerberos4.c:730: unterminated `#if' conditional
In file included from /usr/include/krb.h:355,
                  from kerberos4.c:48:
/usr/include/krb-protos.h:182: warning: `struct des_ks_struct' declared 
inside parameter list
/usr/include/krb-protos.h:182: warning: its scope is only this 
definition or declaration, which is pprobably not what you want.
/usr/include/krb-protos.h:455: warning: `struct des_ks_struct' declared 
inside parameter list
/usr/include/krb-protos.h:533: warning: `struct des_ks_struct' declared 
inside parameter list
/usr/include/krb-protos.h:573: warning: `struct des_ks_struct' declared 
inside parameter list
/usr/include/krb-protos.h:589: warning: `struct des_ks_struct' declared 
inside parameter list
kerberos4.c: In function `privacy_encode':
kerberos4.c:195: incompatible type for argument 4 of `krb_mk_priv'
kerberos4.c:195: warning: passing arg 6 of `krb_mk_priv' from 
incompatible pointer type
kerberos4.c:195: warning: passing arg 7 of `krb_mk_priv' from 
incompatible pointer type
kerberos4.c: In function `privacy_decode':
kerberos4.c:279: incompatible type for argument 3 of `krb_rd_priv'
kerberos4.c:279: warning: passing arg 5 of `krb_rd_priv' from 
incompatible pointer type
kerberos4.c:279: warning: passing arg 6 of `krb_rd_priv' from 
incompatible pointer type
kerberos4.c: In function `integrity_encode':
kerberos4.c:344: warning: passing arg 5 of `krb_mk_safe' from 
incompatible pointer type
kerberos4.c:344: warning: passing arg 6 of `krb_mk_safe' from 
incompatible pointer type
kerberos4.c: In function `integrity_decode':
kerberos4.c:426: warning: passing arg 4 of `krb_rd_safe' from 
incompatible pointer type
kerberos4.c:426: warning: passing arg 5 of `krb_rd_safe' from 
incompatible pointer type
kerberos4.c: In function `server_continue_step':
kerberos4.c:733: undefined or invalid # directive
kerberos4.c:736: undefined or invalid # directive
kerberos4.c:740: warning: passing arg 1 of `DES_pcbc_encrypt' from 
incompatible pointer type
kerberos4.c:740: warning: passing arg 2 of `DES_pcbc_encrypt' from 
incompatible pointer type
kerberos4.c:740: syntax error before `;'
kerberos4.c:742: syntax error before `;'
kerberos4.c:712: warning: `testnum' might be used uninitialized in this 
function
kerberos4.c: At top level:
kerberos4.c:870: syntax error before `)'
kerberos4.c:871: invalid lvalue in unary `&'
kerberos4.c:871: initializer element is not constant
kerberos4.c:871: (near initialization for `plugins[0].mech_name')
kerberos4.c:873: syntax error before `)'
kerberos4.c:867: warning: array `plugins' assumed to have one element
kerberos4.c:503: warning: `server_start' defined but not used
kerberos4.c:512: warning: `dispose' defined but not used
kerberos4.c:521: warning: `mech_free' defined but not used
kerberos4.c:560: warning: `server_continue_step' defined but not used
*** Error code 1

Stop in /usr/ports/security/cyrus-sasl/work/cyrus-sasl-1.5.28/plugins.
*** Error code 1

Stop in /usr/ports/security/cyrus-sasl/work/cyrus-sasl-1.5.28.
*** Error code 1

Stop in /usr/ports/security/cyrus-sasl/work/cyrus-sasl-1.5.28.
*** Error code 1

Stop in /usr/ports/security/cyrus-sasl.
*** Error code 1

Stop in /usr/ports/security/cyrus-sasl.
sco#
Comment 5 Edwin Groothuis freebsd_committer freebsd_triage 2003-02-26 11:29:00 UTC
State Changed
From-To: feedback->closed

Commited, thanks!
Comment 6 Scot W. Hetzel 2003-02-27 18:26:37 UTC
From: "patrick" <patrick@cookie.monster.org>
> This was also mistakenly submitted to PR ports/3671.
>
> I cvsupped to 1.5.28 and still get errors on FreeBSD 4.8-PRELEASE
>
:
> /bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I..
> -I../include  -I/usr/local/includee/db3 -I/usr/include/openssl
> -I/usr/local/include  -Wall -W -O -pipe -c kerberos4.c
> rm -f .libs/kerberos4.lo
> cc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include/db3
> -I/usr/include/openssl -I/usr//local/include -Wall -W -O -pipe -c
> kerberos4.c  -fPIC -DPIC -o .libs/kerberos4.lo
> kerberos4.c:731: unterminated macro call
> kerberos4.c:1402: warning: preprocessing directive not recognized
> within macro arg
> kerberos4.c:1402: warning: preprocessing directive not recognized
> within macro arg
> kerberos4.c:730: unterminated `#if' conditional
> In file included from /usr/include/krb.h:355,
>                   from kerberos4.c:48:

This problem is caused by the OpenSSL upgrade in 4.8, as the
des_pcbc_encrypt function was changed to a macro, and a #if .. #else ..
#endif, was being used to conditionalize the variable type used in the
function..

A fix for this problem has been submitted to PR 48731.
    http://www.freebsd.org/cgi/query-pr.cgi?pr=48731

Scot
Comment 7 sit 2003-04-17 18:51:57 UTC
It looks to me libkerberos is still not built (at least on 4.8), see
e.g.:

http://bento.freebsd.org/errorlogs/i386-4-full-logs/cyrus-sasl-1.5.28.log.bz2
http://bento.freebsd.org/errorlogs/i386-4-full-logs/cyrus-sasl-2.1.12.log.bz2

    checking for DES_cbc_encrypt in -lcrypto... yes
    checking for openssl/des.h... yes
    checking DIGEST-MD5... enabled
    checking KERBEROS_V4... disabled

There are still references to -ldes that fail on 4.8-RELEASE.

-- 
Emil Sit / MIT: LCS PDOS, SIPB, OLC / http://web.mit.edu/sit/www/