[devel] Re: clamav-0.70-alt2: rebuild failed [1]

Victor Forsyuk =?iso-8859-1?q?victor_=CE=C1_ksi-linux=2Ecom?=
Ср Май 5 20:18:05 MSD 2004


On Wed, May 05, 2004 at 12:38:29PM +0400, Dmitry V. Levin wrote:
> On Tue, May 04, 2004 at 06:32:27PM +0300, Victor Forsyuk wrote:
> > On Tue, May 04, 2004 at 04:04:48PM +0400, QA Team Robot wrote:
> > > Package: clamav-0.70-alt2
> > 
> > [...]
> > 
> > > i586-alt-linux-gcc -pipe -Wall -O2 -march=i586 -mcpu=i686 -o .libs/clamav-milter cfgparser.o getopt.o memory.o clamav-milter.o  -L/usr/src/RPM/BUILD/clamav-0.70/libclamav /usr/src/RPM/BUILD/clamav-0.70/libclamav/.libs/libclamav.so -L/usr/lib/libmilter -lmilter -lpthread
> > > /usr/lib/gcc-lib/i586-alt-linux/3.3.3/../../../libmilter.a(listener.o)(.text+0x579): In function `mi_milteropen':
> > > : undefined reference to `__ctype_b'
> > > /usr/lib/gcc-lib/i586-alt-linux/3.3.3/../../../libmilter.a(smfi.o)(.text+0x492): In function `myisenhsc':
> > > : undefined reference to `__ctype_b'
> > > /usr/lib/gcc-lib/i586-alt-linux/3.3.3/../../../libmilter.a(smfi.o)(.text+0x4e2): In function `myisenhsc':
> > > : undefined reference to `__ctype_b'
> > > /usr/lib/gcc-lib/i586-alt-linux/3.3.3/../../../libmilter.a(smfi.o)(.text+0x575): In function `smfi_setreply':
> > > : undefined reference to `__ctype_b'
> > 
> > sendmail пересобрать надо.
> 
> Ещё бы libmilter.so там сделать не помешало.

На коленке я бы предложил такое. Не уверен в полной корректности такого
способа клепания динамических библиотек, но вроде должно работать.

Major, кстати, взят не с потолка. Сухой остаток от гугленья состоит
в том, что libmilter.so существует в коммерческой версии сендмейла
и там он, как видно из результатов поиска, именно libmilter.so.2.

--- sendmail.spec.old   2004-04-03 10:33:51 +0300
+++ sendmail.spec       2004-05-05 18:12:02 +0300
@@ -1,6 +1,6 @@
 Name: sendmail
 Version: 8.12.11
-Release: alt5
+Release: alt6
 
 Packager: Konstantin Timoshenko <kt на altlinux.ru>
 
@@ -129,6 +129,14 @@
 m4 real-time.mc > real-time.cf
 popd
 
+pushd obj.$(uname -s).$(uname -r).$(arch)/libmilter
+make clean
+make O="-shared -fPIC"
+ld -shared --whole-archive -o libmilter.so.2.0.0 *.o
+ln -s libmilter.so.2.0.0 libmilter.so.2
+ln -s libmilter.so.2.0.0 libmilter.so
+popd
+
 %install
 for i in %_bindir %_libdir %_mandir/man{1,5,8} %_sbindir %_logdir %_spooldir %_datadir/%name-cf %_initdir %_sysconfdir/sysconfig %_spooldir/mqueue %_sysconfdir/smrsh %_sysconfdir/mail %_spooldir/clientmqueue var/run/%name %_sysconfdir/pam.d %_includedir ; do
        %__mkdir_p "$RPM_BUILD_ROOT/$i"
@@ -176,8 +184,10 @@
 popd
 
 #
-# install include & static lib
+# install includes & libs
 find $OBJDIR/lib* -name "*.a" -exec %__cp {} $RPM_BUILD_ROOT%_libdir \;
+%__rm -f $RPM_BUILD_ROOT%_libdir/libmilter.a
+%__cp -a $OBJDIR/libmilter/*.so* $RPM_BUILD_ROOT%_libdir
 %__cp -ar include $RPM_BUILD_ROOT%prefix
 
 %__sed -e 's|@@PATH@@|%_datadir/%name-cf|' < %SOURCE9 >
$RPM_BUILD_ROOT%_sysconfdir/mail/%name.mc
@@ -358,12 +368,16 @@
 %_includedir/sendmail
 %_includedir/sm
 %_libdir/*.a
+%_libdir/*.so*
 
 %files -n vacation
 %_bindir/vacation
 %_mandir/man1/vacation.*
 
 %changelog
+* Wed May 05 2004 Victor Forsyuk <force на altlinux.ru> 8.12.11-alt6
+- Build shared libmilter library.
+
 * Sat Apr 03 2004 Sergey Y. Afonin <asy на altlinux.ru> 8.12.11-alt5
 - fix: misprint in socket's name of clamav-milter in *.mc



Подробная информация о списке рассылки Devel