aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuhammad Moinur Rahman <bofh@FreeBSD.org>2023-11-20 12:42:15 +0000
committerMuhammad Moinur Rahman <bofh@FreeBSD.org>2023-11-20 13:26:49 +0000
commit3f47a0b1eb91e6b5241cbe73a435aa1ea19e4f19 (patch)
tree05258b57063b5a6ab20e4ea605d107e9914a32ce
parent1a0193ce5f2b5f53c5d6759468d07854dd9fec26 (diff)
downloadports-3f47a0b1eb91e6b5241cbe73a435aa1ea19e4f19.tar.gz
ports-3f47a0b1eb91e6b5241cbe73a435aa1ea19e4f19.zip
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)
-rw-r--r--converters/php83-mbstring/files/patch-config.m444
-rw-r--r--converters/wkhtmltopdf/Makefile5
-rw-r--r--converters/wkhtmltopdf/files/patch-mkspecs_common_gcc-base.conf11
-rw-r--r--converters/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h4
-rw-r--r--converters/wkhtmltopdf/files/patch-src_corelib_global_qglobal.h40
5 files changed, 43 insertions, 61 deletions
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 <main/php_config.h>
-+#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE)
-+yes
-+#endif
-+ ],[
-+ PHP_PCRE_REGEX=yes
-+ ],[
-+ AC_EGREP_CPP(yes,[
-+#include <main/php_config.h>
-+#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 <bsd.port.pre.mk>
.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 <typename T>
+ 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
+