From 3f47a0b1eb91e6b5241cbe73a435aa1ea19e4f19 Mon Sep 17 00:00:00 2001 From: Muhammad Moinur Rahman Date: Mon, 20 Nov 2023 13:42:15 +0100 Subject: [PATCH] converters/wkhtmltopdf: Fix build with gcc10 The patch is accepted from Debian: https://salsa.debian.org/qt-kde-team/qt/qt4-x11/commit/0d4a3dd61ccb156dee556c214dbe91c04d44a717 Still keep it DEPRECATED and see how it builds on 13.X series. PR: 269313 Reported by: r.quakkelaar@quaras.nl Approved by: portmgr (just-fix-it) --- .../php83-mbstring/files/patch-config.m4 | 44 ------------------- converters/wkhtmltopdf/Makefile | 5 +-- .../files/patch-mkspecs_common_gcc-base.conf | 11 ----- ...t__Source__JavaScriptCore__wtf__Platform.h | 4 +- .../files/patch-src_corelib_global_qglobal.h | 40 +++++++++++++++++ 5 files changed, 43 insertions(+), 61 deletions(-) delete mode 100644 converters/php83-mbstring/files/patch-config.m4 delete mode 100644 converters/wkhtmltopdf/files/patch-mkspecs_common_gcc-base.conf create mode 100644 converters/wkhtmltopdf/files/patch-src_corelib_global_qglobal.h diff --git a/converters/php83-mbstring/files/patch-config.m4 b/converters/php83-mbstring/files/patch-config.m4 deleted file mode 100644 index 85fd4b3bae15..000000000000 --- a/converters/php83-mbstring/files/patch-config.m4 +++ /dev/null @@ -1,44 +0,0 @@ ---- config.m4.orig 2023-06-06 15:54:29 UTC -+++ config.m4 -@@ -37,6 +37,31 @@ AC_DEFUN([PHP_MBSTRING_EXTENSION], [ - - out="php_config.h" - -+ dnl This is PECL build, check if bundled PCRE library is used -+ old_CPPFLAGS=$CPPFLAGS -+ CPPFLAGS=$INCLUDES -+ AC_EGREP_CPP(yes,[ -+#include
-+#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE) -+yes -+#endif -+ ],[ -+ PHP_PCRE_REGEX=yes -+ ],[ -+ AC_EGREP_CPP(yes,[ -+#include
-+#if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE) -+yes -+#endif -+ ],[ -+ PHP_PCRE_REGEX=pecl -+ PHP_ADD_INCLUDE($PHP_PCRE_DIR/include) -+ ],[ -+ PHP_PCRE_REGEX=no -+ ]) -+ ]) -+ -+ - if test "$ext_shared" != "no" && test -f "$ext_builddir/config.h.in"; then - out="$abs_builddir/config.h" - fi -@@ -148,6 +173,9 @@ PHP_ARG_ENABLE([mbregex], - [MBSTRING: Disable multibyte regex support])], - [yes], - [no]) -+ -+PHP_ARG_WITH(pcre-dir, pcre install prefix, -+[ --with-pcre-dir MBSTRING: pcre install prefix], no, no) - - if test "$PHP_MBSTRING" != "no"; then - AC_DEFINE([HAVE_MBSTRING],1,[whether to have multibyte string support]) diff --git a/converters/wkhtmltopdf/Makefile b/converters/wkhtmltopdf/Makefile index 1fcd2ec5c1fc..bbff58274f82 100644 --- a/converters/wkhtmltopdf/Makefile +++ b/converters/wkhtmltopdf/Makefile @@ -57,7 +57,7 @@ MAKE_ARGS= INSTALL_ROOT="${STAGEDIR}${PREFIX}" .include .if ${ARCH} == "i386" || ${ARCH} == "powerpc" || ${CHOSEN_COMPILER_TYPE} == gcc -USE_GCC= 8 +USE_GCC= 10 .endif pre-patch: @@ -69,8 +69,6 @@ post-patch: -e 's|/usr/X11R6/include|${LOCALBASE}/include/X11|g' \ -e 's|/usr/X11R6/lib|${LOCALBASE}/lib|g' \ ${PATCH_WRKSRC}/mkspecs/freebsd-g++/qmake.conf - ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ - ${PATCH_WRKSRC}/mkspecs/common/gcc-base.conf ${REINPLACE_CMD} -e "s|gcc|${CC}|g" -e "s|g++|${CXX}|g" \ ${PATCH_WRKSRC}/mkspecs/common/g++-base.conf ${REINPLACE_CMD} -e "s|share/man|man|g" \ @@ -85,7 +83,6 @@ post-patch: ${XARGS} ${REINPLACE_CMD} -E 's|register ([a-zA-Z])|\1|g' .endif - post-build: cd ${WRKSRC}/build/app && ${SETENV} ${MAKE_ENV} \ ../qt/bin/qmake ../../wkhtmltopdf.pro && \ diff --git a/converters/wkhtmltopdf/files/patch-mkspecs_common_gcc-base.conf b/converters/wkhtmltopdf/files/patch-mkspecs_common_gcc-base.conf deleted file mode 100644 index 177e2cdc5335..000000000000 --- a/converters/wkhtmltopdf/files/patch-mkspecs_common_gcc-base.conf +++ /dev/null @@ -1,11 +0,0 @@ ---- mkspecs/common/gcc-base.conf.orig 2020-09-02 16:07:46 UTC -+++ mkspecs/common/gcc-base.conf -@@ -53,7 +53,7 @@ QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB - QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC - QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden - --QMAKE_LFLAGS += -+QMAKE_LFLAGS += -Wl,-rpath=%%LOCALBASE%%/lib/gcc8 - QMAKE_LFLAGS_DEBUG += - QMAKE_LFLAGS_APP += - QMAKE_LFLAGS_RELEASE += diff --git a/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h b/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h index e00d2953ab23..853457375a0c 100644 --- a/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h +++ b/converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h @@ -1,5 +1,5 @@ ---- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h.orig 2020-11-08 17:05:56.503694000 +0100 -+++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h 2020-11-08 17:06:42.105176000 +0100 +--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h.orig 2018-05-29 06:56:52 UTC ++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h @@ -1003,7 +1003,9 @@ || CPU(SPARC64) \ || CPU(S390X) \ diff --git a/converters/wkhtmltopdf/files/patch-src_corelib_global_qglobal.h b/converters/wkhtmltopdf/files/patch-src_corelib_global_qglobal.h new file mode 100644 index 000000000000..2db44fffd5c2 --- /dev/null +++ b/converters/wkhtmltopdf/files/patch-src_corelib_global_qglobal.h @@ -0,0 +1,40 @@ +--- src/corelib/global/qglobal.h.orig 2023-11-20 11:36:42 UTC ++++ src/corelib/global/qglobal.h +@@ -2482,22 +2482,32 @@ typedef uint Flags; + + #endif /* Q_NO_TYPESAFE_FLAGS */ + +-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT) ++#if (defined(Q_CC_GNU) && !defined(Q_CC_RVCT)) + /* make use of typeof-extension */ + template + class QForeachContainer { + public: +- inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } ++ inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } + const T c; + int brk; + typename T::const_iterator i, e; ++ int control; + }; + ++// Explanation of the control word: ++// - it's initialized to 1 ++// - that means both the inner and outer loops start ++// - if there were no breaks, at the end of the inner loop, it's set to 0, which ++// causes it to exit (the inner loop is run exactly once) ++// - at the end of the outer loop, it's inverted, so it becomes 1 again, allowing ++// the outer loop to continue executing ++// - if there was a break inside the inner loop, it will exit with control still ++// set to 1; in that case, the outer loop will invert it to 0 and will exit too + #define Q_FOREACH(variable, container) \ + for (QForeachContainer<__typeof__(container)> _container_(container); \ +- !_container_.brk && _container_.i != _container_.e; \ +- __extension__ ({ ++_container_.brk; ++_container_.i; })) \ +- for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) ++ _container_.control && _container_.i != _container_.e; \ ++ ++_container_.i, _container_.control ^= 1) \ ++ for (variable = *_container_.i; _container_.control; _container_.control = 0) + + #else +