[Bug 214575] [PATCH] security/gpgme-{cpp,qt5}: Stop requiring ports libc++ on FreeBSD 9 and 10
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Nov 16 16:43:31 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214575
Bug ID: 214575
Summary: [PATCH] security/gpgme-{cpp,qt5}: Stop requiring ports
libc++ on FreeBSD 9 and 10
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Keywords: patch
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: jhale at FreeBSD.org
Reporter: rakuco at FreeBSD.org
CC: gerald at FreeBSD.org, jhale at FreeBSD.org, kde at FreeBSD.org
Attachment #177081 maintainer-approval?(jhale at FreeBSD.org)
Flags:
Keywords: patch
CC: gerald at FreeBSD.org, jhale at FreeBSD.org
Created attachment 177081
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=177081&action=edit
Proposed patch
Using ports libc++ on non-leaf ports is problematic, as the requirement
basically flows to all ports that depend on gpgme-{cpp,qt5}. In particular,
sysutils/kf5-kwallet was breaking in FreeBSD 9.x because mismatches between
libc++ and libstdc++ from gcc48 were causing a gpgme symbol not to be found:
backendpersisthandler.cpp:(.text+0xf61): undefined reference to
`GpgME::Context::encrypt(std::vector<GpgME::Key, std::allocator<GpgME::Key> >
const&, GpgME::Data const&, GpgME::Data&, GpgME::Context::EncryptionFlags)'
The attached patch switches the build of both ports to lang/gcc on FreeBSD 9
and the system compiler on FreeBSD 10:
* Use USES:compiler-c++11-lib instead of compiler-c++11-lang, as we do need a
C++11-compatible standard library. This causes the right compiler to be chosen
as described above.
* Set _GLIBCXX_USE_C99 so that gpgme-cpp builds with GCC 4.8 (std::to_string()
is not exposed by default on FreeBSD). Several other ports need to do the same.
* Add a few patches to fix the gpgme-qt5:
** patch-git_b4658f6a1 is a backport from an upstream commit to make the port
build with GCC 4.8 without errors.
** patch-lang_qt_src_qgpgmeencryptjob.cpp is a local workaround for the
std::bind() bug mentioned in ports r424451.
I've verified both ports to build on 9.3 and 10.3.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the kde-freebsd
mailing list