Created attachment 173362 [details] Patch for removing a bunch of functions from the C library Hi antoine@ (or anyone else ;-), After the previous exp-run you did to test the changes to some of the function prototypes, I realised that it makes far more sense to remove some of those functions. It looks like they are undocumented and only have stubs in the C library. Could you please do another exp-run with the following patch? It changes some of these functions from being exposed to just being present for compatibility. Thanks!
Exp-run results on amd64: http://package18.nyi.freebsd.org/build.html?mastername=headamd64PR211626-default&build=2016-08-31_05h28m10s Failures due to crypt_r: http://package18.nyi.freebsd.org/data/headamd64PR211626-default/2016-08-31_05h28m10s/logs/errors/cherokee-1.2.104_1.log http://package18.nyi.freebsd.org/data/headamd64PR211626-default/2016-08-31_05h28m10s/logs/errors/rubygem-bcrypt-3.1.11.log Failures due to encrypt removal: http://package18.nyi.freebsd.org/data/headamd64PR211626-default/2016-08-31_05h28m10s/logs/errors/claws-mail-3.14.0.log http://package18.nyi.freebsd.org/data/headamd64PR211626-default/2016-08-31_05h28m10s/logs/errors/xisp-2.7p4_9.log Failure due to basename: http://package18.nyi.freebsd.org/data/headamd64PR211626-default/2016-08-31_05h28m10s/logs/errors/taglookup-0.2_3.log
On i386, the failures are similar.
A commit references this bug: Author: ed Date: Mon Oct 3 18:20:58 UTC 2016 New revision: 306651 URL: https://svnweb.freebsd.org/changeset/base/306651 Log: Remove setkey(), encrypt(), des_setkey() and des_cipher(). The setkey() and encrypt() functions are part of XSI, not the POSIX base definitions. There is no strict requirement for us to provide these, especially if we're only going to keep these around as undocumented stubs. The same holds for des_setkey() and des_cipher(). Instead of providing functions that only generate warnings when linking, simply disallow linking against them. The impact of this is relatively low. It only causes two leaf ports to break. I'll see what I can do to help out to get those fixed. PR: 211626 Changes: head/include/stdlib.h head/include/unistd.h head/lib/libc/gen/Symbol.map head/lib/libc/gen/crypt.c
claws-mail is not a leaf port, 24 ports depend on it.
Created attachment 175393 [details] Patch for claws-mail to prevent calling setkey()/encrypt().
Created attachment 175394 [details] Patch for xisp to prevent calling setkey()/encrypt().
cc: pawel@ (claws-mail maintainer)
Comment on attachment 175394 [details] Patch for xisp to prevent calling setkey()/encrypt(). Turns out xisp has been fixed in the meantime to use OpenSSL anyway. We don't need to patch up this port anymore.
Hi Pawel, (Thanks, antoine@, for putting him on the CC!) In src r306651 I've removed the presence of the setkey() and encrypt() functions. It looks like claws-mail only uses these functions to encrypt/decrypt some legacy password database files. As these functions already act as no-ops on FreeBSD, we can get around by simply removing these calls altogether. That at least makes claws-mail behave as before. Attached is a patch for claws-mail to remove the calls to these functions. Autoconf also has some ugly check in place to test for this function's presence, requiring it unconditionally. Should we just fool Autoconf by setting ac_cv_search_encrypt=yes? Thoughts?
Hi Ed, Looks like ac_cv_search_encrypt=yes hack is enough to fix build. Submitted patch touches codepath not used on FreeBSD, there is specific encryption function implementation for our platform that don't use setkey() and encrypt(). I'm build testing right now, should commit fix shortly. Thanks for the heads up!
A commit references this bug: Author: pawel Date: Wed Oct 5 20:13:40 UTC 2016 New revision: 423385 URL: https://svnweb.freebsd.org/changeset/ports/423385 Log: Fix build on 12.0-CURRENT after encrypt() function removal in r306651 Configure script checks for encrypt() even though it's not used on FreeBSD platform, disable this check. PR: 211626 Reported by: Ed Schouten Changes: head/mail/claws-mail/Makefile.claws
hey guys, This change seems to have broken DragonFly with SSL_DEFAULT=libressl: libtool: link: cc -pipe -DLIBICONV_PLUG -O2 -fno-strict-aliasing -Wno-unused-function -Wno-pointer-sign -Wall -I/usr/local/include/enchant -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -pthread -Wl,--export-dynamic -Wl,-rpath -Wl,/usr/local/lib -o claws-mail account.o action.o addrcache.o addr_compl.o addressadd.o addrgather.o addrharvest.o addritem.o advsearch.o alertpanel.o autofaces.o avatars.o codeconv.o compose.o crash.o customheader.o displayheader.o edittags.o enriched.o export.o file_checker.o filtering.o folder.o folder_item_prefs.o foldersel.o folderutils.o folderview.o grouplistdialog.o headerview.o html.o image_viewer.o imap.o imap_gtk.o import.o inc.o localfolder.o main.o mainwindow.o manual.o matcher.o matcher_parser_lex.o matcher_parser_parse.o mbox.o message_search.o messageview.o mh.o mh_gtk.o mimeview.o msgcache.o news.o news_gtk.o noticeview.o partial_download.o password.o password_gtk.o passwordstore.o pop.o prefs_account.o prefs_actions.o prefs_common.o prefs_compose_writing.o prefs_customheader.o prefs_display_header.o prefs_ext_prog.o prefs_filtering_action.o prefs_filtering.o prefs_folder_item.o prefs_fonts.o prefs_gtk.o prefs_image_viewer.o prefs_logging.o prefs_matcher.o prefs_message.o prefs_migration.o prefs_msg_colors.o prefs_other.o prefs_quote.o prefs_receive.o prefs_send.o prefs_spelling.o prefs_summaries.o prefs_summary_column.o prefs_summary_open.o prefs_folder_column.o prefs_template.o prefs_themes.o prefs_toolbar.o prefs_wrapping.o printing.o privacy.o procheader.o procmime.o procmsg.o quote_fmt.o quote_fmt_lex.o quote_fmt_parse.o recv.o remotefolder.o send_message.o setup.o sourcewindow.o ssl_manager.o statusbar.o stock_pixmap.o summary_search.o summaryview.o textview.o toolbar.o undo.o unmime.o uri_opener.o wizard.o addrbook.o addrclip.o addrcustomattr.o addressbook.o addressbook_foldersel.o addrindex.o addrquery.o addrselect.o addrduplicates.o browseldap.o editaddress.o editaddress_other_attributes_ldap.o editbook.o editgroup.o editjpilot.o editldap_basedn.o editldap.o editvcard.o exphtmldlg.o expldifdlg.o exporthtml.o exportldif.o importldif.o importmutt.o importpine.o jpilot.o ldapctrl.o ldaplocate.o ldapquery.o ldapserver.o ldapupdate.o ldaputil.o ldif.o mutt.o pine.o vcard.o -pthread -Wl,-rpath -Wl,/usr/local/lib -pthread -Wl,-rpath -Wl,/usr/local/lib -pthread -L/usr/local/lib etpan/.libs/libclawsetpan.a gtk/.libs/libclawsgtk.a -lgthread-2.0 -lenchant -lgmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lintl -lfontconfig -lfreetype -lgnutls -lcompface -lpthread -lSM -lICE -lstartup-notification-1 -lexecinfo -lm -letpan -lcurl -lexpat -lz /usr/local/lib/libsasl2.so -lssl -lcrypto -pthread -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib etpan/.libs/libclawsetpan.a(passcrypt.o):passcrypt.c:function crypt_cfb_buf.constprop.0: error: undefined reference to 'setkey' etpan/.libs/libclawsetpan.a(passcrypt.o):passcrypt.c:function crypt_cfb_buf.constprop.0: error: undefined reference to 'encrypt' collect2: error: ld returned 1 exit status gmake[5]: *** [Makefile:1287: claws-mail] Error 1 Can somebody with FreeBSD confirm that setting DEFAULT_VERSIONS+=ssl=libressl still works after this change? Presumably that's the critical factor, not the OS being DragonFly.
Created attachment 175833 [details] dragonflybsd-fix John: how about this patch? It's based on fix I committed upstream: http://git.claws-mail.org/?p=claws.git;a=commit;h=abbf2f8a104fcb5e72226a2edf0ecd1cd5d29b93
Hi Pawel, I can confirm that claws-mail builds on DragonFly with that patch!
A commit references this bug: Author: pawel Date: Mon Oct 17 15:23:12 UTC 2016 New revision: 424124 URL: https://svnweb.freebsd.org/changeset/ports/424124 Log: Rework last build fix to work on DragonFlyBSD also PR: 211626 Tested by: marino Changes: head/mail/claws-mail/Makefile.claws head/mail/claws-mail/files/patch-configure