ports/51041: Multiple problems with port security/cyrus-sasl2 2.1.13
Oliver Eikemeier
eikemeier at fillmore-labs.com
Wed Apr 16 15:20:25 UTC 2003
>Number: 51041
>Category: ports
>Synopsis: Multiple problems with port security/cyrus-sasl2 2.1.13
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Apr 16 08:20:21 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Oliver Eikemeier
>Release: FreeBSD 4.8-STABLE i386
>Organization:
Fillmore Labs - http://www.fillmore-labs.com
>Environment:
System: FreeBSD nuuk.fillmore-labs.com 4.8-STABLE FreeBSD 4.8-STABLE #0: Sun Apr 6 14:21:01 CEST 2003 root at nuuk.fillmore-labs.com:/usr/obj/usr/src/sys/FILLMORE-LABS i386
>Description:
- The included script fails to shut down saslauthd properly
- Kerberos plugin is not compiled
- The configuration script links with the installed Berkeley DB with highest version,
even when other headers are included
- Berkeley DB 4.1 support is broken
>How-To-Repeat:
- The script assumes the daemons pid is in /var/state/saslauthd/mux.pid
instead of /var/state/saslauthd/saslauthd.pid
- The configuration script fails to detect libkrb, do 'make' and the look in ${WRKSRC}/config.log:
configure:4934: checking for krb_mk_priv in -lkrb
configure:4953: cc -o conftest -Wall -W -Wall -O -pipe -L/usr/local/lib -R/usr/local/lib conftest.c -lcrypto -lcrypt -lkrb -lcom_err 1>&5
/usr/lib/libkrb.so: undefined reference to `des_pcbc_encrypt'
/usr/lib/libkrb.so: undefined reference to `des_set_odd_parity'
/usr/lib/libkrb.so: undefined reference to `des_key_sched'
/usr/lib/libkrb.so: undefined reference to `des_read_pw_string'
/usr/lib/libkrb.so: undefined reference to `des_set_key'
/usr/lib/libkrb.so: undefined reference to `des_cbc_cksum'
/usr/lib/libkrb.so: undefined reference to `des_quad_cksum'
/usr/lib/libkrb.so: undefined reference to `des_string_to_key'
configure: failed program was:
#line 4942 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char krb_mk_priv();
int main() {
krb_mk_priv()
; return 0; }
- Install Berkeley DB 4.0 and then choose Berkeley DB 3.0 in the installation.
The libraries are compiled with -I/usr/local/include/db3 and -ldb4.
That happened even before the patch in ports/50962.
- sasldb works with Berkeley DB 3.3 and 4.0, but with 4.1 I get:
error fetching from sasldb: Invalid argument
error closing sasldb: Invalid argument
in /var/log/messages. Probably something in sasldb/db_berkeley.c.
>Fix:
The following patch fixes:
- path to pid
- choose the right Berkeley DB version (hack)
It disables Kerberos and Berkeley DB 4.1 until these issues have been investigated further.
cd /usr/ports/security
patch < ~/cyrus-sasl-2.1.3_1.patch
find cyrus-sasl2 -name '*.orig' -delete
--- cyrus-sasl-2.1.3_1.patch begins here ---
diff -Nur cyrus-sasl2/Makefile.orig cyrus-sasl2/Makefile
--- cyrus-sasl2/Makefile.orig Tue Apr 15 19:03:27 2003
+++ cyrus-sasl2/Makefile Wed Apr 16 16:41:12 2003
@@ -7,7 +7,7 @@
PORTNAME= cyrus-sasl
PORTVERSION= 2.1.13
-#PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= security ipv6
MASTER_SITES= ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ \
ftp://ftp.westbend.net/pub/cyrus-mail/ \
@@ -87,6 +87,7 @@
GSSAPI= "@comment "
.endif
+WITHOUT_KERBEROS?= YES # Kerberos detection in configure is broken
.if exists(/usr/lib/libkrb.a) && !defined(WITHOUT_KERBEROS)
CONFIGURE_ARGS+= --enable-krb4
.else
diff -Nur cyrus-sasl2/files/patch-configure.orig cyrus-sasl2/files/patch-configure
--- cyrus-sasl2/files/patch-configure.orig Tue Apr 15 20:09:30 2003
+++ cyrus-sasl2/files/patch-configure Wed Apr 16 16:37:56 2003
@@ -5,7 +5,7 @@
fi
- for dbname in db-4.1 db4.1 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
-+ for dbname in db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
++ for dbname in "${with_bdb}" db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
do
echo $ac_n "checking for db_create in -l$dbname""... $ac_c" 1>&6
echo "configure:2659: checking for db_create in -l$dbname" >&5
@@ -14,7 +14,7 @@
fi
- for dbname in db-4.1 db4.1 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
-+ for dbname in db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
++ for dbname in "${with_bdb}" db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
do
echo $ac_n "checking for db_create in -l$dbname""... $ac_c" 1>&6
echo "configure:3050: checking for db_create in -l$dbname" >&5
diff -Nur cyrus-sasl2/files/patch-saslauthd::configure.orig cyrus-sasl2/files/patch-saslauthd::configure
--- cyrus-sasl2/files/patch-saslauthd::configure.orig Tue Apr 15 20:09:30 2003
+++ cyrus-sasl2/files/patch-saslauthd::configure Wed Apr 16 16:38:08 2003
@@ -5,7 +5,7 @@
fi
- for dbname in db-4.1 db4.1 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
-+ for dbname in db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
++ for dbname in "${with_bdb}" db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
do
echo $ac_n "checking for db_create in -l$dbname""... $ac_c" 1>&6
echo "configure:3448: checking for db_create in -l$dbname" >&5
@@ -14,7 +14,7 @@
fi
- for dbname in db-4.1 db4.1 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
-+ for dbname in db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
++ for dbname in "${with_bdb}" db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db4 db-3.3 db3.3 db-3.2 db3.2 db-3.1 db3.1 db-3 db3 db
do
echo $ac_n "checking for db_create in -l$dbname""... $ac_c" 1>&6
echo "configure:3839: checking for db_create in -l$dbname" >&5
diff -Nur cyrus-sasl2.orig/files/saslauthd.sh.orig cyrus-sasl2/files/saslauthd.sh
--- cyrus-sasl2/files/saslauthd.sh.orig Thu Aug 8 16:04:44 2002
+++ cyrus-sasl2/files/saslauthd.sh Wed Apr 16 12:06:46 2003
@@ -54,10 +54,9 @@
;;
stop)
- if [ -r /var/state/saslauthd/mux.pid ]; then
- kill `cat /var/state/saslauthd/mux.pid` && \
+ if [ -r /var/state/saslauthd/saslauthd.pid ]; then
+ kill `cat /var/state/saslauthd/saslauthd.pid` && \
echo -n " saslauthd"
- rm /var/state/saslauthd/mux.pid
fi
;;
diff -Nur cyrus-sasl2/scripts/configure.sasl.orig cyrus-sasl2/scripts/configure.sasl
--- cyrus-sasl2/scripts/configure.sasl.orig Tue Apr 15 19:03:28 2003
+++ cyrus-sasl2/scripts/configure.sasl Wed Apr 16 16:26:02 2003
@@ -56,7 +56,7 @@
else
SET_MYSQL="OFF"
fi
- if [ "${WITH_LDAP}" -o -f ${PREFIX}/lib/libldap.so.2 -a -f ${PREFIX}/lib/liblber.so.2 \
+ if [ "${WITH_LDAP21}" -o -f ${PREFIX}/lib/libldap.so.2 -a -f ${PREFIX}/lib/liblber.so.2 \
-a -f ${PREFIX}/bin/ldapwhoami ] ; then
SET_LDAP21="ON"
SET_LDAP="OFF"
@@ -124,8 +124,11 @@
rm -f ${WRKDIRPREFIX}${REALCURDIR}/Makefile.inc
exit 1
fi
+ echo "db41 support is broken." > /dev/stderr
+ rm -f ${WRKDIRPREFIX}${REALCURDIR}/Makefile.inc
+ exit 1
echo "LIB_DEPENDS+= db41.1:\${PORTSDIR}/databases/db41"
- echo "CONFIGURE_ARGS+= --with-dblib=berkeley --with-bdb-incdir=${PREFIX}/include/db41 --with-bdb-libdir=${PREFIX}/lib"
+ echo "CONFIGURE_ARGS+= --with-bdb=db41 --with-dblib=berkeley --with-bdb-incdir=${PREFIX}/include/db41 --with-bdb-libdir=${PREFIX}/lib"
echo "SASLDB_NAME= sasldb2"
DBLIB=1
;;
@@ -136,7 +139,7 @@
exit 1
fi
echo "LIB_DEPENDS+= db4.0:\${PORTSDIR}/databases/db4"
- echo "CONFIGURE_ARGS+= --with-dblib=berkeley --with-bdb-incdir=${PREFIX}/include/db4 --with-bdb-libdir=${PREFIX}/lib"
+ echo "CONFIGURE_ARGS+= --with-bdb=db4 --with-dblib=berkeley --with-bdb-incdir=${PREFIX}/include/db4 --with-bdb-libdir=${PREFIX}/lib"
echo "SASLDB_NAME= sasldb2"
DBLIB=1
;;
@@ -147,7 +150,7 @@
exit 1
fi
echo "LIB_DEPENDS+= db3.3:\${PORTSDIR}/databases/db3"
- echo "CONFIGURE_ARGS+= --with-dblib=berkeley --with-bdb-incdir=${PREFIX}/include/db3 --with-bdb-libdir=${PREFIX}/lib"
+ echo "CONFIGURE_ARGS+= --with-bdb=db3 --with-dblib=berkeley --with-bdb-incdir=${PREFIX}/include/db3 --with-bdb-libdir=${PREFIX}/lib"
echo "SASLDB_NAME= sasldb2"
DBLIB=1
;;
--- cyrus-sasl-2.1.3_1.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list