rebuilding cyrus-sasl src.rpm w/mysql support fails
I'm using Redhat3.0ES and cyrus-sasl-2.1.15-3. Since the mysql support
isn't compiled in on the stock rpm and i want sasl authentication done from mysql lookus for my smtp server, i installed the src.rpm and edited the spec file by addeding the following. --with-mysql=/usr/lib/mysql i issue rpmbuild -ba cyrus-sasl.spec and i get the following errors: mysql.c:60:19: mysql.h: No such file or directory mysql.c: In function `mysql_auxprop_lookup': mysql.c:254: `MYSQL' undeclared (first use in this function) mysql.c:254: (Each undeclared identifier is reported only once mysql.c:254: for each function it appears in.) mysql.c:254: syntax error before "mysql" mysql.c:255: `MYSQL_RES' undeclared (first use in this function) mysql.c:255: `result' undeclared (first use in this function) mysql.c:256: `MYSQL_ROW' undeclared (first use in this function) mysql.c:256: syntax error before "row" mysql.c:329: warning: implicit declaration of function `mysql_init' mysql.c:329: `mysql' undeclared (first use in this function) mysql.c:329: warning: comparison between pointer and integer mysql.c:335: `sock' undeclared (first use in this function) mysql.c:335: warning: implicit declaration of function `mysql_real_connect' mysql.c:350: warning: implicit declaration of function `mysql_real_escape_string' mysql.c:353: warning: implicit declaration of function `mysql_select_db' mysql.c:394: warning: implicit declaration of function `mysql_query' mysql.c:395: warning: implicit declaration of function `mysql_store_result' mysql.c:401: warning: implicit declaration of function `mysql_affected_rows' mysql.c:405: warning: implicit declaration of function `mysql_free_result' mysql.c:416: `row' undeclared (first use in this function) mysql.c:416: warning: implicit declaration of function `mysql_fetch_row' mysql.c:431: warning: implicit declaration of function `mysql_close' make[2]: *** [mysql.lo] Error 1 make[2]: Leaving directory `/home/apmartinez/rpmbuilds/BUILD/cyrus-sasl-2.1.15/cyrus-sasl-2.1.15/plugins' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/apmartinez/rpmbuilds/BUILD/cyrus-sasl-2.1.15/cyrus-sasl-2.1.15' make: *** [all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.70386 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.70386 (%build) mysql.h is located in the /usr/include/ directory so i changed the line in cyrus-sasl.spec to the following: --with-mysql=/usr/include/mysql I then get the following error: checking for mysql_select_db in -lmysqlclient... no configure: error: MYSQL libarary mysqlclient not found error: Bad exit status from /var/tmp/rpm-tmp.22079 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.22079 (%build) I have essentially two questions. I really need the mysql support so just wondering what i can do to make it build properly. Secondly, i really don't need some other of the features like saslauthd but when i specified : --without-saslauthd \ --without-pwcheck \ I get the following error: RPM build errors: File not found: /var/tmp/cyrus-sasl-root/usr/sbin/saslauthd how can i resolve this giving the attached .spec file? Thanks in advance, Aaron Martinez I have included the default cyrus-sasl.spec file below, however the URL's have been altered since i don't have 5 posts as of yet. %define cs1_version 1.5.28 %define _plugindir %{_libdir}/sasl %define _plugindir2 %{_libdir}/sasl2 Summary: The Cyrus SASL library. Name: cyrus-sasl Version: 2.1.15 Release: 3 License: Freely Distributable Group: System Environment/Libraries Source0: tp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz Source1: tp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz.sig Source2: tp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{cs1_version}.tar.gz Source3: tp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{cs1_version}.tar.gz.sig Source4: saslauthd.init Source5: README.RPM ttp://asg.web.cmu.edu/sasl/sasl-library.html 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 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 Prereq: /sbin/ldconfig, chkconfig, /sbin/service %description 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 devel Requires: %{name} = %{version}-%{release} Group: Development/Libraries Summary: Files needed for developing applications with Cyrus SASL. %description devel The %{name}-devel package contains files needed for developing and compiling applications which use the Cyrus SASL library. %package gssapi Requires: %{name} = %{version}-%{release} Group: System Environment/Libraries Summary: GSSAPI support for Cyrus SASL. %description gssapi The %{name}-gssapi package contains the Cyrus SASL plugins which support GSSAPI authentication. GSSAPI is commonly used for Kerberos authentication. %package plain Requires: %{name} = %{version}-%{release} Group: System Environment/Libraries Summary: PLAIN and LOGIN support for Cyrus SASL. %description plain The %{name}-plain package contains the Cyrus SASL plugins which support PLAIN and LOGIN authentication schemes. %package md5 Requires: %{name} = %{version}-%{release} Group: System Environment/Libraries Summary: CRAM-MD5 and DIGEST-MD5 support for Cyrus SASL. %description md5 The %{name}-md5 package contains the Cyrus SASL plugins which support CRAM-MD5 and DIGEST-MD5 authentication schemes. %prep %setup -q -c -a 2 pushd cyrus-sasl-%{cs1_version} %patch0 -p1 -b .rpath %patch1 -p1 -b .autoconf25 %patch2 -p1 -b .automake17 libtoolize -f -c aclocal -I config -I cmulocal automake -a -c -f autoheader autoconf -f popd 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 libtoolize -f -c aclocal -I config -I cmulocal automake -a -c -f autoheader autoconf -f pushd saslauthd rm config/ltconfig libtoolize -f -c aclocal -I config -I ../cmulocal -I ../config automake -a -c -f autoheader autoconf -f popd popd # 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 if [ -f ../doc/${file} ] ; then rm -f ${file} fi done popd %build krb5_prefix=`krb5-config --prefix` if test x$krb5_prefix = x%{_prefix} ; then krb5_prefix= else CPPFLAGS="-I${krb5_prefix}/include"; export CPPFLAGS CFLAGS="-I${krb5_prefix}/include"; export CFLAGS LDFLAGS="-L${krb5_prefix}/%{_lib}"; export LDFLAGS fi pushd cyrus-sasl-%{cs1_version} %configure \ --enable-static --enable-staticdlopen --with-pic --enable-shared \ --with-plugindir=%{_plugindir} \ --disable-krb4 \ --enable-gssapi${krb5_prefix:+=${krb5_prefix}} \ --with-rc4 \ --with-dblib=gdbm \ --enable-anon \ --enable-plain \ --enable-login make sasldir=%{_plugindir} popd pushd cyrus-sasl-%{version} LIBS="-lcrypt"; export LIBS %configure \ --enable-static --with-pic --enable-shared --disable-java \ --with-plugindir=%{_plugindir2} \ --disable-krb4 \ --enable-gssapi${krb5_prefix:+=${krb5_prefix}} \ --with-rc4 \ --with-dblib=berkeley \ --with-saslauthd=/var/run/saslauthd --without-pwcheck \ --enable-anon \ --enable-plain \ --enable-login \ --with-mysql=/usr/include/mysql # --enable-auth-sasldb -- EXPERIMENTAL make sasldir=%{_plugindir2} popd %install test "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT pushd cyrus-sasl-%{cs1_version} %makeinstall sasldir=$RPM_BUILD_ROOT/%{_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 pushd cyrus-sasl-%{version} %makeinstall sasldir=$RPM_BUILD_ROOT/%{_plugindir2} install -m755 -d $RPM_BUILD_ROOT%{_bindir} libtool --mode=install \ install -m755 sample/client $RPM_BUILD_ROOT%{_bindir}/sasl2-sample-client libtool --mode=install \ install -m755 sample/server $RPM_BUILD_ROOT%{_bindir}/sasl2-sample-server libtool --mode=install \ install -m755 utils/dbconverter-2 $RPM_BUILD_ROOT%{_sbindir}/dbconverter-2 # Install the saslauthd man page in the expected location, even if it's # pre-formatted. install -m755 -d $RPM_BUILD_ROOT%{_mandir}/man8/ install -m644 saslauthd/*.8 $RPM_BUILD_ROOT%{_mandir}/man8/ # Create the saslauthd listening directory. install -m755 -d $RPM_BUILD_ROOT/var/run/saslauthd 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 # Remove unpackaged files from the buildroot. rm -f $RPM_BUILD_ROOT%{_libdir}/sasl2/libotp.* rm -f $RPM_BUILD_ROOT%{_mandir}/cat8/saslauthd.8 %clean test "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig /sbin/chkconfig --add saslauthd %preun if [ $1 = 0 ] ; then /sbin/chkconfig --del saslauthd fi %postun /sbin/ldconfig if [ $1 != 0 ] ; then /sbin/service saslauthd condrestart 2>&1 > /dev/null fi %files %defattr(-,root,root) %doc %{name}-%{version}/%{cs1_version} %doc %{name}-%{version}/{AUTHORS,COPYING,NEWS,README,doc/*.html} %doc $RPM_SOURCE_DIR/README.RPM %{_libdir}/libsasl*.so.* %dir %{_plugindir}/ %dir %{_plugindir2}/ %{_plugindir}/*anonymous*.so* %{_plugindir}/*anonymous*.la %{_plugindir2}/*anonymous*.so* %{_plugindir2}/*anonymous*.la %{_plugindir2}/*sasldb*.so* %{_plugindir2}/*sasldb*.la %{_mandir}/man8/* %{_sbindir}/dbconverter-2 %{_sbindir}/saslpasswd %{_sbindir}/sasldblistusers %{_sbindir}/saslpasswd2 %{_sbindir}/sasldblistusers2 %{_sbindir}/saslauthd %config /etc/rc.d/init.d/saslauthd /var/run/saslauthd %files plain %defattr(-,root,root) %{_plugindir}/*plain*.so* %{_plugindir}/*plain*.la %{_plugindir}/*login*.so* %{_plugindir}/*login*.la %{_plugindir2}/*plain*.so* %{_plugindir2}/*plain*.la %{_plugindir2}/*login*.so* %{_plugindir2}/*login*.la %files md5 %defattr(-,root,root) %{_plugindir}/*crammd5*.so* %{_plugindir}/*crammd5*.la %{_plugindir}/*digestmd5*.so* %{_plugindir}/*digestmd5*.la %{_plugindir2}/*crammd5*.so* %{_plugindir2}/*crammd5*.la %{_plugindir2}/*digestmd5*.so* %{_plugindir2}/*digestmd5*.la %files gssapi %defattr(-,root,root) %{_plugindir}/*gssapi*.so* %{_plugindir}/*gssapi*.la %{_plugindir2}/*gssapi*.so* %{_plugindir2}/*gssapi*.la %files devel %defattr(-,root,root) %doc %{name}-%{version}/%{cs1_version}-devel %doc %{name}-%{version}/doc/*.txt %{_bindir}/sasl-sample-client %{_bindir}/sasl-sample-server %{_bindir}/sasl2-sample-client %{_bindir}/sasl2-sample-server %{_includedir}/* %{_libdir}/libsasl*.*a %{_libdir}/libsasl*.*so %{_plugindir}/*anonymous*.a %{_plugindir}/*crammd5*.a %{_plugindir}/*digestmd5*.a %{_plugindir}/*gssapi*.a %{_plugindir}/*login*.a %{_plugindir}/*plain*.a %{_plugindir2}/*anonymous*.a %{_plugindir2}/*crammd5*.a %{_plugindir2}/*digestmd5*.a %{_plugindir2}/*gssapi*.a %{_plugindir2}/*login*.a %{_plugindir2}/*plain*.a %{_plugindir2}/*sasldb*.a %{_mandir}/man3/* |
Huh? Where is your mysql-devel package? You need it. It's the one which includes the files required for software development, e.g. include files and shared objects. If it is not provided, you need to rebuild mysql from src.rpm to get the -devel package.
|
All times are GMT -5. The time now is 11:06 AM. |