x11-libs/wxGTK: drop 3.2.6-r2, 3.2.7-r2, 3.2.8-r1

Signed-off-by: David Seifert <soap@gentoo.org>
This commit is contained in:
David Seifert
2025-08-22 10:37:49 +02:00
parent 9eac6139cd
commit 698f4e057f
6 changed files with 0 additions and 926 deletions

View File

@@ -1,8 +1,2 @@
DIST wxWidgets-3.2.6-docs-html.tar.bz2 18221396 BLAKE2B cc990c848517a47664d4b14638aeaf97ffc57df29ae544e4a90bd15bcb2998fcd19f540d2e2453813197cae64a53f336fd259a99f392256cb6456376f3f6c926 SHA512 f2399f8dd205645c7dfd9fbdf89cf0b11145489cad9e218d592c2778f2a8734e6f852c99009b905b649cc0796612389d0755feedcb523b44c9bb3d631964d5f1
DIST wxWidgets-3.2.6.tar.bz2 27528560 BLAKE2B 6d35a9acd3fa0dbcce3ea38367119eb572c7cf2f63598bac87050d122af7ce6a339892dd5f15d9832e47dac058893fb8b1f4a73db14aa7911a54a31ea52cf22a SHA512 87830a73df096ab35d4ff7e131872131153da76f76c58d70e57558915c3faea280af193104163ce24e9e249a62b8e65d19ebfa20046ce0d2c45b2368b108619f
DIST wxWidgets-3.2.7-docs-html.tar.bz2 18282275 BLAKE2B 685b0758236bc63fe2a6fcf595e0944fa23cb8c9994ccd9e7281c5246d59be54114503685d9f7794d6569057a6326456f5b8104de43d8f8a1e282372de7a1df4 SHA512 52e4b5d05aaa76aa1bb4bf5bb2f5809cef7bd3d17aacce3d7505f6712cc2188a2a6120349b08f55c5be1096f8ce9417bb86f597ea80a86cf27ea9428c5596c8b
DIST wxWidgets-3.2.7.tar.bz2 27489942 BLAKE2B ae318b3bea4652e45a58ea5cd3d7053d27760c2f0761d2f71097659aefaa00efa3a40fcfa3ba01edb66b18710de652cee63a51c216ef7fab12abdd505333a6b3 SHA512 7b2a8ec2dfcd8e816ac6fee9fe74c3f20d8e81422fe044fb5d701ab257fae6fc31871ab1e099b3cdce1d83a54b6edd547c8b155a4b84658dcaac123390a7b82b
DIST wxWidgets-3.2.8-docs-html.tar.bz2 18209484 BLAKE2B 4e57589d4460bfc74c5ac1c1e9ea665e12ae2f1ffb73e9e6d634fa7bd959e76b29ce7cceb5daa7de7fb72885804d3b6d0729145a5b0380e1d5beca2154831ca9 SHA512 c9101bd4f925931f18b29f54c1b715cf988d638ed95c81e99b5aac5a6953c57cd019b84242f2b5cb95fc43278658ee9d872d1d57c97cd2e8e29cd6200cce56a3
DIST wxWidgets-3.2.8.1-docs-html.tar.bz2 18270920 BLAKE2B 5e6a800590454bae2b43bc66998b145c58976ea11b6849fa04de1be8ccc996c3d2778c95fb5d08a128b397f0e5f8705583b9403a4ec3bf8324d12088a4c7b8d5 SHA512 322a20e4691b3bb45a3051c85a289d8d47229e6c145d842b0cbc284a6039a338dc92b48c7b88493840f970e955855c003e1dfda5e4bb96cd2f0c9b7b74cde4a0
DIST wxWidgets-3.2.8.1.tar.bz2 27449383 BLAKE2B e948c252c17788eb01969cefae776d41007614d11abdf286e2a930871e5cc4e038ccafdad457ffcdc008658124ab0468eb471d821990df29621e974f40e7cf93 SHA512 3f6492851e6f6794498ad5005df1283aa4f85f176738a24184645bd5d991da7ae7086d5c28d185b33ba490e713899ebe8217352726c0d121062d76e4b867286e
DIST wxWidgets-3.2.8.tar.bz2 27675086 BLAKE2B 54855e401831b6e9510fe3ee6c8909e492151a6ed5c2801a3322adce971379e7aad8f00ad8c6e41f4adf31d3f2c3cb812eeb0cdaef42f87aee11fca005b36a11 SHA512 3ac5c8f689c771ea27fedcfc4c4416c936f279f8dbf87476a9d8e454d9ecd8c4ed7f9072d7c1e33273128dbfc3fea22954c466ba538bbe5868745d14e882df63

View File

@@ -1,94 +0,0 @@
See https://bugs.gentoo.org/955902 but especially https://bugs.gentoo.org/955902#c15.
This is a temporary hack to have things building again and have internal
consistency with older wxGTK in Gentoo, but we need to do more work to reconcile
this with upstream.
--- a/include/wx/private/elfversion.h
+++ b/include/wx/private/elfversion.h
@@ -58,7 +58,7 @@
// Note that this macro takes strings, not symbols, and that it includes
// the trailing semicolon for consistency with the empty version below.
#define wxELF_VERSION_COMPAT(sym, ver) \
- wxELF_SYMVER_NON_DEFAULT(sym, sym "@" wxMAKE_ELF_VERSION_TAG("3.2")) \
+ wxELF_SYMVER_NON_DEFAULT(sym, sym "@" wxMAKE_ELF_VERSION_TAG("3.0")) \
wxELF_SYMVER(sym, sym "@@" wxMAKE_ELF_VERSION_TAG(ver))
#else
#define wxELF_VERSION_COMPAT(sym, ver)
--- a/src/common/translation.cpp
+++ b/src/common/translation.cpp
@@ -1422,13 +1422,13 @@ bool wxTranslations::AddCatalog(const wxString& domain,
}
#endif // !wxUSE_UNICODE
-wxELF_VERSION_COMPAT("_ZN14wxTranslations19AddAvailableCatalogERK8wxString", "3.2.3")
+wxELF_VERSION_COMPAT("_ZN14wxTranslations19AddAvailableCatalogERK8wxString", "3.0.3")
bool wxTranslations::AddAvailableCatalog(const wxString& domain)
{
return AddAvailableCatalog(domain, wxLANGUAGE_ENGLISH_US);
}
-wxELF_VERSION_COMPAT("_ZN14wxTranslations19AddAvailableCatalogERK8wxString10wxLanguage", "3.2.6")
+wxELF_VERSION_COMPAT("_ZN14wxTranslations19AddAvailableCatalogERK8wxString10wxLanguage", "3.0.6")
bool wxTranslations::AddAvailableCatalog(const wxString& domain, wxLanguage msgIdLanguage)
{
return DoAddCatalog(domain, msgIdLanguage) == Translations_Found;
@@ -1567,7 +1567,7 @@ wxString wxTranslations::GetBestTranslation(const wxString& domain,
return lang;
}
-wxELF_VERSION_COMPAT("_ZN14wxTranslations27GetBestAvailableTranslationERK8wxString", "3.2.3")
+wxELF_VERSION_COMPAT("_ZN14wxTranslations27GetBestAvailableTranslationERK8wxString", "3.0.3")
wxString wxTranslations::GetBestAvailableTranslation(const wxString& domain)
{
// Determine the best language from the ones with actual translation file:
--- a/src/common/uilocale.cpp
+++ b/src/common/uilocale.cpp
@@ -613,7 +613,7 @@ wxString wxUILocale::GetLocalizedName(wxLocaleName name, wxLocaleForm form) cons
}
#if wxUSE_DATETIME
-wxELF_VERSION_COMPAT("_ZNK10wxUILocale12GetMonthNameEN10wxDateTime5MonthENS0_9NameFlagsE", "3.2.3")
+wxELF_VERSION_COMPAT("_ZNK10wxUILocale12GetMonthNameEN10wxDateTime5MonthENS0_9NameFlagsE", "3.0.3")
wxString wxUILocale::GetMonthName(wxDateTime::Month month, wxDateTime::NameFlags flags) const
{
if (!m_impl)
@@ -622,7 +622,7 @@ wxString wxUILocale::GetMonthName(wxDateTime::Month month, wxDateTime::NameFlags
return m_impl->GetMonthName(month, flags);
}
-wxELF_VERSION_COMPAT("_ZNK10wxUILocale14GetWeekDayNameEN10wxDateTime7WeekDayENS0_9NameFlagsE", "3.2.3")
+wxELF_VERSION_COMPAT("_ZNK10wxUILocale14GetWeekDayNameEN10wxDateTime7WeekDayENS0_9NameFlagsE", "3.0.3")
wxString wxUILocale::GetWeekDayName(wxDateTime::WeekDay weekday, wxDateTime::NameFlags flags) const
{
if (!m_impl)
@@ -680,7 +680,7 @@ wxUILocale::~wxUILocale()
/* static */
-wxELF_VERSION_COMPAT("_ZN10wxUILocale17GetSystemLocaleIdEv", "3.2.2")
+wxELF_VERSION_COMPAT("_ZN10wxUILocale17GetSystemLocaleIdEv", "3.0.2")
wxLocaleIdent wxUILocale::GetSystemLocaleId()
{
wxUILocale defaultLocale(wxUILocaleImpl::CreateUserDefault());
--- a/src/gtk/filedlg.cpp
+++ b/src/gtk/filedlg.cpp
@@ -502,7 +502,7 @@ void wxFileDialog::GTKSelectionChanged(const wxString& filename)
UpdateExtraControlUI();
}
-wxELF_VERSION_COMPAT("_ZN12wxFileDialog11AddShortcutERK8wxStringi", "3.2.1")
+wxELF_VERSION_COMPAT("_ZN12wxFileDialog11AddShortcutERK8wxStringi", "3.0.1")
bool wxFileDialog::AddShortcut(const wxString& directory, int WXUNUSED(flags))
{
wxGtkError error;
--- a/src/unix/glegl.cpp
+++ b/src/unix/glegl.cpp
@@ -635,7 +635,7 @@ wxGLCanvasEGL::~wxGLCanvasEGL()
gs_alreadySetSwapInterval.erase(this);
}
-wxELF_VERSION_COMPAT("_ZN13wxGLCanvasEGL23CreateWaylandSubsurfaceEv", "3.2.3")
+wxELF_VERSION_COMPAT("_ZN13wxGLCanvasEGL23CreateWaylandSubsurfaceEv", "3.0.3")
void wxGLCanvasEGL::CreateWaylandSubsurface()
{
#ifdef GDK_WINDOWING_WAYLAND

View File

@@ -1,39 +0,0 @@
Description: Suppress error about mismatching C++ ABI version
In practice, the differences between recent ABI versions don't seem to be
incompatible since they apparently only affect obscure corner cases. So
suppress this error so we don't have to rebuild the entire wx world in one
go.
Author: Olly Betts <olly@survex.com>
Forwarded: no
Last-Update: 2017-07-26
From: https://salsa.debian.org/freewx-team/wx/blob/wx3.0-debian/debian/patches/warn-for-compiler-abi-mismatch.patch
--- a/src/common/appbase.cpp
+++ b/src/common/appbase.cpp
@@ -762,6 +762,26 @@
msg.Printf(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."),
lib.c_str(), progName.c_str(), prog.c_str());
+ int l_off = lib.Find("compiler with C++ ABI ");
+ int p_off = prog.Find("compiler with C++ ABI ");
+ if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) {
+ int space;
+ space = lib.find(',', l_off + 22);
+ lib.erase(l_off, space - l_off);
+ space = prog.find(',', p_off + 22);
+ prog.erase(p_off, space - p_off);
+ if (lib == prog) {
+ // The only difference is the ABI version, which apparently only
+ // affect obscure cases. We used to warn here, so at least
+ // there was an indication of what's up if there is a problem
+ // due to ABI incompatibilities, but wxLogWarning() can result
+ // in a pop up dialog with some applications, which is just too
+ // intrusive, so just quietly ignore instead.
+ //wxLogWarning(msg.c_str());
+ return false;
+ }
+ }
+
wxLogFatalError(msg.c_str());
// normally wxLogFatalError doesn't return

View File

@@ -1,261 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-minimal flag-o-matic
WXSUBVERSION="${PV}-gtk3" # 3.2.6-gtk3
WXVERSION="$(ver_cut 1-3)" # 3.2.6
# Make sure that this matches the number of components in ${PV}
WXRELEASE="$(ver_cut 1-2)-gtk3" # 3.2-gtk3
WXRELEASE_NODOT=${WXRELEASE//./} # 32-gtk3
DESCRIPTION="GTK version of wxWidgets, a cross-platform C++ GUI toolkit"
HOMEPAGE="https://wxwidgets.org/"
SRC_URI="
https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2
doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )"
S="${WORKDIR}/wxWidgets-${PV}"
LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )"
SLOT="${WXRELEASE}"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
IUSE="+X curl doc debug keyring gstreamer libnotify +lzma opengl pch sdl +spell test tiff wayland webkit X"
REQUIRED_USE="test? ( tiff ) tiff? ( X ) spell? ( X ) keyring? ( X )"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-eselect/eselect-wxwidgets-20131230
dev-libs/expat[${MULTILIB_USEDEP}]
dev-libs/libpcre2[pcre16,pcre32,unicode]
sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
curl? ( net-misc/curl )
lzma? ( app-arch/xz-utils )
X? (
>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
media-libs/libpng:0=[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
x11-libs/cairo[${MULTILIB_USEDEP}]
>=x11-libs/gtk+-3.24.41-r1:3[wayland?,X?,${MULTILIB_USEDEP}]
x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
x11-libs/libSM[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXtst
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
media-libs/fontconfig
x11-libs/pango[${MULTILIB_USEDEP}]
keyring? ( app-crypt/libsecret )
gstreamer? (
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-bad:1.0[${MULTILIB_USEDEP}]
)
libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
opengl? (
virtual/opengl[${MULTILIB_USEDEP}]
wayland? ( dev-libs/wayland )
)
spell? ( app-text/gspell:= )
tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
webkit? ( net-libs/webkit-gtk:4.1= )
)"
DEPEND="${RDEPEND}
opengl? ( virtual/glu[${MULTILIB_USEDEP}] )
X? ( x11-base/xorg-proto )"
BDEPEND="
test? ( >=dev-util/cppunit-1.8.0 )
>=app-eselect/eselect-wxwidgets-20131230
virtual/pkgconfig"
# Note about the gst-plugin-base dep: The build system queries for it,
# but doesn't link it for some reason? Either way - probably best to
# depend on it anyway.
# Note about the wayland dep: Appears to be only required for the OpenGL
# canvas, and it seems impossible to disable the X dependency, unless
# I'm missing something. This is an automagic header dep, though.
PATCHES=(
"${FILESDIR}/${PN}-3.2.1-configure-tests.patch"
"${FILESDIR}/${PN}-3.2.1-wayland-control.patch"
"${FILESDIR}/${PN}-3.2.1-prefer-lib64-in-tests.patch"
"${FILESDIR}/${PN}-3.2.5-dont-break-flags.patch"
)
src_prepare() {
default
# find . -iname Makefile.in -not -path ./samples'/*' \
# | xargs grep -l WX_RELEASE
local versioned_makefiles=(
./tests/benchmarks/Makefile.in
./tests/Makefile.in
./utils/emulator/src/Makefile.in
./utils/execmon/Makefile.in
./utils/wxrc/Makefile.in
./utils/helpview/src/Makefile.in
./utils/hhp2cached/Makefile.in
./utils/screenshotgen/src/Makefile.in
./utils/ifacecheck/src/Makefile.in
./Makefile.in
./demos/life/Makefile.in
./demos/bombs/Makefile.in
./demos/fractal/Makefile.in
./demos/forty/Makefile.in
./demos/poem/Makefile.in
)
# Versionating
sed -i \
-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
-e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\
-e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\
-e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \
"${versioned_makefiles[@]}" || die
sed -i \
-e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \
-e "s:\(WX_RELEASE=\).*:\1${WXRELEASE}:" \
-e "s:\(WX_SUBVERSION=\).*:\1${WXSUBVERSION}:" \
-e '/WX_VERSION_TAG=/ s:${WX_RELEASE}:3.0:' \
configure || die
}
multilib_src_configure() {
# defang automagic dependencies, bug #927952
use wayland || append-cppflags -DGENTOO_GTK_HIDE_WAYLAND
use X || append-cppflags -DGENTOO_GTK_HIDE_X11
# bug #952961
tc-is-lto && filter-flags -fno-semantic-interposition
# Workaround for bug #915154
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
# X independent options
local myeconfargs=(
--with-zlib=sys
--with-expat=sys
--enable-compat30
--enable-xrc
$(use_with sdl)
$(use_with lzma liblzma)
# Currently defaults to curl, could change. Watch the VDB!
$(use_enable curl webrequest)
# PCHes are unstable and are disabled in-tree where possible
# See bug #504204
# Commits 8c4774042b7fdfb08e525d8af4b7912f26a2fdce, fb809aeadee57ffa24591e60cfb41aecd4823090
$(use_enable pch precomp-headers)
# Don't hard-code libdir's prefix for wx-config
--libdir='${prefix}'/$(get_libdir)
)
# By default, we now build with the GLX GLCanvas because some software like
# PrusaSlicer does not yet support EGL:
#
# https://github.com/prusa3d/PrusaSlicer/issues/9774 .
#
# A solution for this is being developed upstream:
#
# https://github.com/wxWidgets/wxWidgets/issues/22325 .
#
# Any software that needs to use OpenGL under Wayland can be patched like
# this to run under xwayland:
#
# https://github.com/visualboyadvance-m/visualboyadvance-m/commit/aca206a721265366728222d025fec30ee500de82 .
#
# Check that the macro wxUSE_GLCANVAS_EGL is set to 1.
#
myeconfargs+=( "--disable-glcanvasegl" )
# debug in >=2.9
# there is no longer separate debug libraries (gtk2ud)
# wxDEBUG_LEVEL=1 is the default and we will leave it enabled
# wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs.
# apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0.
# http://docs.wxwidgets.org/3.0/overview_debugging.html
# https://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c
use debug && myeconfargs+=( --enable-debug=max )
# wxGTK options
# --enable-graphics_ctx - needed for webkit, editra
# --without-gnomevfs - bug #203389
use X && myeconfargs+=(
--enable-graphics_ctx
--with-gtkprint
--enable-gui
--with-gtk=3
--with-libpng=sys
--with-libjpeg=sys
# Choosing to enable this unconditionally seems fair, pcre2 is
# almost certain to be installed.
--with-regex=sys
--without-gnomevfs
$(use_enable gstreamer mediactrl)
$(multilib_native_use_enable webkit webview)
$(use_with libnotify)
$(use_with opengl)
$(use_with tiff libtiff sys)
$(use_enable keyring secretstore)
$(use_enable spell spellcheck)
$(use_enable test tests)
$(use_enable wayland)
)
# wxBase options
! use X && myeconfargs+=( --disable-gui )
# wxWidgets installs a configuration file with a reference to EGREP.
# Autoconf discovers these programs via full paths, which is
# unnecessary and fails if a build happened on a merged-usr system
# but is being used on a split-usr system. Bug #927920.
export ac_cv_path_SED="sed"
export ac_cv_path_EGREP="grep -E"
export ac_cv_path_EGREP_TRADITIONAL="grep -E"
export ac_cv_path_FGREP="grep -F"
export ac_cv_path_GREP="grep"
export ac_cv_path_lt_DD="dd"
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_test() {
emake -C tests
(cd tests && ./test '~[.]~[net]') || die
}
multilib_src_install_all() {
cd docs || die
dodoc changes.txt readme.txt
newdoc base/readme.txt base_readme.txt
newdoc gtk/readme.txt gtk_readme.txt
use doc && HTML_DOCS=( "${WORKDIR}"/wxWidgets-${PV}-docs-html/. )
einstalldocs
# Unversioned links
rm "${ED}"/usr/bin/wx-config || die
rm "${ED}"/usr/bin/wxrc || die
# version bakefile presets
pushd "${ED}"/usr/share/bakefile/presets >/dev/null || die
local f
for f in wx*; do
mv "${f}" "${f/wx/wx32gtk3}" || die
done
popd >/dev/null || die
}
pkg_postinst() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}
pkg_postrm() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}

View File

@@ -1,261 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-minimal flag-o-matic
WXSUBVERSION="${PV}-gtk3" # 3.2.6-gtk3
WXVERSION="$(ver_cut 1-3)" # 3.2.6
# Make sure that this matches the number of components in ${PV}
WXRELEASE="$(ver_cut 1-2)-gtk3" # 3.2-gtk3
WXRELEASE_NODOT=${WXRELEASE//./} # 32-gtk3
DESCRIPTION="GTK version of wxWidgets, a cross-platform C++ GUI toolkit"
HOMEPAGE="https://wxwidgets.org/"
SRC_URI="
https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2
doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )"
S="${WORKDIR}/wxWidgets-${PV}"
LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )"
SLOT="${WXRELEASE}"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="+X curl doc debug keyring gstreamer libnotify +lzma opengl pch sdl +spell test tiff wayland webkit X"
REQUIRED_USE="test? ( tiff ) tiff? ( X ) spell? ( X ) keyring? ( X )"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-eselect/eselect-wxwidgets-20131230
dev-libs/expat[${MULTILIB_USEDEP}]
dev-libs/libpcre2[pcre16,pcre32,unicode]
sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
curl? ( net-misc/curl )
lzma? ( app-arch/xz-utils )
X? (
>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
media-libs/libpng:0=[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
x11-libs/cairo[${MULTILIB_USEDEP}]
>=x11-libs/gtk+-3.24.41-r1:3[wayland?,X?,${MULTILIB_USEDEP}]
x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
x11-libs/libSM[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXtst
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
media-libs/fontconfig
x11-libs/pango[${MULTILIB_USEDEP}]
keyring? ( app-crypt/libsecret )
gstreamer? (
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-bad:1.0[${MULTILIB_USEDEP}]
)
libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
opengl? (
virtual/opengl[${MULTILIB_USEDEP}]
wayland? ( dev-libs/wayland )
)
spell? ( app-text/gspell:= )
tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
webkit? ( net-libs/webkit-gtk:4.1= )
)"
DEPEND="${RDEPEND}
opengl? ( virtual/glu[${MULTILIB_USEDEP}] )
X? ( x11-base/xorg-proto )"
BDEPEND="
test? ( >=dev-util/cppunit-1.8.0 )
>=app-eselect/eselect-wxwidgets-20131230
virtual/pkgconfig"
# Note about the gst-plugin-base dep: The build system queries for it,
# but doesn't link it for some reason? Either way - probably best to
# depend on it anyway.
# Note about the wayland dep: Appears to be only required for the OpenGL
# canvas, and it seems impossible to disable the X dependency, unless
# I'm missing something. This is an automagic header dep, though.
PATCHES=(
"${FILESDIR}/${PN}-3.2.1-configure-tests.patch"
"${FILESDIR}/${PN}-3.2.1-wayland-control.patch"
"${FILESDIR}/${PN}-3.2.1-prefer-lib64-in-tests.patch"
"${FILESDIR}/${PN}-3.2.5-dont-break-flags.patch"
)
src_prepare() {
default
# find . -iname Makefile.in -not -path ./samples'/*' \
# | xargs grep -l WX_RELEASE
local versioned_makefiles=(
./tests/benchmarks/Makefile.in
./tests/Makefile.in
./utils/emulator/src/Makefile.in
./utils/execmon/Makefile.in
./utils/wxrc/Makefile.in
./utils/helpview/src/Makefile.in
./utils/hhp2cached/Makefile.in
./utils/screenshotgen/src/Makefile.in
./utils/ifacecheck/src/Makefile.in
./Makefile.in
./demos/life/Makefile.in
./demos/bombs/Makefile.in
./demos/fractal/Makefile.in
./demos/forty/Makefile.in
./demos/poem/Makefile.in
)
# Versionating
sed -i \
-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
-e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\
-e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\
-e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \
"${versioned_makefiles[@]}" || die
sed -i \
-e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \
-e "s:\(WX_RELEASE=\).*:\1${WXRELEASE}:" \
-e "s:\(WX_SUBVERSION=\).*:\1${WXSUBVERSION}:" \
-e '/WX_VERSION_TAG=/ s:${WX_RELEASE}:3.0:' \
configure || die
}
multilib_src_configure() {
# defang automagic dependencies, bug #927952
use wayland || append-cppflags -DGENTOO_GTK_HIDE_WAYLAND
use X || append-cppflags -DGENTOO_GTK_HIDE_X11
# bug #952961
tc-is-lto && filter-flags -fno-semantic-interposition
# Workaround for bug #915154
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
# X independent options
local myeconfargs=(
--with-zlib=sys
--with-expat=sys
--enable-compat30
--enable-xrc
$(use_with sdl)
$(use_with lzma liblzma)
# Currently defaults to curl, could change. Watch the VDB!
$(use_enable curl webrequest)
# PCHes are unstable and are disabled in-tree where possible
# See bug #504204
# Commits 8c4774042b7fdfb08e525d8af4b7912f26a2fdce, fb809aeadee57ffa24591e60cfb41aecd4823090
$(use_enable pch precomp-headers)
# Don't hard-code libdir's prefix for wx-config
--libdir='${prefix}'/$(get_libdir)
)
# By default, we now build with the GLX GLCanvas because some software like
# PrusaSlicer does not yet support EGL:
#
# https://github.com/prusa3d/PrusaSlicer/issues/9774 .
#
# A solution for this is being developed upstream:
#
# https://github.com/wxWidgets/wxWidgets/issues/22325 .
#
# Any software that needs to use OpenGL under Wayland can be patched like
# this to run under xwayland:
#
# https://github.com/visualboyadvance-m/visualboyadvance-m/commit/aca206a721265366728222d025fec30ee500de82 .
#
# Check that the macro wxUSE_GLCANVAS_EGL is set to 1.
#
myeconfargs+=( "--disable-glcanvasegl" )
# debug in >=2.9
# there is no longer separate debug libraries (gtk2ud)
# wxDEBUG_LEVEL=1 is the default and we will leave it enabled
# wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs.
# apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0.
# http://docs.wxwidgets.org/3.0/overview_debugging.html
# https://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c
use debug && myeconfargs+=( --enable-debug=max )
# wxGTK options
# --enable-graphics_ctx - needed for webkit, editra
# --without-gnomevfs - bug #203389
use X && myeconfargs+=(
--enable-graphics_ctx
--with-gtkprint
--enable-gui
--with-gtk=3
--with-libpng=sys
--with-libjpeg=sys
# Choosing to enable this unconditionally seems fair, pcre2 is
# almost certain to be installed.
--with-regex=sys
--without-gnomevfs
$(use_enable gstreamer mediactrl)
$(multilib_native_use_enable webkit webview)
$(use_with libnotify)
$(use_with opengl)
$(use_with tiff libtiff sys)
$(use_enable keyring secretstore)
$(use_enable spell spellcheck)
$(use_enable test tests)
$(use_enable wayland)
)
# wxBase options
! use X && myeconfargs+=( --disable-gui )
# wxWidgets installs a configuration file with a reference to EGREP.
# Autoconf discovers these programs via full paths, which is
# unnecessary and fails if a build happened on a merged-usr system
# but is being used on a split-usr system. Bug #927920.
export ac_cv_path_SED="sed"
export ac_cv_path_EGREP="grep -E"
export ac_cv_path_EGREP_TRADITIONAL="grep -E"
export ac_cv_path_FGREP="grep -F"
export ac_cv_path_GREP="grep"
export ac_cv_path_lt_DD="dd"
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_test() {
emake -C tests
(cd tests && ./test '~[.]~[net]') || die
}
multilib_src_install_all() {
cd docs || die
dodoc changes.txt readme.txt
newdoc base/readme.txt base_readme.txt
newdoc gtk/readme.txt gtk_readme.txt
use doc && HTML_DOCS=( "${WORKDIR}"/wxWidgets-${PV}-docs-html/. )
einstalldocs
# Unversioned links
rm "${ED}"/usr/bin/wx-config || die
rm "${ED}"/usr/bin/wxrc || die
# version bakefile presets
pushd "${ED}"/usr/share/bakefile/presets >/dev/null || die
local f
for f in wx*; do
mv "${f}" "${f/wx/wx32gtk3}" || die
done
popd >/dev/null || die
}
pkg_postinst() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}
pkg_postrm() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}

View File

@@ -1,265 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-minimal flag-o-matic toolchain-funcs
WXSUBVERSION="${PV}-gtk3" # 3.2.6-gtk3
WXVERSION="$(ver_cut 1-3)" # 3.2.6
# Make sure that this matches the number of components in ${PV}
WXRELEASE="$(ver_cut 1-2)-gtk3" # 3.2-gtk3
WXRELEASE_NODOT=${WXRELEASE//./} # 32-gtk3
DESCRIPTION="GTK version of wxWidgets, a cross-platform C++ GUI toolkit"
HOMEPAGE="https://wxwidgets.org/"
SRC_URI="
https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2
doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )"
S="${WORKDIR}/wxWidgets-${PV}"
LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )"
SLOT="${WXRELEASE}"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
IUSE="+X curl doc debug keyring gstreamer libnotify +lzma opengl pch sdl +spell test tiff wayland webkit X"
REQUIRED_USE="test? ( tiff ) tiff? ( X ) spell? ( X ) keyring? ( X )"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-eselect/eselect-wxwidgets-20131230
dev-libs/expat[${MULTILIB_USEDEP}]
dev-libs/libpcre2[pcre16,pcre32,unicode]
sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
curl? ( net-misc/curl )
lzma? ( app-arch/xz-utils )
X? (
>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
media-libs/libpng:0=[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
x11-libs/cairo[${MULTILIB_USEDEP}]
>=x11-libs/gtk+-3.24.41-r1:3[wayland?,X?,${MULTILIB_USEDEP}]
x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
x11-libs/libSM[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXtst
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
media-libs/fontconfig
x11-libs/pango[${MULTILIB_USEDEP}]
keyring? ( app-crypt/libsecret )
gstreamer? (
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-bad:1.0[${MULTILIB_USEDEP}]
)
libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
opengl? (
virtual/opengl[${MULTILIB_USEDEP}]
wayland? ( dev-libs/wayland )
)
spell? ( app-text/gspell:= )
tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
webkit? ( net-libs/webkit-gtk:4.1= )
)"
DEPEND="${RDEPEND}
opengl? ( virtual/glu[${MULTILIB_USEDEP}] )
X? ( x11-base/xorg-proto )"
BDEPEND="
test? ( >=dev-util/cppunit-1.8.0 )
>=app-eselect/eselect-wxwidgets-20131230
virtual/pkgconfig"
# Note about the gst-plugin-base dep: The build system queries for it,
# but doesn't link it for some reason? Either way - probably best to
# depend on it anyway.
# Note about the wayland dep: Appears to be only required for the OpenGL
# canvas, and it seems impossible to disable the X dependency, unless
# I'm missing something. This is an automagic header dep, though.
PATCHES=(
"${FILESDIR}/${PN}-3.2.1-configure-tests.patch"
"${FILESDIR}/${PN}-3.2.1-wayland-control.patch"
"${FILESDIR}/${PN}-3.2.1-prefer-lib64-in-tests.patch"
"${FILESDIR}/${PN}-3.2.5-dont-break-flags.patch"
# Please DO NOT rebase this without handling the underlying problem
# in bug #955902 properly first.
"${FILESDIR}/${PN}-3.2.8-bodge-version-script.patch"
)
src_prepare() {
default
# Versionating
#
# find . -iname Makefile.in -not -path ./samples'/*' \
# | xargs grep -l WX_RELEASE
local versioned_makefiles=(
./Makefile.in
./utils/wxrc/Makefile.in
./utils/helpview/src/Makefile.in
./utils/execmon/Makefile.in
./utils/hhp2cached/Makefile.in
./utils/emulator/src/Makefile.in
./utils/screenshotgen/src/Makefile.in
./utils/ifacecheck/src/Makefile.in
./demos/poem/Makefile.in
./demos/life/Makefile.in
./demos/bombs/Makefile.in
./demos/fractal/Makefile.in
./demos/forty/Makefile.in
./tests/benchmarks/Makefile.in
./tests/Makefile.in
)
sed -i \
-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
-e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\
-e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\
-e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \
"${versioned_makefiles[@]}" || die
# XXX: The WX_VERSION_TAG especially here is *radioactive*
# and must be removed in a new revision after 3.2.8. See bug #955902.
sed -i \
-e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \
-e "s:\(WX_RELEASE=\).*:\1${WXRELEASE}:" \
-e "s:\(WX_SUBVERSION=\).*:\1${WXSUBVERSION}:" \
-e '/WX_VERSION_TAG=/ s:${WX_RELEASE}:3.0:' \
configure || die
}
multilib_src_configure() {
# defang automagic dependencies, bug #927952
use wayland || append-cppflags -DGENTOO_GTK_HIDE_WAYLAND
use X || append-cppflags -DGENTOO_GTK_HIDE_X11
# bug #952961
tc-is-lto && filter-flags -fno-semantic-interposition
# Workaround for bug #915154
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
# X independent options
local myeconfargs=(
--with-zlib=sys
--with-expat=sys
--enable-compat30
--enable-xrc
$(use_with sdl)
$(use_with lzma liblzma)
# Currently defaults to curl, could change. Watch the VDB!
$(use_enable curl webrequest)
# PCHes are unstable and are disabled in-tree where possible
# See bug #504204
# Commits 8c4774042b7fdfb08e525d8af4b7912f26a2fdce, fb809aeadee57ffa24591e60cfb41aecd4823090
$(use_enable pch precomp-headers)
# Don't hard-code libdir's prefix for wx-config
--libdir='${prefix}'/$(get_libdir)
)
# By default, we now build with the GLX GLCanvas because some software like
# PrusaSlicer does not yet support EGL:
#
# https://github.com/prusa3d/PrusaSlicer/issues/9774 .
#
# A solution for this is being developed upstream:
#
# https://github.com/wxWidgets/wxWidgets/issues/22325 .
#
# Any software that needs to use OpenGL under Wayland can be patched like
# this to run under xwayland:
#
# https://github.com/visualboyadvance-m/visualboyadvance-m/commit/aca206a721265366728222d025fec30ee500de82 .
#
# Check that the macro wxUSE_GLCANVAS_EGL is set to 1.
#
myeconfargs+=( "--disable-glcanvasegl" )
# debug in >=2.9
# there is no longer separate debug libraries (gtk2ud)
# wxDEBUG_LEVEL=1 is the default and we will leave it enabled
# wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs.
# apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0.
# http://docs.wxwidgets.org/3.0/overview_debugging.html
# https://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c
use debug && myeconfargs+=( --enable-debug=max )
# wxGTK options
# --enable-graphics_ctx - needed for webkit, editra
# --without-gnomevfs - bug #203389
use X && myeconfargs+=(
--enable-graphics_ctx
--with-gtkprint
--enable-gui
--with-gtk=3
--with-libpng=sys
--with-libjpeg=sys
# Choosing to enable this unconditionally seems fair, pcre2 is
# almost certain to be installed.
--with-regex=sys
--without-gnomevfs
$(use_enable gstreamer mediactrl)
$(multilib_native_use_enable webkit webview)
$(use_with libnotify)
$(use_with opengl)
$(use_with tiff libtiff sys)
$(use_enable keyring secretstore)
$(use_enable spell spellcheck)
$(use_enable test tests)
$(use_enable wayland)
)
# wxBase options
! use X && myeconfargs+=( --disable-gui )
# wxWidgets installs a configuration file with a reference to EGREP.
# Autoconf discovers these programs via full paths, which is
# unnecessary and fails if a build happened on a merged-usr system
# but is being used on a split-usr system. Bug #927920.
export ac_cv_path_SED="sed"
export ac_cv_path_EGREP="grep -E"
export ac_cv_path_EGREP_TRADITIONAL="grep -E"
export ac_cv_path_FGREP="grep -F"
export ac_cv_path_GREP="grep"
export ac_cv_path_lt_DD="dd"
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_test() {
emake -C tests
(cd tests && ./test '~[.]~[net]') || die
}
multilib_src_install_all() {
cd docs || die
dodoc changes.txt readme.txt
newdoc base/readme.txt base_readme.txt
newdoc gtk/readme.txt gtk_readme.txt
use doc && HTML_DOCS=( "${WORKDIR}"/wxWidgets-${PV}-docs-html/. )
einstalldocs
# Unversioned links
rm "${ED}"/usr/bin/wx-config || die
rm "${ED}"/usr/bin/wxrc || die
# version bakefile presets
pushd "${ED}"/usr/share/bakefile/presets >/dev/null || die
local f
for f in wx*; do
mv "${f}" "${f/wx/wx32gtk3}" || die
done
popd >/dev/null || die
}
pkg_postinst() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}
pkg_postrm() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}