From 14dfc7ec02c0f331342d8becac217b781b5feadf Mon Sep 17 00:00:00 2001
From: Francois Andriot <francois.andriot@free.fr>
Date: Mon, 13 Feb 2012 22:56:37 +0100
Subject: [RHEL/Fedora] add TQT3 for future R14

---
 redhat/tqt3/0084-compositing-properties.patch      |  80 +++
 redhat/tqt3/assistant3.desktop                     |   9 +
 redhat/tqt3/designer3.desktop                      |  11 +
 redhat/tqt3/linguist3.desktop                      |  10 +
 redhat/tqt3/qt-3.1.0-makefile.patch                |   1 +
 redhat/tqt3/qt-3.3.4-print-CJK.patch               |   1 +
 redhat/tqt3/qt-3.3.6-fontrendering-gu-228452.patch |   1 +
 .../tqt3/qt-3.3.6-fontrendering-ml_IN-209974.patch |   1 +
 .../tqt3/qt-3.3.6-fontrendering-te_IN-211259.patch |   1 +
 .../tqt3/qt-3.3.8-fontrendering-as_IN-209972.patch |   1 +
 redhat/tqt3/qt-x11-free-3.3.4-fullscreen.patch     |   1 +
 .../tqt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch |   1 +
 redhat/tqt3/qt-x11-free-3.3.6-strip.patch          |   1 +
 redhat/tqt3/qt-x11-free-3.3.7-arm.patch            |   1 +
 redhat/tqt3/qt-x11-free-3.3.8b-typo.patch          |   1 +
 ...1-immodule-unified-qt3.3.5-20051012-quiet.patch | 134 ++++
 ...-x11-immodule-unified-qt3.3.8-20071116.diff.bz2 | Bin 0 -> 99943 bytes
 redhat/tqt3/qt.csh                                 |  34 ++
 redhat/tqt3/qt.sh                                  |  32 +
 .../qt3-3.3.8.d-updates_zh-tw_translations.patch   |   1 +
 redhat/tqt3/qtconfig3.desktop                      |   9 +
 redhat/tqt3/tqt3-3.4.0-embed.patch                 |  10 +
 redhat/tqt3/tqt3-3.4.0-fontrendering-#214570.patch |  23 +
 redhat/tqt3/tqt3-3.4.0-fontrendering-214371.patch  |  15 +
 .../tqt3-3.4.0-fontrendering-ml_IN-209097.patch    |  60 ++
 .../tqt3-3.4.0-fontrendering-ml_IN-217657.patch    |  11 +
 redhat/tqt3/tqt3-3.4.0-nodebug.patch               |  15 +
 redhat/tqt3/tqt3-3.4.0-odbc.patch                  |  18 +
 ...nified-qt3.3.5-20060318-resetinputcontext.patch |  92 +++
 redhat/tqt3/tqt3-3.4.0-quiet.patch                 |  13 +
 redhat/tqt3/tqt3-3.4.0-uic-nostdlib.patch          |  12 +
 redhat/tqt3/tqt3-3.4.0-umask.patch                 |  14 +
 redhat/tqt3/tqt3-3.4.0.spec                        | 678 +++++++++++++++++++++
 33 files changed, 1292 insertions(+)
 create mode 100644 redhat/tqt3/0084-compositing-properties.patch
 create mode 100644 redhat/tqt3/assistant3.desktop
 create mode 100644 redhat/tqt3/designer3.desktop
 create mode 100644 redhat/tqt3/linguist3.desktop
 create mode 120000 redhat/tqt3/qt-3.1.0-makefile.patch
 create mode 120000 redhat/tqt3/qt-3.3.4-print-CJK.patch
 create mode 120000 redhat/tqt3/qt-3.3.6-fontrendering-gu-228452.patch
 create mode 120000 redhat/tqt3/qt-3.3.6-fontrendering-ml_IN-209974.patch
 create mode 120000 redhat/tqt3/qt-3.3.6-fontrendering-te_IN-211259.patch
 create mode 120000 redhat/tqt3/qt-3.3.8-fontrendering-as_IN-209972.patch
 create mode 120000 redhat/tqt3/qt-x11-free-3.3.4-fullscreen.patch
 create mode 120000 redhat/tqt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch
 create mode 120000 redhat/tqt3/qt-x11-free-3.3.6-strip.patch
 create mode 120000 redhat/tqt3/qt-x11-free-3.3.7-arm.patch
 create mode 120000 redhat/tqt3/qt-x11-free-3.3.8b-typo.patch
 create mode 100644 redhat/tqt3/qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch
 create mode 100644 redhat/tqt3/qt-x11-immodule-unified-qt3.3.8-20071116.diff.bz2
 create mode 100755 redhat/tqt3/qt.csh
 create mode 100755 redhat/tqt3/qt.sh
 create mode 120000 redhat/tqt3/qt3-3.3.8.d-updates_zh-tw_translations.patch
 create mode 100644 redhat/tqt3/qtconfig3.desktop
 create mode 100644 redhat/tqt3/tqt3-3.4.0-embed.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-fontrendering-#214570.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-fontrendering-214371.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-209097.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-fontrendering-ml_IN-217657.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-nodebug.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-odbc.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-quiet.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-uic-nostdlib.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0-umask.patch
 create mode 100644 redhat/tqt3/tqt3-3.4.0.spec

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 <l.lunak@kde.org>
+
+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 <francois.andriot@free.fr> - 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 <francois.andriot@free.fr> - 3.3.8.d-3
+- Updates zh_TW translations, thanks to Wei-Lun Chao .
+
+* Thu Nov 03 2011 Francois Andriot <francois.andriot@free.fr> - 3.3.8.d-2
+- Add missing BuildRequires
+
+* Fri Sep 02 2011 Francois Andriot <francois.andriot@free.fr> - 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'
-- 
cgit v1.2.3

