Diff wxGTK-3.0.5.1-r1 with a wxGTK-3.2.1

/usr/portage/x11-libs/wxGTK/wxGTK-3.2.1.ebuild 2023-10-09 14:52:35.928368512 +0300
1 1
# Copyright 1999-2023 Gentoo Authors
2 2
# Distributed under the terms of the GNU General Public License v2
3 3

  
4
EAPI=7
4
EAPI=8
5 5

  
6 6
inherit multilib-minimal
7 7

  
8
WXSUBVERSION=${PV}-gtk3				# 3.0.5.1-gtk3
9
WXVERSION=${WXSUBVERSION%.*}			# 3.0.5
10
WXRELEASE=${WXVERSION%.*}-gtk3			# 3.0-gtk3
11
WXRELEASE_NODOT=${WXRELEASE//./}		# 30-gtk3
8
WXSUBVERSION=${PV}-gtk3				# 3.2.1-gtk3
9
WXVERSION=${PV}							# 3.2.1
10
WXRELEASE=${WXVERSION%.*}-gtk3			# 3.2-gtk3
11
WXRELEASE_NODOT=${WXRELEASE//./}		# 32-gtk3
12 12

  
13
DESCRIPTION="GTK+ version of wxWidgets, a cross-platform C++ GUI toolkit"
13
DESCRIPTION="GTK version of wxWidgets, a cross-platform C++ GUI toolkit"
14 14
HOMEPAGE="https://wxwidgets.org/"
15 15
SRC_URI="
16 16
	https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2
17
	https://dev.gentoo.org/~leio/distfiles/wxGTK-3.0.5_p20210214.tar.xz
18
	doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVERSION}/wxWidgets-${WXVERSION}-docs-html.tar.bz2 )"
17
	doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )"
19 18
S="${WORKDIR}/wxWidgets-${PV}"
20 19

  
21 20
LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )"
22 21
SLOT="${WXRELEASE}"
23
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
24
IUSE="+X doc debug gstreamer libnotify opengl pch sdl test tiff webkit"
25
REQUIRED_USE="test? ( tiff ) tiff? ( X )"
22
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
23
IUSE="+X curl doc debug keyring gstreamer libnotify +lzma opengl pch sdl +spell test tiff wayland webkit"
24
REQUIRED_USE="test? ( tiff ) tiff? ( X ) spell? ( X ) keyring? ( X )"
26 25
RESTRICT="!test? ( test )"
27 26

  
28 27
RDEPEND="
29 28
	>=app-eselect/eselect-wxwidgets-20131230
30 29
	dev-libs/expat[${MULTILIB_USEDEP}]
30
	dev-libs/libpcre2[pcre16,pcre32,unicode]
31 31
	sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
32
	curl? ( net-misc/curl )
33
	lzma? ( app-arch/xz-utils )
32 34
	X? (
33 35
		>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
34 36
		media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
35 37
		media-libs/libpng:0=[${MULTILIB_USEDEP}]
36 38
		sys-libs/zlib[${MULTILIB_USEDEP}]
37 39
		x11-libs/cairo[${MULTILIB_USEDEP}]
38
		x11-libs/gtk+:3[${MULTILIB_USEDEP}]
39
		x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
40
		x11-libs/gtk+:3[wayland?,${MULTILIB_USEDEP}]
41
		x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
40 42
		x11-libs/libSM[${MULTILIB_USEDEP}]
41 43
		x11-libs/libX11[${MULTILIB_USEDEP}]
44
		x11-libs/libXtst
42 45
		x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
46
		media-libs/fontconfig
43 47
		x11-libs/pango[${MULTILIB_USEDEP}]
48
		keyring? ( app-crypt/libsecret )
44 49
		gstreamer? (
45 50
			media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
46 51
			media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
52
			media-libs/gst-plugins-bad:1.0[${MULTILIB_USEDEP}]
47 53
		)
48 54
		libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
49
		opengl? ( virtual/opengl[${MULTILIB_USEDEP}] )
55
		opengl? (
56
			virtual/opengl[${MULTILIB_USEDEP}]
57
			wayland? ( dev-libs/wayland )
58
		)
59
		spell? ( app-text/gspell:= )
50 60
		tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
51
		webkit? ( net-libs/webkit-gtk:4 )
61
		webkit? ( net-libs/webkit-gtk:4= )
52 62
	)"
53 63
DEPEND="${RDEPEND}
54 64
	opengl? ( virtual/glu[${MULTILIB_USEDEP}] )
......
58 68
	>=app-eselect/eselect-wxwidgets-20131230
59 69
	virtual/pkgconfig"
60 70

  
71
# Note about the gst-plugin-base dep: The build system queries for it,
72
# but doesn't link it for some reason?  Either way - probably best to
73
# depend on it anyway.
74
# Note about the wayland dep: Appears to be only required for the OpenGL
75
# canvas, and it seems impossible to disable the X dependency, unless
76
# I'm missing something.  This is an automagic header dep, though.
77

  
61 78
PATCHES=(
62
	"${WORKDIR}"/wxGTK-3.0.5_p20210214/
63
	"${FILESDIR}"/wxGTK-${SLOT}-translation-domain.patch
64
	"${FILESDIR}"/wxGTK-ignore-c++-abi.patch #676878
65
	"${FILESDIR}"/${PN}-configure-tests.patch
66
	"${FILESDIR}"/${PN}-3.0.5.1-configure-modern-c.patch
79
	#"${WORKDIR}"/wxGTK-3.0.5_p20210214/
80
	"${FILESDIR}"/${P}-gtk3-translation-domain.patch
81
	#"${FILESDIR}"/wxGTK-ignore-c++-abi.patch #676878
82
	"${FILESDIR}/${P}-configure-tests.patch"
83
	"${FILESDIR}/${P}"-wayland-control.patch
84
	"${FILESDIR}/${P}"-prefer-lib64-in-tests.patch
67 85
)
68 86

  
69 87
src_prepare() {
70 88
	default
71 89

  
90
	# find . -iname Makefile.in -not -path ./samples'/*' \
91
	#        | xargs grep -l WX_RELEASE
92
	local versioned_makefiles=(
93
		./tests/benchmarks/Makefile.in
94
		./tests/Makefile.in
95
		./utils/emulator/src/Makefile.in
96
		./utils/execmon/Makefile.in
97
		./utils/wxrc/Makefile.in
98
		./utils/helpview/src/Makefile.in
99
		./utils/hhp2cached/Makefile.in
100
		./utils/screenshotgen/src/Makefile.in
101
		./utils/ifacecheck/src/Makefile.in
102
		./Makefile.in
103
		./demos/life/Makefile.in
104
		./demos/bombs/Makefile.in
105
		./demos/fractal/Makefile.in
106
		./demos/forty/Makefile.in
107
		./demos/poem/Makefile.in
108
	)
109

  
72 110
	# Versionating
73 111
	sed -i \
74 112
		-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
75 113
		-e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\
76 114
		-e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\
77 115
		-e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \
78
		-e "s:wxstd.mo:wxstd${WXRELEASE_NODOT}.mo:" \
79
		-e "s:wxmsw.mo:wxmsw${WXRELEASE_NODOT}.mo:" \
80
		Makefile.in tests/Makefile.in || die
81

  
82
	sed -i \
83
		-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
84
		utils/wxrc/Makefile.in || die
116
		"${versioned_makefiles[@]}" || die
85 117

  
86 118
	sed -i \
87 119
		-e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \
......
96 128
	local myeconfargs=(
97 129
		--with-zlib=sys
98 130
		--with-expat=sys
99
		--enable-compat28
131
		--enable-compat30
100 132
		$(use_with sdl)
133
		$(use_with lzma liblzma)
134
		# Currently defaults to curl, could change.  Watch the VDB!
135
		$(use_enable curl webrequest)
101 136

  
102 137
		# PCHes are unstable and are disabled in-tree where possible
103 138
		# See bug #504204
......
127 162
		--with-gtk=3
128 163
		--with-libpng=sys
129 164
		--with-libjpeg=sys
165

  
166
		# Choosing to enable this unconditionally seems fair, pcre2 is
167
		# almost certain to be installed.
168
		--with-regex=sys
130 169
		--without-gnomevfs
131 170
		$(use_enable gstreamer mediactrl)
132 171
		$(multilib_native_use_enable webkit webview)
133 172
		$(use_with libnotify)
134 173
		$(use_with opengl)
135 174
		$(use_with tiff libtiff sys)
175
		$(use_enable keyring secretstore)
176
		$(use_enable spell spellcheck)
136 177
		$(use_enable test tests)
178
		$(use_enable wayland)
137 179
	)
138 180

  
139 181
	# wxBase options
......
144 186

  
145 187
multilib_src_test() {
146 188
	emake -C tests
147
	(cd tests && ./test) || die
189
	(cd tests && ./test '~[.]~[net]') || die
148 190
}
149 191

  
150 192
multilib_src_install_all() {
......
156 198
	use doc && HTML_DOCS=( "${WORKDIR}"/wxWidgets-${WXVERSION}-docs-html/. )
157 199
	einstalldocs
158 200

  
159
	# Stray windows locale file, bug #650118
160
	rm -f "${ED}"/usr/share/locale/it/LC_MESSAGES/wxmsw30-gtk3.mo || die
161

  
162 201
	# Unversioned links
163 202
	rm "${ED}"/usr/bin/wx-config || die
164 203
	use X && { rm "${ED}"/usr/bin/wxrc || die; }
......
167 206
	pushd "${ED}"/usr/share/bakefile/presets >/dev/null || die
168 207
	local f
169 208
	for f in wx*; do
170
		mv "${f}" "${f/wx/wx30gtk3}" || die
209
		mv "${f}" "${f/wx/wx32gtk3}" || die
171 210
	done
172 211
	popd >/dev/null || die
173 212
}
Thank you!