When I restart proftpd after upgrading proftpd, it outputs this warning message: /etc/init.d/proftpd restart * Stopping ProFTPD ... Checking syntax of configuration file 2015-07-16 09:06:28,981 bilbodev proftpd[3008]: mod_sql_sqlite/0.4: compiled using SQLite version '3.8.10.1' headers, but linked to SQLite version '3.8.10.2' library Syntax check complete. [ ok ] * Starting ProFTPD ... emerge @preserved-rebuild or revdep-rebuild does not detect the difference in library versions. Reproducible: Always Steps to Reproduce: 1. Upgrade sqlite 2. Restart proftpd 3. Notice a warning message about sqlite being a different version than proftpd was compiled with. Actual Results: proftpd emits a warning message when restarting/starting the init script Expected Results: proftpd should not emit a warning message for minor version (slot 3) differences or the ebuild should trigger a rebuild of proftpd when sqlite is upgraded. emerge -pv proftpd sqlite These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-db/sqlite-3.8.10.2:3::gentoo USE="icu readline secure-delete -debug -doc -static-libs -tcl {-test} -tools" ABI_X86="32 (64) (-x32)" 0 KiB [ebuild R ] net-ftp/proftpd-1.3.5a::gentoo USE="acl caps ipv6 mysql ncurses nls openssl pam pcre sqlite ssl tcpd -authfile -ban -case -clamav -copy -ctrls -deflate -diskuse -doc -dso -dynmasq -exec -ident -ifsession -ifversion -kerberos -ldap -log_forensic -memcache -msg -postgres -qos -radius -ratio -readme -rewrite (-selinux) -sftp -shaper -sitemisc -snmp -softquota {-test} -trace -unique_id -vroot -xinetd" LINGUAS="-bg_BG -en_US -fr_FR -it_IT -ja_JP -ko_KR -ru_RU -zh_CN -zh_TW" 0 KiB
I don't know if sqlite maintains ABI compatibility promises. If it does i'll be happy to tweak proftpd to match the reality.
AFAIK ABI compatibility is maintained in SQLite.
There is a few 'pr_log_pri(PR_LOG_WARNING' calls: contrib/mod_sftp/mod_sftp.c- pr_log_pri(PR_LOG_WARNING, MOD_SFTP_VERSION contrib/mod_sftp/mod_sftp.c: ": compiled using OpenSSL version '%s' headers, but linked to " -- contrib/mod_sql_sqlite.c- pr_log_pri(PR_LOG_WARNING, MOD_SQL_SQLITE_VERSION contrib/mod_sql_sqlite.c: ": compiled using SQLite version '%s' headers, but linked to " -- contrib/mod_tls.c- pr_log_pri(PR_LOG_WARNING, MOD_TLS_VERSION contrib/mod_tls.c: ": compiled using OpenSSL version '%s' headers, but linked to " -- contrib/mod_tls.c- SSLeay_version(SSLEAY_VERSION)); contrib/mod_tls.c: tls_log("compiled using OpenSSL version '%s' headers, but linked to " -- doc/contrib/mod_sftp.html-<pre> doc/contrib/mod_sftp.html: - mod_sftp/0.9.7: compiled using OpenSSL version 'OpenSSL 0.9.8n 24 Mar 2010' headers, but linked $ -- doc/howto/TLS.html- - mod_tls/2.2: compiled using OpenSSL version 'OpenSSL 0.9.7i 14 Oct 2005' doc/howto/TLS.html:headers, but linked to OpenSSL version 'OpenSSL 0.9.7l 28 Sep 2006' library -- modules/mod_memcache.c- pr_log_pri(PR_LOG_WARNING, MOD_MEMCACHE_VERSION modules/mod_memcache.c: ": compiled using libmemcached-%s headers, but linked to " Gentoo claims that: - OpenSSL ABI changed ABI only once: 0.9.8 to -> 1.0.0 (thus modern security upgrades cause these warnings but don't require rebuilds) - SQLite didn't change ABI recently - libmemcached didn't change ABI recently TJ, what do you think of downgrading those down to PR_LOG_NOTICE / PR_LOG_INFO?
OpenSSL's ABI, prior to 1.x, has been unable, so I'd like to keep those log messages as WARNING; the recent proftpd releases try to be a little better about those, specifically. I'm OK with changing the libmemcached/SQLite log messages to INFO, as those projects seem to do a better job of maintaining compatibility.
See: https://github.com/proftpd/proftpd/commit/74cf2a6ed74471ff1d9088e8d9132fc9132861fb
Psuhed to proftpd-1.3.5b-r1 ebuild as: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=563929d695450a785859a044140a38ca869b97be Thanks all!