diff --git a/redhat/tqt3/0084-compositing-properties.patch b/redhat/tqt3/0084-compositing-properties.patch new file mode 100644 index 000000000..368b6c267 --- /dev/null +++ b/redhat/tqt3/0084-compositing-properties.patch @@ -0,0 +1,80 @@ +qt-bugs@ issue : none +bugs.kde.org number : none +applied: no +author: Lubos Lunak + +This patch makes override-redirect windows (popup menu, dropdown menu, +tooltip, combobox, etc.) also have more window properties like WM_CLASS, +so they can be used when compositing. + +--- src/kernel/qwidget_x11.cpp.sav 2007-06-25 10:36:42.000000000 +0200 ++++ src/kernel/qwidget_x11.cpp 2007-10-02 15:30:13.000000000 +0200 +@@ -557,7 +557,10 @@ void QWidget::create( WId window, bool i + wsa.save_under = True; + XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder, + &wsa ); +- x11SetWindowType(); ++ XClassHint class_hint; ++ class_hint.res_name = (char *) qAppName(); // application name ++ class_hint.res_class = (char *) qAppClass(); // application class ++ XSetClassHint( dpy, id, &class_hint ); + } else if ( topLevel && !desktop ) { // top-level widget + QWidget *p = parentWidget(); // real parent + if (p) +@@ -620,8 +623,6 @@ void QWidget::create( WId window, bool i + else + XDeleteProperty(dpy, id, qt_xa_motif_wm_hints); + +- x11SetWindowType(); +- + // set _NET_WM_WINDOW_STATE + if (curr_winstate > 0) + XChangeProperty(dpy, id, qt_net_wm_state, XA_ATOM, 32, PropModeReplace, +@@ -629,11 +630,6 @@ void QWidget::create( WId window, bool i + else + XDeleteProperty(dpy, id, qt_net_wm_state); + +- // set _NET_WM_PID +- long curr_pid = getpid(); +- XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace, +- (unsigned char *) &curr_pid, 1); +- + #ifndef QT_NO_XSYNC + // set _NET_WM_SYNC_COUNTER + createSyncCounter(); +@@ -645,19 +641,31 @@ void QWidget::create( WId window, bool i + // when we create a toplevel widget, the frame strut should be dirty + fstrut_dirty = 1; + ++ } else { ++ // non-toplevel widgets don't have a frame, so no need to ++ // update the strut ++ fstrut_dirty = 0; ++ } ++ ++ if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows ++ x11SetWindowType(); ++ ++ // set _NET_WM_PID ++ long curr_pid = getpid(); ++ XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace, ++ (unsigned char *) &curr_pid, 1); ++ + // declare the widget's object name as window role + XChangeProperty( dpy, id, + qt_window_role, XA_STRING, 8, PropModeReplace, + (unsigned char *)name(), qstrlen( name() ) ); + + // set client leader property ++ if ( !qt_x11_wm_client_leader ) ++ qt_x11_create_wm_client_leader(); + XChangeProperty( dpy, id, qt_wm_client_leader, + XA_WINDOW, 32, PropModeReplace, + (unsigned char *)&qt_x11_wm_client_leader, 1 ); +- } else { +- // non-toplevel widgets don't have a frame, so no need to +- // update the strut +- fstrut_dirty = 0; + } + + if ( initializeWindow ) { diff --git a/redhat/tqt3/assistant3.desktop b/redhat/tqt3/assistant3.desktop new file mode 100644 index 000000000..49e718c5d --- /dev/null +++ b/redhat/tqt3/assistant3.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Qt3 Assistant +Comment=Add translations to Qt3 applications +Exec=assistant +Icon=assistant3 +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Development; diff --git a/redhat/tqt3/designer3.desktop b/redhat/tqt3/designer3.desktop new file mode 100644 index 000000000..23f1f549a --- /dev/null +++ b/redhat/tqt3/designer3.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Qt3 Designer +GenericName=Interface Designer +Comment=Design GUIs for Qt3 applications +Exec=designer +Icon=designer3 +MimeType=application/x-designer; +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Development; diff --git a/redhat/tqt3/linguist3.desktop b/redhat/tqt3/linguist3.desktop new file mode 100644 index 000000000..c6fce02c8 --- /dev/null +++ b/redhat/tqt3/linguist3.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Qt3 Linguist +Comment=Add translations to Qt3 applications +Exec=linguist +Icon=linguist3 +MimeType=application/x-linguist; +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Development; diff --git a/redhat/tqt3/qt-3.1.0-makefile.patch b/redhat/tqt3/qt-3.1.0-makefile.patch new file mode 120000 index 000000000..7d8ae65a2 --- /dev/null +++ b/redhat/tqt3/qt-3.1.0-makefile.patch @@ -0,0 +1 @@ +../qt3/qt-3.1.0-makefile.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-3.3.4-print-CJK.patch b/redhat/tqt3/qt-3.3.4-print-CJK.patch new file mode 120000 index 000000000..99cdc6e1d --- /dev/null +++ b/redhat/tqt3/qt-3.3.4-print-CJK.patch @@ -0,0 +1 @@ +../qt3/qt-3.3.4-print-CJK.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-3.3.6-fontrendering-gu-228452.patch b/redhat/tqt3/qt-3.3.6-fontrendering-gu-228452.patch new file mode 120000 index 000000000..b015af122 --- /dev/null +++ b/redhat/tqt3/qt-3.3.6-fontrendering-gu-228452.patch @@ -0,0 +1 @@ +../qt3/qt-3.3.6-fontrendering-gu-228452.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-3.3.6-fontrendering-ml_IN-209974.patch b/redhat/tqt3/qt-3.3.6-fontrendering-ml_IN-209974.patch new file mode 120000 index 000000000..388a5cbe5 --- /dev/null +++ b/redhat/tqt3/qt-3.3.6-fontrendering-ml_IN-209974.patch @@ -0,0 +1 @@ +../qt3/qt-3.3.6-fontrendering-ml_IN-209974.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-3.3.6-fontrendering-te_IN-211259.patch b/redhat/tqt3/qt-3.3.6-fontrendering-te_IN-211259.patch new file mode 120000 index 000000000..93c6ba3d8 --- /dev/null +++ b/redhat/tqt3/qt-3.3.6-fontrendering-te_IN-211259.patch @@ -0,0 +1 @@ +../qt3/qt-3.3.6-fontrendering-te_IN-211259.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-3.3.8-fontrendering-as_IN-209972.patch b/redhat/tqt3/qt-3.3.8-fontrendering-as_IN-209972.patch new file mode 120000 index 000000000..4ded8f792 --- /dev/null +++ b/redhat/tqt3/qt-3.3.8-fontrendering-as_IN-209972.patch @@ -0,0 +1 @@ +../qt3/qt-3.3.8-fontrendering-as_IN-209972.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-x11-free-3.3.4-fullscreen.patch b/redhat/tqt3/qt-x11-free-3.3.4-fullscreen.patch new file mode 120000 index 000000000..09d41d4b3 --- /dev/null +++ b/redhat/tqt3/qt-x11-free-3.3.4-fullscreen.patch @@ -0,0 +1 @@ +../qt3/qt-x11-free-3.3.4-fullscreen.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch b/redhat/tqt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch new file mode 120000 index 000000000..f8342f9f9 --- /dev/null +++ b/redhat/tqt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch @@ -0,0 +1 @@ +../qt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-x11-free-3.3.6-strip.patch b/redhat/tqt3/qt-x11-free-3.3.6-strip.patch new file mode 120000 index 000000000..7121216bc --- /dev/null +++ b/redhat/tqt3/qt-x11-free-3.3.6-strip.patch @@ -0,0 +1 @@ +../qt3/qt-x11-free-3.3.6-strip.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-x11-free-3.3.7-arm.patch b/redhat/tqt3/qt-x11-free-3.3.7-arm.patch new file mode 120000 index 000000000..b7682272a --- /dev/null +++ b/redhat/tqt3/qt-x11-free-3.3.7-arm.patch @@ -0,0 +1 @@ +../qt3/qt-x11-free-3.3.7-arm.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-x11-free-3.3.8b-typo.patch b/redhat/tqt3/qt-x11-free-3.3.8b-typo.patch new file mode 120000 index 000000000..4e2537345 --- /dev/null +++ b/redhat/tqt3/qt-x11-free-3.3.8b-typo.patch @@ -0,0 +1 @@ +../qt3/qt-x11-free-3.3.8b-typo.patch \ No newline at end of file diff --git a/redhat/tqt3/qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch b/redhat/tqt3/qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch new file mode 100644 index 000000000..5e5d9773a --- /dev/null +++ b/redhat/tqt3/qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch @@ -0,0 +1,134 @@ +diff -Nur qt-x11-free-3.3.5.orig/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp qt-x11-free-3.3.5/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp +--- qt-x11-free-3.3.5.orig/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp 2005-10-13 16:09:36.000000000 +0200 ++++ qt-x11-free-3.3.5/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp 2005-10-13 16:09:31.000000000 +0200 +@@ -306,8 +306,8 @@ + + currentIMKey = key; + +- qDebug( "QMultiInputContext::changeInputMethod(): index=%d, slave=%s", +- imIndex, (const char *)_slave->identifierName() ); ++ /* qDebug( "QMultiInputContext::changeInputMethod(): index=%d, slave=%s", ++ imIndex, (const char *)_slave->identifierName() ); */ + } + } + +diff -Nur qt-x11-free-3.3.5.orig/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp qt-x11-free-3.3.5/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp +--- qt-x11-free-3.3.5.orig/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp 2005-10-13 16:09:36.000000000 +0200 ++++ qt-x11-free-3.3.5/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp 2005-10-13 16:09:31.000000000 +0200 +@@ -140,7 +140,7 @@ + // only one character. See description of + // QInputContext::filterEvent() about key compression. + val = text[0].unicode(); +- qDebug( "str = %s", (const char*)keyevent->text().local8Bit() ); ++ // qDebug( "str = %s", (const char*)keyevent->text().local8Bit() ); + } + + // Store value +@@ -164,14 +164,14 @@ + + void QSimpleInputContext::setFocus() + { +- qDebug( "QSimpleInputContext: %p->setFocus(), focusWidget()=%p", +- this, focusWidget() ); ++ /* qDebug( "QSimpleInputContext: %p->setFocus(), focusWidget()=%p", ++ this, focusWidget() ); */ + } + + void QSimpleInputContext::unsetFocus() + { +- qDebug( "QSimpleInputContext: %p->unsetFocus(), focusWidget()=%p", +- this, focusWidget() ); ++ /* qDebug( "QSimpleInputContext: %p->unsetFocus(), focusWidget()=%p", ++ this, focusWidget() ); */ + reset(); + } + +@@ -188,8 +188,8 @@ + case QEvent::MouseButtonRelease: + case QEvent::MouseButtonDblClick: + case QEvent::MouseMove: +- qDebug( "QSimpleInputContext::mouseHandler: " +- "x=%d, type=%d, button=%d, state=%d", x, type, button, state ); ++ /* qDebug( "QSimpleInputContext::mouseHandler: " ++ "x=%d, type=%d, button=%d, state=%d", x, type, button, state ); */ + break; + default: + break; +@@ -240,7 +240,7 @@ + + // no entries were found + if ( p == composeTable->data + composeTable->size ) { +- qDebug( "no match" ); ++ // qDebug( "no match" ); + clearComposeBuffer(); + return FALSE; + } +@@ -250,18 +250,18 @@ + + // check if partial match + if ( composeBuffer[i] == 0 && p->keys[i] ) { +- qDebug("partial match"); ++ // qDebug("partial match"); + return TRUE; + } + + if ( composeBuffer[i] != p->keys[i] ) { +- qDebug("different entry"); ++ // qDebug("different entry"); + clearComposeBuffer(); + return i!=0; + } + } + +- qDebug("match exactly"); ++ // qDebug("match exactly"); + + // match exactly + commitChar( p->value ); +diff -Nur qt-x11-free-3.3.5.orig/src/kernel/qinputcontext.cpp qt-x11-free-3.3.5/src/kernel/qinputcontext.cpp +--- qt-x11-free-3.3.5.orig/src/kernel/qinputcontext.cpp 2005-10-13 16:09:37.000000000 +0200 ++++ qt-x11-free-3.3.5/src/kernel/qinputcontext.cpp 2005-10-13 16:09:31.000000000 +0200 +@@ -526,17 +526,17 @@ + return; + + if ( type == QEvent::IMStart ) { +- qDebug( "sending IMStart with %d chars to %p", +- text.length(), receiver ); ++ /* qDebug( "sending IMStart with %d chars to %p", ++ text.length(), receiver ); */ + event = new QIMEvent( type, text, cursorPosition ); + } else if ( type == QEvent::IMEnd ) { +- qDebug( "sending IMEnd with %d chars to %p, text=%s", +- text.length(), receiver, (const char*)text.local8Bit() ); ++ /* qDebug( "sending IMEnd with %d chars to %p, text=%s", ++ text.length(), receiver, (const char*)text.local8Bit() ); */ + event = new QIMEvent( type, text, cursorPosition ); + } else if ( type == QEvent::IMCompose ) { +- qDebug( "sending IMCompose to %p with %d chars, cpos=%d, sellen=%d, text=%s", ++ /* qDebug( "sending IMCompose to %p with %d chars, cpos=%d, sellen=%d, text=%s", + receiver, text.length(), cursorPosition, selLength, +- (const char*)text.local8Bit() ); ++ (const char*)text.local8Bit() ); */ + event = new QIMComposeEvent( type, text, cursorPosition, selLength ); + } + +--- qt-x11-free-3.3.5/plugins/src/inputmethods/xim/qximinputcontext_x11.cpp.quiet 2005-10-13 19:00:56.000000000 +0200 ++++ qt-x11-free-3.3.5/plugins/src/inputmethods/xim/qximinputcontext_x11.cpp 2005-10-25 15:36:43.000000000 +0200 +@@ -356,7 +356,7 @@ + #if !defined(QT_NO_XIM) + fontsetRefCount++; + if (! qt_xim) { +- qWarning("QInputContext: no input method context available"); ++ // qWarning("QInputContext: no input method context available"); + return; + } + +@@ -742,7 +742,7 @@ + + void QXIMInputContext::close( const QString &errMsg ) + { +- qDebug( errMsg ); ++ // qDebug( errMsg ); + emit deletionRequested(); + } + diff --git a/redhat/tqt3/qt-x11-immodule-unified-qt3.3.8-20071116.diff.bz2 b/redhat/tqt3/qt-x11-immodule-unified-qt3.3.8-20071116.diff.bz2 new file mode 100644 index 000000000..7c122a375 Binary files /dev/null and b/redhat/tqt3/qt-x11-immodule-unified-qt3.3.8-20071116.diff.bz2 differ diff --git a/redhat/tqt3/qt.csh b/redhat/tqt3/qt.csh new file mode 100755 index 000000000..7efcd89c5 --- /dev/null +++ b/redhat/tqt3/qt.csh @@ -0,0 +1,34 @@ +# Qt initialization script (csh) + +# In multilib environments there is a preferred architecture, 64 bit over 32 bit in x86_64, +# When a conflict is found between two packages corresponding with different arches, +# the installed file is the one from the preferred arch. This is very common for executables +# in /usr/bin, for example. If the file /usr/bin/foo is found in an x86_64 package and in an +# i386 package, the executable from x86_64 will be installe + +if ( $?QTDIR ) then + exit +endif + +switch (`uname -m`) + case x86_64: + case ia64: + case s390x: + case ppc64: + set QTPREFIXES = "/usr/lib64/qt-3.3 /usr/lib/qt-3.3" + breaksw + case *: + set QTPREFIXES = "/usr/lib/qt-3.3 /usr/lib64/qt-3.3" +endsw + +foreach QTPREFIX ( $QTPREFIXES ) + test -d "$QTPREFIX" && setenv QTDIR $QTPREFIX && break +end +unset QTPREFIX QTPREFIXES + +if ( "${path}" !~ *$QTDIR/bin* ) then + set path = ( $QTDIR/bin $path ) +endif + +setenv QTINC $QTDIR/include +setenv QTLIB $QTDIR/lib diff --git a/redhat/tqt3/qt.sh b/redhat/tqt3/qt.sh new file mode 100755 index 000000000..88b3e0cea --- /dev/null +++ b/redhat/tqt3/qt.sh @@ -0,0 +1,32 @@ +# Qt initialization script (sh) + +# In multilib environments there is a preferred architecture, 64 bit over 32 bit in x86_64, +# When a conflict is found between two packages corresponding with different arches, +# the installed file is the one from the preferred arch. This is very common for executables +# in /usr/bin, for example. If the file /usr/bin/foo is found in an x86_64 package and in an +# i386 package, the executable from x86_64 will be installe + +if [ -z "${QTDIR}" ]; then + +case `uname -m` in + x86_64 | ia64 | s390x | ppc64 ) + QT_PREFIXES="/usr/lib64/qt-3.3 /usr/lib/qt-3.3" ;; + * ) + QT_PREFIXES="/usr/lib/qt-3.3 /usr/lib64/qt-3.3" ;; +esac + +for QTDIR in ${QT_PREFIXES} ; do + test -d "${QTDIR}" && break +done +unset QT_PREFIXES + +if ! echo ${PATH} | /bin/grep -q $QTDIR/bin ; then + PATH=$QTDIR/bin:${PATH} +fi + +QTINC="$QTDIR/include" +QTLIB="$QTDIR/lib" + +export QTDIR QTINC QTLIB PATH + +fi diff --git a/redhat/tqt3/qt3-3.3.8.d-updates_zh-tw_translations.patch b/redhat/tqt3/qt3-3.3.8.d-updates_zh-tw_translations.patch new file mode 120000 index 000000000..06a4852dc --- /dev/null +++ b/redhat/tqt3/qt3-3.3.8.d-updates_zh-tw_translations.patch @@ -0,0 +1 @@ +../qt3/qt3-3.3.8.d-updates_zh-tw_translations.patch \ No newline at end of file diff --git a/redhat/tqt3/qtconfig3.desktop b/redhat/tqt3/qtconfig3.desktop new file mode 100644 index 000000000..11df0abab --- /dev/null +++ b/redhat/tqt3/qtconfig3.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Qt3 Config +Comment=Configure Qt3 behavior, styles, fonts +Exec=qtconfig +Icon=qtconfig3 +Terminal=false +Encoding=UTF-8 +Type=Application +Categories=Qt;Settings; diff --git a/redhat/tqt3/tqt3-3.4.0-embed.patch b/redhat/tqt3/tqt3-3.4.0-embed.patch new file mode 100644 index 000000000..10d7704ae --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-embed.patch @@ -0,0 +1,10 @@ +--- tqt3/tools/qembed/qembed.pro.qembed 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/tools/qembed/qembed.pro 2012-02-13 21:26:57.417973392 +0100 +@@ -3,5 +3,7 @@ + TARGET = qembed + REQUIRES=full-config nocrosscompiler + ++DESTDIR = ../../bin + target.path = $$bins.path + INSTALLS += target ++ diff --git a/redhat/tqt3/tqt3-3.4.0-fontrendering-#214570.patch b/redhat/tqt3/tqt3-3.4.0-fontrendering-#214570.patch new file mode 100644 index 000000000..77ca43101 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-fontrendering-#214570.patch @@ -0,0 +1,23 @@ +--- tqt3/src/kernel/qscriptengine_x11.cpp.fontrendering-#214570 2012-02-13 21:41:17.792005290 +0100 ++++ tqt3/src/kernel/qscriptengine_x11.cpp 2012-02-13 21:42:38.785202528 +0100 +@@ -1243,7 +1243,7 @@ + int script = item->script; + Q_ASSERT(script >= TQFont::Devanagari && script <= TQFont::Sinhala); + const unsigned short script_base = 0x0900 + 0x80*(script-TQFont::Devanagari); +- const unsigned short ra = script_base + 0x30; ++ unsigned short ra = script_base + 0x30; //it was const unsigned short ra before modification + const unsigned short halant = script_base + 0x4d; + const unsigned short nukta = script_base + 0x3c; + +@@ -1291,6 +1291,11 @@ + } + #endif + ++ unsigned short *chkAssamese=reordered.data(); ++ if((script == TQFont::Bengali) && (*chkAssamese==0x09F0)) //if it is assamese ra ++ { ++ ra = script_base + 0x70; ++ } + if (len != 1) { + unsigned short *uc = reordered.data(); + bool beginsWithRa = FALSE; diff --git a/redhat/tqt3/tqt3-3.4.0-fontrendering-214371.patch b/redhat/tqt3/tqt3-3.4.0-fontrendering-214371.patch new file mode 100644 index 000000000..9dca7998d --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-fontrendering-214371.patch @@ -0,0 +1,15 @@ +diff -pruN qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp +--- qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp 2006-12-04 18:47:11.000000000 +0530 ++++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-12-05 12:05:10.000000000 +0530 +@@ -1412,7 +1412,10 @@ static bool indic_shape_syllable(QOpenTy + toPos += 2; + if (script == QFont::Devanagari || script == QFont::Gujarati || script == QFont::Bengali) { + if (matra_position == Post || matra_position == Split) { +- toPos = matra+1; ++ if (matra_position == Post ) ++ toPos = matra; ++ else ++ toPos = matra+1; + matra -= 2; + } + } else if (script == QFont::Kannada) { diff --git a/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-209097.patch b/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-209097.patch new file mode 100644 index 000000000..cdb543b25 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-209097.patch @@ -0,0 +1,60 @@ +--- tqt3/src/kernel/qscriptengine_x11.cpp.fontrendering-ml_IN-bz#209097 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/src/kernel/qscriptengine_x11.cpp 2012-02-13 21:36:07.227917886 +0100 +@@ -871,7 +871,7 @@ + None, None, None, None, + None, None, None, Post, + +- Post, None, Below, None, ++ None, None, None, None, + None, Post, None, None, + None, None, None, None, + None, None, Post, Post, +@@ -1274,6 +1274,16 @@ + int base = 0; + int reph = -1; + ++ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam ++ bool is_special_conjuction_malayalam = false; ++ ++ if ((len == 3) && ++ ((reordered[2] == 0x0d30) || (reordered[2] == 0x0d31)) && ++ (reordered[1] == 0x0d4d) && ++ ((reordered[0] >= 0x0d15) && (reordered[0] <= 0x0d39))) { ++ is_special_conjuction_malayalam = true; ++ } ++ + #ifdef INDIC_DEBUG + IDEBUG("original:"); + for (i = 0; i < len; i++) { +@@ -1550,6 +1560,15 @@ + reph = i; + } + ++ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam ++ if (is_special_conjuction_malayalam) { ++ unsigned short temp; ++ ++ temp = reordered[0]; ++ reordered[0] = reordered[2]; ++ reordered[2] = temp; ++ } ++ + if (item->font->stringToCMap((const TQChar *)reordered.data(), len, item->glyphs, item->advances, + &item->num_glyphs, item->flags & TQTextEngine::RightToLeft) != TQFontEngine::NoError) + return FALSE; +@@ -1661,6 +1680,15 @@ + + // halant always applies + ++ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam ++ if (is_special_conjuction_malayalam) { ++ unsigned int temp; ++ ++ temp = properties[0]; ++ properties[0] = ~PreSubstProperty; ++ properties[2] = temp; ++ } ++ + #ifdef INDIC_DEBUG + { + IDEBUG("OT properties:"); diff --git a/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-217657.patch b/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-217657.patch new file mode 100644 index 000000000..276441c22 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-217657.patch @@ -0,0 +1,11 @@ +--- tqt3/src/kernel/qfont_x11.cpp.fontrendering-ml_IN-217657 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/src/kernel/qfont_x11.cpp 2012-02-13 21:45:39.903520249 +0100 +@@ -712,7 +712,7 @@ + if ( script >= TQFont::Arabic && script <= TQFont::Khmer ) { + // complex script shaping. Have to do some hard work + int from = TQMAX( 0, pos - 8 ); +- int to = TQMIN( (int)str.length(), pos + 8 ); ++ int to = str.length(); + TQConstString cstr( str.unicode()+from, to-from); + TQTextEngine layout( cstr.string(), d ); + layout.itemize( TQTextEngine::WidthOnly ); diff --git a/redhat/tqt3/tqt3-3.4.0-nodebug.patch b/redhat/tqt3/tqt3-3.4.0-nodebug.patch new file mode 100644 index 000000000..ccfd411ff --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-nodebug.patch @@ -0,0 +1,15 @@ +--- tqt3/src/tools/qgpluginmanager.cpp.ndebug 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/src/tools/qgpluginmanager.cpp 2012-02-13 19:25:05.653477747 +0100 +@@ -506,10 +506,12 @@ + (*f).latin1(), + (const char*) TQFile::encodeName( old->library() ) ); + } else { ++/* + qWarning("%s: Feature %s already defined in %s!", + (const char*) TQFile::encodeName( old->library() ), + (*f).latin1(), + (const char*) TQFile::encodeName( plugin->library() ) ); ++*/ + } + } + } diff --git a/redhat/tqt3/tqt3-3.4.0-odbc.patch b/redhat/tqt3/tqt3-3.4.0-odbc.patch new file mode 100644 index 000000000..3a5aea885 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-odbc.patch @@ -0,0 +1,18 @@ +--- tqt3/src/sql/drivers/odbc/qsql_odbc.cpp.odbc 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/src/sql/drivers/odbc/qsql_odbc.cpp 2012-02-13 21:47:25.232367854 +0100 +@@ -61,13 +61,13 @@ + #endif + + // newer platform SDKs use SQLLEN instead of SQLINTEGER +-#ifdef SQLLEN ++#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX) + # define TQSQLLEN SQLLEN + #else + # define TQSQLLEN SQLINTEGER + #endif + +-#ifdef SQLULEN ++#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX) + # define TQSQLULEN SQLULEN + #else + # define TQSQLULEN SQLUINTEGER diff --git a/redhat/tqt3/tqt3-3.4.0-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch b/redhat/tqt3/tqt3-3.4.0-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch new file mode 100644 index 000000000..88e066aa9 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch @@ -0,0 +1,92 @@ +--- qt-x11-free-3.3.6/src/widgets/qtextedit.cpp.preedit 2006-06-28 17:18:08.000000000 +0200 ++++ qt-x11-free-3.3.6/src/widgets/qtextedit.cpp 2006-06-28 17:20:09.000000000 +0200 +@@ -1906,9 +1906,6 @@ + + void TQTextEdit::removeSelectedText( int selNum ) + { +- if(selNum != 0) +- resetInputContext(); +- + TQTextCursor c1 = doc->selectionStartCursor( selNum ); + c1.restoreState(); + TQTextCursor c2 = doc->selectionEndCursor( selNum ); +@@ -3171,7 +3168,6 @@ + return; + } + #endif +- resetInputContext(); + TQTextParagraph *p = doc->paragAt( para ); + if ( !p ) + return; +@@ -3198,7 +3194,6 @@ + return; + } + #endif +- resetInputContext(); + for ( int i = 0; i < (int)doc->numSelections(); ++i ) + doc->removeSelection( i ); + +@@ -3240,7 +3235,6 @@ + if ( d->optimMode ) + return; + #endif +- resetInputContext(); + TQTextParagraph *p = doc->paragAt( para ); + if ( !p ) + return; +@@ -3285,7 +3279,6 @@ + if ( isReadOnly() || !doc->commands()->isUndoAvailable() || !undoEnabled ) + return; + +- resetInputContext(); + for ( int i = 0; i < (int)doc->numSelections(); ++i ) + doc->removeSelection( i ); + +@@ -3336,7 +3329,6 @@ + if ( isReadOnly() || !doc->commands()->isRedoAvailable() || !undoEnabled ) + return; + +- resetInputContext(); + for ( int i = 0; i < (int)doc->numSelections(); ++i ) + doc->removeSelection( i ); + +@@ -3450,7 +3442,6 @@ + { + if ( isReadOnly() ) + return; +- resetInputContext(); + normalCopy(); + removeSelectedText(); + updateMicroFocusHint(); +@@ -3938,7 +3929,6 @@ + return; + } + #endif +- resetInputContext(); + if ( !isModified() && isReadOnly() && + this->context() == context && this->text() == text ) + return; +@@ -4112,7 +4102,6 @@ + if ( !p ) + return; + +- resetInputContext(); + if ( index > p->length() - 1 ) + index = p->length() - 1; + +@@ -4169,7 +4158,6 @@ + return; + } + #endif +- resetInputContext(); + if ( doc->hasSelection( selNum ) ) { + doc->removeSelection( selNum ); + repaintChanged(); +@@ -5072,7 +5060,6 @@ + { + if ( dc == doc ) + return; +- resetInputContext(); + doc = dc; + delete cursor; + cursor = new QTextCursor( doc ); diff --git a/redhat/tqt3/tqt3-3.4.0-quiet.patch b/redhat/tqt3/tqt3-3.4.0-quiet.patch new file mode 100644 index 000000000..cb6080ab5 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-quiet.patch @@ -0,0 +1,13 @@ +--- tqt3/src/kernel/qpixmap_x11.cpp.quiet 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/src/kernel/qpixmap_x11.cpp 2012-02-13 21:24:08.190653338 +0100 +@@ -394,8 +394,8 @@ + { + #if defined(QT_CHECK_STATE) + if ( qApp->type() == TQApplication::Tty ) { +- qWarning( "TQPixmap: Cannot create a TQPixmap when no GUI " +- "is being used" ); ++// qWarning( "TQPixmap: Cannot create a TQPixmap when no GUI " ++// "is being used" ); + } + #endif + diff --git a/redhat/tqt3/tqt3-3.4.0-uic-nostdlib.patch b/redhat/tqt3/tqt3-3.4.0-uic-nostdlib.patch new file mode 100644 index 000000000..39a42e6f5 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-uic-nostdlib.patch @@ -0,0 +1,12 @@ +--- qt-x11-free-3.3.2/tools/designer/uic/main.cpp.sopwith 2004-06-16 17:14:17.000000000 -0400 ++++ qt-x11-free-3.3.2/tools/designer/uic/main.cpp 2004-06-16 17:21:43.000000000 -0400 +@@ -149,6 +149,9 @@ + } else { + trmacro = &opt[1]; + } ++ } else if ( opt == "nostdlib") { ++ TQStringList x; ++ TQApplication::setLibraryPaths(x); + } else if ( opt == "L" ) { + if ( !(n < argc-1) ) { + error = "Missing plugin path."; diff --git a/redhat/tqt3/tqt3-3.4.0-umask.patch b/redhat/tqt3/tqt3-3.4.0-umask.patch new file mode 100644 index 000000000..9c24f9903 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0-umask.patch @@ -0,0 +1,14 @@ +--- tqt3/src/tools/qsettings.cpp.umask 2012-02-13 19:10:01.000000000 +0100 ++++ tqt3/src/tools/qsettings.cpp 2012-02-13 19:28:00.802555882 +0100 +@@ -997,7 +997,10 @@ + #endif + + TQFile file( filename + ".tmp" ); +- if (! file.open(IO_WriteOnly)) { ++ mode_t old_umask = umask(0022); ++ bool f = file.open(IO_WriteOnly); ++ umask(old_umask); ++ if (! f) { + + #ifdef QT_CHECK_STATE + qWarning("TQSettings::sync: failed to open '%s' for writing", diff --git a/redhat/tqt3/tqt3-3.4.0.spec b/redhat/tqt3/tqt3-3.4.0.spec new file mode 100644 index 000000000..87d7d2bd4 --- /dev/null +++ b/redhat/tqt3/tqt3-3.4.0.spec @@ -0,0 +1,678 @@ +# Always install under standard prefix +%define _prefix /usr + +# This allows the legacy RHEL/Fedora patches to apply in TDE version. +%define _default_patch_fuzz 2 + +# The following QT4 packages should NOT be installed to +# allow QT3 compilation (please uninstall them prior to compile) +# qt +# qt-sqlite +# qt-mysql +# qt-x11 +# qt-devel +# ...maybe others !!!! + +%define _default_patch_fuzz 2 + +Summary: The shared library for the Qt 3 GUI toolkit +Version: 3.4.0 +Release: 1%{?dist} +Name: tqt3 + +Obsoletes: qt < 1:%{version}-%{release} +Provides: qt = 1:%{version}-%{release} +Obsoletes: qt3 < 1:%{version}-%{release} +Provides: qt3 = 1:%{version}-%{release} + +License: QPL or GPLv2 or GPLv3 +Group: System Environment/Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Url: http://www.troll.no +Source0: %{name}-%{version}.tar.gz +Source2: qt.sh +Source3: qt.csh +Source4: designer3.desktop +Source5: assistant3.desktop +Source6: linguist3.desktop +Source7: qtconfig3.desktop + +Patch1: qt-3.3.4-print-CJK.patch +Patch2: tqt3-3.4.0-nodebug.patch +Patch3: qt-3.1.0-makefile.patch +Patch4: tqt3-3.4.0-umask.patch +Patch5: qt-x11-free-3.3.6-strip.patch +Patch7: tqt3-3.4.0-quiet.patch +Patch8: tqt3-3.4.0-embed.patch +Patch12: tqt3-3.4.0-uic-nostdlib.patch +Patch13: qt-x11-free-3.3.6-qfontdatabase_x11.patch +Patch27: tqt3-3.4.0-fontrendering-ml_IN-209097.patch +Patch29: qt-3.3.8-fontrendering-as_IN-209972.patch +Patch31: qt-3.3.6-fontrendering-te_IN-211259.patch +Patch32: tqt3-3.4.0-fontrendering-214371.patch +Patch33: tqt3-3.4.0-fontrendering-#214570.patch +Patch34: qt-3.3.6-fontrendering-ml_IN-209974.patch +Patch35: tqt3-3.4.0-fontrendering-ml_IN-217657.patch +Patch37: qt-3.3.6-fontrendering-gu-228452.patch +Patch38: tqt3-3.4.0-odbc.patch +Patch39: qt-x11-free-3.3.7-arm.patch +Patch40: qt-x11-free-3.3.8b-typo.patch + +# immodule patches +Patch53: tqt3-3.4.0-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch + +# qt-copy patches +Patch110: 0084-compositing-properties.patch + +# upstream patches +Patch200: qt-x11-free-3.3.4-fullscreen.patch + +# TDE 3.5.13 patches +Patch300: qt3-3.3.8.d-updates_zh-tw_translations.patch + +%define qt_dirname qt-3.3 +%define qtdir %{_libdir}/%{qt_dirname} +%define qt_docdir %{_docdir}/qt-devel-%{version} + +%define smp 1 +%define immodule 1 +%define debug 0 + +# MySQL plugins +%define plugin_mysql -plugin-sql-mysql +%define mysql_include_dir %{_includedir}/mysql +%define mysql_lib_dir %{_libdir}/mysql + +# Postgres plugins +%define plugin_psql -plugin-sql-psql + +# ODBC plugins +%define plugin_odbc -plugin-sql-odbc + +# sqlite plugins +%define plugin_sqlite -plugin-sql-sqlite + +%define plugins_style -qt-style-cde -qt-style-motifplus -qt-style-platinum -qt-style-sgi -qt-style-windows -qt-style-compact -qt-imgfmt-png -qt-imgfmt-jpeg -qt-imgfmt-mng +%define plugins %{plugin_mysql} %{plugin_psql} %{plugin_odbc} %{plugin_sqlite} %{plugins_style} + +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +Requires: coreutils +Requires: fontconfig >= 2.0 +Requires: /etc/ld.so.conf.d + +BuildRequires: desktop-file-utils +BuildRequires: libmng-devel +BuildRequires: glibc-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: zlib-devel +BuildRequires: giflib-devel +BuildRequires: perl +BuildRequires: sed +BuildRequires: findutils +BuildRequires: cups-devel +BuildRequires: tar +BuildRequires: freetype-devel +BuildRequires: fontconfig-devel +BuildRequires: libXrender-devel +BuildRequires: libXrandr-devel +BuildRequires: libXcursor-devel +BuildRequires: libXinerama-devel +BuildRequires: libXft-devel +BuildRequires: libXext-devel +BuildRequires: libX11-devel +BuildRequires: libSM-devel +BuildRequires: libICE-devel +BuildRequires: libXt-devel +BuildRequires: libXmu-devel +BuildRequires: libXi-devel +BuildRequires: xorg-x11-proto-devel +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libGLU-devel +BuildRequires: desktop-file-utils +BuildRequires: mysql-devel +BuildRequires: postgresql-devel +BuildRequires: unixODBC-devel +BuildRequires: sqlite-devel + + +%package config +Summary: Graphical configuration tool for programs using Qt 3 +Group: User Interface/Desktops +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: qt-config < 1:%{version}-%{release} +Provides: qt-config = 1:%{version}-%{release} +Obsoletes: qt3-config < 1:%{version}-%{release} +Provides: qt3-config = 1:%{version}-%{release} + + +%package devel +Summary: Development files for the Qt 3 GUI toolkit +Group: Development/Libraries +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: freetype-devel +Requires: fontconfig-devel +Requires: libXrender-devel +Requires: libXrandr-devel +Requires: libXcursor-devel +Requires: libXinerama-devel +Requires: libXft-devel +Requires: libXext-devel +Requires: libX11-devel +Requires: libSM-devel +Requires: libICE-devel +Requires: libXt-devel +Requires: xorg-x11-proto-devel +Requires: libpng-devel +Requires: libjpeg-devel +Requires: libmng-devel +Requires: mesa-libGL-devel +Requires: mesa-libGLU-devel + +Obsoletes: qt-devel < 1:%{version}-%{release} +Provides: qt-devel = 1:%{version}-%{release} +Obsoletes: qt3-devel < 1:%{version}-%{release} +Provides: qt3-devel = 1:%{version}-%{release} + + +%package devel-docs +Summary: Documentation for the Qt 3 GUI toolkit +Group: Development/Libraries +Requires: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} + +Obsoletes: qt-devel-docs < 1:%{version}-%{release} +Provides: qt-devel-docs = 1:%{version}-%{release} +Obsoletes: qt3-devel-docs < 1:%{version}-%{release} +Provides: qt3-devel-docs = 1:%{version}-%{release} + + +%package ODBC +Summary: ODBC drivers for Qt 3's SQL classes +Group: System Environment/Libraries +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + +Obsoletes: qt-ODBC < 1:%{version}-%{release} +Provides: qt-ODBC = 1:%{version}-%{release} +Obsoletes: qt3-ODBC < 1:%{version}-%{release} +Provides: qt3-ODBC = 1:%{version}-%{release} + + +%package MySQL +Summary: MySQL drivers for Qt 3's SQL classes +Group: System Environment/Libraries +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + +Obsoletes: qt-MySQL < 1:%{version}-%{release} +Provides: qt-MySQL = 1:%{version}-%{release} +Obsoletes: qt3-MySQL < 1:%{version}-%{release} +Provides: qt3-MySQL = 1:%{version}-%{release} + + +%package PostgreSQL +Summary: PostgreSQL drivers for Qt 3's SQL classes +Group: System Environment/Libraries +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + +Obsoletes: qt-PostgreSQL < 1:%{version}-%{release} +Provides: qt-PostgreSQL = 1:%{version}-%{release} +Obsoletes: qt3-PostgreSQL < 1:%{version}-%{release} +Provides: qt3-PostgreSQL = 1:%{version}-%{release} + + +%package sqlite +Summary: sqlite drivers for Qt 3's SQL classes +Group: System Environment/Libraries +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + +Obsoletes: qt-sqlite < 1:%{version}-%{release} +Provides: qt-sqlite = 1:%{version}-%{release} +Obsoletes: qt3-sqlite < 1:%{version}-%{release} +Provides: qt3-sqlite = 1:%{version}-%{release} + + +%package designer +Summary: In3erface designer (IDE) for the Qt 3 toolkit +Group: Development/Tools +Requires: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} + +Obsoletes: qt-designer < 1:%{version}-%{release} +Provides: qt-designer = 1:%{version}-%{release} +Obsoletes: qt3-designer < 1:%{version}-%{release} +Provides: qt3-designer = 1:%{version}-%{release} + + +%description +Qt is a GUI software toolkit which simplifies the task of writing and +maintaining GUI (Graphical User Interface) applications +for the X Window System. + +Qt is written in C++ and is fully object-oriented. + +This package contains the shared library needed to run Qt 3 +applications, as well as the README files for Qt 3. + + +%description config +Qt is a GUI software toolkit which simplifies the task of writing and +maintaining GUI (Graphical User Interface) applications +for the X Window System. + +Qt is written in C++ and is fully object-oriented. + +This package contains a graphical configuration tool for programs using Qt 3. + + +%description devel +The %{name}-devel package contains the files necessary to develop +applications using the Qt GUI toolkit: the header files, the Qt meta +object compiler. + +Install %{name}-devel if you want to develop GUI applications using the Qt 3 +toolkit. + + +%description devel-docs +The %{name}-devel-docs package contains the man pages, the HTML documentation and +example programs for Qt 3. + + +%description ODBC +ODBC driver for Qt 3's SQL classes (QSQL) + + +%description MySQL +MySQL driver for Qt 3's SQL classes (QSQL) + + +%description PostgreSQL +PostgreSQL driver for Qt 3's SQL classes (QSQL) + + +%description sqlite +sqlite driver for Qt 3's SQL classes (QSQL) + + +%description designer +The %{name}-designer package contains an User Interface designer tool +for the Qt 3 toolkit. + + +%prep +%setup -q -n %{name} +%patch1 -p1 -b .cjk +%patch2 -p1 -b .ndebug +%patch3 -p1 -b .makefile +%patch4 -p1 -b .umask +%patch5 -p1 +%patch7 -p1 -b .quiet +%patch8 -p1 -b .qembed +%patch12 -p1 -b .nostdlib +%patch13 -p1 -b .fonts +%patch27 -p1 -b .fontrendering-ml_IN-bz#209097 +%patch29 -p1 -b .fontrendering-as_IN-bz#209972 +%patch31 -p1 -b .fontrendering-te_IN-bz#211259 +%patch32 -p1 -b .fontrendering-bz#214371 +%patch33 -p1 -b .fontrendering-#214570 +%patch34 -p1 -b .fontrendering-#209974 +%patch35 -p1 -b .fontrendering-ml_IN-217657 +%patch37 -p1 -b .fontrendering-gu-228452 +%patch38 -p1 -b .odbc +# it's not 100% clear to me if this is safe for all archs -- Rex +%ifarch armv5tel +%patch39 -p1 -b .arm +%endif +%patch40 -p1 + +# immodule patches +%if %{immodule} +%patch53 -p1 -b .resetinputcontext +%endif + +# qt-copy patches +%patch110 -p0 -b .0084-compositing-properties + +# upstream patches +%patch200 -p1 -b .fullscreen + +# TDE 3.5.13 patches +%patch300 -p1 + +# convert to UTF-8 +iconv -f iso-8859-1 -t utf-8 < doc/man/man3/qdial.3qt > doc/man/man3/qdial.3qt_ +mv doc/man/man3/qdial.3qt_ doc/man/man3/qdial.3qt + +%build +export QTDIR=`/bin/pwd` +export LD_LIBRARY_PATH="$QTDIR/lib:$LD_LIBRARY_PATH" +export PATH="$QTDIR/bin:$PATH" +export QTDEST=%{qtdir} + +%if %{smp} + export SMP_MFLAGS="%{?_smp_mflags}" +%endif + +%if %{immodule} + sh ./make-symlinks.sh +%endif + +# set correct X11 prefix +perl -pi -e "s,QMAKE_LIBDIR_X11.*,QMAKE_LIBDIR_X11\t=," mkspecs/*/qmake.conf +perl -pi -e "s,QMAKE_INCDIR_X11.*,QMAKE_INCDIR_X11\t=," mkspecs/*/qmake.conf +perl -pi -e "s,QMAKE_INCDIR_OPENGL.*,QMAKE_INCDIR_OPENGL\t=," mkspecs/*/qmake.conf +perl -pi -e "s,QMAKE_LIBDIR_OPENGL.*,QMAKE_LIBDIR_OPENGL\t=," mkspecs/*/qmake.conf + +# don't use rpath +perl -pi -e "s|-Wl,-rpath,| |" mkspecs/*/qmake.conf + +perl -pi -e "s|-O2|$INCLUDES %{optflags} -fno-strict-aliasing|g" mkspecs/*/qmake.conf + +# set correct lib path +if [ "%{_lib}" == "lib64" ] ; then + perl -pi -e "s,/usr/lib /lib,/usr/%{_lib} /%{_lib},g" config.tests/{unix,x11}/*.test + perl -pi -e "s,/lib /usr/lib,/%{_lib} /usr/%{_lib},g" config.tests/{unix,x11}/*.test +fi + +# build shared, threaded (default) libraries +echo yes | ./configure \ + -prefix $QTDEST \ + -docdir %{qt_docdir} \ +%if %{_lib} == lib64 + -platform linux-g++-64 \ +%else + -platform linux-g++ \ +%endif +%if %{debug} + -debug \ +%else + -release \ +%endif + -shared \ + -largefile \ + -qt-gif \ + -system-zlib \ + -system-libpng \ + -system-libmng \ + -system-libjpeg \ + -no-exceptions \ + -enable-styles \ + -enable-tools \ + -enable-kernel \ + -enable-widgets \ + -enable-dialogs \ + -enable-iconview \ + -enable-workspace \ + -enable-network \ + -enable-canvas \ + -enable-table \ + -enable-xml \ + -enable-opengl \ + -enable-sql \ + -qt-style-motif \ + %{plugins} \ + -stl \ + -thread \ + -cups \ + -sm \ + -xinerama \ + -xrender \ + -xkb \ + -ipv6 \ + -dlopen-opengl \ + -xft \ + -tablet + +make $SMP_MFLAGS src-qmake + +# build sqlite plugin +pushd plugins/src/sqldrivers/sqlite +qmake -o Makefile sqlite.pro +popd + +# build psql plugin +pushd plugins/src/sqldrivers/psql +qmake -o Makefile "INCLUDEPATH+=%{_includedir}/pgsql %{_includedir}/pgsql/server %{_includedir}/pgsql/internal" "LIBS+=-lpq" psql.pro +popd + +# build mysql plugin +pushd plugins/src/sqldrivers/mysql +qmake -o Makefile "INCLUDEPATH+=%{mysql_include_dir}" "LIBS+=-L%{mysql_lib_dir} -lmysqlclient" mysql.pro +popd + +# build odbc plugin +pushd plugins/src/sqldrivers/odbc +qmake -o Makefile "LIBS+=-lodbc" odbc.pro +popd + +make $SMP_MFLAGS src-moc +make $SMP_MFLAGS sub-src +make $SMP_MFLAGS sub-tools UIC="$QTDIR/bin/uic -nostdlib -L $QTDIR/plugins" + +%install +rm -rf %{buildroot} + +export QTDIR=`/bin/pwd` +export LD_LIBRARY_PATH="$QTDIR/lib:$LD_LIBRARY_PATH" +export PATH="$QTDIR/bin:$PATH" +export QTDEST=%{qtdir} + +make install INSTALL_ROOT=%{buildroot} + +for i in findtr qt20fix qtrename140 lrelease lupdate ; do + install bin/$i %{buildroot}%{qtdir}/bin/ +done + +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ +mv %{buildroot}%{qtdir}/lib/pkgconfig/*.pc %{buildroot}%{_libdir}/pkgconfig/ + +# install man pages +mkdir -p %{buildroot}%{_mandir} +cp -fR doc/man/* %{buildroot}%{_mandir}/ + +# clean up +make -C tutorial clean +make -C examples clean + +# Make sure the examples can be built outside the source tree. +# Our binaries fulfill all requirements, so... +perl -pi -e "s,^DEPENDPATH.*,,g;s,^REQUIRES.*,,g" `find examples -name "*.pro"` + +# don't include Makefiles of qt examples/tutorials +find examples -name "Makefile" | xargs rm -f +find examples -name "*.obj" | xargs rm -rf +find examples -name "*.moc" | xargs rm -rf +find tutorial -name "Makefile" | xargs rm -f + +for a in */*/Makefile ; do + sed 's|^SYSCONF_MOC.*|SYSCONF_MOC = %{qtdir}/bin/moc|' < $a > ${a}.2 + mv -v ${a}.2 $a +done + +mkdir -p %{buildroot}/etc/profile.d +install -m 644 %{SOURCE2} %{SOURCE3} %{buildroot}/etc/profile.d/ + +# Add desktop files +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install \ + --dir %{buildroot}%{_datadir}/applications \ + --vendor="qt" \ + %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} + +# Patch qmake to use qt-mt unconditionally +perl -pi -e "s,-lqt ,-lqt-mt ,g;s,-lqt$,-lqt-mt,g" %{buildroot}%{qtdir}/mkspecs/*/qmake.conf + +# remove broken links +rm -f %{buildroot}%{qtdir}/mkspecs/default/linux-g++* +rm -f %{buildroot}%{qtdir}/lib/*.la + +mkdir -p %{buildroot}/etc/ld.so.conf.d +echo "%{qtdir}/lib" > %{buildroot}/etc/ld.so.conf.d/qt-%{_arch}.conf + +# install icons +mkdir %{buildroot}%{_datadir}/pixmaps +install -m 644 tools/assistant/images/qt.png %{buildroot}%{_datadir}/pixmaps/qtconfig3.png +install -m 644 tools/assistant/images/designer.png %{buildroot}%{_datadir}/pixmaps/designer3.png +install -m 644 tools/assistant/images/assistant.png %{buildroot}%{_datadir}/pixmaps/assistant3.png +install -m 644 tools/assistant/images/linguist.png %{buildroot}%{_datadir}/pixmaps/linguist3.png + +# own style directory +mkdir -p %{buildroot}%{qtdir}/plugins/styles + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc FAQ LICENSE* README* changes* +%dir %{qtdir} +%dir %{qtdir}/bin +%dir %{qtdir}/lib +%dir %{qtdir}/plugins +%dir %{qtdir}/plugins/sqldrivers +%dir %{qtdir}/plugins/styles +%{qtdir}/translations +%{qtdir}/plugins/designer/ +%if %{immodule} +%{qtdir}/plugins/inputmethods +%endif +%config /etc/profile.d/* +/etc/ld.so.conf.d/* +%{qtdir}/lib/libtqui.so.* +%{qtdir}/lib/libtqt*.so.* + +# TQT 3.4.0: WTF is this file ?? +%exclude %{_mandir}/README + +%files config +%defattr(-,root,root,-) +%{qtdir}/bin/qtconfig +%{_datadir}/applications/*qtconfig*.desktop +%{_datadir}/pixmaps/qtconfig3.png + +%files devel +%defattr(-,root,root,-) +%{qt_docdir}/ +%{qtdir}/bin/moc +%{qtdir}/bin/uic +%{qtdir}/bin/findtr +%{qtdir}/bin/qt20fix +%{qtdir}/bin/qtrename140 +%{qtdir}/bin/assistant +%{qtdir}/bin/qm2ts +%{qtdir}/bin/qmake +%{qtdir}/bin/qembed +%{qtdir}/bin/linguist +%{qtdir}/bin/lupdate +%{qtdir}/bin/lrelease +%{qtdir}/include +%{qtdir}/mkspecs +%{qtdir}/lib/libtqt*.so +%{qtdir}/lib/libtqui.so +%{qtdir}/lib/libeditor.a +%{qtdir}/lib/libdesigner*.a +%{qtdir}/lib/libqassistantclient.a +%{qtdir}/lib/*.prl +%{qtdir}/phrasebooks +%{_libdir}/pkgconfig/* +%{_datadir}/applications/*linguist*.desktop +%{_datadir}/applications/*assistant*.desktop +%{_datadir}/pixmaps/linguist3.png +%{_datadir}/pixmaps/assistant3.png + +# QT 3.3.8.D (TDE): 4 binaries have appeared +%{qtdir}/bin/createcw +%{qtdir}/bin/makeqpf +%{qtdir}/bin/mergetr +%{qtdir}/bin/msg2qm + +# QT 3.3.8.D (TDE): removes lots of unnecessary include files +# (where do they come from ??? They were not in 3.3.8b !) +%exclude %{qtdir}/include/btree.h +%exclude %{qtdir}/include/crc32.h +%exclude %{qtdir}/include/debian_qsql_odbc.h +%exclude %{qtdir}/include/deflate.h +%exclude %{qtdir}/include/ftglue.h +%exclude %{qtdir}/include/ftxgdef.h +%exclude %{qtdir}/include/ftxgpos.h +%exclude %{qtdir}/include/ftxgsub.h +%exclude %{qtdir}/include/ftxopen.h +%exclude %{qtdir}/include/ftxopenf.h +%exclude %{qtdir}/include/hash.h +%exclude %{qtdir}/include/inffast.h +%exclude %{qtdir}/include/inffixed.h +%exclude %{qtdir}/include/inflate.h +%exclude %{qtdir}/include/inftrees.h +%exclude %{qtdir}/include/jchuff.h +%exclude %{qtdir}/include/jconfig.h +%exclude %{qtdir}/include/jdct.h +%exclude %{qtdir}/include/jdhuff.h +%exclude %{qtdir}/include/jerror.h +%exclude %{qtdir}/include/jinclude.h +%exclude %{qtdir}/include/jmemsys.h +%exclude %{qtdir}/include/jmorecfg.h +%exclude %{qtdir}/include/jversion.h +%exclude %{qtdir}/include/moc_yacc.h +%exclude %{qtdir}/include/opcodes.h +%exclude %{qtdir}/include/os.h +%exclude %{qtdir}/include/otlbuffer.h +%exclude %{qtdir}/include/pager.h +%exclude %{qtdir}/include/parse.h +%exclude %{qtdir}/include/pngasmrd.h +%exclude %{qtdir}/include/pngconf.h +%exclude %{qtdir}/include/sqlite.h +%exclude %{qtdir}/include/sqliteInt.h +%exclude %{qtdir}/include/trees.h +%exclude %{qtdir}/include/vdbe.h +%exclude %{qtdir}/include/vdbeInt.h +%exclude %{qtdir}/mkspecs/linux-g++-sparc + +%files devel-docs +%defattr(-,root,root,-) +%doc examples +%doc tutorial +%{_mandir}/*/* + +%files sqlite +%defattr(-,root,root,-) +%{qtdir}/plugins/sqldrivers/libqsqlite.so + +%files ODBC +%defattr(-,root,root,-) +%{qtdir}/plugins/sqldrivers/libqsqlodbc.so + +%files PostgreSQL +%defattr(-,root,root,-) +%{qtdir}/plugins/sqldrivers/libqsqlpsql.so + +%files MySQL +%defattr(-,root,root,-) +%{qtdir}/plugins/sqldrivers/libqsqlmysql.so + +%files designer +%defattr(-,root,root,-) +%{qtdir}/templates +%{qtdir}/bin/designer +%{_datadir}/applications/*designer*.desktop +%{_datadir}/pixmaps/designer3.png + + +%changelog +* Mon Feb 13 2012 Francois Andriot - 3.4.0-1 +- Initial build for TDE R14 +- Renames 'qt3' to 'tqt3' +- Spec file based on 'qt3-3.3.8b-30' from RHEL 6 + +* Sun Dec 18 2011 Francois Andriot - 3.3.8.d-3 +- Updates zh_TW translations, thanks to Wei-Lun Chao . + +* Thu Nov 03 2011 Francois Andriot - 3.3.8.d-2 +- Add missing BuildRequires + +* Fri Sep 02 2011 Francois Andriot - 3.3.8.d-1 +- Initial build for RHEL 6, RHEL 5, and Fedora 15 +- Switch to Trinity Version +- Spec file based on RHEL 6 'qt3-3.3.8b-29'