auto-import changelog data from cyrus-sasl-2.1.17-1.src.rpm

Wed Jan 07 2004 Nalin Dahyabhai <nalin@redhat.com> 2.1.17-1
- forcibly disable otp and sql plugins at compile-time
Fri Dec 19 2003 Nalin Dahyabhai <nalin@redhat.com>
- update to 2.1.17, forcing the gssapi plugin to be shared now, as before
- use a bundled libdb (#112215)
- build static-with-all-plugins and normal-shared libsasl versions
- add sasl2-{shared,static}-mechlist for very basic sanity checking
- make inclusion of sasl1 stuffs conditional, because it's so going away
Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 2.1.15-7
- rebuild against db-4.2.52.
This commit is contained in:
cvsdist 2004-09-09 04:05:41 +00:00
parent 070f98423b
commit eb2d1017f4
4 changed files with 266 additions and 36 deletions

View File

@ -1,2 +1,3 @@
cyrus-sasl-1.5.28.tar.gz
cyrus-sasl-2.1.15.tar.gz
cyrus-sasl-2.1.17.tar.gz
db-4.2.52.tar.gz

View File

@ -1,34 +1,45 @@
%define cs1_version 1.5.28
%define _plugindir %{_libdir}/sasl
%define _plugindir2 %{_libdir}/sasl2
%define db_version 4.2.52
# Version 1 support. We provide the library and plugins for the vanishingly
# small number of applications which still need them. Mutt, this means you.
%define includev1 1
Summary: The Cyrus SASL library.
Name: cyrus-sasl
Version: 2.1.15
Release: 6
Version: 2.1.17
Release: 1
License: Freely Distributable
Group: System Environment/Libraries
Source0: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz
Source1: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz.sig
%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
%endif
Source4: saslauthd.init
Source5: README.RPM
Source6: http://www.sleepycat.com/download/snapshot/db-%{db_version}.tar.gz
Source7: sasl-mechlist.c
URL: http://asg.web.cmu.edu/sasl/sasl-library.html
%if %{includev1}
Patch0: cyrus-sasl-1.5.24-rpath.patch
Patch1: cyrus-sasl-1.5.28-autoconf25.patch
Patch2: cyrus-sasl-1.5.28-automake17.patch
Patch3: cyrus-sasl-2.1.7-gdbm.patch
Patch4: cyrus-sasl-2.1.10-des.patch
Patch5: cyrus-sasl-2.1.14-automake17.patch
Patch6: cyrus-sasl-2.1.13-rpath.patch
Patch7: cyrus-sasl-2.1.15-libtool15.patch
Patch8: cyrus-sasl-2.1.14-plugin.patch
Patch3: cyrus-sasl-1.5.28-automake18.patch
%endif
Patch4: cyrus-sasl-2.1.7-gdbm.patch
Patch5: cyrus-sasl-2.1.10-des.patch
Patch6: cyrus-sasl-2.1.17-gssapi-dynamic.patch
Patch7: cyrus-sasl-2.1.17-db42.patch
Buildroot: %{_tmppath}/%{name}-root
BuildPrereq: autoconf213, automake15, libtool
# Note: berkeley db for sasl2, gdbm for sasl1.
BuildPrereq: db4-devel, gdbm-devel, krb5-devel >= 1.2, openssl-devel, pam-devel
BuildPrereq: pkgconfig
%if %{includev1}
BuildPrereq: gdbm-devel
%endif
BuildPrereq: autoconf, automake, libtool
BuildPrereq: krb5-devel >= 1.2, openssl-devel, pam-devel, pkgconfig
Prereq: /sbin/ldconfig, chkconfig, /sbin/service
%description
@ -74,29 +85,38 @@ The %{name}-md5 package contains the Cyrus SASL plugins which support
CRAM-MD5 and DIGEST-MD5 authentication schemes.
%prep
%setup -q -c -a 2
%if %{includev1}
%setup -q -c -a 2 -a 6
%else
%setup -q -c -a 6
%endif
%if %{includev1}
pushd cyrus-sasl-%{cs1_version}
%patch0 -p1 -b .rpath
%patch1 -p1 -b .autoconf25
%patch2 -p1 -b .automake17
%patch3 -p1 -b .automake18
rm config/ltconfig
libtoolize -f -c
aclocal -I config -I cmulocal
automake -a -c -f
autoheader
autoconf -f
popd
%endif
pushd cyrus-sasl-%{version}
%patch3 -p1 -b .gdbm
%patch4 -p1 -b .des
%patch5 -p1 -b .automake17
%patch6 -p1 -b .rpath
%patch7 -p1 -b .libtool15
%patch8 -p1 -b .plugin
ln -s ../plugins/plugin_common.c lib/
# Remove the mismatching AC_PROG_LIBTOOL definition and its ltconfig.
> acinclude.m4
rm config/ltconfig
for buildtype in static shared ; do
mkdir build-${buildtype}
ln -s ../configure build-${buildtype}
done
%patch4 -p1 -b .gdbm
%patch5 -p1 -b .des
%patch6 -p1 -b .gssapi-dynamic
%patch7 -p1 -b .db42
# FIXME - this is just weird
rm config/ltconfig acinclude.m4
libtoolize -f -c
aclocal -I config -I cmulocal
automake -a -c -f
@ -104,6 +124,7 @@ autoheader
autoconf -f
pushd saslauthd
# FIXME - this is just weird
rm config/ltconfig
libtoolize -f -c
aclocal -I config -I ../cmulocal -I ../config
@ -113,11 +134,13 @@ autoconf -f
popd
popd
%if %{includev1}
# Sort of merge the docs.
mkdir cyrus-sasl-%{version}/%{cs1_version}
mkdir cyrus-sasl-%{version}/%{cs1_version}-devel
cp %{name}-%{cs1_version}/{AUTHORS,COPYING,NEWS,README,doc/*.html} cyrus-sasl-%{version}/%{cs1_version}
cp %{name}-%{cs1_version}/doc/*.txt cyrus-sasl-%{version}/%{cs1_version}-devel
# Remove duplicate RFCs.
pushd cyrus-sasl-%{version}/%{cs1_version}-devel
for file in * ; do
@ -126,17 +149,35 @@ for file in * ; do
fi
done
popd
%endif
%build
krb5_prefix=`krb5-config --prefix`
CFLAGS="$RPM_OPT_FLAGS -fPIC"; export CFLAGS
# Bundling copy of Berkeley DB, for sasldb.
topdir=`pwd`
pushd db-%{db_version}/build_unix
../dist/configure \
--with-mutex=UNIX/fcntl --disable-shared --enable-static --with-pic \
--with-uniquename=_cyrus_sasl_sasldb_rhl \
--prefix=${topdir}/db-instroot \
--includedir=${topdir}/db-instroot/include \
--libdir=${topdir}/db-instroot/lib
make
make install
popd
# Find Kerberos.
if test x$krb5_prefix = x%{_prefix} ; then
krb5_prefix=
else
CPPFLAGS="-I${krb5_prefix}/include"; export CPPFLAGS
CFLAGS="-I${krb5_prefix}/include $RPM_OPT_FLAGS"; export CFLAGS
CFLAGS="-I${krb5_prefix}/include $CFLAGS"
LDFLAGS="-L${krb5_prefix}/%{_lib}"; export LDFLAGS
fi
LIBS="-lcrypt"; export LIBS
%if %{includev1}
pushd cyrus-sasl-%{cs1_version}
%configure \
--enable-static --enable-staticdlopen --with-pic --enable-shared \
@ -152,41 +193,78 @@ pushd cyrus-sasl-%{cs1_version}
--enable-login
make sasldir=%{_plugindir}
popd
%endif
pushd cyrus-sasl-%{version}
LIBS="-lcrypt"; export LIBS
# 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
# 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
%configure \
--enable-static --with-pic --enable-shared --disable-java \
--disable-shared --disable-static --enable-${buildtype} \
--disable-java \
--with-plugindir=%{_plugindir2} \
--disable-krb4 \
--enable-gssapi${krb5_prefix:+=${krb5_prefix}} \
--with-rc4 \
--with-dblib=berkeley \
--with-bdb-incdir=${topdir}/db-instroot/include \
--with-bdb-libdir=${topdir}/db-instroot/lib \
--with-saslauthd=/var/run/saslauthd --without-pwcheck \
--with-devrandom=/dev/urandom \
--enable-anon \
--enable-cram \
--enable-digest \
--enable-plain \
--enable-login
--enable-login \
--disable-otp \
--disable-sql
# --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
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
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
%install
test "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
%if %{includev1}
pushd cyrus-sasl-%{cs1_version}
%makeinstall sasldir=$RPM_BUILD_ROOT/%{_plugindir}
make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir}
install -m755 -d $RPM_BUILD_ROOT%{_bindir}
libtool --mode=install \
install -m755 sample/client $RPM_BUILD_ROOT%{_bindir}/sasl-sample-client
libtool --mode=install \
install -m755 sample/server $RPM_BUILD_ROOT%{_bindir}/sasl-sample-server
popd
%endif
pushd cyrus-sasl-%{version}
%makeinstall sasldir=$RPM_BUILD_ROOT/%{_plugindir2}
pushd cyrus-sasl-%{version}/build-static
make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir2} -C lib
popd
pushd cyrus-sasl-%{version}/build-shared
make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir2}
install -m755 -d $RPM_BUILD_ROOT%{_bindir}
libtool --mode=install \
@ -201,14 +279,25 @@ 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
# Install the init script.
install -m755 -d $RPM_BUILD_ROOT/etc/rc.d/init.d
install -m755 $RPM_SOURCE_DIR/saslauthd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/saslauthd
popd
# 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 \
$RPM_BUILD_ROOT%{_sbindir}/
# Remove unpackaged files from the buildroot.
rm -f $RPM_BUILD_ROOT%{_libdir}/sasl2/libotp.*
rm -f $RPM_BUILD_ROOT%{_mandir}/cat8/saslauthd.8
@ -233,22 +322,30 @@ fi
%files
%defattr(-,root,root)
%if %{includev1}
%doc %{name}-%{version}/%{cs1_version}
%endif
%doc %{name}-%{version}/{AUTHORS,COPYING,NEWS,README,doc/*.html}
%doc $RPM_SOURCE_DIR/README.RPM
%{_libdir}/libsasl*.so.*
%if %{includev1}
%dir %{_plugindir}/
%endif
%dir %{_plugindir2}/
%if %{includev1}
%{_plugindir}/*anonymous*.so*
%{_plugindir}/*anonymous*.la
%endif
%{_plugindir2}/*anonymous*.so*
%{_plugindir2}/*anonymous*.la
%{_plugindir2}/*sasldb*.so*
%{_plugindir2}/*sasldb*.la
%{_mandir}/man8/*
%{_sbindir}/dbconverter-2
%if %{includev1}
%{_sbindir}/saslpasswd
%{_sbindir}/sasldblistusers
%endif
%{_sbindir}/saslpasswd2
%{_sbindir}/sasldblistusers2
%{_sbindir}/saslauthd
@ -258,10 +355,12 @@ fi
%files plain
%defattr(-,root,root)
%if %{includev1}
%{_plugindir}/*plain*.so*
%{_plugindir}/*plain*.la
%{_plugindir}/*login*.so*
%{_plugindir}/*login*.la
%endif
%{_plugindir2}/*plain*.so*
%{_plugindir2}/*plain*.la
%{_plugindir2}/*login*.so*
@ -269,10 +368,12 @@ fi
%files md5
%defattr(-,root,root)
%if %{includev1}
%{_plugindir}/*crammd5*.so*
%{_plugindir}/*crammd5*.la
%{_plugindir}/*digestmd5*.so*
%{_plugindir}/*digestmd5*.la
%endif
%{_plugindir2}/*crammd5*.so*
%{_plugindir2}/*crammd5*.la
%{_plugindir2}/*digestmd5*.so*
@ -280,28 +381,37 @@ fi
%files gssapi
%defattr(-,root,root)
%if %{includev1}
%{_plugindir}/*gssapi*.so*
%{_plugindir}/*gssapi*.la
%endif
%{_plugindir2}/*gssapi*.so*
%{_plugindir2}/*gssapi*.la
%files devel
%defattr(-,root,root)
%if %{includev1}
%doc %{name}-%{version}/%{cs1_version}-devel
%endif
%doc %{name}-%{version}/doc/*.txt
%if %{includev1}
%{_bindir}/sasl-sample-client
%{_bindir}/sasl-sample-server
%endif
%{_bindir}/sasl2-sample-client
%{_bindir}/sasl2-sample-server
%{_includedir}/*
%{_libdir}/libsasl*.*a
%{_libdir}/libsasl*.*so
%if %{includev1}
%{_plugindir}/*anonymous*.a
%{_plugindir}/*crammd5*.a
%{_plugindir}/*digestmd5*.a
%{_plugindir}/*gssapi*.a
%{_plugindir}/*login*.a
%{_plugindir}/*plain*.a
%endif
%if 0
%{_plugindir2}/*anonymous*.a
%{_plugindir2}/*crammd5*.a
%{_plugindir2}/*digestmd5*.a
@ -309,12 +419,30 @@ fi
%{_plugindir2}/*login*.a
%{_plugindir2}/*plain*.a
%{_plugindir2}/*sasldb*.a
%endif
%{_mandir}/man3/*
%{_sbindir}/sasl2-static-mechlist
%{_sbindir}/sasl2-shared-mechlist
#
# TODO: enable ntlm
# TODO: enable ldap for saslauthd once it moves out of experimental status
# TODO: enable ntlm if it ever moves out of unsupported status, maybe sooner
# TODO: enable sql if the time comes when the soname doesn't change too often
#
%changelog
* Wed Jan 7 2004 Nalin Dahyabhai <nalin@redhat.com> 2.1.17-1
- forcibly disable otp and sql plugins at compile-time
* Fri Dec 19 2003 Nalin Dahyabhai <nalin@redhat.com>
- update to 2.1.17, forcing the gssapi plugin to be shared now, as before
- use a bundled libdb (#112215)
- build static-with-all-plugins and normal-shared libsasl versions
- add sasl2-{shared,static}-mechlist for very basic sanity checking
- make inclusion of sasl1 stuffs conditional, because it's so going away
* Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 2.1.15-7
- rebuild against db-4.2.52.
* Thu Oct 23 2003 Nalin Dahyabhai <nalin@redhat.com> 2.1.15-6
- use /dev/urandom instead of /dev/random for SASL2 (docs indicate that this is
safe if you aren't using OTP or SRP, and we build neither); SASL1 appears to
@ -327,6 +455,9 @@ fi
- install saslauthd's mdoc page instead of the pre-formatted man page, which
would get formatted again
* Thu Sep 25 2003 Jeff Johnson <jbj@jbj.org> 2.1.15-5
- rebuild against db-4.2.42.
* Mon Sep 15 2003 Nalin Dahyabhai <nalin@redhat.com>
- include testsaslauthd
- note in the README that the saslauthd protocol is different for v1 and v2,

97
sasl-mechlist.c Normal file
View File

@ -0,0 +1,97 @@
#include "sasl.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int
my_getopt(void *context, const char *plugin_name,
const char *option, const char **result, unsigned *len)
{
if (result) {
*result = NULL;
#if 0
fprintf(stderr, "Getopt plugin=%s%s%s/option=%s%s%s -> ",
plugin_name ? "\"" : "",
plugin_name ? plugin_name : "(null)",
plugin_name ? "\"" : "",
option ? "\"" : "",
option ? option : "(null)",
option ? "\"" : "");
fprintf(stderr, "'%s'.\n", *result ? *result : "");
#endif
}
if (len) {
*len = 0;
}
return 0;
}
int
main(int argc, char **argv)
{
int ret, i;
const char *mechs, **globals;
sasl_callback_t callbacks[] = {
{SASL_CB_GETOPT, my_getopt, NULL},
{SASL_CB_LIST_END},
};
sasl_conn_t *connection;
char hostname[512];
if ((argc > 1) && (argv[1][0] == '-')) {
fprintf(stderr, "Usage: %s [appname [hostname] ]\n", argv[0]);
return 0;
}
ret = sasl_server_init(callbacks, argc > 1 ? argv[1] : "sasl-mechlist");
if (ret != SASL_OK) {
fprintf(stderr, "Error in sasl_server_init(): %s\n",
sasl_errstring(ret, NULL, NULL));
}
connection = NULL;
strcpy(hostname, "localhost");
gethostname(hostname, sizeof(hostname));
ret = sasl_server_new(argc > 2 ? argv[2] : "host",
hostname,
NULL,
NULL,
NULL,
callbacks,
0,
&connection);
if (ret != SASL_OK) {
fprintf(stderr, "Error in sasl_server_new(): %s\n",
sasl_errstring(ret, NULL, NULL));
}
ret = sasl_listmech(connection,
getenv("USER") ? getenv("USER") : "root",
"Available mechanisms: ",
",",
"\n",
&mechs,
NULL,
NULL);
if (ret != SASL_OK) {
fprintf(stderr, "Error in sasl_listmechs(): %s\n",
sasl_errstring(ret, NULL, NULL));
} else {
fprintf(stdout, "%s", mechs);
}
globals = sasl_global_listmech();
for (i = 0; (globals != NULL) && (globals[i] != NULL); i++) {
if (i == 0) {
fprintf(stdout, "Library supports: ");
}
fprintf(stdout, "%s", globals[i]);
if (globals[i + 1] != NULL) {
fprintf(stdout, ",");
} else {
fprintf(stdout, "\n");
}
}
return 0;
}

View File

@ -1,2 +1,3 @@
60710be040801e9aff7353563b636518 cyrus-sasl-1.5.28.tar.gz
82c7f82a777b7bc10cc1ef68fb8e2a37 cyrus-sasl-2.1.15.tar.gz
4add6be2f194dc51aafc64193a1dd77b cyrus-sasl-2.1.17.tar.gz
cbc77517c9278cdb47613ce8cb55779f db-4.2.52.tar.gz