Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Nov 2023 13:27:06 GMT
From:      Muhammad Moinur Rahman <bofh@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 3f47a0b1eb91 - main - converters/wkhtmltopdf: Fix build with gcc10
Message-ID:  <202311201327.3AKDR6c6023174@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3f47a0b1eb91e6b5241cbe73a435aa1ea19e4f19

commit 3f47a0b1eb91e6b5241cbe73a435aa1ea19e4f19
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2023-11-20 12:42:15 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2023-11-20 13:26:49 +0000

    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)
---
 converters/php83-mbstring/files/patch-config.m4    | 44 ----------------------
 converters/wkhtmltopdf/Makefile                    |  5 +--
 .../files/patch-mkspecs_common_gcc-base.conf       | 11 ------
 ...webkit__Source__JavaScriptCore__wtf__Platform.h |  4 +-
 .../files/patch-src_corelib_global_qglobal.h       | 40 ++++++++++++++++++++
 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
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202311201327.3AKDR6c6023174>