From 8492b0db14655fef6129fa506636e99a51d111e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Andriot?= Date: Mon, 29 Jun 2015 20:18:37 +0200 Subject: RPM Packaging: update qt3 for opensuse --- .../qt3-3.5.13.2-fix_not_a_string_literal.patch | 11 + opensuse/core/qt3/qt3-3.5.13.2.patch | 840 +++++++++++++++++++++ 2 files changed, 851 insertions(+) create mode 100644 opensuse/core/qt3/patches/3.5.13.2/qt3-3.5.13.2-fix_not_a_string_literal.patch create mode 100644 opensuse/core/qt3/qt3-3.5.13.2.patch (limited to 'opensuse') diff --git a/opensuse/core/qt3/patches/3.5.13.2/qt3-3.5.13.2-fix_not_a_string_literal.patch b/opensuse/core/qt3/patches/3.5.13.2/qt3-3.5.13.2-fix_not_a_string_literal.patch new file mode 100644 index 000000000..0a691fc9f --- /dev/null +++ b/opensuse/core/qt3/patches/3.5.13.2/qt3-3.5.13.2-fix_not_a_string_literal.patch @@ -0,0 +1,11 @@ +--- qmake/project.cpp.orig 2015-04-10 17:15:10.731091347 +0200 ++++ qmake/project.cpp 2013-12-30 17:58:15.471703644 +0100 +@@ -685,7 +685,7 @@ + // fprintf(stderr,"Current QT version number: " + ver + "\n"); + if (ver != "" && ver != test_version) { + ver = test_version; +- fprintf(stderr,"Changed QT version number to " + test_version + "!\n"); ++ fprintf(stderr,"Changed QT version number to %s!\n", test_version.ascii()); + } + } + } diff --git a/opensuse/core/qt3/qt3-3.5.13.2.patch b/opensuse/core/qt3/qt3-3.5.13.2.patch new file mode 100644 index 000000000..0f0a40400 --- /dev/null +++ b/opensuse/core/qt3/qt3-3.5.13.2.patch @@ -0,0 +1,840 @@ +--- src/qt.pro ++++ src/qt.pro +@@ -41,6 +41,8 @@ + XML_CPP = xml + STYLES_CPP = styles + EMBEDDED_CPP = embedded ++QMAKE_CFLAGS += -fno-strict-aliasing ++QMAKE_CFLAGS_MT += -fno-strict-aliasing + + win32 { + contains(QT_PRODUCT,qt-internal) { +--- src/3rdparty/libmng/aclocal.m4 ++++ src/3rdparty/libmng/aclocal.m4 +@@ -1607,7 +1607,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +@@ -3546,7 +3546,7 @@ + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.[[012]]) +- lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -n 1` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' +--- src/3rdparty/libmng/config.guess ++++ src/3rdparty/libmng/config.guess +@@ -319,7 +319,7 @@ + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) +- UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ UNAME_RELEASE=`(head -n 1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) +@@ -506,7 +506,7 @@ + fi + exit 0 ;; + *:AIX:*:[45]) +- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -n 1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else +--- src/3rdparty/libmng/configure ++++ src/3rdparty/libmng/configure +@@ -1956,7 +1956,7 @@ + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.[012]) +- lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -n 1` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' +@@ -3433,7 +3433,7 @@ + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is. + # If DATA tags from a recent dlltool are present, honour them! +- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then ++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname-def; + else + echo EXPORTS > $output_objdir/$soname-def; +--- qmake/generators/unix/unixmake.cpp ++++ qmake/generators/unix/unixmake.cpp +@@ -839,7 +839,7 @@ + ret += "\n\t"; + ret += QString(resource ? "-$(INSTALL_DIR)" : "-$(INSTALL_FILE)") + " \"" + + src_targ + "\" \"" + dst_targ + "\""; +- if(!project->isActiveConfig("debug") && !project->isEmpty("QMAKE_STRIP") && ++ if(false && !project->isActiveConfig("debug") && !project->isEmpty("QMAKE_STRIP") && + (project->first("TEMPLATE") != "lib" || !project->isActiveConfig("staticlib"))) { + ret += "\n\t-" + var("QMAKE_STRIP"); + if(project->first("TEMPLATE") == "lib" && !project->isEmpty("QMAKE_STRIPFLAGS_LIB")) +--- plugins/src/sqldrivers/sqlite/sqlite.pro ++++ plugins/src/sqldrivers/sqlite/sqlite.pro +@@ -10,6 +10,9 @@ + + unix { + OBJECTS_DIR = .obj ++ !contains( LIBS, .*sqlite.* ) { ++ LIBS *= -lsqlite ++ } + } + + win32 { +@@ -23,54 +26,6 @@ + # } + } + +-!contains( LIBS, .*sqlite.* ) { +- INCLUDEPATH += ../../../../src/3rdparty/sqlite +- +- HEADERS += ../../../../src/3rdparty/sqlite/btree.h \ +- ../../../../src/3rdparty/sqlite/config.h \ +- ../../../../src/3rdparty/sqlite/hash.h \ +- ../../../../src/3rdparty/sqlite/opcodes.h \ +- ../../../../src/3rdparty/sqlite/os.h \ +- ../../../../src/3rdparty/sqlite/pager.h \ +- ../../../../src/3rdparty/sqlite/parse.h \ +- ../../../../src/3rdparty/sqlite/sqlite.h \ +- ../../../../src/3rdparty/sqlite/sqliteInt.h \ +- ../../../../src/3rdparty/sqlite/vdbe.h \ +- ../../../../src/3rdparty/sqlite/vdbeInt.h +- +- SOURCES += ../../../../src/3rdparty/sqlite/attach.c \ +- ../../../../src/3rdparty/sqlite/auth.c \ +- ../../../../src/3rdparty/sqlite/btree.c \ +- ../../../../src/3rdparty/sqlite/btree_rb.c \ +- ../../../../src/3rdparty/sqlite/build.c \ +- ../../../../src/3rdparty/sqlite/copy.c \ +- ../../../../src/3rdparty/sqlite/date.c \ +- ../../../../src/3rdparty/sqlite/delete.c \ +- ../../../../src/3rdparty/sqlite/expr.c \ +- ../../../../src/3rdparty/sqlite/func.c \ +- ../../../../src/3rdparty/sqlite/hash.c \ +- ../../../../src/3rdparty/sqlite/insert.c \ +- ../../../../src/3rdparty/sqlite/main.c \ +- ../../../../src/3rdparty/sqlite/opcodes.c \ +- ../../../../src/3rdparty/sqlite/os.c \ +- ../../../../src/3rdparty/sqlite/pager.c \ +- ../../../../src/3rdparty/sqlite/parse.c \ +- ../../../../src/3rdparty/sqlite/pragma.c \ +- ../../../../src/3rdparty/sqlite/printf.c \ +- ../../../../src/3rdparty/sqlite/random.c \ +- ../../../../src/3rdparty/sqlite/select.c \ +- ../../../../src/3rdparty/sqlite/shell.c \ +- ../../../../src/3rdparty/sqlite/table.c \ +- ../../../../src/3rdparty/sqlite/tokenize.c \ +- ../../../../src/3rdparty/sqlite/trigger.c \ +- ../../../../src/3rdparty/sqlite/update.c \ +- ../../../../src/3rdparty/sqlite/util.c \ +- ../../../../src/3rdparty/sqlite/vacuum.c \ +- ../../../../src/3rdparty/sqlite/vdbe.c \ +- ../../../../src/3rdparty/sqlite/vdbeaux.c \ +- ../../../../src/3rdparty/sqlite/where.c +-} +- + REQUIRES = sql + + target.path += $$plugins.path/sqldrivers +--- src/tools/qcstring.cpp ++++ src/tools/qcstring.cpp +@@ -53,7 +53,7 @@ + #include + #include + #ifndef QT_NO_COMPRESS +-#include "../3rdparty/zlib/zlib.h" ++#include + #endif + + /***************************************************************************** +--- src/tools/qsettings.cpp ++++ src/tools/qsettings.cpp +@@ -39,6 +39,7 @@ + **********************************************************************/ + + #include "qplatformdefs.h" ++#include + + // POSIX Large File Support redefines open -> open64 + static inline int qt_open( const char *pathname, int flags, mode_t mode ) +@@ -468,8 +469,18 @@ + Q_UNUSED( format ); + #endif + +- QString appSettings(QDir::homeDirPath() + "/.qt/"); +- QString defPath; ++ QString home; ++ home = getenv("QT_HOME_DIR"); ++ if ( !home.isEmpty() ){ ++ home += "/"; ++ QFileInfo i( home + "qtrc" ); ++ if ( !i.isReadable() ) ++ home = QDir::homeDirPath() + "/.qt/"; ++ }else ++ home = QDir::homeDirPath() + "/.qt/"; ++ QString appSettings(home); ++ ++ QString defPath("/etc/X11/"); + #ifdef Q_WS_WIN + #ifdef Q_OS_TEMP + TCHAR path[MAX_PATH]; +@@ -517,6 +528,15 @@ + + if ( !!defPath ) + searchPaths.append(defPath); ++ ++ QString system; ++ system = getenv("QT_SYSTEM_DIR"); ++ if ( !system.isEmpty() && system[0] == '/') { ++ QFileInfo i( system + "/qtrc" ); ++ if ( i.isReadable() ) ++ searchPaths.append(system); ++ } ++ + searchPaths.append(dir.path()); + } + +--- src/tools/qgpluginmanager.cpp ++++ src/tools/qgpluginmanager.cpp +@@ -389,6 +389,8 @@ + sameBasename << (*git).mid( (*git).find( QChar(0xfffd) ) + 1 ); + ++git; + } ++ if( !sameBasename.isEmpty()) ++ sameBasename.prepend( lib ); + + if ( sameBasename.isEmpty() ) { + that->addLibrary( new QComLibrary( lib ) ); +--- mkspecs/linux-g++-64/qmake.conf ++++ mkspecs/linux-g++-64/qmake.conf +@@ -58,7 +58,7 @@ + QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB + QMAKE_LFLAGS_SONAME = -Wl,-soname, + QMAKE_LFLAGS_THREAD = +-QMAKE_RPATH = -Wl,-rpath, ++QMAKE_RPATH = + + QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl +--- mkspecs/linux-g++/qmake.conf ++++ mkspecs/linux-g++/qmake.conf +@@ -55,7 +55,6 @@ + QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB + QMAKE_LFLAGS_SONAME = -Wl,-soname, + QMAKE_LFLAGS_THREAD = +-QMAKE_RPATH = -Wl,-rpath, + + QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl +--- src/kernel/qpixmap_x11.cpp ++++ src/kernel/qpixmap_x11.cpp +@@ -394,8 +394,9 @@ + { + #if defined(QT_CHECK_STATE) + if ( qApp->type() == QApplication::Tty ) { +- qWarning( "QPixmap: Cannot create a QPixmap when no GUI " +- "is being used" ); ++// qWarning( "QPixmap: Cannot create a QPixmap when no GUI " ++// "is being used" ); ++ ; + } + #endif + +--- src/tools/qcomlibrary.cpp ++++ src/tools/qcomlibrary.cpp +@@ -105,25 +105,11 @@ + (const char*) QFile::encodeName(library) ); + } else if ( ( version > QT_VERSION ) || + ( ( QT_VERSION & 0xff0000 ) > ( version & 0xff0000 ) ) ) { +- if ( warn ) +- qWarning( "Conflict in %s:\n" +- " Plugin uses incompatible Qt library (%d.%d.%d)!", +- (const char*) QFile::encodeName(library), +- (version&0xff0000) >> 16, (version&0xff00) >> 8, version&0xff ); ++ return FALSE; + } else if ( (flags & 2) != (our_flags & 2) ) { +- if ( warn ) +- qWarning( "Conflict in %s:\n" +- " Plugin uses %s Qt library!", +- (const char*) QFile::encodeName(library), +- (flags & 2) ? "multi threaded" : "single threaded" ); ++ return FALSE; + } else if ( key != QT_BUILD_KEY ) { +- if ( warn ) +- qWarning( "Conflict in %s:\n" +- " Plugin uses incompatible Qt library!\n" +- " expected build key \"%s\", got \"%s\".", +- (const char*) QFile::encodeName(library), +- QT_BUILD_KEY, +- key.isEmpty() ? "" : (const char *) key ); ++ return FALSE; + } else { + return TRUE; + } +--- plugins/src/accessible/widgets/widgets.pro ++++ plugins/src/accessible/widgets/widgets.pro +@@ -13,3 +13,7 @@ + + HEADERS += qaccessiblewidget.h \ + qaccessiblemenu.h ++ ++target.path += $$plugins.path/accessible ++INSTALLS += target ++ +Index: kernel/qasyncimageio.cpp +================================================================================ +--- src/kernel/qasyncimageio.cpp ++++ src/kernel/qasyncimageio.cpp +@@ -904,7 +904,12 @@ + sheight = newtop + newheight; + + if (img.isNull()) { +- img.create(swidth, sheight, 32); ++ bool ok = img.create(swidth, sheight, 32); ++ if (!ok) ++ { ++ state = Error; ++ break; ++ } + memset( img.bits(), 0, img.numBytes() ); + if (consumer) consumer->setSize(swidth, sheight); + } +@@ -959,9 +964,15 @@ + if (backingstore.width() < w + || backingstore.height() < h) { + // We just use the backing store as a byte array +- backingstore.create( QMAX(backingstore.width(), w), ++ bool ok = backingstore.create( ++ QMAX(backingstore.width(), w), + QMAX(backingstore.height(), h), + 32); ++ if (!ok) ++ { ++ state = Error; ++ break; ++ } + memset( img.bits(), 0, img.numBytes() ); + } + for (int ln=0; lnalpha = enable; + } + ++QSize QImage::maxImageSize() ++{ ++ if (!qt_max_image_height || !qt_max_image_width) ++ return QSize(); ++ return QSize(qt_max_image_height, qt_max_image_width); ++} ++ ++void QImage::setMaxImageSize(const QSize &size) ++{ ++ if (size.isValid()) ++ { ++ qt_max_image_height = size.height(); ++ qt_max_image_width = size.width(); ++ } ++ else ++ { ++ qt_max_image_height = 0; ++ qt_max_image_width = 0; ++ } ++} ++ ++ + + /*! + Sets the image \a width, \a height, \a depth, its number of colors +@@ -1240,6 +1264,14 @@ + reset(); // reset old data + if ( width <= 0 || height <= 0 || depth <= 0 || numColors < 0 ) + return FALSE; // invalid parameter(s) ++ if ( qt_max_image_height && (height > qt_max_image_height * 4)) ++ return FALSE; // Too high ++ if ( qt_max_image_width && (width > qt_max_image_width * 4)) ++ return FALSE; // Too wide ++ if ( qt_max_image_height && qt_max_image_width && ++ (height * width > qt_max_image_height * qt_max_image_width)) ++ return FALSE; // Too large ++ + if ( depth == 1 && bitOrder == IgnoreEndian ) { + #if defined(QT_CHECK_RANGE) + qWarning( "QImage::create: Bit order is required for 1 bpp images" ); +--- src/kernel/qimage.h ++++ src/kernel/qimage.h +@@ -197,6 +197,10 @@ + int quality=-1 ) const; + bool save( QIODevice * device, const char* format, + int quality=-1 ) const; ++ ++#define QT_HAVE_MAX_IMAGE_SIZE ++ static QSize maxImageSize(); ++ static void setMaxImageSize(const QSize &size); + #endif //QT_NO_IMAGEIO + + bool valid( int x, int y ) const; +qt-bugs@ issue : +bugs.kde.org number : +applied: yes +author: Waldo Bastian + +QTextEdit::zoomIn /QTextEdit::zoomOut does not work if the original +font had its size specified in pixels instead of points. +pointSize() returns 0 in such case. + +Index: widgets/qtextedit.cpp +================================================================================ +--- src/widgets/qtextedit.cpp ++++ src/widgets/qtextedit.cpp +@@ -5774,7 +5774,11 @@ + void QTextEdit::zoomIn( int range ) + { + QFont f( QScrollView::font() ); +- f.setPointSize( QFontInfo(f).pointSize() + range ); ++ QFontInfo fi(f); ++ if (fi.pointSize() <= 0) ++ f.setPixelSize( fi.pixelSize() + range ); ++ else ++ f.setPointSize( fi.pointSize() + range ); + setFont( f ); + } + +@@ -5789,7 +5793,11 @@ + void QTextEdit::zoomOut( int range ) + { + QFont f( QScrollView::font() ); +- f.setPointSize( QMAX( 1, QFontInfo(f).pointSize() - range ) ); ++ QFontInfo fi(f); ++ if (fi.pointSize() <= 0) ++ f.setPixelSize( QMAX( 1, fi.pixelSize() - range ) ); ++ else ++ f.setPointSize( QMAX( 1, fi.pointSize() - range ) ); + setFont( f ); + } + +--- src/kernel/qtranslator.cpp ++++ src/kernel/qtranslator.cpp +@@ -1015,7 +1015,7 @@ + char con[256]; + for ( ;; ) { + t >> len; +- if ( len == 0 ) ++ if ( len == 0 || t.atEnd()) + return QTranslatorMessage(); + t.readRawBytes( con, len ); + con[len] = '\0'; +Index: src/kernel/qgplugin.h +================================================================================ +--- src/kernel/qgplugin.h ++++ src/kernel/qgplugin.h +@@ -90,35 +90,19 @@ + return i->iface(); \ + } + +-# ifdef Q_WS_WIN +-# ifdef Q_CC_BOR +-# define Q_EXPORT_PLUGIN(PLUGIN) \ +- Q_PLUGIN_VERIFICATION_DATA \ +- Q_EXTERN_C __declspec(dllexport) \ +- const char * __stdcall qt_ucm_query_verification_data() \ +- { return qt_ucm_verification_data; } \ +- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* \ +- __stdcall ucm_instantiate() \ +- Q_PLUGIN_INSTANTIATE( PLUGIN ) +-# else +-# define Q_EXPORT_PLUGIN(PLUGIN) \ +- Q_PLUGIN_VERIFICATION_DATA \ +- Q_EXTERN_C __declspec(dllexport) \ +- const char *qt_ucm_query_verification_data() \ +- { return qt_ucm_verification_data; } \ +- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* ucm_instantiate() \ +- Q_PLUGIN_INSTANTIATE( PLUGIN ) +-# endif +-# else +-# define Q_EXPORT_PLUGIN(PLUGIN) \ ++#if defined(Q_WS_WIN) && defined(Q_CC_BOR) ++# define Q_STDCALL __stdcall ++#else ++# define Q_STDCALL ++#endif ++ ++#define Q_EXPORT_PLUGIN(PLUGIN) \ + Q_PLUGIN_VERIFICATION_DATA \ +- Q_EXTERN_C \ +- const char *qt_ucm_query_verification_data() \ ++ Q_EXTERN_C Q_EXPORT \ ++ const char * Q_STDCALL qt_ucm_query_verification_data() \ + { return qt_ucm_verification_data; } \ +- Q_EXTERN_C QUnknownInterface* ucm_instantiate() \ ++ Q_EXTERN_C Q_EXPORT QUnknownInterface* Q_STDCALL ucm_instantiate() \ + Q_PLUGIN_INSTANTIATE( PLUGIN ) +-# endif +- + #endif + + struct QUnknownInterface; +--- src/tools/qglobal.h ++++ src/tools/qglobal.h +@@ -882,6 +882,10 @@ + # define Q_TEMPLATE_EXTERN + # undef Q_DISABLE_COPY /* avoid unresolved externals */ + # endif ++#elif defined(Q_CC_GNU) && __GNUC__ - 0 >= 4 ++# define Q_EXPORT __attribute__((visibility("default"))) ++# undef QT_MAKEDLL /* ignore these for other platforms */ ++# undef QT_DLL + #else + # undef QT_MAKEDLL /* ignore these for other platforms */ + # undef QT_DLL +--- src/widgets/qpopupmenu.cpp ++++ src/widgets/qpopupmenu.cpp +@@ -1391,6 +1391,7 @@ + performDelayedChanges(); + updateSize(TRUE); + QWidget::show(); ++ updateSize(); + popupActive = -1; + if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this)) + d->mouseMoveBuffer = QRegion(); +--- tools/assistant/lib/qassistantclient.cpp ++++ tools/assistant/lib/qassistantclient.cpp +@@ -135,7 +135,7 @@ + : QObject( parent, name ), host ( "localhost" ) + { + if ( path.isEmpty() ) +- assistantCommand = "assistant"; ++ assistantCommand = "/usr/lib/qt3/bin/assistant"; + else { + QFileInfo fi( path ); + if ( fi.isDir() ) +--- src/kernel/qeventloop_unix.cpp ++++ src/kernel/qeventloop_unix.cpp +@@ -517,6 +531,17 @@ + return (tm->tv_sec*1000) + (tm->tv_usec/1000); + } + ++static QString fullName(QObject* obj) ++{ ++ QString oname; ++ if (obj && obj->name()) ++ oname = QString(obj->name()) + "(" + QString(obj->className()) + ")"; ++ ++ if (obj && obj->parent()) ++ return fullName(obj->parent()) + "/" + oname; ++ return oname; ++} ++ + int QEventLoop::activateTimers() + { + if ( !timerList || !timerList->count() ) // no timers +@@ -552,9 +577,27 @@ + t->timeout += t->interval; + if ( t->timeout < currentTime ) + t->timeout = currentTime + t->interval; ++ // prefer system clock ticks for low resolution timers ++ // to save cpu power ++ if (t->interval.tv_sec * 1000 + t->interval.tv_usec / 1000 >= 1000) { ++ timeval drift; ++ drift.tv_sec = 0; ++ drift.tv_usec = (t->interval.tv_usec / 8) + (t->interval.tv_sec % 8) * 1000 * 1000 / 8; ++ timeval synced = t->timeout + drift; ++ if (synced.tv_usec < 2 * drift.tv_usec) ++ synced.tv_usec = 0; ++ t->timeout = synced; ++ } + insertTimer( t ); // relink timer + if ( t->interval.tv_usec > 0 || t->interval.tv_sec > 0 ) + n_act++; ++ ++ if (t->obj && getenv("QT_DEBUG_TIMER")) ++ qDebug("qtimer: %ld/%s %d ms for %p/%s %s", ++ getpid(), qApp && qApp->name() ? qApp->name() : "", ++ t->interval.tv_sec * 1000 + t->interval.tv_usec / 1000, ++ t->obj, fullName(t->obj).latin1(), t->obj->className()); ++ + QTimerEvent e( t->id ); + QApplication::sendEvent( t->obj, &e ); // send event + if ( timerList->findRef( begin ) == -1 ) +Index: src/kernel/qimage.h +=================================================================== +--- src/kernel/qimage.h (revision 594273) ++++ src/kernel/qimage.h (working copy) +@@ -55,7 +55,7 @@ public: + QCString lang; + + bool operator< (const QImageTextKeyLang& other) const +- { return key < other.key || key==other.key && lang < other.lang; } ++ { return key < other.key || (key==other.key && lang < other.lang); } + bool operator== (const QImageTextKeyLang& other) const + { return key==other.key && lang==other.lang; } + }; +--- src/tools/qcstring.h (revision 658213) ++++ src/tools/qcstring.h (working copy) +@@ -161,7 +161,11 @@ public: + + QCString copy() const; + +- QCString &sprintf( const char *format, ... ); ++ QCString &sprintf( const char *format, ... ) ++#if defined(Q_CC_GNU) && !defined(__INSURE__) ++ __attribute__ ((format (printf, 2, 3))) ++#endif ++ ; + + int find( char c, int index=0, bool cs=TRUE ) const; + int find( const char *str, int index=0, bool cs=TRUE ) const; +--- src/kernel/qmngio.cpp.sav 2007-02-23 14:01:19.000000000 +0100 ++++ src/kernel/qmngio.cpp 2007-08-28 15:27:28.000000000 +0200 +@@ -414,8 +414,11 @@ int QMNGFormat::decode( QImage& img, QIm + } + + losttime += losingtimer.elapsed(); +- if ( ndata || !length ) +- mng_display_resume(handle); ++ bool needmore = false; ++ if ( ndata ) { ++ mng_retcode r = mng_display_resume(handle); ++ needmore = ( r == MNG_NEEDMOREDATA ); ++ } + losingtimer.start(); + + image = 0; +@@ -425,6 +428,13 @@ int QMNGFormat::decode( QImage& img, QIm + // Move back unused tail + memcpy(buffer,buffer+ubuffer,nbuffer); + } ++ // "The function should return without processing all the data if it reaches the end of a frame in the input." ++ if( ndata && !needmore ) { ++ length -= ndata; ++ ndata = 0; ++ if( length == 0 ) // 0 means done, process at least one byte ++ length = ndata = 1; ++ } + if ( ndata ) { + // Not all used. + enlargeBuffer(nbuffer+ndata); +--- src/kernel/qtaddons_x11.cpp ++++ src/kernel/qtaddons_x11.cpp +@@ -22,6 +22,10 @@ + * PERFORMANCE OF THIS SOFTWARE. + */ + ++#ifndef QT_CLEAN_NAMESPACE ++#define QT_CLEAN_NAMESPACE ++#endif ++ + #include "qt_x11_p.h" + + #if !defined(QT_NO_XFTFREETYPE) && !defined(QT_XFT2) +--- src/kernel/qt_x11_p.h ++++ src/kernel/qt_x11_p.h +@@ -86,7 +86,7 @@ + + + // the wacom tablet (currently just the IRIX version) +-#if defined (QT_TABLET_SUPPORT) ++#if defined (QT_TABLET_SUPPORT) && defined (QT_CLEAN_NAMESPACE) + # include + #if defined (Q_OS_IRIX) + # include // wacom driver defines for IRIX (quite handy) +--- src/kernel/qwidget_x11.cpp ++++ src/kernel/qwidget_x11.cpp +@@ -38,6 +38,10 @@ + ** + **********************************************************************/ + ++#ifndef QT_CLEAN_NAMESPACE ++#define QT_CLEAN_NAMESPACE ++#endif ++ + #include "qapplication.h" + #include "qapplication_p.h" + #include "qnamespace.h" +--- src/kernel/qfontdatabase.cpp ++++ src/kernel/qfontdatabase.cpp +@@ -2476,11 +2476,14 @@ void QFontDatabase::parseFontName(const + int i = name.find('['); + int li = name.findRev(']'); + +- if (i < li) { ++ if (i > 0 && i + 1 < li) { + foundry = name.mid(i + 1, li - i - 1); + if (name[i - 1] == ' ') + i--; + family = name.left(i); ++ } else { ++ foundry = QString::null; ++ family = name; + } + } else { + foundry = QString::null; +--- src/moc/moc.y 2008-01-15 20:09:13.000000000 +0100 ++++ src/moc/moc.y 2009-02-07 19:35:47.703930527 +0100 +@@ -2833,7 +2833,7 @@ + { + const char *hdr1 = "/****************************************************************************\n" + "** %s meta object code from reading C++ file '%s'\n**\n"; +- const char *hdr2 = "** Created: %s\n" ++ const char *hdr2 = "** Created:\n" + const char *hdr3 = "** WARNING! All changes made in this file will be lost!\n"; + const char *hdr4 = "*****************************************************************************/\n\n"; + int i; +@@ -2872,7 +2872,7 @@ + if ( i >= 0 ) + fn = &g->fileName[i]; + fprintf( out, hdr1, (const char*)qualifiedClassName(),(const char*)fn); +- fprintf( out, hdr2, (const char*)dstr ); ++ fprintf( out, hdr2 ); + fprintf( out, hdr3 ); + fprintf( out, hdr4 ); + +diff -ru src/moc/moc_yacc.cpp src/moc/moc_yacc.cpp +--- src/moc/moc_yacc.cpp 2008-01-14 13:24:36.000000000 +0100 ++++ src/moc/moc_yacc.cpp 2009-02-07 19:35:30.039680400 +0100 +@@ -2872,7 +2872,7 @@ + { + const char *hdr1 = "/****************************************************************************\n" + "** %s meta object code from reading C++ file '%s'\n**\n"; +- const char *hdr2 = "** Created: %s\n" ++ const char *hdr2 = "** Created: \n" + "** by: The Qt MOC ($Id: qt/moc_yacc.cpp 3.3.8 edited Feb 2 14:59 $)\n**\n"; + const char *hdr3 = "** WARNING! All changes made in this file will be lost!\n"; + const char *hdr4 = "*****************************************************************************/\n\n"; +@@ -2912,7 +2912,7 @@ + if ( i >= 0 ) + fn = &g->fileName[i]; + fprintf( out, hdr1, (const char*)qualifiedClassName(),(const char*)fn); +- fprintf( out, hdr2, (const char*)dstr ); ++ fprintf( out, hdr2 ); + fprintf( out, hdr3 ); + fprintf( out, hdr4 ); + +diff -ru tools/designer/uic/embed.cpp tools/designer/uic/embed.cpp +--- tools/designer/uic/embed.cpp 2008-01-15 20:09:14.000000000 +0100 ++++ tools/designer/uic/embed.cpp 2009-02-07 19:36:25.950931409 +0100 +@@ -137,7 +137,7 @@ + for ( it = images.begin(); it != images.end(); ++it ) + out << "** " << *it << "\n"; + out << "**\n"; +- out << "** Created: " << QDateTime::currentDateTime().toString() << "\n"; ++ out << "** Created:\n"; + out << "**\n"; + out << "** WARNING! All changes made in this file will be lost!\n"; + out << "****************************************************************************/\n"; +diff -ru tools/designer/uic/main.cpp tools/designer/uic/main.cpp +--- tools/designer/uic/main.cpp 2008-01-15 20:09:14.000000000 +0100 ++++ tools/designer/uic/main.cpp 2009-02-07 19:36:36.603680916 +0100 +@@ -320,7 +320,7 @@ + out << "/****************************************************************************" << endl; + out << "** Form "<< (impl? "implementation" : "interface") << " generated from reading ui file '" << fileName << "'" << endl; + out << "**" << endl; +- out << "** Created: " << QDateTime::currentDateTime().toString() << endl; ++ out << "** Created:" << endl; + out << "**" << endl; + out << "** WARNING! All changes made in this file will be lost!" << endl; + out << "****************************************************************************/" << endl << endl; +Index: src/tools/qvaluevector.h +=================================================================== +--- src/tools/qvaluevector.h.orig 2008-01-15 20:09:13.000000000 +0100 ++++ src/tools/qvaluevector.h 2011-03-31 20:15:15.904712567 +0200 +@@ -246,7 +246,7 @@ public: + typedef const value_type& const_reference; + typedef size_t size_type; + #ifndef QT_NO_STL +- typedef ptrdiff_t difference_type; ++ typedef std::ptrdiff_t difference_type; + #else + typedef int difference_type; + #endif +Index: src/tools/qmap.h +=================================================================== +--- src/tools/qmap.h.orig 2008-01-15 20:09:13.000000000 +0100 ++++ src/tools/qmap.h 2011-03-31 20:24:35.802101605 +0200 +@@ -108,7 +108,7 @@ class QMapIterator + #endif + typedef T value_type; + #ifndef QT_NO_STL +- typedef ptrdiff_t difference_type; ++ typedef std::ptrdiff_t difference_type; + #else + typedef int difference_type; + #endif +@@ -224,7 +224,7 @@ class QMapConstIterator + #endif + typedef T value_type; + #ifndef QT_NO_STL +- typedef ptrdiff_t difference_type; ++ typedef std::ptrdiff_t difference_type; + #else + typedef int difference_type; + #endif +@@ -605,7 +605,7 @@ public: + typedef value_type& reference; + typedef const value_type& const_reference; + #ifndef QT_NO_STL +- typedef ptrdiff_t difference_type; ++ typedef std::ptrdiff_t difference_type; + #else + typedef int difference_type; + #endif +commit 1ee1ffbae69dc78721af139f0794628571fd35ef +Author: Slávek Banko +Date: 1386900429 +0100 + + Fix FTBFS with libfreetype6 >= 2.5.x + This resolves Bug 1765 + +diff --git a/config.tests/x11/xfreetype.test b/config.tests/x11/xfreetype.test +index 5cabc32..d4cb4ba 100755 +--- config.tests/x11/xfreetype.test ++++ config.tests/x11/xfreetype.test +@@ -116,12 +116,15 @@ fi + # check for freetype2 headers + FREETYPE2_INCDIR= + if [ "$XFT" = "yes" ]; then +- INC="freetype2/freetype/freetype.h" + XDIRS=`sed -n -e '/^QMAKE_INCDIR_X11[ ]*=/ { s/[^=]*=[ ]*//; s/-I/ /g; p; }' $XCONFIG` + LDIRS=`sed -n -e '/^QMAKE_INCDIR[ ]*=/ { s/[^=]*=[ ]*//; s/-I/ /g; p; }' $XCONFIG` + INCDIRS="$IN_INCDIRS $XDIRS $LDIRS /usr/include /include" + F= + for INCDIR in $INCDIRS; do ++ INC="freetype2/freetype/freetype.h" # libfreetype <= 2.4.9-1.1 ++ if ! [ -f $INCDIR/$INC ]; then ++ INC="freetype2/freetype.h" # libfreetype >= 2.5.1-1 ++ fi + if [ -f $INCDIR/$INC ]; then + # detect major version of freetype2 + FREETYPE_MAJOR=`grep "#define FREETYPE_MAJOR" $INCDIR/$INC | head -n 1 | awk '{ print \$3 }'` +--- qmake/project.cpp.orig 2015-04-10 17:15:10.731091347 +0200 ++++ qmake/project.cpp 2013-12-30 17:58:15.471703644 +0100 +@@ -685,7 +685,7 @@ + // fprintf(stderr,"Current QT version number: " + ver + "\n"); + if (ver != "" && ver != test_version) { + ver = test_version; +- fprintf(stderr,"Changed QT version number to " + test_version + "!\n"); ++ fprintf(stderr,"Changed QT version number to %s!\n", test_version.ascii()); + } + } + } -- cgit v1.2.1