I'm getting the following error when compiling net-mail/maildrop-1.5.2: ---snip--- make[2]: Entering directory `/var/tmp/portage/maildrop-1.5.2/work/maildrop-1.5.2/maildrop' Compiling alarm.C Compiling alarmsleep.C Compiling alarmtimer.C Compiling buffer.C Compiling dotlock.C Compiling dotlockrefresh.C Compiling exittrap.C Compiling funcs.C Compiling maildrop.C Compiling mio.C Compiling setgroupid.c Compiling tempfile.C Compiling mdldapconfig.c Compiling mdldap.c Compiling mdmysqlconfig.c Compiling mdmysql.c Compiling deliver.C Compiling deliverdotlock.C Compiling dotlockmaildrop.C Compiling filelock.C Compiling filter.C Compiling formatmbox.C Compiling globaltimer.C Compiling lexer.C Compiling log.C Compiling maildir.C Compiling main.C Compiling message.C Compiling messageinfo.C Compiling pipefds.C Compiling re.C Compiling recipe.C Compiling recipenode.C Compiling recipeparse.C Compiling reeval.C Compiling rematch.C Compiling rematchmsg.C Compiling rematchstr.C Compiling search.C Compiling token.C Compiling varlist.C Compiling reformail.C Compiling mailbot.c CONFIG_FILES=maildrop.html CONFIG_HEADERS= /bin/sh ./config.status config.status: creating maildrop.html config.status: executing depfiles commands CONFIG_FILES=maildrop.1 CONFIG_HEADERS= /bin/sh ./config.status config.status: creating maildrop.1 config.status: executing depfiles commands CONFIG_FILES=maildropfilter.html CONFIG_HEADERS= /bin/sh ./config.status config.status: creating maildropfilter.html config.status: executing depfiles commands CONFIG_FILES=maildropfilter.5 CONFIG_HEADERS= /bin/sh ./config.status config.status: creating maildropfilter.5 config.status: executing depfiles commands rm -f libmdcommon.a ar cru libmdcommon.a alarm.o alarmsleep.o alarmtimer.o buffer.o dotlock.o dotlockrefresh.o exittrap.o funcs.o maildrop.o mio.o setgroupid.o tempfile.o mdldapconfig.o mdldap.o mdmysqlconfig.o mdmysql.o ranlib libmdcommon.a gcc -march=i686 -O3 -pipe -I./../rfc822 -I./../rfc2045 -I.. -I./.. -Wall -o mailbot mailbot.o ../rfc822/librfc822.a ../liblock/liblock.a ../numlib/libnumlib.a ../bdbobj/libbdbobj.a -ldb g++ -march=i686 -O3 -pipe -I./../rfc822 -I./../rfc2045 -I.. -I./.. -Wall -o maildrop deliver.o deliverdotlock.o dotlockmaildrop.o filelock.o filter.o formatmbox.o globaltimer.o lexer.o log.o maildir.o main.o message.o messageinfo.o pipefds.o re.o recipe.o recipenode.o recipeparse.o reeval.o rematch.o rematchmsg.o rematchstr.o search.o token.o varlist.o libmdcommon.a ../maildir/libmaildir.a ../rfc822/librfc822.a ../numlib/libnumlib.a ../liblock/liblock.a ../userdb/libuserdb.a ../bdbobj/libbdbobj.a -ldb -lldap -llber -lmysqlclient -lz g++ -march=i686 -O3 -pipe -I./../rfc822 -I./../rfc2045 -I.. -I./.. -Wall -o reformail reformail.o buffer.o ../rfc822/librfc822.a ../liblock/liblock.a /usr/lib/libldap.so: undefined reference to `__dn_expand' /usr/lib/libldap.so: undefined reference to `__res_query' collect2: ld returned 1 exit status make[2]: *** [maildrop] Error 1 make[2]: Leaving directory `/var/tmp/portage/maildrop-1.5.2/work/maildrop-1.5.2/maildrop' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/maildrop-1.5.2/work/maildrop-1.5.2/maildrop' make: *** [all-recursive] Error 1 !!! ERROR: net-mail/maildrop-1.5.2 failed. !!! Function src_compile, Line -269, Exitcode 2 !!! compile problem ---snip---
This problem only occurs with "ldap" USE keyword. I've solved it by adding "-lresolv" to the compilation options for the ldap related code. I've done it by modifying the ebuild, in src_compile(): 51c51 < emake || die "compile problem" --- > emake LIBLDAP='-lldap -llber -lresolv' || die "compile problem" This works at least on two gentoo 1.2 boxes (default-1.0, gcc-2.95.3, glibc-2.2.5-r7).
is this still an issue? On a gcc-3 system I just did USE="ldap" and it emerged fine.
hmm ok, I just tried this with gcc-2.95.3 as well again a successful emerge.
Yes, it's still an issue here: ---> without -lresolv: [...] g++ -march=i686 -O3 -pipe -I./../rfc822 -I./../rfc2045 -I.. -I./.. -Wall -o maildrop deliver.o deliverdotlock.o dotlockmaildrop.o filelock.o filter.o formatmbox.o globaltimer.o lexer.o log.o maildir.o main.o message.o messageinfo.o pipefds.o re.o recipe.o recipenode.o recipeparse.o reeval.o rematch.o rematchmsg.o rematchstr.o search.o token.o varlist.o libmdcommon.a ../maildir/libmaildir.a ../rfc822/librfc822.a ../numlib/libnumlib.a ../liblock/liblock.a ../userdb/libuserdb.a ../bdbobj/libbdbobj.a -ldb -lldap -llber -lmysqlclient -lz /usr/lib/libldap.so: undefined reference to `__dn_expand' /usr/lib/libldap.so: undefined reference to `__res_query' collect2: ld returned 1 exit status make[2]: *** [maildrop] Error 1 make[2]: Leaving directory `/var/tmp/portage/maildrop-1.5.2/work/maildrop-1.5.2/maildrop' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/maildrop-1.5.2/work/maildrop-1.5.2/maildrop' make: *** [all-recursive] Error 1 ---> with -lrevolv: [...] g++ -march=i686 -O3 -pipe -I./../rfc822 -I./../rfc2045 -I.. -I./.. -Wall -o maildrop deliver.o deliverdotlock.o dotlockmaildrop.o filelock.o filter.o formatmbox.o globaltimer.o lexer.o log.o maildir.o main.o message.o messageinfo.o pipefds.o re.o recipe.o recipenode.o recipeparse.o reeval.o rematch.o rematchmsg.o rematchstr.o search.o token.o varlist.o libmdcommon.a ../maildir/libmaildir.a ../rfc822/librfc822.a ../numlib/libnumlib.a ../liblock/liblock.a ../userdb/libuserdb.a ../bdbobj/libbdbobj.a -ldb -lldap -llber -lresolv -lmysqlclient -lz Compiling reformail.C [...] ---- This was using a "Portage 2.0.48-r1 (default-1.0, gcc-2.95.3, glibc-2.2.5-r4,2.2.5-r8)" system. Maybe it's related to the ldap version? In default-1.0 profile, openldap-2.0.27 is masked, so I still use 2.0.25-r2... (and I can't really test 2.0.27 because it needs a readline update which would, I guess, break several things. Am I wrong?)
maildrop-1.5.3 has been added to portage. I have updated the ebuild with this stanza... I know it's not an elegant fix by any means... but at least it raises awareness for those users with an older profile+ldap... emake || die "If you enabled java in USE and are running a \ 1.0 profile box, edit ${P}.ebuild and uncomment the \ alternate emake line." # alternate emake line for 1.0 profile boxes # emake LIBLDAP='-lldap -llber -lresolv' || die "compile problem"
closing