From 46b2475a433d116b1591da0e09fa56baff0d600a Mon Sep 17 00:00:00 2001 From: xtkoba <69125751+xtkoba@users.noreply.github.com> Date: Wed, 22 Dec 2021 18:45:39 +0900 Subject: [PATCH] new package: wxwidgets (#551) --- x11-packages/wxwidgets/build.sh | 16 ++++++++ .../include-wx-android-chkconf.h.patch | 18 ++++++++ .../include-wx-android-config_android.h.patch | 41 +++++++++++++++++++ .../wxwidgets/src-common-filename.cpp.patch | 11 +++++ .../wxwidgets/src-unix-mimetype.cpp.patch | 40 ++++++++++++++++++ 5 files changed, 126 insertions(+) create mode 100644 x11-packages/wxwidgets/build.sh create mode 100644 x11-packages/wxwidgets/include-wx-android-chkconf.h.patch create mode 100644 x11-packages/wxwidgets/include-wx-android-config_android.h.patch create mode 100644 x11-packages/wxwidgets/src-common-filename.cpp.patch create mode 100644 x11-packages/wxwidgets/src-unix-mimetype.cpp.patch diff --git a/x11-packages/wxwidgets/build.sh b/x11-packages/wxwidgets/build.sh new file mode 100644 index 000000000..91a88acc8 --- /dev/null +++ b/x11-packages/wxwidgets/build.sh @@ -0,0 +1,16 @@ +TERMUX_PKG_HOMEPAGE=https://www.wxwidgets.org/ +TERMUX_PKG_DESCRIPTION="A free and open source cross-platform C++ framework for writing advanced GUI applications" +TERMUX_PKG_LICENSE="custom" +TERMUX_PKG_LICENSE_FILE="docs/gpl.txt, docs/lgpl.txt, docs/licence.txt, docs/licendoc.txt, docs/preamble.txt" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=3.1.5 +TERMUX_PKG_SRCURL=https://github.com/wxWidgets/wxWidgets/releases/download/v${TERMUX_PKG_VERSION}/wxWidgets-${TERMUX_PKG_VERSION}.tar.bz2 +TERMUX_PKG_SHA256=d7b3666de33aa5c10ea41bb9405c40326e1aeb74ee725bb88f90f1d50270a224 +TERMUX_PKG_DEPENDS="glu, gtk3, libcurl, libexpat, libiconv, libjpeg-turbo, liblzma, libnotify, libpng, libsecret, libsm, libtiff, mesa, sdl2" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +--disable-intl +--disable-option-checking +--disable-xlocale +--with-sdl +wx_cv_func_snprintf_pos_params=yes +" diff --git a/x11-packages/wxwidgets/include-wx-android-chkconf.h.patch b/x11-packages/wxwidgets/include-wx-android-chkconf.h.patch new file mode 100644 index 000000000..fb74b686e --- /dev/null +++ b/x11-packages/wxwidgets/include-wx-android-chkconf.h.patch @@ -0,0 +1,18 @@ +--- a/include/wx/android/chkconf.h ++++ b/include/wx/android/chkconf.h +@@ -12,6 +12,8 @@ + #ifndef _WX_ANDROID_CHKCONF_H_ + #define _WX_ANDROID_CHKCONF_H_ + ++#if 0 ++ + // For Qt under Android, use default configuration procedure as most features + // should be supported (see documentation for more information) + +@@ -233,4 +235,6 @@ + + #endif // __WXQT__ + ++#endif // 0 ++ + #endif // _WX_ANDROID_CHKCONF_H_ diff --git a/x11-packages/wxwidgets/include-wx-android-config_android.h.patch b/x11-packages/wxwidgets/include-wx-android-config_android.h.patch new file mode 100644 index 000000000..e849cc0b9 --- /dev/null +++ b/x11-packages/wxwidgets/include-wx-android-config_android.h.patch @@ -0,0 +1,41 @@ +--- a/include/wx/android/config_android.h ++++ b/include/wx/android/config_android.h +@@ -22,9 +22,9 @@ + #define wxUSE_UNIX 1 + #define __UNIX__ 1 + +-#define HAVE_NANOSLEEP ++#define HAVE_NANOSLEEP 1 + #define HAVE_FCNTL 1 +-#define HAVE_GCC_ATOMIC_BUILTINS ++#define HAVE_GCC_ATOMIC_BUILTINS 1 + #define HAVE_GETHOSTBYNAME 1 + #define HAVE_GETSERVBYNAME 1 + #define HAVE_GETTIMEOFDAY 1 +@@ -40,15 +40,25 @@ + #define HAVE_WPRINTF 1 + + #define SIZEOF_INT 4 ++#ifdef __LP64__ ++#define SIZEOF_LONG 8 ++#define SIZEOF_SIZE_T 8 ++#define SIZEOF_VOID_P 8 ++#else + #define SIZEOF_LONG 4 +-#define SIZEOF_LONG_LONG 8 + #define SIZEOF_SIZE_T 4 + #define SIZEOF_VOID_P 4 ++#endif ++#define SIZEOF_LONG_LONG 8 + #define SIZEOF_WCHAR_T 4 + + #define wxHAVE_PTHREAD_CLEANUP 1 + #define wxNO_WOSTREAM ++#ifdef __LP64__ ++#undef wxSIZE_T_IS_UINT ++#else + #define wxSIZE_T_IS_UINT 1 ++#endif + #define wxWCHAR_T_IS_REAL_TYPE 1 + + #define wxTYPE_SA_HANDLER int diff --git a/x11-packages/wxwidgets/src-common-filename.cpp.patch b/x11-packages/wxwidgets/src-common-filename.cpp.patch new file mode 100644 index 000000000..35b8d69ae --- /dev/null +++ b/x11-packages/wxwidgets/src-common-filename.cpp.patch @@ -0,0 +1,11 @@ +--- a/src/common/filename.cpp ++++ b/src/common/filename.cpp +@@ -1247,7 +1247,7 @@ wxString wxFileName::GetTempDir() + else + { + #ifdef __UNIX_LIKE__ +- dir = CheckIfDirExists("/tmp"); ++ dir = CheckIfDirExists("@TERMUX_PREFIX@/tmp"); + if ( dir.empty() ) + #endif // __UNIX_LIKE__ + dir = "."; diff --git a/x11-packages/wxwidgets/src-unix-mimetype.cpp.patch b/x11-packages/wxwidgets/src-unix-mimetype.cpp.patch new file mode 100644 index 000000000..71d465f80 --- /dev/null +++ b/x11-packages/wxwidgets/src-unix-mimetype.cpp.patch @@ -0,0 +1,40 @@ +--- a/src/unix/mimetype.cpp ++++ b/src/unix/mimetype.cpp +@@ -536,8 +536,8 @@ void wxMimeTypesManagerImpl::Initialize( + #else + + // Read MIME type - extension associations +- LoadXDGGlobs( "/usr/share/mime/globs" ); +- LoadXDGGlobs( "/usr/local/share/mime/globs" ); ++ LoadXDGGlobs( "@TERMUX_PREFIX@/share/mime/globs" ); ++ LoadXDGGlobs( "@TERMUX_PREFIX@/local/share/mime/globs" ); + + // Load desktop files for XDG, and then override them with the defaults. + // We will override them one desktop file at a time, rather +@@ -550,12 +550,12 @@ void wxMimeTypesManagerImpl::Initialize( + wxString xdgDataDirs = wxGetenv("XDG_DATA_DIRS"); + if ( xdgDataDirs.empty() ) + { +- xdgDataDirs = "/usr/local/share:/usr/share"; ++ xdgDataDirs = "@TERMUX_PREFIX@/local/share:@TERMUX_PREFIX@/share"; + + if ( mailcapStyles & wxMAILCAP_GNOME ) + { +- AppendToPathIfExists(xdgDataDirs, "/usr/share/gnome"); +- AppendToPathIfExists(xdgDataDirs, "/opt/gnome/share"); ++ AppendToPathIfExists(xdgDataDirs, "@TERMUX_PREFIX@/share/gnome"); ++ AppendToPathIfExists(xdgDataDirs, "@TERMUX_PREFIX@/opt/gnome/share"); + } + + if ( mailcapStyles & wxMAILCAP_KDE ) +@@ -563,8 +563,8 @@ void wxMimeTypesManagerImpl::Initialize( + for ( int kdeVer = 5; kdeVer >= 3; kdeVer-- ) + { + const wxString& kdeDir = wxString::Format("kde%d", kdeVer); +- if ( AppendToPathIfExists(xdgDataDirs, "/usr/share/" + kdeDir) +- || AppendToPathIfExists(xdgDataDirs, "/opt/" + kdeDir + "/share") ) ++ if ( AppendToPathIfExists(xdgDataDirs, "@TERMUX_PREFIX@/share/" + kdeDir) ++ || AppendToPathIfExists(xdgDataDirs, "@TERMUX_PREFIX@/opt/" + kdeDir + "/share") ) + { + // We don't need to use earlier versions if we found a + // later one.