From 77ce9f786e7034fc0d5d4251ede9fdba6dd3490b Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Mon, 29 Aug 2005 18:27:47 +0000 Subject: [PATCH] - update to 2.1.21 - turn off compilation of libsasl v1 (finally) - explicitly disable sqlite to avoid the build warning - change the default mechanism which is set for saslauthd from "shadow" to "pam" (#159194) - split the shared library up from saslauthd so that multilib systems don't have to pull in every dependency of saslauthd for the compat arch (#166749) --- .cvsignore | 2 + cyrus-sasl.spec | 145 ++++++++++++++++++++++++-------------------- saslauthd.sysconfig | 4 +- sources | 5 +- 4 files changed, 85 insertions(+), 71 deletions(-) diff --git a/.cvsignore b/.cvsignore index 35f610e..485352a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -5,3 +5,5 @@ cyrus-sasl-2.1.20.tar.gz cyrus-sasl-2.1.20.tar.gz.sig db-4.3.21.tar.gz db-4.3.27.tar.gz +cyrus-sasl-2.1.21.tar.gz +cyrus-sasl-2.1.21.tar.gz.sig diff --git a/cyrus-sasl.spec b/cyrus-sasl.spec index b365016..8d18202 100644 --- a/cyrus-sasl.spec +++ b/cyrus-sasl.spec @@ -5,13 +5,13 @@ # Version 1 support. We provide the library and plugins for the vanishingly # small number of applications which still need them. As of this writing, -# nothing in the FC4 test tree needs them. -%define includev1 1 +# nothing in Fedora 3 or 4 (Core or Extras) needs them. +%define includev1 0 Summary: The Cyrus SASL library. Name: cyrus-sasl -Version: 2.1.20 -Release: 5 +Version: 2.1.21 +Release: 1 License: Freely Distributable Group: System Environment/Libraries Source0: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz @@ -19,14 +19,15 @@ Source1: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz.si %if %{includev1} Source2: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{cs1_version}.tar.gz Source3: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{cs1_version}.tar.gz.sig +Source5: README.RPM %endif Source4: saslauthd.init -Source5: README.RPM Source6: http://www.sleepycat.com/update/%{db_version}/db-%{db_version}.tar.gz Source7: sasl-mechlist.c Source8: sasl-checkpass.c Source9: saslauthd.sysconfig URL: http://asg.web.cmu.edu/sasl/sasl-library.html +Requires: %{name}-lib = %{version}-%{release} %if %{includev1} Patch0: cyrus-sasl-1.5.24-rpath.patch Patch1: cyrus-sasl-1.5.28-autoconf25.patch @@ -34,22 +35,26 @@ Patch2: cyrus-sasl-1.5.28-automake17.patch Patch3: cyrus-sasl-1.5.28-automake18.patch Patch4: cyrus-sasl-1.5.28-saslauthd2.patch Patch8: cyrus-sasl-1.5.28-notgnu.patch +Patch16: cyrus-sasl-1.5.28-urandom.patch %endif Patch5: cyrus-sasl-2.1.7-gdbm.patch Patch6: cyrus-sasl-2.1.10-des.patch Patch7: cyrus-sasl-2.1.20-gssapi-dynamic.patch Patch9: cyrus-sasl-2.1.17-saslauthd1.patch -Patch10: cyrus-sasl-2.1.20-db_bundle.patch +Patch10: cyrus-sasl-2.1.21-db_bundle.patch Patch11: cyrus-sasl-2.1.18-no_rpath.patch Patch12: cyrus-sasl-1.5.28-env.patch Patch13: cyrus-sasl-2.1.20-notgnu.patch Patch14: cyrus-sasl-2.1.20-conflict.patch +Patch15: cyrus-sasl-2.1.20-saslauthd.conf-path.patch +Patch17: cyrus-sasl-2.1.21-builddir.patch +Patch18: cyrus-sasl-2.1.21-linksrcs.patch Buildroot: %{_tmppath}/%{name}-root %if %{includev1} BuildPrereq: gdbm-devel %endif BuildPrereq: autoconf, automake, libtool -BuildPrereq: krb5-devel >= 1.2, openssl-devel, pam-devel, pkgconfig +BuildPrereq: krb5-devel >= 1.2.2, openssl-devel, pam-devel, pkgconfig BuildPrereq: mysql-devel, postgresql-devel Prereq: /sbin/ldconfig, chkconfig, /sbin/service @@ -58,8 +63,16 @@ The %{name} package contains the Cyrus implementation of SASL. SASL is the Simple Authentication and Security Layer, a method for adding authentication support to connection-based protocols. +%package lib +Group: System Environment/Libraries +Summary: Shared libraries needed by applications which use Cyrus SASL. + +%description lib +The %{name}-lib package contains shared libraries which are needed by +applications which use the Cyrus SASL library. + %package devel -Requires: %{name} = %{version}-%{release} +Requires: %{name}-lib = %{version}-%{release} Group: Development/Libraries Summary: Files needed for developing applications with Cyrus SASL. @@ -68,7 +81,7 @@ The %{name}-devel package contains files needed for developing and compiling applications which use the Cyrus SASL library. %package gssapi -Requires: %{name} = %{version}-%{release} +Requires: %{name}-lib = %{version}-%{release} Group: System Environment/Libraries Summary: GSSAPI support for Cyrus SASL. @@ -78,7 +91,7 @@ support GSSAPI authentication. GSSAPI is commonly used for Kerberos authentication. %package plain -Requires: %{name} = %{version}-%{release} +Requires: %{name}-lib = %{version}-%{release} Group: System Environment/Libraries Summary: PLAIN and LOGIN support for Cyrus SASL. @@ -87,7 +100,7 @@ The %{name}-plain package contains the Cyrus SASL plugins which support PLAIN and LOGIN authentication schemes. %package md5 -Requires: %{name} = %{version}-%{release} +Requires: %{name}-lib = %{version}-%{release} Group: System Environment/Libraries Summary: CRAM-MD5 and DIGEST-MD5 support for Cyrus SASL. @@ -96,7 +109,7 @@ The %{name}-md5 package contains the Cyrus SASL plugins which support CRAM-MD5 and DIGEST-MD5 authentication schemes. %package ntlm -Requires: %{name} = %{version}-%{release} +Requires: %{name}-lib = %{version}-%{release} Group: System Environment/Libraries Summary: NTLM support for Cyrus SASL. @@ -105,7 +118,7 @@ The %{name}-ntlm package contains the Cyrus SASL plugin which supports the NTLM authentication schemes. %package sql -Requires: %{name} = %{version}-%{release} +Requires: %{name}-lib = %{version}-%{release} Group: System Environment/Libraries Summary: SQL auxprop support for Cyrus SASL. @@ -129,6 +142,7 @@ pushd cyrus-sasl-%{cs1_version} %patch4 -p1 -b .saslauthd2 %patch8 -p1 -b .notgnu %patch12 -p1 -b .env +%patch16 -p1 -b .urandom rm config/ltconfig libtoolize -f -c aclocal -I config -I cmulocal @@ -139,10 +153,6 @@ popd %endif pushd cyrus-sasl-%{version} -for buildtype in static shared ; do - mkdir build-${buildtype} - ln -s ../configure build-${buildtype} -done %patch5 -p1 -b .gdbm %patch6 -p1 -b .des %patch7 -p1 -b .gssapi-dynamic @@ -151,6 +161,9 @@ done %patch11 -p1 -b .no_rpath %patch13 -p1 -b .notgnu %patch14 -p1 -b .conflict +%patch15 -p1 -b .path +%patch17 -p1 -b .builddir +%patch18 -p1 -b .linksrcs # FIXME - this is just weird rm config/ltconfig config/libtool.m4 rm -fr autom4te.cache @@ -170,6 +183,7 @@ automake -a -c -f autoheader autoconf -f popd + popd %if %{includev1} @@ -206,6 +220,7 @@ make install popd # Find Kerberos. +krb5_prefix=`krb5-config --prefix` if test x$krb5_prefix = x%{_prefix} ; then krb5_prefix= else @@ -244,7 +259,7 @@ popd mysql_config=mysql_config pg_config=pg_config SQL_CFLAGS=`${mysql_config} --cflags`" -I"`${pg_config} --includedir` -SQL_LIBS=`${mysql_config} --libs`" -L"`${pg_config} --libdir` +SQL_LIBS=`${mysql_config} --libs`" -L"`${pg_config} --libdir`" -lpq" SQL_CFLAGS=`eval echo "$SQL_CFLAGS" | sed -e 's,-I%{_includedir}[^/],,g' -e 's,-I%{_includedir}$,,g' -e 's,[[:blank:]]+, ,g'` SQL_LIBS=`eval echo "$SQL_LIBS" | sed -e 's,-L%{_libdir}[^/],,g' -e 's,-L%{_libdir}$,,g' -e 's,[[:blank:]]+, ,g'` SQL_LDFLAGS=`eval echo "$SQL_LIBS" | sed -e 's,-[^L][^ ]*,,g'` @@ -262,24 +277,9 @@ CFLAGS=`echo $CFLAGS $SQL_CFLAGS | cleanup_flags`; export CFLAGS CPPFLAGS=`echo $CPPFLAGS $SQL_CFLAGS | cleanup_flags`; export CPPFLAGS LDFLAGS=`echo $LDFLAGS $SQL_LDFLAGS | cleanup_flags`; 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. -for buildtype in static shared ; do -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. -ac_cv_can_build_shared=yes -export ac_cv_can_build_shared +pushd cyrus-sasl-%{version} %configure \ - --disable-shared --disable-static --enable-${buildtype} \ + --enable-shared --enable-static \ --disable-java \ --with-plugindir=%{_plugindir2} \ --disable-krb4 \ @@ -299,30 +299,22 @@ export ac_cv_can_build_shared --enable-plain \ --enable-login \ --disable-otp \ + --enable-ldapdb \ + --enable-sql --with-mysql=%{_prefix} --with-pgsql=%{_prefix} \ + --without-sqlite \ $moreflags # --enable-auth-sasldb -- EXPERIMENTAL make sasldir=%{_plugindir2} make -C saslauthd testsaslauthd popd -done # Merge our static libdb in with libsasl, because we won't be installing it. -pushd cyrus-sasl-%{version}/build-static/lib +pushd cyrus-sasl-%{version}/lib 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 \ - `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 -popd -pushd cyrus-sasl-%{version}/build-shared -#tagname=CC ./libtool --mode=link %{__cc} -o saslauthd2-checkpass -DSASL2 -I../include $CFLAGS $RPM_SOURCE_DIR/sasl-checkpass.c $LDFLAGS ./lib/libsasl2.la +tagname=CC ../libtool --mode=link %{__cc} -o sasl2-shared-mechlist -I../include $CFLAGS $RPM_SOURCE_DIR/sasl-mechlist.c $LDFLAGS ./libsasl2.la popd %install @@ -339,11 +331,7 @@ install -m755 sample/server $RPM_BUILD_ROOT%{_bindir}/sasl-sample-server popd %endif -pushd cyrus-sasl-%{version}/build-static -make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir2} -C lib -popd - -pushd cyrus-sasl-%{version}/build-shared +pushd cyrus-sasl-%{version} make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir2} install -m755 -d $RPM_BUILD_ROOT%{_bindir} @@ -359,7 +347,7 @@ install -m755 utils/dbconverter-2 $RPM_BUILD_ROOT%{_sbindir}/dbconverter-2 # Install the saslauthd mdoc page in the expected location. Sure, it's not # really a man page, but groff seems to be able to cope with it. install -m755 -d $RPM_BUILD_ROOT%{_mandir}/man8/ -install -m644 ../saslauthd/saslauthd.mdoc $RPM_BUILD_ROOT%{_mandir}/man8/saslauthd.8 +install -m644 saslauthd/saslauthd.mdoc $RPM_BUILD_ROOT%{_mandir}/man8/saslauthd.8 # Create the saslauthd listening directory. install -m755 -d $RPM_BUILD_ROOT/var/run/saslauthd @@ -383,43 +371,52 @@ $RPM_BUILD_ROOT%{_sbindir}/ # Figure out an easy way to query the list of available mechanisms. libtool --mode=install \ -install -m755 cyrus-sasl-%{version}/build-shared/lib/sasl2-shared-mechlist \ -$RPM_BUILD_ROOT%{_sbindir}/ -libtool --mode=install \ -install -m755 cyrus-sasl-%{version}/build-static/lib/sasl2-static-mechlist \ +install -m755 cyrus-sasl-%{version}/lib/sasl2-shared-mechlist \ $RPM_BUILD_ROOT%{_sbindir}/ # Remove unpackaged files from the buildroot. rm -f $RPM_BUILD_ROOT%{_libdir}/sasl2/libotp.* +rm -f $RPM_BUILD_ROOT%{_libdir}/sasl2/*.a rm -f $RPM_BUILD_ROOT%{_mandir}/cat8/saslauthd.8 +# Check that the static library includes all of the dependencies which +# aren't provided by other packages, i.e. that static linking works. +mysql_config=mysql_config +pg_config=pg_config +SQL_CFLAGS=`${mysql_config} --cflags`" -I"`${pg_config} --includedir` +SQL_LIBS=`${mysql_config} --libs`" -L"`${pg_config} --libdir`" -lpq" +%{__cc} -o $RPM_BUILD_ROOT/%{_sbindir}/sasl2-static-mechlist \ + -I$RPM_BUILD_ROOT/%{_includedir}/sasl $RPM_OPT_FLAGS $SQL_CFLAGS \ + $RPM_SOURCE_DIR/sasl-mechlist.c \ + $RPM_BUILD_ROOT/%{_libdir}/libsasl2.a \ + $SQL_LIBS -lldap -llber `pkg-config --libs openssl` + %clean test "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT %post -/sbin/ldconfig /sbin/chkconfig --add saslauthd %preun -if [ $1 = 0 ] ; then +if [ $1 -eq 0 ] ; then /sbin/chkconfig --del saslauthd fi %postun -/sbin/ldconfig -if [ $1 != 0 ] ; then +if [ $1 -ne 0 ] ; then /sbin/service saslauthd condrestart 2>&1 > /dev/null fi +%post lib -p /sbin/ldconfig +%postun lib -p /sbin/ldconfig + %files %defattr(-,root,root) %if %{includev1} %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.* +%endif +%doc %{name}-%{version}/saslauthd/LDAP_SASLAUTHD %if %{includev1} %dir %{_plugindir}/ %endif @@ -432,6 +429,8 @@ fi %{_plugindir2}/*anonymous*.la %{_plugindir2}/*sasldb*.so* %{_plugindir2}/*sasldb*.la +%{_plugindir2}/*ldapdb*.so* +%{_plugindir2}/*ldapdb*.la %{_mandir}/man8/* %{_sbindir}/dbconverter-2 %if %{includev1} @@ -446,6 +445,11 @@ fi %config /etc/rc.d/init.d/saslauthd /var/run/saslauthd +%files lib +%defattr(-,root,root) +%doc %{name}-%{version}/{AUTHORS,COPYING,NEWS,README,doc/*.html} +%{_libdir}/libsasl*.so.* + %files plain %defattr(-,root,root) %if %{includev1} @@ -532,6 +536,15 @@ fi #%{_sbindir}/saslauthd2-checkpass %changelog +* Mon Aug 29 2005 Nalin Dahyabhai 2.1.21-1 +- update to 2.1.21 +- turn off compilation of libsasl v1 (finally) +- explicitly disable sqlite to avoid the build warning +- change the default mechanism which is set for saslauthd from "shadow" to + "pam" (#159194) +- split the shared library up from saslauthd so that multilib systems don't + have to pull in every dependency of saslauthd for the compat arch (#166749) + * Wed Apr 13 2005 Nalin Dahyabhai 2.1.20-5 - rebuild with new deps diff --git a/saslauthd.sysconfig b/saslauthd.sysconfig index 8bbbd98..08e4373 100644 --- a/saslauthd.sysconfig +++ b/saslauthd.sysconfig @@ -3,8 +3,8 @@ SOCKETDIR=/var/run/saslauthd # Mechanism to use when checking passwords. Run "saslauthd -v" to get a list -# of which mechanism your installation was compiled to use. -MECH=shadow +# of which mechanism your installation was compiled with the ablity to use. +MECH=pam # Additional flags to pass to saslauthd on the command line. See saslauthd(8) # for the list of accepted flags. diff --git a/sources b/sources index f9858f2..86fdf34 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ -60710be040801e9aff7353563b636518 cyrus-sasl-1.5.28.tar.gz -268ead27f4ac39bcfe17d9e38e0f2977 cyrus-sasl-2.1.20.tar.gz -d4ab532887be315f59746ab74de690a4 cyrus-sasl-2.1.20.tar.gz.sig +dde02db234dea892bee298390890502e cyrus-sasl-2.1.21.tar.gz +7af5fab7c35d45ab842cfd1fcbbcf841 cyrus-sasl-2.1.21.tar.gz.sig fcc481d52c3b80e20a328f8c0cb042bd db-4.3.27.tar.gz