aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/qt4-assistant/Makefile3
-rw-r--r--devel/qt4-assistant/files/patch-0185-fix-format-strings.diff55
-rw-r--r--devel/qt4-corelib/Makefile4
-rw-r--r--devel/qt4-corelib/files/patch-0185-fix-format-strings.diff42
-rw-r--r--devel/qt4-designer/Makefile3
-rw-r--r--devel/qt4-designer/files/patch-0185-fix-format-strings.diff26
-rw-r--r--devel/qt4-linguist/Makefile3
-rw-r--r--devel/qt4-linguist/files/patch-0185-fix-format-strings.diff14
-rw-r--r--devel/qt4-qt3support/Makefile3
-rw-r--r--devel/qt4-qt3support/files/patch-0185-fix-format-strings.diff69
-rw-r--r--devel/qt4-qtestlib/Makefile3
-rw-r--r--devel/qt4-qtestlib/files/patch-0185-fix-format-strings.diff15
-rw-r--r--x11-toolkits/qt33/Makefile9
-rw-r--r--x11-toolkits/qt33/files/0081-format-string-fixes.diff197
-rw-r--r--x11-toolkits/qt4-gui/Makefile3
-rw-r--r--x11-toolkits/qt4-gui/files/patch-0185-fix-format-strings.diff29
16 files changed, 466 insertions, 12 deletions
diff --git a/devel/qt4-assistant/Makefile b/devel/qt4-assistant/Makefile
index 2d7a925fdf79..023e78e550fe 100644
--- a/devel/qt4-assistant/Makefile
+++ b/devel/qt4-assistant/Makefile
@@ -8,7 +8,7 @@
PORTNAME= assistant
PORTVERSION= ${QT4_VERSION}
-PORTREVISION=0
+PORTREVISION= 1
CATEGORIES?= devel
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -42,6 +42,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/tools/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
pre-configure:
${CP} ${.CURDIR}/../../devel/qt4/files/configure ${CONFIGURE_WRKSRC}
diff --git a/devel/qt4-assistant/files/patch-0185-fix-format-strings.diff b/devel/qt4-assistant/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..43f4e0a9aaec
--- /dev/null
+++ b/devel/qt4-assistant/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,55 @@
+--- tools/assistant/config.cpp
++++ tools/assistant/config.cpp
+@@ -73,12 +73,12 @@ Config *Config::loadConfig(const QString
+
+ QFile file(profileFileName);
+ if (!file.exists()) {
+- qWarning( (QLatin1String("File does not exist: ") + profileFileName).toAscii().constData() );
++ qWarning( "File does not exist: %s", qPrintable(profileFileName) );
+ return 0;
+ }
+ DocuParser *parser = DocuParser::createParser( profileFileName );
+ if (!parser) {
+- qWarning( (QLatin1String("Failed to create parser for file: ") + profileFileName).toAscii().constData() );
++ qWarning( "Failed to create parser for file: %s", qPrintable(profileFileName) );
+ return 0;
+ }
+ if (parser->parserVersion() < DocuParser::Qt320) {
+@@ -89,7 +89,7 @@ Config *Config::loadConfig(const QString
+ parser->parse(&file);
+ config->profil = profileParser->profile();
+ if (!config->profil) {
+- qWarning( (QLatin1String("Config::loadConfig(), no profile in: ") + profileFileName).toAscii().constData() );
++ qWarning( "Config::loadConfig(), no profile in: %s", qPrintable(profileFileName) );
+ return 0;
+ }
+ config->profil->setProfileType(Profile::UserProfile);
+--- tools/assistant/index.cpp
++++ tools/assistant/index.cpp
+@@ -180,7 +180,7 @@ void Index::parseDocument( const QString
+ {
+ QFile file( filename );
+ if ( !file.open(QFile::ReadOnly) ) {
+- qWarning( (QLatin1String("can not open file ") + filename).toAscii().constData() );
++ qWarning( "can not open file %s", qPrintable(filename) );
+ return;
+ }
+
+@@ -352,7 +352,7 @@ QString Index::getDocumentTitle( const Q
+
+ QFile file( fileName );
+ if ( !file.open( QFile::ReadOnly ) ) {
+- qWarning( (QLatin1String("cannot open file ") + fileName).toAscii().constData() );
++ qWarning( "cannot open file %s", qPrintable(fileName) );
+ return fileName;
+ }
+ QTextStream s( &file );
+@@ -474,7 +474,7 @@ bool Index::searchForPattern( const QStr
+ QString fName = url.toLocalFile();
+ QFile file( fName );
+ if ( !file.open( QFile::ReadOnly ) ) {
+- qWarning( (QLatin1String("cannot open file ") + fName).toAscii().constData() );
++ qWarning( "cannot open file %s", qPrintable(fName) );
+ return false;
+ }
+ \ No newline at end of file
diff --git a/devel/qt4-corelib/Makefile b/devel/qt4-corelib/Makefile
index 598a7b9581b7..657e94bd2541 100644
--- a/devel/qt4-corelib/Makefile
+++ b/devel/qt4-corelib/Makefile
@@ -8,7 +8,7 @@
PORTNAME= corelib
PORTVERSION= ${QT4_VERSION}
-PORTREVISION=0
+PORTREVISION= 1
CATEGORIES?= devel
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -45,7 +45,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/src/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
-PATCH_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
.include <bsd.port.pre.mk>
diff --git a/devel/qt4-corelib/files/patch-0185-fix-format-strings.diff b/devel/qt4-corelib/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..929cc090f089
--- /dev/null
+++ b/devel/qt4-corelib/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,42 @@
+--- src/corelib/global/qglobal.h
++++ src/corelib/global/qglobal.h
+@@ -1266,8 +1266,16 @@ Q_CORE_EXPORT void qFatal(const char *,
+ #ifdef QT3_SUPPORT
+ Q_CORE_EXPORT QT3_SUPPORT void qSystemWarning(const char *msg, int code = -1);
+ #endif /* QT3_SUPPORT */
+-Q_CORE_EXPORT void qErrnoWarning(int code, const char *msg, ...);
+-Q_CORE_EXPORT void qErrnoWarning(const char *msg, ...);
++Q_CORE_EXPORT void qErrnoWarning(int code, const char *msg, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 2, 3)))
++#endif
++ ;
++Q_CORE_EXPORT void qErrnoWarning(const char *msg, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 1, 2)))
++#endif
++ ;
+
+ #if (defined(QT_NO_DEBUG_OUTPUT) || defined(QT_NO_TEXTSTREAM)) && !defined(QT_NO_DEBUG_STREAM)
+ #define QT_NO_DEBUG_STREAM
+--- src/corelib/tools/qbytearray.h
++++ src/corelib/tools/qbytearray.h
+@@ -71,8 +71,16 @@ Q_CORE_EXPORT int qstricmp(const char *,
+ Q_CORE_EXPORT int qstrnicmp(const char *, const char *, uint len);
+
+ // implemented in qvsnprintf.cpp
+-Q_CORE_EXPORT int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap);
+-Q_CORE_EXPORT int qsnprintf(char *str, size_t n, const char *fmt, ...);
++Q_CORE_EXPORT int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 3, 0)))
++#endif
++ ;
++Q_CORE_EXPORT int qsnprintf(char *str, size_t n, const char *fmt, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 3, 4)))
++#endif
++ ;
+
+ #ifdef QT3_SUPPORT
+ inline QT3_SUPPORT void *qmemmove(void *dst, const void *src, uint len) \ No newline at end of file
diff --git a/devel/qt4-designer/Makefile b/devel/qt4-designer/Makefile
index 706cdc1267a6..f1db40c8dad3 100644
--- a/devel/qt4-designer/Makefile
+++ b/devel/qt4-designer/Makefile
@@ -8,7 +8,7 @@
PORTNAME= designer
PORTVERSION= ${QT4_VERSION}
-PORTREVISION=0
+PORTREVISION= 1
CATEGORIES?= devel
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -41,6 +41,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/tools/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
pre-configure:
${CP} ${.CURDIR}/../../devel/qt4/files/configure ${CONFIGURE_WRKSRC}
diff --git a/devel/qt4-designer/files/patch-0185-fix-format-strings.diff b/devel/qt4-designer/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..289563024d18
--- /dev/null
+++ b/devel/qt4-designer/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,26 @@
+--- tools/designer/src/lib/uilib/formbuilderextra.cpp
++++ tools/designer/src/lib/uilib/formbuilderextra.cpp
+@@ -33,9 +33,7 @@ namespace QFormInternal {
+ #endif
+
+ void uiLibWarning(const QString &message) {
+- QString prefixedMessage = QLatin1String("Designer: ");
+- prefixedMessage += message;
+- qWarning(prefixedMessage.toUtf8().constData());
++ qWarning("Designer: %s", qPrintable(message));
+ }
+
+ QFormBuilderExtra::QFormBuilderExtra() :
+--- tools/designer/src/lib/shared/qdesigner_utils.cpp
++++ tools/designer/src/lib/shared/qdesigner_utils.cpp
+@@ -40,9 +40,7 @@ namespace qdesigner_internal
+ {
+ QDESIGNER_SHARED_EXPORT void designerWarning(const QString &message)
+ {
+- QString prefixedMessage = QLatin1String("Designer: ");
+- prefixedMessage += message;
+- qWarning(prefixedMessage.toUtf8().constData());
++ qWarning("Designer: %s", qPrintable(message));
+ }
+
+ QString EnumType::id() const \ No newline at end of file
diff --git a/devel/qt4-linguist/Makefile b/devel/qt4-linguist/Makefile
index 4941696f0255..f26d6431053b 100644
--- a/devel/qt4-linguist/Makefile
+++ b/devel/qt4-linguist/Makefile
@@ -8,7 +8,7 @@
PORTNAME= linguist
PORTVERSION= ${QT4_VERSION}
-PORTREVISION=0
+PORTREVISION= 1
CATEGORIES?= devel
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -40,6 +40,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/tools/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
pre-configure:
${CP} ${.CURDIR}/../../devel/qt4/files/configure ${CONFIGURE_WRKSRC}
diff --git a/devel/qt4-linguist/files/patch-0185-fix-format-strings.diff b/devel/qt4-linguist/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..3dfc822ed00d
--- /dev/null
+++ b/devel/qt4-linguist/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,14 @@
+--- tools/linguist/shared/profileevaluator.h
++++ tools/linguist/shared/profileevaluator.h
+@@ -88,7 +88,11 @@ protected:
+
+ private:
+ void logMessage(const QString &msg, MessageType mt = MT_DebugLevel2);
+- void logMessage(MessageType mt, const char *msg, ...);
++ void logMessage(MessageType mt, const char *msg, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 3, 4)))
++#endif
++ ;
+ QString expandVariableReferences(const QString &value);
+ QString evaluateExpandFunction(const QByteArray &func, const QString &arguments);
diff --git a/devel/qt4-qt3support/Makefile b/devel/qt4-qt3support/Makefile
index 473b56cbe5fd..0c8dc2617a3b 100644
--- a/devel/qt4-qt3support/Makefile
+++ b/devel/qt4-qt3support/Makefile
@@ -8,7 +8,7 @@
PORTNAME= qt3support
PORTVERSION= ${QT4_VERSION}
-PORTREVISION=0
+PORTREVISION= 1
CATEGORIES?= devel x11-toolkits
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -43,6 +43,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/src/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
.include <bsd.port.pre.mk>
diff --git a/devel/qt4-qt3support/files/patch-0185-fix-format-strings.diff b/devel/qt4-qt3support/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..d6570f036550
--- /dev/null
+++ b/devel/qt4-qt3support/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,69 @@
+--- src/qt3support/tools/q3gcache.cpp
++++ src/qt3support/tools/q3gcache.cpp
+@@ -622,7 +622,7 @@ void Q3GCache::statistics() const
+ #if defined(QT_DEBUG)
+ QString line;
+ line.fill(QLatin1Char('*'), 80);
+- qDebug(line.ascii());
++ qDebug("%s", line.ascii());
+ qDebug("CACHE STATISTICS:");
+ qDebug("cache contains %d item%s, with a total cost of %d",
+ count(), count() != 1 ? "s" : "", tCost);
+@@ -643,7 +643,7 @@ void Q3GCache::statistics() const
+ lruList->dumps != 1 ? "have" : "has", lruList->dumpCosts);
+ qDebug("Statistics from internal dictionary class:");
+ dict->statistics();
+- qDebug(line.ascii());
++ qDebug("%s", line.ascii());
+ #endif
+ }
+
+--- src/qt3support/tools/q3gdict.cpp
++++ src/qt3support/tools/q3gdict.cpp
+@@ -828,11 +828,11 @@ void Q3GDict::statistics() const
+ QString line;
+ line.fill(QLatin1Char('-'), 60);
+ double real, ideal;
+- qDebug(line.ascii());
++ qDebug("%s", line.ascii());
+ qDebug("DICTIONARY STATISTICS:");
+ if (count() == 0) {
+ qDebug("Empty!");
+- qDebug(line.ascii());
++ qDebug("%s", line.ascii());
+ return;
+ }
+ real = 0.0;
+@@ -853,7 +853,7 @@ void Q3GDict::statistics() const
+ while (b--)
+ *pbuf++ = '*';
+ *pbuf = '\0';
+- qDebug(buf);
++ qDebug("%s", buf);
+ i++;
+ }
+ qDebug("Array size = %d", size());
+@@ -861,7 +861,7 @@ void Q3GDict::statistics() const
+ qDebug("Real dist = %g", real);
+ qDebug("Rand dist = %g", ideal);
+ qDebug("Real/Rand = %g", real/ideal);
+- qDebug(line.ascii());
++ qDebug("%s", line.ascii());
+ #endif // QT_DEBUG
+ }
+
+--- src/qt3support/tools/q3cstring.h
++++ src/qt3support/tools/q3cstring.h
+@@ -57,7 +57,11 @@ public:
+ }
+
+ Q3CString copy() const { return *this; }
+- Q3CString &sprintf(const char *format, ...);
++ Q3CString &sprintf(const char *format, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 2, 3)))
++#endif
++ ;
+
+ Q3CString left(uint len) const { return QByteArray::left(len); }
+ Q3CString right(uint len) const { return QByteArray::right(len); } \ No newline at end of file
diff --git a/devel/qt4-qtestlib/Makefile b/devel/qt4-qtestlib/Makefile
index cb7dd4b4b535..ee5d65d6c9fe 100644
--- a/devel/qt4-qtestlib/Makefile
+++ b/devel/qt4-qtestlib/Makefile
@@ -8,7 +8,7 @@
PORTNAME= qtestlib
PORTVERSION= ${QT4_VERSION}
-PORTREVISION=0
+PORTREVISION= 1
CATEGORIES?= devel
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -43,6 +43,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/tools/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
.include <bsd.port.pre.mk>
diff --git a/devel/qt4-qtestlib/files/patch-0185-fix-format-strings.diff b/devel/qt4-qtestlib/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..efe6e3caad19
--- /dev/null
+++ b/devel/qt4-qtestlib/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,15 @@
+--- tools/qtestlib/src/qtest_global.h
++++ tools/qtestlib/src/qtest_global.h
+@@ -59,7 +59,11 @@ namespace QTest
+ enum SkipMode { SkipSingle = 1, SkipAll = 2 };
+ enum TestFailMode { Abort = 1, Continue = 2 };
+
+- int Q_TESTLIB_EXPORT qt_snprintf(char *str, int size, const char *format, ...);
++ int Q_TESTLIB_EXPORT qt_snprintf(char *str, int size, const char *format, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 3, 4)))
++#endif
++ ;
+ }
+
+ QT_END_HEADER \ No newline at end of file
diff --git a/x11-toolkits/qt33/Makefile b/x11-toolkits/qt33/Makefile
index 7ccfc0177073..4cc5f5f9d0ea 100644
--- a/x11-toolkits/qt33/Makefile
+++ b/x11-toolkits/qt33/Makefile
@@ -8,7 +8,7 @@
PORTNAME= qt
PORTVERSION= 3.3.8
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES?= x11-toolkits ipv6
MASTER_SITES= ${MASTER_SITE_QT}
DISTNAME= qt-x11-free-${PORTVERSION}
@@ -23,6 +23,7 @@ LIB_DEPENDS+= mng:${PORTSDIR}/graphics/libmng \
png:${PORTSDIR}/graphics/png \
jpeg:${PORTSDIR}/graphics/jpeg
+EXTRA_PATCHES= ${PATCHDIR}/0081-format-string-fixes.diff
CONFLICTS= linguist-0.* qt-2.* qt-3.0.* \
qt-3.1.* qt-3.2.* qt-designer-2.* xfmail-1.5.[0-5] \
xfmail-1.5.5_[1-2]
@@ -122,7 +123,7 @@ CONFIGURE_ARGS+=-no-nas-sound
.endif
.if defined(WITH_KDE_PATCHES)
-EXTRA_PATCHES= ${PATCHDIR}/0001-dnd_optimization.patch \
+EXTRA_PATCHES+= ${PATCHDIR}/0001-dnd_optimization.patch \
${PATCHDIR}/0002-dnd_active_window_fix.patch \
${PATCHDIR}/0007-qpixmap_constants.patch \
${PATCHDIR}/0015-qiconview-finditem.patch \
@@ -155,8 +156,8 @@ CONFLICTS+= qt-copy-[0-9]*
.endif
.if exists(${X11BASE}/include/qt2/qapp.h)
-BROKEN= "You have QT2 headers installed! Installing this port"
-BROKEN+="will result in conflicts between QT3 and QT2!"
+BROKEN= You have QT2 headers installed! Installing this port
+BROKEN+=will result in conflicts between QT3 and QT2!
.endif
post-patch:
diff --git a/x11-toolkits/qt33/files/0081-format-string-fixes.diff b/x11-toolkits/qt33/files/0081-format-string-fixes.diff
new file mode 100644
index 000000000000..d647874f6c4d
--- /dev/null
+++ b/x11-toolkits/qt33/files/0081-format-string-fixes.diff
@@ -0,0 +1,197 @@
+qt-bugs@ issue : none
+bugs.kde.org number : none
+applied: no
+author: Dirk Mueller/TT
+
+Fixes various, partially exploitable format string errors on Qt 3.x code base.
+
+
+--- src/widgets/qtextedit.cpp Mon Jul 16 10:44:40 CEST 2007
++++ src/widgets/qtextedit.cpp Mon Jul 16 10:44:40 CEST 2007
+
+@@ -6349,7 +6349,7 @@
+ cur = tag->prev;
+ if ( !cur ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning( "QTextEdit::optimParseTags: no left-tag for '<" + tag->tag + ">' in line %d.", tag->line + 1 );
++ qWarning( "QTextEdit::optimParseTags: no left-tag for '<%s>' in line %d.", tag->tag.ascii(), tag->line + 1 );
+ #endif
+ return; // something is wrong - give up
+ }
+@@ -6372,7 +6372,7 @@
+ break;
+ } else if ( !cur->leftTag ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning( "QTextEdit::optimParseTags: mismatching %s-tag for '<" + cur->tag + ">' in line %d.", cur->tag[0] == '/' ? "left" : "right", cur->line + 1 );
++ qWarning( "QTextEdit::optimParseTags: mismatching %s-tag for '<%s>' in line %d.", cur->tag[0] == '/' ? "left" : "right", cur->tag.ascii(), cur->line + 1 );
+ #endif
+ return; // something is amiss - give up
+ }
+--- src/sql/qdatatable.cpp Mon Jul 16 10:45:03 CEST 2007
++++ src/sql/qdatatable.cpp Mon Jul 16 10:45:03 CEST 2007
+
+@@ -1043,8 +1043,8 @@
+ return FALSE;
+ if ( !sqlCursor()->canInsert() ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning("QDataTable::insertCurrent: insert not allowed for " +
+- sqlCursor()->name() );
++ qWarning("QDataTable::insertCurrent: insert not allowed for %s",
++ sqlCursor()->name().latin1() );
+ #endif
+ endInsert();
+ return FALSE;
+@@ -1117,16 +1117,16 @@
+ return FALSE;
+ if ( sqlCursor()->primaryIndex().count() == 0 ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning("QDataTable::updateCurrent: no primary index for " +
+- sqlCursor()->name() );
++ qWarning("QDataTable::updateCurrent: no primary index for %s",
++ sqlCursor()->name().latin1() );
+ #endif
+ endUpdate();
+ return FALSE;
+ }
+ if ( !sqlCursor()->canUpdate() ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning("QDataTable::updateCurrent: updates not allowed for " +
+- sqlCursor()->name() );
++ qWarning("QDataTable::updateCurrent: updates not allowed for %s",
++ sqlCursor()->name().latin1() );
+ #endif
+ endUpdate();
+ return FALSE;
+@@ -1191,8 +1191,8 @@
+ return FALSE;
+ if ( sqlCursor()->primaryIndex().count() == 0 ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning("QDataTable::deleteCurrent: no primary index " +
+- sqlCursor()->name() );
++ qWarning("QDataTable::deleteCurrent: no primary index %s",
++ sqlCursor()->name().latin1() );
+ #endif
+ return FALSE;
+ }
+
+--- src/sql/qsqldatabase.cpp Mon Jul 16 10:45:03 CEST 2007
++++ src/sql/qsqldatabase.cpp Mon Jul 16 10:45:03 CEST 2007
+
+@@ -234,7 +234,8 @@
+ db->open();
+ #ifdef QT_CHECK_RANGE
+ if ( !db->isOpen() )
+- qWarning("QSqlDatabaseManager::database: unable to open database: " + db->lastError().databaseText() + ": " + db->lastError().driverText() );
++ qWarning("QSqlDatabaseManager::database: unable to open database: %s: %s",
++ db->lastError().databaseText().latin1(), db->lastError().driverText().latin1() );
+ #endif
+ }
+ return db;
+@@ -686,7 +687,7 @@
+ if ( !d->driver ) {
+ #ifdef QT_CHECK_RANGE
+ qWarning( "QSqlDatabase: %s driver not loaded", type.latin1() );
+- qWarning( "QSqlDatabase: available drivers: " + drivers().join(" ") );
++ qWarning( "QSqlDatabase: available drivers: %s", drivers().join(" ").latin1() );
+ #endif
+ d->driver = new QNullDriver();
+ d->driver->setLastError( QSqlError( "Driver not loaded", "Driver not loaded" ) );
+
+--- src/sql/qsqlindex.cpp Mon Jul 16 10:45:03 CEST 2007
++++ src/sql/qsqlindex.cpp Mon Jul 16 10:45:03 CEST 2007
+
+@@ -273,7 +273,7 @@
+ if ( field )
+ newSort.append( *field, desc );
+ else
+- qWarning( "QSqlIndex::fromStringList: unknown field: '" + f + "'" );
++ qWarning( "QSqlIndex::fromStringList: unknown field: '%s'", f.latin1());
+ }
+ return newSort;
+ }
+
+--- src/sql/qsqlrecord.cpp Mon Jul 16 10:45:03 CEST 2007
++++ src/sql/qsqlrecord.cpp Mon Jul 16 10:45:03 CEST 2007
+
+@@ -298,7 +298,7 @@
+ return i;
+ }
+ #ifdef QT_CHECK_RANGE
+- qWarning( "QSqlRecord::position: unable to find field " + name );
++ qWarning( "QSqlRecord::position: unable to find field %s", name.latin1() );
+ #endif
+ return -1;
+ }
+@@ -313,7 +313,7 @@
+ checkDetach();
+ if ( !sh->d->contains( i ) ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning( "QSqlRecord::field: index out of range: " + QString::number( i ) );
++ qWarning( "QSqlRecord::field: index out of range: %d", i );
+ #endif
+ return 0;
+ }
+@@ -344,7 +344,7 @@
+ {
+ if ( !sh->d->contains( i ) ) {
+ #ifdef QT_CHECK_RANGE
+- qWarning( "QSqlRecord::field: index out of range: " + QString::number( i ) );
++ qWarning( "QSqlRecord::field: index out of range: %d", i );
+ #endif // QT_CHECK_RANGE
+ return 0;
+ }
+
+--- src/tools/qglobal.cpp Mon Jul 16 10:45:03 CEST 2007
++++ src/tools/qglobal.cpp Mon Jul 16 10:45:03 CEST 2007
+
+@@ -680,7 +680,7 @@
+ if ( code != -1 )
+ qWarning( "%s\n\tError code %d - %s", msg, code, strerror( code ) );
+ else
+- qWarning( msg );
++ qWarning( "%s", msg );
+ #endif
+ #else
+ Q_UNUSED( msg );
+
+--- src/xml/qsvgdevice.cpp Mon Jul 16 10:45:03 CEST 2007
++++ src/xml/qsvgdevice.cpp Mon Jul 16 10:45:03 CEST 2007
+
+@@ -978,7 +978,7 @@
+ // ### catch references to embedded .svg files
+ QPixmap pix;
+ if ( !pix.load( href ) ) {
+- qWarning( "QSvgDevice::play: Couldn't load image "+href );
++ qWarning( "QSvgDevice::play: Couldn't load image %s", href.latin1() );
+ break;
+ }
+ pt->drawPixmap( QRect( x1, y1, w, h ), pix );
+@@ -1024,8 +1024,8 @@
+ break;
+ }
+ case InvalidElement:
+- qWarning( "QSvgDevice::play: unknown element type " +
+- node.nodeName() );
++ qWarning( "QSvgDevice::play: unknown element type %s",
++ node.nodeName().latin1() );
+ break;
+ };
+
+@@ -1111,7 +1111,7 @@
+ {
+ QRegExp reg( QString::fromLatin1("([+-]?\\d*\\.*\\d*[Ee]?[+-]?\\d*)(em|ex|px|%|pt|pc|cm|mm|in|)$") );
+ if ( reg.search( str ) == -1 ) {
+- qWarning( "QSvgDevice::parseLen: couldn't parse " + str );
++ qWarning( "QSvgDevice::parseLen: couldn't parse %s ", str.latin1() );
+ if ( ok )
+ *ok = FALSE;
+ return 0.0;
+@@ -1140,7 +1140,7 @@
+ else if ( u == "pc" )
+ dbl *= m.logicalDpiX() / 6.0;
+ else
+- qWarning( "QSvgDevice::parseLen: Unknown unit " + u );
++ qWarning( "QSvgDevice::parseLen: Unknown unit %s", u.latin1() );
+ }
+ if ( ok )
+ *ok = TRUE;
diff --git a/x11-toolkits/qt4-gui/Makefile b/x11-toolkits/qt4-gui/Makefile
index b00393eff1af..9433e4b16a3e 100644
--- a/x11-toolkits/qt4-gui/Makefile
+++ b/x11-toolkits/qt4-gui/Makefile
@@ -8,7 +8,7 @@
PORTNAME= gui
PORTVERSION= ${QT4_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES?= x11-toolkits
MASTER_SITES= ${MASTER_SITE_QT}
PKGNAMEPREFIX= qt4-
@@ -46,6 +46,7 @@ EXTRACT_AFTER_ARGS=| ${TAR} -xf - \
--exclude '${DISTNAME}/tools/qtconfig' --exclude '${DISTNAME}/tools/qvfb'
WRKSRC= ${WRKDIR}/${DISTNAME}/src/${PORTNAME}
CONFIGURE_WRKSRC=${WRKSRC}/../../
+PATCH_WRKSRC=${CONFIGURE_WRKSRC}
OPTIONS= CUPS "Enable printing support (requires CUPS)" off \
NAS "Enable sound support (requires NAS)" off
diff --git a/x11-toolkits/qt4-gui/files/patch-0185-fix-format-strings.diff b/x11-toolkits/qt4-gui/files/patch-0185-fix-format-strings.diff
new file mode 100644
index 000000000000..ce23edfdf7b9
--- /dev/null
+++ b/x11-toolkits/qt4-gui/files/patch-0185-fix-format-strings.diff
@@ -0,0 +1,29 @@
+--- src/gui/painting/qprintengine_pdf_p.h
++++ src/gui/painting/qprintengine_pdf_p.h
+@@ -148,7 +148,11 @@ private:
+ void writePage();
+
+ int addXrefEntry(int object, bool printostr = true);
+- void xprintf(const char* fmt, ...);
++ void xprintf(const char* fmt, ...)
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 2, 3)))
++#endif
++ ;
+ inline void write(const QByteArray &data) {
+ stream->writeRawData(data.constData(), data.size());
+ streampos += data.size();
+--- src/gui/painting/qprintengine_pdf.cpp
++++ src/gui/painting/qprintengine_pdf.cpp
+@@ -386,9 +386,8 @@ int QPdfEnginePrivate::addConstantAlphaO
+ object = addXrefEntry(-1);
+ QByteArray alphaDef;
+ QPdf::ByteStream s(&alphaDef);
+- s << "<< /ca " << (alpha/qreal(255.)) << ">>\n";
+- xprintf(alphaDef.constData());
+- xprintf("endobj\n");
++ s << "<< /ca " << (alpha/qreal(255.)) << ">>";
++ xprintf("%s\nendobj\n", alphaDef.constData());
+ }
+ currentPage->graphicStates.append(object);
+ return object; \ No newline at end of file