From 8c83cec1161903cb3ed02700a40e0208910de4c9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Sat, 23 Sep 2023 15:30:12 +0200 Subject: [PATCH] - up to 3.2.2.1 - stop building non-unicode libs - enable SDL support --- export-wxGetRootWindow.patch | 11 --- os-release.patch | 77 ++++++++++++++++ relax-abicheck.patch | 47 +++------- webkit2gtk4.1.patch | 164 +++++++++++++++++++++++++++++++++++ wxWidgets-c++.patch | 95 -------------------- wxWidgets-gifdelay.patch | 2 +- wxWidgets-link.patch | 14 --- wxWidgets-samples.patch | 2 +- wxWidgets.spec | 69 ++++++++------- 9 files changed, 291 insertions(+), 190 deletions(-) delete mode 100644 export-wxGetRootWindow.patch create mode 100644 os-release.patch create mode 100644 webkit2gtk4.1.patch delete mode 100644 wxWidgets-c++.patch delete mode 100644 wxWidgets-link.patch diff --git a/export-wxGetRootWindow.patch b/export-wxGetRootWindow.patch deleted file mode 100644 index 3dddae4..0000000 --- a/export-wxGetRootWindow.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- wxWidgets-3.0.0/src/gtk/app.cpp~ 2013-11-11 14:10:39.000000000 +0100 -+++ wxWidgets-3.0.0/src/gtk/app.cpp 2014-01-19 16:44:33.612093277 +0100 -@@ -168,7 +168,7 @@ - // Access to the root window global - //----------------------------------------------------------------------------- - --GtkWidget* wxGetRootWindow() -+WXDLLIMPEXP_CORE GtkWidget* wxGetRootWindow() - { - static GtkWidget *s_RootWindow = NULL; - diff --git a/os-release.patch b/os-release.patch new file mode 100644 index 0000000..3a0456f --- /dev/null +++ b/os-release.patch @@ -0,0 +1,77 @@ +From 1b0c5d63f6269afa46d121c28160a339da5dd5b7 Mon Sep 17 00:00:00 2001 +From: Scott Talbert +Date: Fri, 14 Jul 2023 11:45:19 -0400 +Subject: [PATCH] Read Linux distribution info from os-release file + +The Linux distribution community has somewhat deprecated the lsb_release +utility and has standardized on a new file, os-release, that can be +simply parsed to get the same information. Attempt to read this file in +/etc/os-release, then /usr/lib/os-release, and finally, fall back to +using the lsb_release utility if neither of those files are found. + +See: https://www.freedesktop.org/software/systemd/man/os-release.html +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2184391 + +See #23712. + +(cherry picked from commit aef7df6c9f44f751d97f4f6519ae6e5c3b81019d) +--- + docs/changes.txt | 1 + + src/unix/utilsunx.cpp | 30 ++++++++++++++++++++++++++++++ + 2 files changed, 31 insertions(+) + +diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp +index ac5181e187f3..302aaa25b8f5 100644 +--- a/src/unix/utilsunx.cpp ++++ b/src/unix/utilsunx.cpp +@@ -62,6 +62,8 @@ + #include "wx/evtloop.h" + #include "wx/mstream.h" + #include "wx/private/fdioeventloopsourcehandler.h" ++#include "wx/config.h" ++#include "wx/filename.h" + + #include + #include // waitpid() +@@ -1147,6 +1149,23 @@ wxString wxGetNativeCpuArchitectureName() + + #ifdef __LINUX__ + ++static bool ++wxGetValuesFromOSRelease(const wxString& filename, wxLinuxDistributionInfo& ret) ++{ ++ if ( !wxFileName::Exists(filename) ) ++ { ++ return false; ++ } ++ ++ wxFileConfig fc(wxEmptyString, wxEmptyString, wxEmptyString, filename); ++ ret.Id = fc.Read(wxS("ID"), wxEmptyString).Capitalize(); ++ ret.Description = fc.Read(wxS("PRETTY_NAME"), wxEmptyString); ++ ret.Release = fc.Read(wxS("VERSION_ID"), wxEmptyString); ++ ret.CodeName = fc.Read(wxS("VERSION_CODENAME"), wxEmptyString); ++ ++ return true; ++} ++ + static bool + wxGetValueFromLSBRelease(const wxString& arg, const wxString& lhs, wxString* rhs) + { +@@ -1161,6 +1180,17 @@ wxLinuxDistributionInfo wxGetLinuxDistributionInfo() + { + wxLinuxDistributionInfo ret; + ++ // Read /etc/os-release and fall back to /usr/lib/os-release per below ++ // https://www.freedesktop.org/software/systemd/man/os-release.html ++ if ( wxGetValuesFromOSRelease(wxS("/etc/os-release"), ret) ) ++ { ++ return ret; ++ } ++ if ( wxGetValuesFromOSRelease(wxS("/usr/lib/os-release"), ret) ) ++ { ++ return ret; ++ } ++ + if ( !wxGetValueFromLSBRelease(wxS("--id"), wxS("Distributor ID:\t"), + &ret.Id) ) + { diff --git a/relax-abicheck.patch b/relax-abicheck.patch index 2ba14fe..1c4e618 100644 --- a/relax-abicheck.patch +++ b/relax-abicheck.patch @@ -1,35 +1,16 @@ -Description: Relax error about mismatching C++ ABI version to warning - In practice, the differences between ABI versions 2 and 8 don't seem to be - incompatible since they apparently only affect obscure corner cases. So - relax this error to a warning so we don't have to rebuild the entire wx world - in one go. -Author: Olly Betts -Forwarded: no -Last-Update: 2015-06-29 - ---- wxwidgets3.0-3.0.2.orig/src/common/appbase.cpp -+++ wxwidgets3.0-3.0.2/src/common/appbase.cpp -@@ -762,6 +762,23 @@ bool wxAppConsoleBase::CheckBuildOptions - 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()); +diff -up wxWidgets-3.1.6/src/common/appbase.cpp.abicheck wxWidgets-3.1.6/src/common/appbase.cpp +--- wxWidgets-3.1.6/src/common/appbase.cpp.abicheck 2022-04-04 09:41:33.000000000 -0400 ++++ wxWidgets-3.1.6/src/common/appbase.cpp 2022-04-04 19:14:33.883814729 -0400 +@@ -843,11 +843,8 @@ bool wxAppConsoleBase::CheckBuildOptions + wxString prog = wxString::FromAscii(optionsSignature); + wxString progName = wxString::FromAscii(componentName); -+ -+ 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); -+ lib.erase(l_off, space - l_off); -+ space = prog.Find(' ', l_off); -+ prog.erase(p_off, space - p_off); -+ if (lib == prog) { -+ // Only difference is the ABI version, which apparently only -+ // affect obscure cases, so just warn. -+ wxLogWarning(msg.c_str()); -+ return false; -+ } -+ } -+ - wxLogFatalError(msg.c_str()); +- wxLogFatalError(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), ++ wxLogWarning(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), + lib, progName, prog); +- +- // normally wxLogFatalError doesn't return +- return false; + } - // normally wxLogFatalError doesn't return + return true; diff --git a/webkit2gtk4.1.patch b/webkit2gtk4.1.patch new file mode 100644 index 0000000..1fe2cd1 --- /dev/null +++ b/webkit2gtk4.1.patch @@ -0,0 +1,164 @@ +From df46add1165314bce93d70e611ddc453561ffb60 Mon Sep 17 00:00:00 2001 +From: Scott Talbert +Date: Mon, 12 Jun 2023 20:28:35 -0400 +Subject: [PATCH] Add support for building WebView with libwebkit2gtk-4.1 + +libwebkit2gtk-4.1 has the same API as libwebkit2gtk-4.0, except that the +former links with libsoup-3.0 and the latter links with libsoup-2.4. + +Fixes #23630. + +(cherry picked from commit 1b8664426603376b68f8ca3c54de97ec630e5940) +--- + build/cmake/init.cmake | 10 ++- + build/cmake/modules/FindLIBSOUP.cmake | 14 +++- + build/cmake/modules/FindWEBKIT2.cmake | 5 +- + configure | 95 +++++++++++++++++++++++++-- + configure.in | 16 ++++- + src/gtk/webview_webkit2.cpp | 4 ++ + 6 files changed, 129 insertions(+), 15 deletions(-) + +diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake +index fc206cf2e03a..5d88a7e487cc 100644 +--- a/build/cmake/init.cmake ++++ b/build/cmake/init.cmake +@@ -453,15 +453,21 @@ if(wxUSE_GUI) + if(wxUSE_WEBVIEW) + if(WXGTK) + if(wxUSE_WEBVIEW_WEBKIT) +- find_package(LIBSOUP) ++ set(WEBKIT_LIBSOUP_VERSION 2.4) + if(WXGTK2) + find_package(WEBKIT 1.0) + elseif(WXGTK3) +- find_package(WEBKIT2) ++ find_package(WEBKIT2 4.1 QUIET) ++ if(WEBKIT2_FOUND) ++ set(WEBKIT_LIBSOUP_VERSION 3.0) ++ else() ++ find_package(WEBKIT2 4.0) ++ endif() + if(NOT WEBKIT2_FOUND) + find_package(WEBKIT 3.0) + endif() + endif() ++ find_package(LIBSOUP ${WEBKIT_LIBSOUP_VERSION}) + endif() + set(wxUSE_WEBVIEW_WEBKIT OFF) + set(wxUSE_WEBVIEW_WEBKIT2 OFF) +diff --git a/build/cmake/modules/FindLIBSOUP.cmake b/build/cmake/modules/FindLIBSOUP.cmake +index cbfba1cf9366..2433d141eaf7 100644 +--- a/build/cmake/modules/FindLIBSOUP.cmake ++++ b/build/cmake/modules/FindLIBSOUP.cmake +@@ -31,19 +31,27 @@ + # LibSoup does not provide an easy way to retrieve its version other than its + # .pc file, so we need to rely on PC_LIBSOUP_VERSION and REQUIRE the .pc file + # to be found. ++SET(LIBSOUP_VERSION 2.4) ++if(DEFINED LIBSOUP_FIND_VERSION) ++ SET(LIBSOUP_VERSION ${LIBSOUP_FIND_VERSION}) ++endif() ++ ++set(LIBSOUP_INCLUDE_DIRS LIBSOUP_INCLUDE_DIRS-NOTFOUND) ++set(LIBSOUP_LIBRARIES LIBSOUP_LIBRARIES-NOTFOUND) ++ + FIND_PACKAGE(PkgConfig) +-PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-2.4) ++PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-${LIBSOUP_VERSION}) + + if(PC_LIBSOUP_FOUND) + FIND_PATH(LIBSOUP_INCLUDE_DIRS + NAMES libsoup/soup.h + HINTS ${PC_LIBSOUP_INCLUDEDIR} + ${PC_LIBSOUP_INCLUDE_DIRS} +- PATH_SUFFIXES libsoup-2.4 ++ PATH_SUFFIXES libsoup-${LIBSOUP_VERSION} + ) + + FIND_LIBRARY(LIBSOUP_LIBRARIES +- NAMES soup-2.4 ++ NAMES soup-${LIBSOUP_VERSION} + HINTS ${PC_LIBSOUP_LIBDIR} + ${PC_LIBSOUP_LIBRARY_DIRS} + ) +diff --git a/build/cmake/modules/FindWEBKIT2.cmake b/build/cmake/modules/FindWEBKIT2.cmake +index 133e7a4563ea..e39077ac4a71 100644 +--- a/build/cmake/modules/FindWEBKIT2.cmake ++++ b/build/cmake/modules/FindWEBKIT2.cmake +@@ -5,7 +5,10 @@ + # WEBKIT2_LIBRARIES - List of libraries when using Webkit2. + # WEBKIT2_FOUND - True if Webkit2 found. + +-SET( WEBKIT2_VERSION 4.0) ++SET(WEBKIT2_VERSION 4.0) ++if(DEFINED WEBKIT2_FIND_VERSION) ++ SET(WEBKIT2_VERSION ${WEBKIT2_FIND_VERSION}) ++endif() + + set(WEBKIT2_INCLUDE_DIR WEBKIT2_INCLUDE_DIR-NOTFOUND) + set(WEBKIT2_LIBRARY WEBKIT2_LIBRARY-NOTFOUND) +diff --git a/configure.in b/configure.in +index 957be8dda34c..257c95a6009b 100644 +--- a/configure.in ++++ b/configure.in +@@ -7529,15 +7529,27 @@ if test "$wxUSE_WEBVIEW" = "yes"; then + if test "$wxUSE_GTK" = 1; then + if test "$WXGTK3" = 1; then + PKG_CHECK_MODULES([WEBKIT], +- [webkit2gtk-4.0], ++ [webkit2gtk-4.1], + [ + USE_WEBVIEW_WEBKIT2=1 + CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" + EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" + ], + [ +- AC_MSG_WARN([webkit2gtk not found, falling back to webkitgtk]) ++ AC_MSG_WARN([webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0]) + ]) ++ if test "$USE_WEBVIEW_WEBKIT2" = 0; then ++ PKG_CHECK_MODULES([WEBKIT], ++ [webkit2gtk-4.0], ++ [ ++ USE_WEBVIEW_WEBKIT2=1 ++ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" ++ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" ++ ], ++ [ ++ AC_MSG_WARN([webkit2gtk-4.0 not found, falling back to webkitgtk]) ++ ]) ++ fi + fi + if test "$USE_WEBVIEW_WEBKIT2" = 0; then + webkitgtk=webkit-1.0 +diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp +index 191cbcf2cc18..87a9bd5ad3a8 100644 +--- a/src/gtk/webview_webkit2.cpp ++++ b/src/gtk/webview_webkit2.cpp +@@ -173,15 +173,18 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *, + { + switch (error->code) + { ++#if SOUP_MAJOR_VERSION < 3 + case SOUP_STATUS_CANCELLED: + type = wxWEBVIEW_NAV_ERR_USER_CANCELLED; + break; + + case SOUP_STATUS_CANT_RESOLVE: ++#endif + case SOUP_STATUS_NOT_FOUND: + type = wxWEBVIEW_NAV_ERR_NOT_FOUND; + break; + ++#if SOUP_MAJOR_VERSION < 3 + case SOUP_STATUS_CANT_RESOLVE_PROXY: + case SOUP_STATUS_CANT_CONNECT: + case SOUP_STATUS_CANT_CONNECT_PROXY: +@@ -193,6 +196,7 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *, + case SOUP_STATUS_MALFORMED: + type = wxWEBVIEW_NAV_ERR_REQUEST; + break; ++#endif + + case SOUP_STATUS_BAD_REQUEST: + type = wxWEBVIEW_NAV_ERR_REQUEST; diff --git a/wxWidgets-c++.patch b/wxWidgets-c++.patch deleted file mode 100644 index dd53fde..0000000 --- a/wxWidgets-c++.patch +++ /dev/null @@ -1,95 +0,0 @@ -.././src/dfb/bitmap.cpp:626:64: error: in C++98 'r' must be initialized by constructor, not by '{...}' - DFBRectangle r = { rect.x, rect.y, rect.width, rect.height }; - ^ -.././src/dfb/dc.cpp:707:47: error: in C++98 'srcRect' must be initialized by constructor, not by '{...}' - DFBRectangle srcRect = { srcx, srcy, w, h }; - ^ -.././src/dfb/dc.cpp:709:61: error: in C++98 'dstRect' must be initialized by constructor, not by '{...}' - XLOG2DEVREL(w), YLOG2DEVREL(h) }; - ^ -.././src/dfb/dcclient.cpp:170:62: error: in C++98 'dfbrect' must be initialized by constructor, not by '{...}' - DFBRectangle dfbrect = { r.x, r.y, r.width, r.height }; - ^ -.././src/dfb/nonownedwnd.cpp:348:67: error: in C++98 'r' must be initialized by constructor, not by '{...}' - paintedRect.GetRight(), paintedRect.GetBottom()}; - ^ -.././src/dfb/window.cpp:153:55: error: in C++98 'rect' must be initialized by constructor, not by '{...}' - DFBRectangle rect = { r.x, r.y, r.width, r.height }; - ^ -.././src/dfb/window.cpp:762:60: error: in C++98 'dfbRect' must be initialized by constructor, not by '{...}' - orect.width, orect.height }; - ^ - ---- wxWidgets-3.0.2/src/dfb/bitmap.cpp.orig 2014-10-06 23:33:44.000000000 +0200 -+++ wxWidgets-3.0.2/src/dfb/bitmap.cpp 2017-04-08 21:02:22.420076242 +0200 -@@ -623,7 +623,8 @@ - - // NB: DirectFB subsurfaces share the same pixels buffer, so we must - // clone the obtained subsurface -- DFBRectangle r = { rect.x, rect.y, rect.width, rect.height }; -+ DFBRectangle r; -+ r.x = rect.x; r.y = rect.y; r.w = rect.width; r.h = rect.height; - return wxBitmap(M_BITMAP->m_surface->GetSubSurface(&r)->Clone()); - } - ---- wxWidgets-3.0.2/src/dfb/dc.cpp.orig 2014-10-06 23:33:44.000000000 +0200 -+++ wxWidgets-3.0.2/src/dfb/dc.cpp 2017-04-08 22:30:42.656682391 +0200 -@@ -704,9 +704,9 @@ - CalcBoundingBox(dstx, dsty); - CalcBoundingBox(dstx + w, dsty + h); - -- DFBRectangle srcRect = { srcx, srcy, w, h }; -- DFBRectangle dstRect = { XLOG2DEV(dstx), YLOG2DEV(dsty), -- XLOG2DEVREL(w), YLOG2DEVREL(h) }; -+ DFBRectangle srcRect; srcRect.x = srcx; srcRect.y = srcy; srcRect.w = w; srcRect.h = h; -+ DFBRectangle dstRect; dstRect.x = XLOG2DEV(dstx); dstRect.y = YLOG2DEV(dsty); -+ dstRect.w = XLOG2DEVREL(w); dstRect.h = YLOG2DEVREL(h); - - wxIDirectFBSurfacePtr dst(m_surface); - ---- wxWidgets-3.0.2/src/dfb/dcclient.cpp.orig 2014-10-06 23:33:44.000000000 +0200 -+++ wxWidgets-3.0.2/src/dfb/dcclient.cpp 2017-04-08 22:35:18.586679239 +0200 -@@ -167,7 +167,7 @@ - else - { - m_winRect = r; -- DFBRectangle dfbrect = { r.x, r.y, r.width, r.height }; -+ DFBRectangle dfbrect; dfbrect.x = r.x; dfbrect.y = r.y; dfbrect.w = r.width; dfbrect.h = r.height; - surface = win->GetDfbSurface()->GetSubSurface(&dfbrect); - - // if the DC was clipped thanks to rectPaint, we must adjust the ---- wxWidgets-3.0.2/src/dfb/nonownedwnd.cpp.orig 2014-10-06 23:33:44.000000000 +0200 -+++ wxWidgets-3.0.2/src/dfb/nonownedwnd.cpp 2017-04-08 22:37:43.196677588 +0200 -@@ -344,8 +344,8 @@ - // do FlipToFront() for each of them, because that could result in visible - // updating of the screen; instead, we prefer to flip everything at once. - -- DFBRegion r = {paintedRect.GetLeft(), paintedRect.GetTop(), -- paintedRect.GetRight(), paintedRect.GetBottom()}; -+ DFBRegion r; r.x1 = paintedRect.GetLeft(); r.y1 = paintedRect.GetTop(); -+ r.x2 = paintedRect.GetRight(); r.y2 = paintedRect.GetBottom(); - DFBRegion *rptr = (winRect == paintedRect) ? NULL : &r; - - GetDfbSurface()->FlipToFront(rptr); ---- wxWidgets-3.0.2/src/dfb/window.cpp.orig 2014-10-06 23:33:44.000000000 +0200 -+++ wxWidgets-3.0.2/src/dfb/window.cpp 2017-04-08 22:40:07.890009269 +0200 -@@ -150,7 +150,7 @@ - - wxRect r(GetRect()); - AdjustForParentClientOrigin(r.x, r.y, 0); -- DFBRectangle rect = { r.x, r.y, r.width, r.height }; -+ DFBRectangle rect; rect.x = r.x; rect.y = r.y; rect.w = r.width; rect.h = r.height; - - return parentSurface->GetSubSurface(&rect); - } -@@ -758,8 +758,8 @@ - if ( overlay->IsEmpty() ) - continue; // nothing to paint - -- DFBRectangle dfbRect = { orect.x - orectOrig.x, orect.y - orectOrig.y, -- orect.width, orect.height }; -+ DFBRectangle dfbRect; dfbRect.x = orect.x - orectOrig.x; dfbRect.y = orect.y - orectOrig.y; -+ dfbRect.w = orect.width; dfbRect.h = orect.height; - GetDfbSurface()->Blit - ( - overlay->GetDirectFBSurface(), diff --git a/wxWidgets-gifdelay.patch b/wxWidgets-gifdelay.patch index eae0c43..daa846b 100644 --- a/wxWidgets-gifdelay.patch +++ b/wxWidgets-gifdelay.patch @@ -21,4 +21,4 @@ + delay = 10; timer->Start(delay, true); } - + #endif diff --git a/wxWidgets-link.patch b/wxWidgets-link.patch deleted file mode 100644 index 7a27052..0000000 --- a/wxWidgets-link.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- wxWidgets-2.9.1/configure.in~ 2011-02-25 10:15:34.175328030 +0100 -+++ wxWidgets-2.9.1/configure.in 2011-02-25 10:56:37.046283458 +0100 -@@ -7478,7 +7478,10 @@ - fi - elif test "$wxUSE_GTK" = 1; then - PKG_CHECK_MODULES(CAIRO, cairo, -- [wx_has_graphics=1], -+ [ -+ wx_has_graphics=1 -+ LIBS="$LIBS `pkg-config pangocairo --libs`" -+ ], - [AC_MSG_WARN([Cairo library not found])] - ) - else diff --git a/wxWidgets-samples.patch b/wxWidgets-samples.patch index a3900d4..16d702c 100644 --- a/wxWidgets-samples.patch +++ b/wxWidgets-samples.patch @@ -1,7 +1,7 @@ --- wxWidgets-2.5.4/configure.in~ 2005-02-28 15:03:24.811627176 +0100 +++ wxWidgets-2.5.4/configure.in 2005-02-28 15:08:28.636438784 +0100 @@ -5069,7 +5069,7 @@ - fi + AC_DEFINE(HAVE_NL_TIME_FIRST_WEEKDAY) fi - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest" diff --git a/wxWidgets.spec b/wxWidgets.spec index 23e2ce2..a87a06a 100644 --- a/wxWidgets.spec +++ b/wxWidgets.spec @@ -1,31 +1,29 @@ # # Conditional build: -%bcond_without ansi # only unicode packages +%bcond_with ansi # only unicode packages %bcond_with directfb # build wxDFB packages %bcond_without gtk3 # don't build wxGTK3 packages %bcond_with motif # build wxMotif packages %bcond_without x11 # don't build wxX11 packages -%bcond_with sdl # SDL sound support -%bcond_with debug # build with \--enable-debug - # (binary incompatible with non-debug) +%bcond_without sdl # SDL sound support +%bcond_with debug # build with \--enable-debug (binary incompatible with non-debug) # Summary: wxWidgets library Summary(pl.UTF-8): Biblioteka wxWidgets Name: wxWidgets -%define majver 3.0 -Version: 3.0.5 -Release: 1 +%define majver 3.2 +Version: 3.2.2.1 +Release: 0.1 License: wxWindows Library Licence 3.1 (LGPL v2+ with exception) Group: X11/Libraries Source0: https://github.com/wxWidgets/wxWidgets/releases/download/v%{version}/%{name}-%{version}.tar.bz2 -# Source0-md5: b4304777652acee8358066cdce5f6f27 +# Source0-md5: 45bd5f56a06e7c4ca7caf6c0b4d5d506 Patch0: %{name}-samples.patch Patch1: %{name}-ac.patch -Patch2: %{name}-link.patch -Patch3: export-wxGetRootWindow.patch -Patch4: %{name}-c++.patch -Patch5: %{name}-gifdelay.patch -Patch6: relax-abicheck.patch +Patch2: %{name}-gifdelay.patch +Patch3: relax-abicheck.patch +Patch4: os-release.patch +Patch5: webkit2gtk4.1.patch URL: http://www.wxWidgets.org/ %{?with_directfb:BuildRequires: DirectFB-devel >= 0.9.23} BuildRequires: OpenGL-GLU-devel @@ -33,17 +31,17 @@ BuildRequires: OpenGL-GLU-devel BuildRequires: autoconf >= 2.59-9 BuildRequires: automake # for m4 files -BuildRequires: bakefile >= 0.2.9 +BuildRequires: bakefile >= 0.2.12 BuildRequires: cairo-devel BuildRequires: cppunit-devel >= 1.8.0 BuildRequires: expat-devel BuildRequires: gettext-tools -BuildRequires: gstreamer-devel >= 1.0 -BuildRequires: gstreamer-plugins-base-devel >= 1.0 +BuildRequires: gstreamer-devel >= 1.7.2 +BuildRequires: gstreamer-plugins-base-devel >= 1.7.2 BuildRequires: gtk+2-devel >= 2:2.10 %{?with_gtk3:BuildRequires: gtk+3-devel >= 3.0} BuildRequires: gtk-webkit-devel >= 1.3.1 -%{?with_gtk3:BuildRequires: gtk-webkit3-devel >= 1.3.1} +%{?with_gtk3:BuildRequires: gtk-webkit4.1-devel} BuildRequires: libjpeg-devel BuildRequires: libmspack-devel BuildRequires: libnotify-devel >= 0.7 @@ -62,6 +60,7 @@ BuildRequires: xorg-lib-libXinerama-devel BuildRequires: xorg-lib-libXt-devel BuildRequires: xorg-lib-libXxf86vm-devel %endif +BuildRequires: xz-devel BuildRequires: zlib-devel >= 1.1.4 # these are not supported by wxWidgets Obsoletes: LDAPExplorerTool <= 0.6-1 @@ -781,17 +780,15 @@ obsługą UNICODE. %patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch6 -p1 %{__rm} build/aclocal/bakefile*.m4 %build -%if "%(rpm -q bakefile --qf '%%{VERSION}')" != "0.2.9" +%if "%(rpm -q bakefile --qf '%%{VERSION}')" != "0.2.13" cd build/bakefiles bakefile_gen -f autoconf cd ../.. %endif -cp -f /usr/share/automake/config.sub . %{__aclocal} -I build/aclocal %{__autoconf} @@ -799,19 +796,23 @@ CPPFLAGS="%{rpmcppflags} %{rpmcflags} -Wno-narrowing -fPIC -I`pwd`/include"; exp # avoid adding -s to LDFLAGS LDFLAGS=" "; export LDFLAGS args="%{?with_debug:--enable-debug}%{!?with_debug:--disable-debug} \ + --enable-ipv6 \ --enable-calendar \ --enable-controls \ --enable-plugins \ --enable-std_iostreams \ - --enable-tabdialog \ --with-libmspack \ + --with-liblzma \ + --with-libpng \ + --with-libjpeg \ + --with-libtiff \ %{?with_sdl:--with-sdl} \ --with-opengl" -for gui in '--with-gtk' %{?with_gtk3:'--with-gtk=3'} %{?with_motif:'--with-motif'} ; do +for gui in '--with-gtk=2' %{?with_gtk3:'--with-gtk=3'} %{?with_motif:'--with-motif'} ; do for unicode in %{?with_ansi:'--disable-unicode'} '--enable-unicode' ; do objdir=`echo obj${gui}${unicode}|sed 's/ /_/g'` - mkdir $objdir + mkdir -p $objdir cd $objdir ../%configure \ ${args} \ @@ -829,7 +830,7 @@ done for gui in %{?with_x11:'--with-x11'} %{?with_directfb:--with-directfb} ; do for unicode in %{?with_ansi:'--disable-unicode'} '--enable-unicode' ; do objdir=`echo obj${gui}${unicode}|sed 's/ /_/g'` - mkdir $objdir + mkdir -p $objdir cd $objdir ../%configure \ ${args} \ @@ -837,11 +838,10 @@ for unicode in %{?with_ansi:'--disable-unicode'} '--enable-unicode' ; do --enable-universal \ ${unicode} %{__make} - if echo $objdir| grep -q 'with-x11--disable-unicode' ; then + if echo $objdir| grep -q 'with-x11--enable-unicode' ; then %{__make} -C utils %{__make} -C utils/emulator %{__make} -C utils/hhp2cached - # %{__make} -C contrib/utils fi cd .. done @@ -854,7 +854,7 @@ done rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_bindir} -for gui in '--with-gtk' %{?with_gtk3:'--with-gtk=3'} %{?with_motif:'--with-motif'} ; do +for gui in '--with-gtk=2' %{?with_gtk3:'--with-gtk=3'} %{?with_motif:'--with-motif'} ; do for unicode in %{?with_ansi:'--disable-unicode'} '--enable-unicode' ; do objdir=`echo obj${gui}${unicode}|sed 's/ /_/g'` %{__make} -C $objdir install \ @@ -883,11 +883,10 @@ for unicode in %{?with_ansi:'--disable-unicode'} '--enable-unicode' ; do mandir=$RPM_BUILD_ROOT%{_mandir} \ includedir=$RPM_BUILD_ROOT%{_includedir} \ LOCALE_MSW_LINGUAS= - if echo $objdir| grep -q 'with-x11--disable-unicode' ; then + if echo $objdir| grep -q 'with-x11--enable-unicode' ; then # TODO: install default config files and default backgrouds install utils/emulator/src/wxemulator $RPM_BUILD_ROOT%{_bindir} install utils/hhp2cached/hhp2cached $RPM_BUILD_ROOT%{_bindir} - install utils/wxrc/wxrc $RPM_BUILD_ROOT%{_bindir} fi cd .. done @@ -917,9 +916,9 @@ install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} cp -a demos samples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} cp -f docs/x11/readme.txt docs/wxX11-readme.txt -rm -f $RPM_BUILD_ROOT%{_bindir}/wx-config +%{__rm} $RPM_BUILD_ROOT%{_bindir}/wx-config -%find_lang wxstd +%find_lang wxstd-%{majver} %clean rm -rf $RPM_BUILD_ROOT @@ -980,7 +979,7 @@ rm -rf $RPM_BUILD_ROOT %define libflag %{?with_debug:d} -%files -f wxstd.lang +%files -f wxstd-%{majver}.lang %defattr(644,root,root,755) %doc docs/{changes,licence,licendoc,preamble,readme}.txt %dir %{_libdir}/wx @@ -1268,7 +1267,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %ghost %{_libdir}/libwx_gtk3%{libflag}_webview-%{majver}.so.0 %attr(755,root,root) %{_libdir}/libwx_gtk3%{libflag}_xrc-%{majver}.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libwx_gtk3%{libflag}_xrc-%{majver}.so.0 -%attr(755,root,root) %{_libdir}/wx/%{majver}/web-extensions/webkit2_ext-3.0.so +%attr(755,root,root) %{_libdir}/wx/%{majver}/web-extensions/webkit2_ext-%{majver}.so %files -n wxGTK3-devel %defattr(644,root,root,755) @@ -1324,7 +1323,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %ghost %{_libdir}/libwx_gtk3u%{libflag}_webview-%{majver}.so.0 %attr(755,root,root) %{_libdir}/libwx_gtk3u%{libflag}_xrc-%{majver}.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libwx_gtk3u%{libflag}_xrc-%{majver}.so.0 -%attr(755,root,root) %{_libdir}/wx/%{majver}/web-extensions/webkit2_extu-3.0.so +%attr(755,root,root) %{_libdir}/wx/%{majver}/web-extensions/webkit2_extu-%{majver}.so %files -n wxGTK3-unicode-devel %defattr(644,root,root,755) @@ -1461,7 +1460,6 @@ rm -rf $RPM_BUILD_ROOT %endif %if %{with x11} -%if %{with ansi} %files utils %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/hhp2cached @@ -1469,6 +1467,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/wxrc %attr(755,root,root) %{_bindir}/wxrc-%{majver} +%if %{with ansi} %files -n wxX11 %defattr(644,root,root,755) %doc docs/wxX11-readme.txt -- 2.44.0