First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 112638
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Net-Mail Packages <net-mail@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Michael Williamson <mswilliamson@uwaterloo.ca>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 112638 depends on: Show dependency tree
Bug 112638 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2005-11-15 13:18 0000
The latest stable version of bogofilter-0.92.8 does not compile if gsl is not 
installed. The error message is:

libbf_gsl.a: File not found.

gsl is not even listed as a dependancy of bogofilter. Further more, bogofilter 
does not compile with the latest stable version of gsl in portage (gsl-1.4). I 
was only able to install bogofilter by installing the unstable gsl-1.7.

Reproducible: Always
Steps to Reproduce:
1. emerge -C gsl bogofilter
2. emerge bogofilter
3.

Actual Results:  
Compilation fails with error:
libbf_gsl.a: File not found.

Expected Results:  
Installed.

Portage 2.0.51.22-r3 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r0, 2.6.
13-gentoo-r2 i686)
=================================================================
System uname: 2.6.13-gentoo-r2 i686 Pentium III (Coppermine)
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) 
[enabled]
ccache version 2.3 [disabled]
dev-lang/python:     2.3.5, 2.4.1-r1
sys-apps/sandbox:    1.2.10
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium3 -mfpmath=sse -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/
share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /
usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium3 -mfpmath=sse -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distcc distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/
distributions/gentoo"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dfx X aac acpi alsa apache apache2 apm arts artswrappersuid asm 
audiofile avi bash-completion berkdb bitmap-fonts bonobo bzip2 c++ ccache cdb 
cdinstall cdr cdrom cgi cpudetection crypt css cups curl dbus directfb disk-
cache divx4linux doc dvd dvdr dvdread eds emboss encode esd ethereal exif expat 
ext-doc ext-man ext-openoffice ext-pdf ext-ps ext-rtf ext-xls fam fastcgi ffmpeg 
flac flash foomaticdb fortran ftp gd gdbm gif gimp gimpprint glut gmp gpm 
gstreamer gtk2 gtkhtml guile hal idn imagemagick imap imlib java jpeg junit kde 
kdeenablefinal lcms libg++ libwww lirc lua mad mhash mikmod mmx mng mono motif 
mozilla moznomail mp3 mpeg mysql mythtv ncurses nls nptl odbc ogg oggvorbis on-
the-fly-crypt opengl pam pcre pdflib perl php pic png ppds python qt quicktime 
quotes readline real recode samba sdk sdl spell sql sqlite sse ssl subversion 
svga tcltk tcpd threads tiff transcode truetype truetype-fonts type1-fonts udev 
usb v4l v4l2 visualization voodoo3 vorbis win32codecs xine xinerama xml xml2 
xmms xrandr xv xvid zlib zvbi userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LINGUAS

------- Comment #1 From Torsten Veller 2005-12-11 06:26:57 0000 -------
Well, you are right the ebuild is not correct. In 0.92.8 gsl is a dependency if
it is present. If it is not present bogofilter links a included gsl version.

But it should never fail. So i don't understand why your compilation failed.

I just commited a new ebuild for 0.92.8 where always the included gsl is used.
If you want please test it. If it fails again i need more input.


If you start using bogofilter go with 1.0.0. It has many fixes and best
upgrading precedure from 0.92.8 to 1.0.0 will include a retraining of the database.

------- Comment #2 From Andrey Falko 2005-12-12 10:56:32 0000 -------
I tested this just now. Compiles properly with or without gsl. I also checked
that the application launches both ways. Since I am not an official tester yet,
I can't mark "Tested".

------- Comment #3 From Martin von Gagern 2006-12-05 14:45:31 0000 -------
Same here on ~x86 for mail-filter/bogofilter-1.1.3

Looking at the log, I copy some interesting lines:
./configure ... --with-included-gsl --build=i686-pc-linux-gnu
GSL_LIBS=libbf_gsl.a
i686-pc-linux-gnu-gcc -DBOGOFILTER ... -o bogofilter bogofilter.o main.o \
   libbogofilter.a strlcpy.o strlcat.o /usr/lib/libdb.so libbf_gsl.a -lm
i686-pc-linux-gnu-ar cru libbf_gsl.a libbf_gsl_a-chisq.o ...
libbf_gsl_a-minmax.o 
i686-pc-linux-gnu-gcc: libbf_gsl.a: No such file or directory

It looks like internal gsl was configured, even compiled, but while the archive
was still being built, another make process tried to link against it. Looks
very much like a parallel build issue. The standard workaround of setting
MAKEOPTS=-j1 made bogofilter compile for me. But of course this is not a proper
fix.

Looking at src/Makefile as it is generated by configure, I see this:
bogofilter$(EXEEXT): $(bogofilter_OBJECTS) $(bogofilter_DEPENDENCIES) 
  @rm -f bogofilter$(EXEEXT)
  $(LINK) $(bogofilter_LDFLAGS) $(bogofilter_OBJECTS) $(bogofilter_LDADD) \
          $(LIBS)

GSL_LIBS is part of bogofilter_LDADD but not bogofilter_DEPENDENCIES. So I'd
guess this change to Makefile.am might help:

--- src/Makefile.am 2006-12-05 23:30:20.000000000 +0100
+++ src/Makefile.am 2006-12-05 23:30:20.000000000 +0100
@@ -26,6 +26,7 @@
 ../gsl/sys/pow_int.c ../gsl/sys/minmax.c
 noinst_LIBRARIES += libbf_gsl.a
 libbf_gsl_a_CPPFLAGS= -I$(top_srcdir)
+bogofilter_DEPENDENCIES += libbf_gsl.a
 endif

 if USE_GCC4

Of course, if you change that you'd have to rerun autoconf, which I know near
to nothing about, so I'll leave this to more experienced devs.

I reported this upstream as
http://sourceforge.net/tracker/index.php?func=detail&aid=1609654&group_id=62265&atid=499997

------- Comment #4 From David Relson 2006-12-05 16:45:35 0000 -------
The patch, as suggested, causes a complaint of "+=" being used before
bogofilter_DEPENDENCIES has been set.  The following patch puts the GSL test
after setting bogofilter_DEPENDENCIES thus handling the complaint.  However not
having an SMP system I can't test the patch.  

Note: just running "make" will regenerate src/Makefile from src/Makefile.am
(without manually running autoconf).

Please let me know if the patch works!

Index: src/Makefile.am
===================================================================
RCS file: /cvsroot/bogofilter/bogofilter/src/Makefile.am,v
retrieving revision 1.141
diff -u -r1.141 Makefile.am
--- src/Makefile.am     30 Nov 2006 00:14:16 -0000      1.141
+++ src/Makefile.am     6 Dec 2006 00:37:33 -0000
@@ -12,22 +12,6 @@

 noinst_LIBRARIES = libbogofilter.a

-if NEED_GSL
-libbf_gsl_a_CFLAGS=$(AM_CFLAGS) -DRENAMEFILES
-libbf_gsl_a_SOURCES= \
-../gsl/cdf/chisq.c ../gsl/cdf/gamma.c \
-../gsl/specfunc/gamma_inc.c ../gsl/err/error.c \
-../gsl/sys/infnan.c ../gsl/sys/fdiv.c \
-../gsl/specfunc/exp.c ../gsl/specfunc/trig.c \
-../gsl/specfunc/log.c ../gsl/specfunc/psi.c \
-../gsl/specfunc/zeta.c ../gsl/specfunc/elementary.c \
-../gsl/err/stream.c ../gsl/specfunc/expint.c \
-../gsl/specfunc/erfc.c ../gsl/sys/coerce.c \
-../gsl/sys/pow_int.c ../gsl/sys/minmax.c
-noinst_LIBRARIES += libbf_gsl.a
-libbf_gsl_a_CPPFLAGS= -I$(top_srcdir)
-endif
-
 if USE_GCC4
 AM_CPPFLAGS = -iquote$(top_srcdir)/gnugetopt -iquote$(top_srcdir)/trio \
              -I$(srcdir) @GSL_CFLAGS@ -I$(top_srcdir)/gsl/specfunc
-I$(top_srcdir)
@@ -59,8 +43,27 @@
 bogofilter_LDADD = $(LDADD) $(LIBDB) $(GSL_LIBS)
 bogoutil_LDADD = $(LDADD) $(LIBDB)
 configtest_LDADD = $(LDADD) $(LIBDB)
+bogofilter_DEPENDENCIES = $(LDADD)
+
+if NEED_GSL
+libbf_gsl_a_CFLAGS=$(AM_CFLAGS) -DRENAMEFILES
+libbf_gsl_a_SOURCES= \
+../gsl/cdf/chisq.c ../gsl/cdf/gamma.c \
+../gsl/specfunc/gamma_inc.c ../gsl/err/error.c \
+../gsl/sys/infnan.c ../gsl/sys/fdiv.c \
+../gsl/specfunc/exp.c ../gsl/specfunc/trig.c \
+../gsl/specfunc/log.c ../gsl/specfunc/psi.c \
+../gsl/specfunc/zeta.c ../gsl/specfunc/elementary.c \
+../gsl/err/stream.c ../gsl/specfunc/expint.c \
+../gsl/specfunc/erfc.c ../gsl/sys/coerce.c \
+../gsl/sys/pow_int.c ../gsl/sys/minmax.c
+noinst_LIBRARIES += libbf_gsl.a
+libbf_gsl_a_CPPFLAGS= -I$(top_srcdir)
+bogofilter_DEPENDENCIES += libbf_gsl.a
+endif

 EXTRA_PROGRAMS=panicenv
+
 panicenv_SOURCES=panicenv.c
 panicenv_LDADD=$(LIBDB)


------- Comment #5 From Torsten Veller 2006-12-09 05:26:20 0000 -------
Martin, does this patch work for you?

I've problems to reproduce the failure. I can see it fail once, twice but then
it just works with `MAKEOPTS=-j8 USE=-gsl emerge bogofilter`.

------- Comment #6 From David Relson 2006-12-09 05:51:02 0000 -------
Torsten and Martin,

Since Torsten's results seem pretty good, I'll commit the change.  If you
encounter further problems please experiment with makefile changes and let me
know what you learn.

Thanks.

------- Comment #7 From Torsten Veller 2006-12-09 07:55:20 0000 -------
bogofilter-1.1.3 now applies the patch. Closing this bugreport. Please reopen
it if there are further problems.

Thanks.

First Last Prev Next    No search results available      Search page      Enter new bug