Closed ObjectiveWriter closed 2 years ago
bit more info with less verbose output
Making all in libmail
make[2]: Entering directory '/tmp/cone-1.2/libmail'
cp /dev/null libcouriertls.h ; . ../libs/tcpd/couriertls.config ; \
test "$couriertls" != "" || exit 0 ; \
echo '#define HAVE_LIBCOURIERTLS 1' >libcouriertls.h
make all-am
make[3]: Entering directory '/tmp/cone-1.2/libmail'
CXX attachments.lo
CXX fd.lo
CXX fdtls.lo
CXX imaplogin.lo
CXX mimetypes.lo
CXX nntp.lo
CXX pop3.lo
CXX smtp.lo
CXXLD libmail.la
ar: `u' modifier ignored since `D' is the default (see `U')
CXXLD mailtool
cat: ../libs/maildir/maildir.libdeps: No such file or directory
/usr/bin/ld: ./.libs/libmail.a(search.o): in function `mail::searchOneMessage::search(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
/tmp/cone-1.2/libmail/search.C:924: undefined reference to `unicode::iconvert::operator()(char const*, unsigned long)'
/usr/bin/ld: ./.libs/libmail.a(search.o): in function `mail::searchOneMessage::checkNextHeader()':
/tmp/cone-1.2/libmail/search.C:612: undefined reference to `unicode::iconvert::begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: mailtool: hidden symbol `_ZN7unicode8iconvertclEPKcm' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:679: mailtool] Error 1
make[3]: Leaving directory '/tmp/cone-1.2/libmail'
make[2]: *** [Makefile:601: all] Error 2
make[2]: Leaving directory '/tmp/cone-1.2/libmail'
make[1]: *** [Makefile:485: all-recursive] Error 1
make[1]: Leaving directory '/tmp/cone-1.2'
make: *** [Makefile:392: all] Error 2
The issue is with libcourier-unicode.so, it's necessary to look into exactly how it was built or installed.
At the very least:
$ objdump -C -T /usr/lib64/libcourier-unicode.so | grep unicode::iconvert::operator
(or wherever libcourier-unicode.so was installed -- this should produce two lines of output that look like this (the exact numbers will vary):
000000000000e060 g DF .text 0000000000000023 Base unicode::iconvert::operator()(char const*, unsigned long)
000000000000e090 g DF .text 0000000000000023 Base unicode::iconvert::operator()(char32_t const*, unsigned long)
Also make V=1
should also produce verbose output showing the exact compilation and linking flags.
root@debian:/tmp/cone-1.2.20210522# objdump -C -T /usr/lib64/libcourier-unicode.so | grep unicode::iconvert::operator
objdump: '/usr/lib64/libcourier-unicode.so': No such file
root@debian:/tmp/cone-1.2.20210522# locate libcourier-unicode.so
/usr/lib/x86_64-linux-gnu/libcourier-unicode.so
/usr/lib/x86_64-linux-gnu/libcourier-unicode.so.4
/usr/lib/x86_64-linux-gnu/libcourier-unicode.so.4.1.0
root@debian:/tmp/cone-1.2.20210522# objdump -C -T /usr/lib/x86_64-linux-gnu/libcourier-unicode.so | grep unicode::iconvert::operator
root@debian:/tmp/cone-1.2.20210522# objdump -C -T /usr/lib/x86_64-linux-gnu/libcourier-unicode.so.4 | grep unicode::iconvert::operator
root@debian:/tmp/cone-1.2.20210522# objdump -C -T /usr/lib/x86_64-linux-gnu/libcourier-unicode.so.4.1.0 | grep unicode::iconvert::operator
installed via official debian repositories
root@debian:/tmp/cone-1.2.20210522# apt-cache search libcourier
libcourier-unicode-dev - Courier Unicode library (development files and headers)
libcourier-unicode4 - Courier Unicode library (shared runtime library)
root@debian:/tmp/cone-1.2.20210522# apt-get install libcourier-unicode-dev libcourier-unicode4
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libcourier-unicode-dev is already the newest version (2.1.2-2).
libcourier-unicode4 is already the newest version (2.1.2-2).
libcourier-unicode4 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
make V=1 as requested
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT structure.lo -MD -MP -MF .deps/structure.Tpo -c structure.C -o structure.o >/dev/null 2>&1
mv -f .deps/structure.Tpo .deps/structure.Plo
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT sync.lo -MD -MP -MF .deps/sync.Tpo -c -o sync.lo sync.C
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT sync.lo -MD -MP -MF .deps/sync.Tpo -c sync.C -fPIC -DPIC -o .libs/sync.o
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT sync.lo -MD -MP -MF .deps/sync.Tpo -c sync.C -o sync.o >/dev/null 2>&1
mv -f .deps/sync.Tpo .deps/sync.Plo
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccount.lo -MD -MP -MF .deps/tmpaccount.Tpo -c -o tmpaccount.lo tmpaccount.C
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccount.lo -MD -MP -MF .deps/tmpaccount.Tpo -c tmpaccount.C -fPIC -DPIC -o .libs/tmpaccount.o
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccount.lo -MD -MP -MF .deps/tmpaccount.Tpo -c tmpaccount.C -o tmpaccount.o >/dev/null 2>&1
mv -f .deps/tmpaccount.Tpo .deps/tmpaccount.Plo
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccountadd.lo -MD -MP -MF .deps/tmpaccountadd.Tpo -c -o tmpaccountadd.lo tmpaccountadd.C
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccountadd.lo -MD -MP -MF .deps/tmpaccountadd.Tpo -c tmpaccountadd.C -fPIC -DPIC -o .libs/tmpaccountadd.o
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccountadd.lo -MD -MP -MF .deps/tmpaccountadd.Tpo -c tmpaccountadd.C -o tmpaccountadd.o >/dev/null 2>&1
mv -f .deps/tmpaccountadd.Tpo .deps/tmpaccountadd.Plo
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccountfolder.lo -MD -MP -MF .deps/tmpaccountfolder.Tpo -c -o tmpaccountfolder.lo tmpaccountfolder.C
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccountfolder.lo -MD -MP -MF .deps/tmpaccountfolder.Tpo -c tmpaccountfolder.C -fPIC -DPIC -o .libs/tmpaccountfolder.o
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I./.. -I../libs -I./../libs -Wall -I../libs -I./../libs -g -O2 -MT tmpaccountfolder.lo -MD -MP -MF .deps/tmpaccountfolder.Tpo -c tmpaccountfolder.C -o tmpaccountfolder.o >/dev/null 2>&1
mv -f .deps/tmpaccountfolder.Tpo .deps/tmpaccountfolder.Plo
/bin/bash ./libtool --tag=CXX --mode=link g++ -I../libs -I./../libs -g -O2 -o libmail.la mail.lo addmessage.lo addmessageimport.lo addmessageremoveattachments.lo addressbook.lo addressbookadd.lo addressbookget.lo addressbookopen.lo addressbooksearch.lo attachments.lo autodecoder.lo envelope.lo base64.lo copymessage.lo decoder.lo driver.lo expungelist.lo fd.lo fdtls.lo file.lo generic.lo genericdecode.lo headers.lo imap.lo imapacl.lo imapidle.lo imaplogin.lo imaplogout.lo imapfetchhandler.lo imaphandler.lo imaphmac.lo imapfolder.lo imapfolders.lo imaplisthandler.lo imapparsefmt.lo imapstatushandler.lo logininfo.lo maildir.lo maildiradd.lo maildirfolder.lo mbox.lo mboxadd.lo mboxexpunge.lo mboxfolder.lo mboxgetmessage.lo mboxlock.lo mboxmagictag.lo mboxmultilock.lo mboxopen.lo mboxread.lo mboxsighandler.lo mimetypes.lo nntp.lo nntpadd.lo nntpcache.lo nntpchecknew.lo nntpfetch.lo nntpfolder.lo nntpgroup.lo nntpgroupinfo.lo nntpgroupopen.lo nntplistactive.lo nntplogin.lo nntplogin2.lo nntplogout.lo nntpnewsrc.lo nntppost.lo nntpxover.lo nntpxpat.lo objectmonitor.lo poll.lo pop3.lo pop3folder.lo pop3maildrop.lo qp.lo rfc2047decode.lo rfc2047encode.lo rfcaddr.lo runlater.lo search.lo smap.lo smapacl.lo smapadd.lo smapaddmessage.lo smapcopy.lo smapcreate.lo smapdelete.lo smapfetch.lo smapfetchattr.lo smapidle.lo smaplist.lo smapmsgrange.lo smapnewmail.lo smapnoopexpunge.lo smapopen.lo smapsearch.lo smapsendfolder.lo smapstatus.lo smapstore.lo smtp.lo smtpfolder.lo snapshot.lo sortfolders.lo structure.lo sync.lo tmpaccount.lo tmpaccountadd.lo tmpaccountfolder.lo -lidn
libtool: link: ar cru .libs/libmail.a .libs/mail.o .libs/addmessage.o .libs/addmessageimport.o .libs/addmessageremoveattachments.o .libs/addressbook.o .libs/addressbookadd.o .libs/addressbookget.o .libs/addressbookopen.o .libs/addressbooksearch.o .libs/attachments.o .libs/autodecoder.o .libs/envelope.o .libs/base64.o .libs/copymessage.o .libs/decoder.o .libs/driver.o .libs/expungelist.o .libs/fd.o .libs/fdtls.o .libs/file.o .libs/generic.o .libs/genericdecode.o .libs/headers.o .libs/imap.o .libs/imapacl.o .libs/imapidle.o .libs/imaplogin.o .libs/imaplogout.o .libs/imapfetchhandler.o .libs/imaphandler.o .libs/imaphmac.o .libs/imapfolder.o .libs/imapfolders.o .libs/imaplisthandler.o .libs/imapparsefmt.o .libs/imapstatushandler.o .libs/logininfo.o .libs/maildir.o .libs/maildiradd.o .libs/maildirfolder.o .libs/mbox.o .libs/mboxadd.o .libs/mboxexpunge.o .libs/mboxfolder.o .libs/mboxgetmessage.o .libs/mboxlock.o .libs/mboxmagictag.o .libs/mboxmultilock.o .libs/mboxopen.o .libs/mboxread.o .libs/mboxsighandler.o .libs/mimetypes.o .libs/nntp.o .libs/nntpadd.o .libs/nntpcache.o .libs/nntpchecknew.o .libs/nntpfetch.o .libs/nntpfolder.o .libs/nntpgroup.o .libs/nntpgroupinfo.o .libs/nntpgroupopen.o .libs/nntplistactive.o .libs/nntplogin.o .libs/nntplogin2.o .libs/nntplogout.o .libs/nntpnewsrc.o .libs/nntppost.o .libs/nntpxover.o .libs/nntpxpat.o .libs/objectmonitor.o .libs/poll.o .libs/pop3.o .libs/pop3folder.o .libs/pop3maildrop.o .libs/qp.o .libs/rfc2047decode.o .libs/rfc2047encode.o .libs/rfcaddr.o .libs/runlater.o .libs/search.o .libs/smap.o .libs/smapacl.o .libs/smapadd.o .libs/smapaddmessage.o .libs/smapcopy.o .libs/smapcreate.o .libs/smapdelete.o .libs/smapfetch.o .libs/smapfetchattr.o .libs/smapidle.o .libs/smaplist.o .libs/smapmsgrange.o .libs/smapnewmail.o .libs/smapnoopexpunge.o .libs/smapopen.o .libs/smapsearch.o .libs/smapsendfolder.o .libs/smapstatus.o .libs/smapstore.o .libs/smtp.o .libs/smtpfolder.o .libs/snapshot.o .libs/sortfolders.o .libs/structure.o .libs/sync.o .libs/tmpaccount.o .libs/tmpaccountadd.o .libs/tmpaccountfolder.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libmail.a
libtool: link: ( cd ".libs" && rm -f "libmail.la" && ln -s "../libmail.la" "libmail.la" )
/bin/bash ./libtool --tag=CXX --mode=link g++ -I../libs -I./../libs -g -O2 -static -o mailtool mailtool.o libmail.la ../libs/rfc2045/librfc2045.la ../libs/rfc822/librfc822.la ../libs/rfc822/libencode.la ../libs/maildir/libmaildir.la ../libs/tcpd/libcouriertls.la -lcourier-unicode ../libs/liblock/liblock.la ../libs/libhmac/libhmac.la ../libs/md5/libmd5.la ../libs/sha1/libsha1.la ../libs/numlib/libnumlib.la ../libs/tcpd/libspipe.la ../libs/soxwrap/libsoxwrap.a `cat ../libs/maildir/maildir.libdeps ../libs/soxwrap/soxlibs.dep`
cat: ../libs/maildir/maildir.libdeps: No such file or directory
libtool: link: g++ -I../libs -I./../libs -g -O2 -o mailtool mailtool.o ./.libs/libmail.a ../libs/rfc2045/.libs/librfc2045.a ../libs/rfc822/.libs/librfc822.a -lidn ../libs/rfc822/.libs/libencode.a ../libs/maildir/.libs/libmaildir.a ../libs/tcpd/.libs/libcouriertls.a -lssl -lcrypto -lcourier-unicode ../libs/liblock/.libs/liblock.a ../libs/libhmac/.libs/libhmac.a ../libs/md5/.libs/libmd5.a ../libs/sha1/.libs/libsha1.a ../libs/numlib/.libs/libnumlib.a ../libs/tcpd/.libs/libspipe.a ../libs/soxwrap/libsoxwrap.a
/usr/bin/ld: ./.libs/libmail.a(search.o): in function `mail::searchOneMessage::search(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
/tmp/cone-1.2.20210522/libmail/search.C:924: undefined reference to `unicode::iconvert::operator()(char const*, unsigned long)'
/usr/bin/ld: ./.libs/libmail.a(search.o): in function `mail::searchOneMessage::checkNextHeader()':
/tmp/cone-1.2.20210522/libmail/search.C:612: undefined reference to `unicode::iconvert::begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: mailtool: hidden symbol `_ZN7unicode8iconvertclEPKcm' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:680: mailtool] Error 1
make[3]: Leaving directory '/tmp/cone-1.2.20210522/libmail'
make[2]: *** [Makefile:602: all] Error 2
make[2]: Leaving directory '/tmp/cone-1.2.20210522/libmail'
make[1]: *** [Makefile:486: all-recursive] Error 1
make[1]: Leaving directory '/tmp/cone-1.2.20210522'
make: *** [Makefile:393: all] Error 2
This looks like an issue with Debian's courier-unicode package. It looks to be fairly old (at least 3 ABI revisions older than the current version), and/or not built correctly. It needs to be updated to the current version, and rebuilt.
I don't maintain Debian's packages, can you reach out to Debian's package maintainer?
I can try writing them an e-mail. IF/when they get to it is another matter.
is there an option that i am not seeing so i can like do a static all in one binary build or somethingas an intermittent fix till that gets done? Because that "tiny" issue is ltierally the thing preventing me from upgrading from an older netbook to a newer laptop.
i also tried building an oder version, but those also fail to build btw.
I am not certain that the current version of cone can even link with the much older courier-unicode version. If the Debian package installs the libcourier-unicode.a static library, it might be doable by manually editing the Makefile and doing a static link against -lcourier-unicode only. But if it doesn't, it's not possible to statically link with a static library that's not installed.
I am happy to give this a spin, or as i am in a vm already.
unfortunatly i dont know enough on how to make a debian package of the newer version of the libary or i would be doing that.
as an example of older versions, 0.89-1 fails with the following error, on the current debian. (however i know that on the old netbook that one is running fine. (installed when all was current) and just updated the system around it to the newest debian.
libtool: link: ( cd ".libs" && rm -f "libspipe.la" && ln -s "../libspipe.la" "libspipe.la" )
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/include/p11-kit-1 -I./.. -I.. -Wall -g -O2 -MT tlscache.lo -MD -MP -MF .deps/tlscache.Tpo -c -o tlscache.lo tlscache.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/include/p11-kit-1 -I./.. -I.. -Wall -g -O2 -MT tlscache.lo -MD -MP -MF .deps/tlscache.Tpo -c tlscache.c -fPIC -DPIC -o .libs/tlscache.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/include/p11-kit-1 -I./.. -I.. -Wall -g -O2 -MT tlscache.lo -MD -MP -MF .deps/tlscache.Tpo -c tlscache.c -o tlscache.o >/dev/null 2>&1
mv -f .deps/tlscache.Tpo .deps/tlscache.Plo
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/include/p11-kit-1 -I./.. -I.. -Wall -g -O2 -MT libcouriergnutls.lo -MD -MP -MF .deps/libcouriergnutls.Tpo -c -o libcouriergnutls.lo libcouriergnutls.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/include/p11-kit-1 -I./.. -I.. -Wall -g -O2 -MT libcouriergnutls.lo -MD -MP -MF .deps/libcouriergnutls.Tpo -c libcouriergnutls.c -fPIC -DPIC -o .libs/libcouriergnutls.o
libcouriergnutls.c:12:10: fatal error: gnutls/extra.h: No such file or directory
12 | #include <gnutls/extra.h>
Since this is still open: I managed to build cone on Debian Bullseye. If you want I can share the packaging files and/or the packages themselves.
That's not necessary. In the meantime I've done some work and all Courier packages have scripts that build the source tarballs directly into installable deb packages. This was done on Ubuntu, but it should work on Debian, at most with minimal tweaks.
cone version 1.2 Debian version: 11.1 (bullseye) AND bookworm/sid
steps to reproduce: install Debian minimal, install all the required dev-tools and libraries (via apt) ./configure => success make => fails
output below