[ITA] wxWidgets3.0

Hamish McIntyre-Bhatty hamishmb@live.co.uk
Thu Nov 12 18:00:57 GMT 2020


On 11/11/2020 17:36, Hamish McIntyre-Bhatty via Cygwin-apps wrote:
> Ignore my previous message - whatever was wrong is now fixed. I didn't
> change anything much so I think it was a dependency that had an issue
> and was since recompiled.
>
> 64-bit build is done and seems to work fine. I'm testing it using the
> samples, nearly all of which work, and new things that weren't in the
> previous wxwidgets build now work (eg webview with webkit).
>
> I need to finish my testing and then build for 32-bit Cygwin, but all
> seems good.
>
> When it's all done I'll email again with my cygport file attached and a
> link to the file locations.
>
> Hamish

Okay, I have successfully manually tested wxWidgets3.0 on both 32-bit
and 64-bit Cygwin, and I haven't found any significant issues. It also
seems to work with my existing wxPython build but I'm going to recompile
that anyway just to be sure and to get the new version number for
wxWidgets in the build.

The test packages are available for download at
https://www.hamishmb.com/files/cygwin-temp/ as usual, and my cygport
file is attached here.

Here's a quick summary of the changes I've made:

- Updated to wxWidgets 3.0.5.1 from 3.0.4.

- Added build dependencies.

- Evaluated lots of new patches (over 80), and found that nearly none of
them were needed (already patched in new source), so we only have a few
new patches.

- Updated the wxGTK collision patch for wxwidgets 3.0.5.1 as the old one
wouldn't apply.

- Use pushd and popd instead of cd in the cygport file.

- Enable automated unit tests in the cygport file (these currently do
work so I tested manually).

- Enable and test wxwebview with webkit (works fine in all configurations).

I'd like to use the AppVeyor CI tool to double check the build and build
dependencies, but the very high RAM usage during compilation (12GB!)
makes me think it might crash that system. Is it safe for me to proceed?
I really don't want to ruin someone's day by crashing the CI system(s).
I think I need a GTG before  can do this because I don't currently own
the package, but I'm not sure.

Finally, I'm going to keep these as test packages until I've got
wxPython build and tested against them, which will be maybe another week
or so depending on other priorities.

Any feedback is very welcome :)

Hamish

-------------- next part --------------
NAME="wxWidgets3.0"
VERSION=3.0.5.1
RELEASE=1
CATEGORY="Libs"
SUMMARY="wxWidgets C++ application framework"
DESCRIPTION="wxWidgets is a set of libraries that allows C++ applications to
compile and run on several different types of computer, with minimal source
code changes. There is one library per supported GUI. As well as providing a
common API for GUI functionality, it provides functionality for accessing some
commonly-used operating system facilities, from copying and deleting files to
socket and thread support."
HOMEPAGE="http://wxwidgets.org/"
SRC_URI="https://github.com/wxWidgets/wxWidgets/releases/download/v${VERSION}/wxWidgets-${VERSION}.tar.bz2"
SRC_DIR="wxWidgets-${VERSION}"
BUILD_REQUIRES="make xclock cppunit autoconf pkg-config gcc-core gcc-g++ doxygen graphviz libX11-devel libgtk2.0-devel libgtk3-devel libwebkitgtk1.0-devel libwebkitgtk1.0_0 libwebkitgtk3.0-devel libwebkitgtk3.0_0 libpng16 libpng-devel libjpeg-devel libjpeg8 libexpat1 libexpat-devel libiconv-devel libiconv libiconv2 libmspack0 libmspack-devel libnotify libnotify-devel libtiff6 libtiff-devel libXpm4 libXpm-devel libcogl20 libcogl-devel libEGL1 libEGL-devel libGL1 libGL-devel libGLU1 libGLU-devel libSDL2_2.0_0 libSDL2-devel libSDL2_image2.0_0 libSDL2_image-devel libSDL2_mixer2.0_0 libSDL2_mixer-devel libSDL2_net2.0_0 libSDL2_net-devel libSDL2_ttf2.0_0 libSDL2_ttf-devel zlib zlib-devel"
PATCH_URI="
	https://src.fedoraproject.org/rpms/wxGTK3/raw/master/f/wxGTK3-3.0.3-abicheck.patch
	https://src.fedoraproject.org/rpms/wxGTK3/raw/master/f/fix-filename-test.patch
	https://src.fedoraproject.org/rpms/wxGTK3/raw/master/f/fix-vararg-test.patch
	https://src.fedoraproject.org/rpms/wxGTK3/raw/master/f/force-x11-for-wxgl.patch
	wxGTK3-3.0.5.1-collision.patch
	3.0.2-cygwin-auto-import.patch
	3.0.2-cygwin-dlopen.patch
	3.0.2-cygwin-unix.patch
	3.0.2-cygwin-gcc5.patch
	3.0.3-autoreconf.patch
	3.0.3-cygwin-ftm.patch
	0007-Fix-video-sink-fallback-in-wxMediaCtrl-when-xvimages.patch
"

slot=${PV_MAJ_MIN}

PKG_NAMES="libwx_baseu3.0_0 libwx_baseu3.0-devel ${NAME}-doc
           libwx_gtk2u3.0_0 libwx_gtk2u3.0-devel
           libwx_gtk3u3.0_0 libwx_gtk3u3.0-devel"
libwx_baseu3_0_0_SUMMARY="${SUMMARY} (base unicode runtime)"
libwx_baseu3_0_0_CONTENTS="
	--exclude=html
	usr/bin/cygwx_baseu*-3.0-0.dll
	usr/share/doc/${NAME}/
	usr/share/locale/*/LC_MESSAGES/wxstd30.mo
"
libwx_baseu3_0_devel_REQUIRES="libexpat-devel libiconv-devel zlib-devel"
libwx_baseu3_0_devel_CONTENTS="
	usr/bin/wxrc-3.0.exe
	usr/include/wx-3.0/
	usr/lib/libwx_baseu*-3.0.dll.a
	usr/lib/wx/config/base-unicode-3.0
	usr/lib/wx/include/base-unicode-3.0/
	usr/share/aclocal/wxwin-3.0.m4
	usr/share/bakefile/presets/wx30*
"
libwx_gtk2u3_0_0_SUMMARY="${SUMMARY} (GTK+2 unicode runtime)"
libwx_gtk2u3_0_0_CONTENTS="usr/bin/cygwx_gtk2u*-3.0-0.dll"
libwx_gtk2u3_0_devel_SUMMARY="${SUMMARY} (development)"
libwx_gtk2u3_0_devel_REQUIRES="libGL-devel libglib2.0-devel libgtk2.0-devel libX11-devel"
libwx_gtk2u3_0_devel_CONTENTS="
	usr/lib/libwx_gtk2u*-3.0.dll.a
	usr/lib/wx/config/gtk2-unicode-3.0
	usr/lib/wx/include/gtk2-unicode-3.0/
"
libwx_gtk3u3_0_0_SUMMARY="${SUMMARY} (GTK+3 unicode runtime)"
libwx_gtk3u3_0_0_CONTENTS="usr/bin/cygwx_gtk3u*-3.0-0.dll"
libwx_gtk3u3_0_devel_SUMMARY="${SUMMARY} (development)"
libwx_gtk3u3_0_devel_REQUIRES="libGL-devel libglib2.0-devel libgtk2.0-devel libX11-devel"
libwx_gtk3u3_0_devel_CONTENTS="
	usr/bin/wx-config-3.0
	usr/lib/libwx_gtk3u*-3.0.dll.a
	usr/lib/wx/config/gtk3-unicode-3.0
	usr/lib/wx/include/gtk3-unicode-3.0/
"
wxWidgets3_0_doc_CATEGORY="Doc"
wxWidgets3_0_doc_SUMMARY="${SUMMARY} (documentation)"
wxWidgets3_0_doc_OBSOLETES="libwx_gtk2u3.0-doc"
wxWidgets3_0_doc_CONTENTS="usr/share/doc/${NAME}/html/"

DIFF_EXCLUDES="doxygen.log out"

CFLAGS+=" -fno-strict-aliasing"
CXXFLAGS+=" -fno-strict-aliasing"

MAKEOPTS="-j13"

src_compile() {
	local myconf
	
	pushd ${S}
	NO_ACLOCAL=1 NO_LIBTOOLIZE=1 NO_AUTOHEADER=1 NO_AUTOMAKE=1 \
	cygautoreconf

	pushd ${S}/locale
	rm -f *.mo
	cygmake allmo -j1
	popd
	
	mkdir -p ${B}/base
	pushd ${B}/base

	# standalone wx_base
	cygconf \
		--enable-compat26 \
		--enable-optimise \
		--enable-shared \
		--enable-unicode \
		--disable-gui \
		--disable-rpath \
		--with-expat \
		--with-libiconv \
		--with-zlib

	popd
	mkdir -p ${B}/gtk2
	pushd ${B}/gtk2

	# gnomevfs: Gentoo bug 203389
	cygconf \
		--enable-optimise \
		--enable-shared \
		--enable-unicode \
		--enable-mediactrl \
		--disable-rpath \
		--with-expat \
		--with-gtk=2 \
		--without-gnomeprint --without-gnomevfs \
		--with-libpng \
		--with-libjpeg \
		--with-libiconv \
		--with-libmspack \
		--with-libnotify \
		--with-libtiff \
		--with-libxpm \
		--with-opengl \
		--with-sdl \
		--with-zlib

	cygmake

    popd
	mkdir -p ${B}/gtk3
	pushd ${B}/gtk3

	# gnomevfs: Gentoo bug 203389
	cygconf \
		--enable-optimise \
		--enable-shared \
		--enable-unicode \
		--enable-mediactrl \
		--disable-rpath \
		--with-expat \
		--with-gtk=3 \
		--without-gnomeprint --without-gnomevfs \
		--with-libpng \
		--with-libjpeg \
		--with-libiconv \
		--with-libmspack \
		--with-libnotify \
		--with-libtiff \
		--with-libxpm \
		--with-opengl \
		--with-sdl \
		--with-zlib

	cygmake

	popd
	pushd ${S}/docs/doxygen
	WX_SKIP_DOXYGEN_VERSION_CHECK=1 ./regen.sh html
	popd
}

src_test() {
	echo "--- GTK2 tests ---"
	pushd ${B}/gtk2/tests
	cygmake
	DISPLAY=:0 PATH="${B}/lib:$PATH" ./test
	DISPLAY=:0 PATH="${B}/lib:$PATH" ./test_gui
	popd
	
	echo "--- GTK3 tests ---"
	pushd ${B}/gtk3/tests
	cygmake
	DISPLAY=:0 PATH="${B}/lib:$PATH" ./test
	DISPLAY=:0 PATH="${B}/lib:$PATH" ./test_gui
	popd
}

src_install() {
	dodir /usr/lib
	cd ${B}/base
	cp -fr lib/wx/ ${D}/usr/lib/
	cd ${B}/gtk2
	cyginstall -j1
	cp -fr lib/lib*.dll.a lib/wx/ ${D}/usr/lib/
	cd ${B}/gtk3
	cyginstall -j1
	cp -fr lib/lib*.dll.a lib/wx/ ${D}/usr/lib/

	rm -f ${D}/usr/lib/wx/config/inplace-*

	mv ${D}/usr/lib/*.dll ${D}/usr/bin
	mv ${D}/usr/bin/wxrc-${slot}{,.exe}

	rm -f ${D}/usr/bin/wx-config-${slot}
	dosym ../lib/wx/config/gtk3-unicode-${slot} /usr/bin/wx-config-${slot}

	insinto /usr/share/aclocal
	newins ${S}/wxwin.m4 wxwin-${slot}.m4

	cd ${S}/docs
	dodoc changes.txt gpl.txt lgpl.txt licendoc.txt preamble.txt todo.txt

	cp -r ${S}/docs/doxygen/out/html/ ${D}/usr/share/doc/${NAME}/

	rm -f ${D}/usr/share/locale/*/LC_MESSAGES/wxmsw*.mo
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0x87B761FE07F548D6.asc
Type: application/pgp-keys
Size: 3183 bytes
Desc: not available
URL: <https://cygwin.com/pipermail/cygwin-apps/attachments/20201112/c37256ad/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://cygwin.com/pipermail/cygwin-apps/attachments/20201112/c37256ad/attachment.sig>


More information about the Cygwin-apps mailing list