diff options
author | Göktürk Yüksek <gokturk@gentoo.org> | 2019-10-11 18:31:32 -0400 |
---|---|---|
committer | Göktürk Yüksek <gokturk@gentoo.org> | 2019-10-15 19:20:38 -0400 |
commit | ac3f1a90286538ec943337d34552553205aa3d05 (patch) | |
tree | f2f223887220e594c5274b6123c5c01481a65f36 /app-crypt/veracrypt | |
parent | dev-libs/libofx: 0.9.14 ppc64 stable (diff) | |
download | gentoo-ac3f1a90286538ec943337d34552553205aa3d05.tar.gz gentoo-ac3f1a90286538ec943337d34552553205aa3d05.tar.bz2 gentoo-ac3f1a90286538ec943337d34552553205aa3d05.zip |
app-crypt/veracrypt: fix the linking against wxGTK[X] when USE='-X'
veracrypt[-X] fails to properly link against wxGTK[X] only using the
'base' library because the wx's setup.h implicitly defines
wxUSE_GUI=1, which then changes the definition of various structures,
requiring symbols from the core library as well.
For example, wxwidgets include/wx/app.h defines:
#if wxUSE_GUI
class WXDLLIMPEXP_CORE wxAppBase : public wxAppConsole
...
[snip]
...
#else // !GUI
// wxApp is defined in core and we cannot define another one in wxBase,
// so use the preprocessor to allow using wxApp in console programs too
#define wxApp wxAppConsole
#endif // GUI/!GUI
To fix this, pass '-DwxUSE_GUI=0' when compiling veracrypt[-X].
Closes: https://bugs.gentoo.org/605018
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org>
Diffstat (limited to 'app-crypt/veracrypt')
-rw-r--r-- | app-crypt/veracrypt/files/veracrypt-1.24-no-gui-fix.patch | 35 | ||||
-rw-r--r-- | app-crypt/veracrypt/veracrypt-1.24-r1.ebuild | 117 |
2 files changed, 152 insertions, 0 deletions
diff --git a/app-crypt/veracrypt/files/veracrypt-1.24-no-gui-fix.patch b/app-crypt/veracrypt/files/veracrypt-1.24-no-gui-fix.patch new file mode 100644 index 000000000000..c4433c561d86 --- /dev/null +++ b/app-crypt/veracrypt/files/veracrypt-1.24-no-gui-fix.patch @@ -0,0 +1,35 @@ +From 482311ef1041918d791e498744f8e0ddeebc91fe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=B6kt=C3=BCrk=20Y=C3=BCksek?= <gokturk@gentoo.org> +Date: Fri, 11 Oct 2019 18:16:41 -0400 +Subject: [PATCH v1] src/Main/Main.make: simplify the WX_CONFIG_LIBS logic + +Irrespective of whether we are linking against widgets statically or +dynamically, pull in only 'base' when GUI is disabled, and +'adv,core,base' when GUI is enabled. When GUI is disabled, the C/CXX +flag must include '-DwxUSE_GUI=0' for this to work. +--- + src/Main/Main.make | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/Main/Main.make b/src/Main/Main.make +index 0bdd951d..259a1f08 100755 +--- a/src/Main/Main.make ++++ b/src/Main/Main.make +@@ -82,14 +82,10 @@ CXXFLAGS += -I$(BASE_DIR)/Main + #------ wxWidgets configuration ------ + + ifdef TC_NO_GUI +-ifdef VC_WX_STATIC + WX_CONFIG_LIBS := base + else + WX_CONFIG_LIBS := adv,core,base + endif +-else +-WX_CONFIG_LIBS := adv,core,base +-endif + + ifeq "$(TC_BUILD_CONFIG)" "Release" + +-- +2.23.0 + diff --git a/app-crypt/veracrypt/veracrypt-1.24-r1.ebuild b/app-crypt/veracrypt/veracrypt-1.24-r1.ebuild new file mode 100644 index 000000000000..11c268072182 --- /dev/null +++ b/app-crypt/veracrypt/veracrypt-1.24-r1.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit eutils linux-info pax-utils toolchain-funcs wxwidgets + +DESCRIPTION="Disk encryption with strong security based on TrueCrypt" +HOMEPAGE="https://www.veracrypt.fr/en/Home.html" +SRC_URI="https://github.com/${PN}/VeraCrypt/archive/VeraCrypt_${PV}.tar.gz" + +# The modules not linked against in Linux include (but not limited to): +# libzip, chacha-xmm, chacha256, chachaRng, jitterentropy, rdrand, t1ha2 +# Tested by actually removing the source files and performing a build +# For this reason, We don't have to worry about their licenses +LICENSE="Apache-2.0 truecrypt-3.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+asm cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_ssse3 doc X" +RESTRICT="bindist mirror" + +WX_GTK_VER="3.0" + +RDEPEND=" + sys-fs/lvm2 + sys-fs/fuse:0 + x11-libs/wxGTK:${WX_GTK_VER}[X?] + app-admin/sudo + dev-libs/pkcs11-helper +" +DEPEND=" + ${RDEPEND} + virtual/pkgconfig + asm? ( dev-lang/yasm ) +" + +S="${WORKDIR}/VeraCrypt-VeraCrypt_${PV}/src" + +pkg_setup() { + local CONFIG_CHECK="~BLK_DEV_DM ~CRYPTO ~CRYPTO_XTS ~DM_CRYPT ~FUSE_FS" + linux-info_pkg_setup + + setup-wxwidgets +} + +src_prepare() { + eapply -p2 "${FILESDIR}"/${PN}-1.24-no-gui-fix.patch + default +} + +src_compile() { + local TC_EXTRA_CFLAGS="${CFLAGS}" + local TC_EXTRA_CXXFLAGS="${CXXFLAGS}" + local myemakeargs=( + NOSTRIP=1 + NOTEST=1 + VERBOSE=1 + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + AR="$(tc-getAR)" + RANLIB="$(tc-getRANLIB)" + TC_EXTRA_LFLAGS="${LDFLAGS}" + WX_CONFIG="${WX_CONFIG}" + $(usex X "" "NOGUI=1") + $(usex asm "" "NOASM=1") + $(usex cpu_flags_x86_sse2 "" "NOSSE2=1") + $(usex cpu_flags_x86_sse4_1 "SSE41=1" "") + $(usex cpu_flags_x86_ssse3 "SSSE3=1" "") + ) + + # We need to explicitly disable the GUI support when linking against + # wxwidgets, in case it was compiled with USE=X + if ! use X; then + TC_EXTRA_CFLAGS="${TC_EXTRA_CFLAGS} -DwxUSE_GUI=0" + TC_EXTRA_CXXFLAGS="${TC_EXTRA_CXXFLAGS} -DwxUSE_GUI=0" + fi + + myemakeargs+=( + TC_EXTRA_CFLAGS="${TC_EXTRA_CFLAGS}" + TC_EXTRA_CXXFLAGS="${TC_EXTRA_CXXFLAGS}" + ) + + emake "${myemakeargs[@]}" +} + +src_test() { + "${S}/Main/veracrypt" --text --test || die "tests failed" +} + +src_install() { + local DOCS=( Readme.txt ) + local HTML_DOCS=( ) + + dobin Main/veracrypt + if use doc; then + DOCS+=( "${S}"/../doc/EFI-DCS ) + docompress -x "/usr/share/doc/${PF}/EFI-DCS" + HTML_DOCS+=( "${S}"/../doc/html/. ) + fi + einstalldocs + + newinitd "${FILESDIR}/${PN}.init" ${PN} + + if use X; then + local s + for s in 16 48 128 256; do + newicon -s ${s} Resources/Icons/VeraCrypt-${s}x${s}.xpm veracrypt.xpm + done + make_desktop_entry ${PN} "VeraCrypt" ${PN} "Utility;Security" + fi + + pax-mark -m "${D%/}/usr/bin/veracrypt" +} + +pkg_postinst() { + ewarn "VeraCrypt has a very restrictive license. Please be explicitly aware" + ewarn "of the limitations on redistribution of binaries or modified source." +} |