diff --git a/cyrus-sasl.spec b/cyrus-sasl.spec index 83903bf..44afd89 100644 --- a/cyrus-sasl.spec +++ b/cyrus-sasl.spec @@ -10,7 +10,7 @@ Summary: The Cyrus SASL library. Name: cyrus-sasl Version: 2.1.18 -Release: 3 +Release: 4 License: Freely Distributable Group: System Environment/Libraries Source0: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz @@ -45,6 +45,7 @@ BuildPrereq: gdbm-devel %endif BuildPrereq: autoconf, automake, libtool BuildPrereq: krb5-devel >= 1.2, openssl-devel, pam-devel, pkgconfig +BuildPrereq: mysql-devel, postgresql-devel Prereq: /sbin/ldconfig, chkconfig, /sbin/service %description @@ -89,6 +90,24 @@ Summary: CRAM-MD5 and DIGEST-MD5 support for Cyrus SASL. The %{name}-md5 package contains the Cyrus SASL plugins which support CRAM-MD5 and DIGEST-MD5 authentication schemes. +%package ntlm +Requires: %{name} = %{version}-%{release} +Group: System Environment/Libraries +Summary: NTLM support for Cyrus SASL. + +%description ntlm +The %{name}-ntlm package contains the Cyrus SASL plugin which supports +the NTLM authentication schemes. + +%package sql +Requires: %{name} = %{version}-%{release} +Group: System Environment/Libraries +Summary: SQL auxprop support for Cyrus SASL. + +%description sql +The %{name}-sql package contains the Cyrus SASL plugin which supports +using a RDBMS for storing shared secrets. + %prep %if %{includev1} %setup -q -c -a 2 -a 6 @@ -184,6 +203,11 @@ else LDFLAGS="-L${krb5_prefix}/%{_lib}"; export LDFLAGS fi LIBS="-lcrypt"; export LIBS +if pkg-config openssl ; then + CPPFLAGS="`pkg-config --cflags-only-I openssl` $CPPFLAGS"; export CPPFLAGS + CFLAGS="`pkg-config --cflags openssl` $CFLAGS"; export CFLAGS + LDFLAGS="`pkg-config --libs-only-L openssl` $LDFLAGS"; export LDFLAGS +fi %if %{includev1} pushd cyrus-sasl-%{cs1_version} @@ -205,6 +229,20 @@ tagname=CC libtool --mode=link %{__cc} -o saslauthd1-checkpass -I./include $CFLA popd %endif +# Find the SQL libraries used needed by the SQL auxprop plugin. +SQL_CFLAGS=`mysql_config --cflags`" -I"`pg_config --includedir` +SQL_LIBS=`mysql_config --libs`" -L"`pg_config --libdir`"" +SQL_CFLAGS=`eval echo "$SQL_CFLAGS" | sed -e 's,-I%{_includedir}[^/],,g' -e 's,-I%{_includedir}$,,g'` +SQL_LIBS=`eval echo "$SQL_LIBS" | sed -e 's,-L%{_libdir}[^/],,g' -e 's,-L%{_libdir}$,,g'` +SQL_LDFLAGS=`eval echo "$SQL_LIBS" | sed -e 's,-[^L][^ ]*,,g'` +echo $SQL_LDFLAGS +SQL_LIBS=`eval echo "$SQL_LIBS" | sed -e 's,-[^l][^ ]*,,g'` +echo $SQL_LIBS + +CFLAGS=`echo $CFLAGS $SQL_CFLAGS | sed -e 's,[ ]+, ,g'`; export CFLAGS +CPPFLAGS=`echo $CPPFLAGS $SQL_CFLAGS | sed -e 's,[ ]+, ,g'`; export CPPFLAGS +LDFLAGS=`echo $LDFLAGS $SQL_LDFLAGS | sed -e 's,[ ]+, ,g'`; export LDFLAGS + # Version 2. If built statically, the plugins are part of the library itself, # and if built shared in the same instance, in the shared library, too, so we # build twice. Yay. @@ -213,6 +251,9 @@ pushd cyrus-sasl-%{version}/build-${buildtype} build_static= build_shared= eval build_${buildtype}=yes +if test x$build_shared = xyes ; then + moreflags="--enable-sql --with-mysql=%{_prefix} --with-pgsql=%{_prefix}" +fi # We patch configure.in, so we regenerate configure, but the generated version # doesn't cache whether or not it can build shared libraries, so configure gets # confused. Aaargh. @@ -224,6 +265,7 @@ export ac_cv_can_build_shared --with-plugindir=%{_plugindir2} \ --disable-krb4 \ --enable-gssapi${krb5_prefix:+=${krb5_prefix}} \ + --with-gss_impl=mit \ --with-rc4 \ --with-dblib=berkeley \ --with-bdb-incdir=${topdir}/db-instroot/include \ @@ -234,10 +276,11 @@ export ac_cv_can_build_shared --enable-anon \ --enable-cram \ --enable-digest \ + --enable-ntlm \ --enable-plain \ --enable-login \ --disable-otp \ - --disable-sql + $moreflags # --enable-auth-sasldb -- EXPERIMENTAL make sasldir=%{_plugindir2} make -C saslauthd testsaslauthd @@ -250,7 +293,11 @@ ar x ${topdir}/db-instroot/lib/libdb.a ar cru libsasl2.a `ar t ${topdir}/db-instroot/lib/libdb.a` # Build small programs to list the available mechanisms, because I need them. -%{__cc} -o sasl2-static-mechlist -I../../include $CFLAGS $RPM_SOURCE_DIR/sasl-mechlist.c $LDFLAGS ./libsasl2.a -lssl -lgssapi_krb5 +%{__cc} -o sasl2-static-mechlist \ + -I../../include $CFLAGS \ + $RPM_SOURCE_DIR/sasl-mechlist.c \ + $LDFLAGS ./libsasl2.a \ + `pkg-config --libs openssl` popd pushd cyrus-sasl-%{version}/build-shared/lib tagname=CC ../libtool --mode=link %{__cc} -o sasl2-shared-mechlist -I../../include $CFLAGS $RPM_SOURCE_DIR/sasl-mechlist.c $LDFLAGS ./libsasl2.la @@ -351,6 +398,7 @@ fi %doc %{name}-%{version}/%{cs1_version} %endif %doc %{name}-%{version}/{AUTHORS,COPYING,NEWS,README,doc/*.html} +%doc %{name}-%{version}/saslauthd/LDAP_SASLAUTHD %doc $RPM_SOURCE_DIR/README.RPM %{_libdir}/libsasl*.so.* %if %{includev1} @@ -405,6 +453,16 @@ fi %{_plugindir2}/*digestmd5*.so* %{_plugindir2}/*digestmd5*.la +%files ntlm +%defattr(-,root,root) +%{_plugindir2}/*ntlm*.so* +%{_plugindir2}/*ntlm*.la + +%files sql +%defattr(-,root,root) +%{_plugindir2}/*sql*.so* +%{_plugindir2}/*sql*.la + %files gssapi %defattr(-,root,root) %if %{includev1} @@ -459,6 +517,13 @@ fi # TODO: enable sql if the time comes when the soname doesn't change too often # %changelog +* Mon Jun 7 2004 Nalin Dahyabhai 2.1.18-4 +- enable sql auxprop support in a subpackage +- include LDAP_SASLAUTHD documentation file (#124830) + +* Fri Jun 4 2004 Nalin Dahyabhai +- turn on ntlm + * Thu May 13 2004 Thomas Woerner 2.1.18-3 - removed rpath diff --git a/saslauthd.init b/saslauthd.init index 1988c2a..e016dbd 100755 --- a/saslauthd.init +++ b/saslauthd.init @@ -25,6 +25,13 @@ RETVAL=0 prog=saslauthd path=/usr/sbin/saslauthd +# Ugh. Switch to a specific copy of saslauthd if there's one with $MECH +# in its name, in case it wasn't included in the base cyrus-sasl package +# because it would have dragged in too many undesirable dependencies. +if test -x ${path}.${MECH} ; then + path=/usr/sbin/saslauthd.$MECH +fi + start() { echo -n $"Starting $prog: " daemon $path -m $SOCKETDIR -a $MECH $FLAGS