rpms/qt3/devel 0038-dragobject-dont-prefer-unknown.patch, NONE, 1.1 0047-fix-kmenu-width.diff, NONE, 1.1 0048-qclipboard_hack_80072.patch, NONE, 1.1 0056-khotkeys_input_84434.patch, NONE, 1.1 0073-xinerama-aware-qpopup.patch, NONE, 1.1 0077-utf8-decoder-fixes.diff, NONE, 1.1 0079-compositing-types.patch, NONE, 1.1 0080-net-wm-sync-request-2.patch, NONE, 1.1 0084-compositing-properties.patch, NONE, 1.1 0088-fix-xinput-clash.diff, NONE, 1.1 assistant3.desktop, NONE, 1.1 designer3.desktop, NONE, 1.1 linguist3.desktop, NONE, 1.1 qt-3.0.5-nodebug.patch, NONE, 1.1 qt-3.1.0-makefile.patch, NONE, 1.1 qt-3.3.3-gtkstyle.patch, NONE, 1.1 qt-3.3.4-print-CJK.patch, NONE, 1.1 qt-3.3.6-fontrendering-214371.patch, NONE, 1.1 qt-3.3.6-fontrendering-bn_IN-209975.patch, NONE, 1.1 qt-3.3.6-fontrendering-gu-228452.patch, NONE, 1.1 qt-3.3.6-fontrendering-ml_IN-209097.patch, NONE, 1.1 qt-3.3.6-fontrendering-ml_IN-209974.patch, NONE, 1.1 qt-3.3.6-fontrendering-ml_IN-217657.patch, NONE, 1.1 qt-3.3.6-fontrendering-te_IN-211259.patch, NONE, 1.1 qt-3.3.8-fontrendering-#214570.patch, NONE, 1.1 qt-3.3.8-fontrendering-as_IN-209972.patch, NONE, 1.1 qt-uic-nostdlib.patch, NONE, 1.1 qt-x11-free-3.3.2-quiet.patch, NONE, 1.1 qt-x11-free-3.3.3-gl.patch, NONE, 1.1 qt-x11-free-3.3.3-qembed.patch, NONE, 1.1 qt-x11-free-3.3.4-fullscreen.patch, NONE, 1.1 qt-x11-free-3.3.5-uic.patch, NONE, 1.1 qt-x11-free-3.3.6-fix-key-release-event-with-imm.diff, NONE, 1.1 qt-x11-free-3.3.6-qfontdatabase_x11.patch, NONE, 1.1 qt-x11-free-3.3.6-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch, NONE, 1.1 qt-x11-free-3.3.6-strip.patch, NONE, 1.1 qt-x11-free-3.3.7-umask.patch, NONE, 1.1 qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-post.patch, NONE, 1.1 qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-pre.patch, NONE, 1.1 qt-x11-free-3.3.8b-gcc4-buildkey.patch, NONE, 1.1 qt-x11-free-3.3.8b-gcc43.patch, NONE, 1.1 qt-x11-free-3.3.8b-uic-multilib.patch, NONE, 1.1 qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch, NONE, 1.1 qt.csh, NONE, 1.1 qt.sh, NONE, 1.1 qt3.spec, NONE, 1.1 qtconfig3.desktop, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Kevin Kofler (kkofler) fedora-extras-commits at redhat.com
Wed Mar 12 18:50:45 UTC 2008


Author: kkofler

Update of /cvs/pkgs/rpms/qt3/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10971/devel

Modified Files:
	.cvsignore sources 
Added Files:
	0038-dragobject-dont-prefer-unknown.patch 
	0047-fix-kmenu-width.diff 0048-qclipboard_hack_80072.patch 
	0056-khotkeys_input_84434.patch 
	0073-xinerama-aware-qpopup.patch 0077-utf8-decoder-fixes.diff 
	0079-compositing-types.patch 0080-net-wm-sync-request-2.patch 
	0084-compositing-properties.patch 0088-fix-xinput-clash.diff 
	assistant3.desktop designer3.desktop linguist3.desktop 
	qt-3.0.5-nodebug.patch qt-3.1.0-makefile.patch 
	qt-3.3.3-gtkstyle.patch qt-3.3.4-print-CJK.patch 
	qt-3.3.6-fontrendering-214371.patch 
	qt-3.3.6-fontrendering-bn_IN-209975.patch 
	qt-3.3.6-fontrendering-gu-228452.patch 
	qt-3.3.6-fontrendering-ml_IN-209097.patch 
	qt-3.3.6-fontrendering-ml_IN-209974.patch 
	qt-3.3.6-fontrendering-ml_IN-217657.patch 
	qt-3.3.6-fontrendering-te_IN-211259.patch 
	qt-3.3.8-fontrendering-#214570.patch 
	qt-3.3.8-fontrendering-as_IN-209972.patch 
	qt-uic-nostdlib.patch qt-x11-free-3.3.2-quiet.patch 
	qt-x11-free-3.3.3-gl.patch qt-x11-free-3.3.3-qembed.patch 
	qt-x11-free-3.3.4-fullscreen.patch qt-x11-free-3.3.5-uic.patch 
	qt-x11-free-3.3.6-fix-key-release-event-with-imm.diff 
	qt-x11-free-3.3.6-qfontdatabase_x11.patch 
	qt-x11-free-3.3.6-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch 
	qt-x11-free-3.3.6-strip.patch qt-x11-free-3.3.7-umask.patch 
	qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-post.patch 
	qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-pre.patch 
	qt-x11-free-3.3.8b-gcc4-buildkey.patch 
	qt-x11-free-3.3.8b-gcc43.patch 
	qt-x11-free-3.3.8b-uic-multilib.patch 
	qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch qt.csh 
	qt.sh qt3.spec qtconfig3.desktop 
Log Message:
Copy Qt 3 from qt/devel.

Flip the switch:
* Wed Mar 12 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 3.3.8b-9
- rename to qt3 on Fedora >= 9

0038-dragobject-dont-prefer-unknown.patch:

--- NEW FILE 0038-dragobject-dont-prefer-unknown.patch ---
qt-bugs@ issue : 38642
bugs.kde.org number : 71084
applied: no
author: Lubos Lunak <l.lunak at kde.org>

Hello,

 start Mozilla, go e.g. to http://kde.org, start KWrite (or basically any Qt 
app that accepts text drops), select 'Conquer your Desktop!', and try to 
drag&drop it onto KWrite. The only text pasted should be 'm'.

 I don't know much the related mimetype and encoding stuff, so I'm unsure 
whose fault this actually is. The text drag is provided as a lot of 
text/something targets, to list some text/_moz_htmlinfo, text/x-moz-url, 
text/unicode and similar. The problem is, Kate uses QTextDrag::decode() with 
no subtype specified, probably with the intention that as Kate is a text 
editor, it can accept any text pasted. And since the first target provided by 
mozilla is text/x-moz-url, (which moreover seems to be encoded as 16bit 
unicode), the text dropped is completely wrong. You can easily see all 
targets provided by Mozilla with see_mime.patch applied.

 Solution #1: Say that Kate (any pretty much everybody else expecting text) 
should say "plain" as the subtype. In such case, I suggest you drop the 
QTextDrag::decode() variant with no subtype specified, and stress more the 
fact that not specifying a subtype can result in a lot of rubbish. It's 
simply too tempting to leave the subtype empty and try to accept anything.

 Solution #2: When trying to accept anything, try to get useful data. Which 
means either sorting the subtypes available somehow, checking only the ones 
Qt knows.

 To me, #1 seems to be a better choice, or possibly at least something like 
the attached QTextDrag patch, which simply always tries first "plain" subtype 
if none is specified. With this patch, Mozilla even works (that's irony, of 
course, Mozilla still pastes the text/plain text as HTML, but at least now it 
pastes something where it's easy to point at the offender).


--- src/kernel/qdragobject.cpp.sav	2004-01-06 19:24:35.000000000 +0100
+++ src/kernel/qdragobject.cpp	2004-01-06 19:47:01.000000000 +0100
@@ -844,6 +844,16 @@ bool QTextDrag::decode( const QMimeSourc
 {
     if(!e)
 	return FALSE;
+        
+    // when subtype is not specified, try text/plain first, otherwise this may read
+    // things like text/x-moz-url even though better targets are available
+    if( subtype.isNull()) {
+        QCString subtmp = "plain";
+        if( decode( e, str, subtmp )) {
+            subtype = subtmp;
+            return true;
+        }
+    }
 
     if ( e->cacheType == QMimeSource::Text ) {
 	str = *e->cache.txt.str;

0047-fix-kmenu-width.diff:

--- NEW FILE 0047-fix-kmenu-width.diff ---
qt-bugs@ issue: N46882
bugs.kde.org number: 77545
applied: no
author: Stephan Binner <binner at kde.org>

Fix wrong K menu width for the case of enabled side pixmap and a menu title
(like "Recently Used Applications") being longer than every other entry.

Solution: Respect PanelKMenu::setMaximumSize() as up to Qt 3.2.3

Index: src/widgets/qpopupmenu.cpp
===================================================================
RCS file: /home/kde/qt-copy/src/widgets/qpopupmenu.cpp,v
retrieving revision 1.60
diff -u -3 -p -b -r1.60 qpopupmenu.cpp
--- src/widgets/qpopupmenu.cpp	29 Apr 2004 22:31:28 -0000	1.60
+++ src/widgets/qpopupmenu.cpp	30 Apr 2004 01:11:59 -0000
@@ -2531,7 +2531,7 @@ QSize QPopupMenu::sizeHint() const
 
     QPopupMenu* that = (QPopupMenu*) this;
     //We do not need a resize here, just the sizeHint..
-    return that->updateSize(FALSE, FALSE).expandedTo( QApplication::globalStrut() );
+    return that->updateSize(FALSE).expandedTo( QApplication::globalStrut() );
 }


0048-qclipboard_hack_80072.patch:

--- NEW FILE 0048-qclipboard_hack_80072.patch ---
qt-bugs@ issue : none, probably even won't be
bugs.kde.org number : 80072
applied: no
author: Lubos Lunak <l.lunak at kde.org>

A crude hack for KDE #80072. No good idea how to fix it properly yet :(.

--- src/kernel/qclipboard_x11.cpp.sav	2004-04-30 12:00:06.000000000 +0200
+++ src/kernel/qclipboard_x11.cpp	2004-05-09 21:18:10.269264304 +0200
@@ -109,6 +109,7 @@ static int pending_timer_id = 0;
 static bool pending_clipboard_changed = FALSE;
 static bool pending_selection_changed = FALSE;
 
+Q_EXPORT bool qt_qclipboard_bailout_hack = false;
 
 // event capture mechanism for qt_xclb_wait_for_event
 static bool waiting_for_data = FALSE;
@@ -453,6 +454,15 @@ static int qt_xclb_event_filter(XEvent *
     return 0;
 }
 
+static bool selection_request_pending = false;
+
+static Bool check_selection_request_pending( Display*, XEvent* e, XPointer )
+    {
+    if( e->type == SelectionRequest && e->xselectionrequest.owner == owner->winId())
+        selection_request_pending = true;
+    return False;
+    }
+
 bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event,
 			     int timeout )
 {
@@ -504,6 +514,14 @@ bool qt_xclb_wait_for_event( Display *dp
     do {
         if ( XCheckTypedWindowEvent(dpy,win,type,event) )
 	    return TRUE;
+        if( qt_qclipboard_bailout_hack ) {
+            XEvent dummy;
+            selection_request_pending = false;
+            if ( owner != NULL )
+                XCheckIfEvent(dpy,&dummy,check_selection_request_pending,NULL);
+            if( selection_request_pending )
+	        return TRUE;
+        }
 
 	now = QTime::currentTime();
 	if ( started > now )			// crossed midnight

0056-khotkeys_input_84434.patch:

--- NEW FILE 0056-khotkeys_input_84434.patch ---
qt-bugs@ issue : 58251
bugs.kde.org number : 84434
applied: no
author: Lubos Lunak <l.lunak at kde.org>

Fixes keyboard input action in KHotKeys (see bug #84434).

--- src/kernel/qapplication_x11.cpp.sav	2004-10-07 15:38:05.000000000 +0200
+++ src/kernel/qapplication_x11.cpp	2004-10-12 11:46:32.513137808 +0200
@@ -5294,8 +5294,10 @@ static Bool qt_keypress_scanner(Display 
     qt_auto_repeat_data *d = (qt_auto_repeat_data *) arg;
     if (d->error ||
         event->xkey.window  != d->window ||
-        event->xkey.keycode != d->keycode)
+        event->xkey.keycode != d->keycode) {
+        d->error = TRUE;
         return FALSE;
+    }
 
     if (event->type == XKeyPress) {
         d->error = (! d->release || event->xkey.time - d->timestamp > 10);

0073-xinerama-aware-qpopup.patch:

--- NEW FILE 0073-xinerama-aware-qpopup.patch ---
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak at kde.org>
Makes QPopupMenu aware of Xinerama (see e.g. https://bugzilla.novell.com/show_bug.cgi?id=216235).


--- src/widgets/qpopupmenu.cpp
+++ src/widgets/qpopupmenu.cpp
@@ -454,6 +454,15 @@ void QPopupMenu::frameChanged()
     menuContentsChanged();
 }
 
+QRect QPopupMenu::screenRect( const QPoint& pos )
+{
+    int screen_num = QApplication::desktop()->screenNumber( pos );
+#ifdef Q_WS_MAC
+    return QApplication::desktop()->availableGeometry( screen_num );
+#else
+    return QApplication::desktop()->screenGeometry( screen_num );
+#endif
+}
 /*!
     Displays the popup menu so that the item number \a indexAtPoint
     will be at the specified \e global position \a pos. To translate a
@@ -498,6 +507,15 @@ void QPopupMenu::popup( const QPoint &po
     // point.
 #endif
 
+    QRect screen = screenRect( geometry().center());
+    QRect screen2 = screenRect( QApplication::reverseLayout()
+        ? pos+QPoint(width(),0) : pos );
+    // if the widget is not in the screen given by the position, move it
+    // there, so that updateSize() uses the right size of the screen
+    if( screen != screen2 ) {
+        screen = screen2;
+        move( screen.x(), screen.y());
+    }
     if(d->scroll.scrollable) {
 	d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
 	d->scroll.topScrollableIndex = d->scroll.scrollableSize = 0;
@@ -517,18 +535,6 @@ void QPopupMenu::popup( const QPoint &po
 	updateSize(TRUE);
     }
 
-    int screen_num;
-    if (QApplication::desktop()->isVirtualDesktop())
-	screen_num =
-	    QApplication::desktop()->screenNumber( QApplication::reverseLayout() ?
-						   pos+QPoint(width(),0) : pos );
-    else
-	screen_num = QApplication::desktop()->screenNumber( this );
-#ifdef Q_WS_MAC
-    QRect screen = QApplication::desktop()->availableGeometry( screen_num );
-#else
-    QRect screen = QApplication::desktop()->screenGeometry( screen_num );
-#endif
     int sw = screen.width();			// screen width
     int sh = screen.height();			// screen height
     int sx = screen.x();			// screen pos
@@ -1056,7 +1062,7 @@ QSize QPopupMenu::updateSize(bool force_
 				   mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4 );
 	}
 
-	int dh = QApplication::desktop()->height();
+	int dh = screenRect( geometry().center()).height();
 	ncols = 1;
 
 	for ( QMenuItemListIt it2( *mitems ); it2.current(); ++it2 ) {
@@ -2297,9 +2303,9 @@ void QPopupMenu::subMenuTimer() {
 	bool right = FALSE;
 	if ( ( parentMenu && parentMenu->isPopupMenu &&
 	       ((QPopupMenu*)parentMenu)->geometry().x() < geometry().x() ) ||
-	     p.x() < 0 )
+	     p.x() < screenRect( p ).left())
 	    right = TRUE;
-	if ( right && (ps.width() > QApplication::desktop()->width() - mapToGlobal( r.topRight() ).x() ) )
+	if ( right && (ps.width() > screenRect( p ).right() - mapToGlobal( r.topRight() ).x() ) )
 	    right = FALSE;
 	if ( right )
 	    p.setX( mapToGlobal( r.topRight() ).x() );
@@ -2310,7 +2316,7 @@ void QPopupMenu::subMenuTimer() {
 	bool left = FALSE;
 	if ( ( parentMenu && parentMenu->isPopupMenu &&
 	       ((QPopupMenu*)parentMenu)->geometry().x() > geometry().x() ) ||
-	     p.x() + ps.width() > QApplication::desktop()->width() )
+	     p.x() + ps.width() > screenRect( p ).right() )
 	    left = TRUE;
 	if ( left && (ps.width() > mapToGlobal( r.topLeft() ).x() ) )
 	    left = FALSE;
@@ -2318,8 +2324,8 @@ void QPopupMenu::subMenuTimer() {
 	    p.setX( mapToGlobal( r.topLeft() ).x() - ps.width() );
     }
     QRect pr = popup->itemGeometry(popup->count() - 1);
-    if (p.y() + ps.height() > QApplication::desktop()->height() &&
-	p.y() - ps.height() + (QCOORD) pr.height() >= 0)
+    if (p.y() + ps.height() > screenRect( p ).bottom() &&
+	p.y() - ps.height() + (QCOORD) pr.height() >= screenRect( p ).top())
 	p.setY( p.y() - ps.height() + (QCOORD) pr.height());
 
     if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) {
Index: src/widgets/qpopupmenu.h
===================================================================
--- src/widgets/qpopupmenu.h	(revision 636368)
+++ src/widgets/qpopupmenu.h	(working copy)
@@ -152,6 +152,7 @@ private:
 
     QSize	updateSize(bool force_recalc=FALSE, bool do_resize=TRUE);
     void	updateRow( int row );
+    QRect       screenRect(const QPoint& pos);
 #ifndef QT_NO_ACCEL
     void	updateAccel( QWidget * );
     void	enableAccel( bool );

0077-utf8-decoder-fixes.diff:

--- NEW FILE 0077-utf8-decoder-fixes.diff ---
qt-bugs@ issue : N154454
bugs.kde.org number : none
applied: no
author: Dirk Mueller <mueller at kde.org>

This patch makes the utf8 decoders in Qt reject overlong
sequences, like required.

--- src/codecs/qutfcodec.cpp
+++ src/codecs/qutfcodec.cpp
@@ -154,6 +154,7 @@
 
 class QUtf8Decoder : public QTextDecoder {
     uint uc;
+    uint min_uc;
     int need;
     bool headerDone;
 public:
@@ -167,8 +168,9 @@
 	result.setLength( len ); // worst case
 	QChar *qch = (QChar *)result.unicode();
 	uchar ch;
+        int error = -1;
 	for (int i=0; i<len; i++) {
-	    ch = *chars++;
+	    ch = chars[i];
 	    if (need) {
 		if ( (ch&0xc0) == 0x80 ) {
 		    uc = (uc << 6) | (ch & 0x3f);
@@ -182,6 +184,8 @@
 			    *qch++ = QChar(high);
 			    *qch++ = QChar(low);
 			    headerDone = TRUE;
+			} else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
+                            *qch++ = QChar::replacement;
 			} else {
 			    if (headerDone || QChar(uc) != QChar::byteOrderMark)
 				*qch++ = uc;
@@ -190,6 +194,7 @@
 		    }
 		} else {
 		    // error
+                    i = error;
 		    *qch++ = QChar::replacement;
 		    need = 0;
 		}
@@ -200,12 +205,21 @@
 		} else if ((ch & 0xe0) == 0xc0) {
 		    uc = ch & 0x1f;
 		    need = 1;
+                    error = i;
+		    min_uc = 0x80;
 		} else if ((ch & 0xf0) == 0xe0) {
 		    uc = ch & 0x0f;
 		    need = 2;
+                    error = i;
+		    min_uc = 0x800;
 		} else if ((ch&0xf8) == 0xf0) {
 		    uc = ch & 0x07;
 		    need = 3;
+                    error = i;
+                    min_uc = 0x10000;
+                } else {
+                    // error
+                    *qch++ = QChar::replacement;
 		}
 	    }
 	}
--- src/tools/qstring.cpp
+++ src/tools/qstring.cpp
@@ -5805,6 +5805,7 @@
     result.setLength( len ); // worst case
     QChar *qch = (QChar *)result.unicode();
     uint uc = 0;
+    uint min_uc = 0;
     int need = 0;
     int error = -1;
     uchar ch;
@@ -5822,6 +5823,12 @@
 			unsigned short low = uc%0x400 + 0xdc00;
 			*qch++ = QChar(high);
 			*qch++ = QChar(low);
+		    } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
+			// overlong seqence, UTF16 surrogate or BOM
+                        i = error;
+                        qch = addOne(qch, result);
+                        *qch++ = QChar(0xdbff);
+                        *qch++ = QChar(0xde00+((uchar)utf8[i]));
 		    } else {
 			*qch++ = uc;
 		    }
@@ -5844,14 +5851,17 @@
 		uc = ch & 0x1f;
 		need = 1;
 		error = i;
+		min_uc = 0x80;
 	    } else if ((ch & 0xf0) == 0xe0) {
 		uc = ch & 0x0f;
 		need = 2;
 		error = i;
+		min_uc = 0x800;
 	    } else if ((ch&0xf8) == 0xf0) {
 		uc = ch & 0x07;
 		need = 3;
 		error = i;
+		min_uc = 0x10000;
 	    } else {
 	        // Error
                 qch = addOne(qch, result);

0079-compositing-types.patch:

--- NEW FILE 0079-compositing-types.patch ---
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak at kde.org>

This patch adds support for window types used for compositing (popup menu, dropdown menu,
tooltip, combobox, dnd).

--- src/kernel/qdnd_x11.cpp.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/kernel/qdnd_x11.cpp	2007-05-31 10:30:58.000000000 +0200
@@ -261,6 +261,7 @@ public:
 	QWidget(QApplication::desktop()->screen( screen ),
 		0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM ), oldpmser( 0 ), oldbmser( 0 )
     {
+    x11SetWindowType( X11WindowTypeDND );
     }
 
     void setPixmap(QPixmap pm, QPoint hot)
@@ -1221,6 +1222,7 @@ void QDragManager::move( const QPoint & 
 	// recreate the pixmap on the new screen...
 	delete qt_xdnd_deco;
 	qt_xdnd_deco = new QShapedPixmapWidget( screen );
+        qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget());
 	if (!QWidget::mouseGrabber()) {
 	    updatePixmap();
 	    qt_xdnd_deco->grabMouse();
@@ -1774,6 +1776,7 @@ bool QDragManager::drag( QDragObject * o
 
     dragSource = (QWidget *)(object->parent());
 
+    qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget());
     qApp->installEventFilter( this );
     qt_xdnd_source_current_time = qt_x_time;
     XSetSelectionOwner( QPaintDevice::x11AppDisplay(), qt_xdnd_selection,
--- src/kernel/qapplication_x11.cpp.sav	2007-05-29 16:24:58.000000000 +0200
+++ src/kernel/qapplication_x11.cpp	2007-05-31 10:30:58.000000000 +0200
@@ -268,6 +268,11 @@ Atom		qt_net_wm_window_type_menu	= 0;
 Atom		qt_net_wm_window_type_utility	= 0;
 Atom            qt_net_wm_window_type_splash    = 0;
 Atom            qt_net_wm_window_type_override	= 0;	// KDE extension
+Atom            qt_net_wm_window_type_dropdown_menu = 0;
+Atom            qt_net_wm_window_type_popup_menu    = 0;
+Atom            qt_net_wm_window_type_tooltip   = 0;
+Atom            qt_net_wm_window_type_combo     = 0;
+Atom            qt_net_wm_window_type_dnd       = 0;
 Atom		qt_net_wm_frame_strut		= 0;	// KDE extension
 Atom		qt_net_wm_state_stays_on_top	= 0;	// KDE extension
 Atom		qt_net_wm_pid		= 0;
@@ -1920,6 +1925,11 @@ void qt_init_internal( int *argcptr, cha
 	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_UTILITY", &qt_net_wm_window_type_utility );
 	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_SPLASH", &qt_net_wm_window_type_splash );
 	qt_x11_intern_atom( "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE", &qt_net_wm_window_type_override );
+	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", &qt_net_wm_window_type_dropdown_menu );
+	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_POPUP_MENU", &qt_net_wm_window_type_popup_menu );
+	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_TOOLTIP", &qt_net_wm_window_type_tooltip );
+	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_COMBO", &qt_net_wm_window_type_combo );
+	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DND", &qt_net_wm_window_type_dnd );
 	qt_x11_intern_atom( "_KDE_NET_WM_FRAME_STRUT", &qt_net_wm_frame_strut );
 	qt_x11_intern_atom( "_NET_WM_STATE_STAYS_ON_TOP",
 			    &qt_net_wm_state_stays_on_top );
--- src/kernel/qwidget_x11.cpp.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/kernel/qwidget_x11.cpp	2007-05-31 10:30:58.000000000 +0200
@@ -125,6 +125,11 @@ extern Atom qt_net_wm_window_type_menu;
 extern Atom qt_net_wm_window_type_utility;
 extern Atom qt_net_wm_window_type_splash;
 extern Atom qt_net_wm_window_type_override;
+extern Atom qt_net_wm_window_type_dropdown_menu;
+extern Atom qt_net_wm_window_type_popup_menu;
+extern Atom qt_net_wm_window_type_combo;
+extern Atom qt_net_wm_window_type_dnd;
+extern Atom qt_net_wm_window_type_tooltip;
 extern Atom qt_net_wm_pid;
 extern Atom qt_net_wm_user_time;
 extern Atom qt_enlightenment_desktop;
@@ -448,10 +453,6 @@ void QWidget::create( WId window, bool i
 					 x11Colormap() );
 #endif // QT_NO_XFTFREETYPE
 
-    // NET window types
-    long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
-    int curr_wintype = 0;
-
     // NET window states
     long net_winstates[6] = { 0, 0, 0, 0, 0, 0 };
     int curr_winstate = 0;
@@ -473,7 +474,6 @@ void QWidget::create( WId window, bool i
 	if ( testWFlags(WStyle_Splash) ) {
             if (qt_net_supports(qt_net_wm_window_type_splash)) {
                 clearWFlags( WX11BypassWM );
-                net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash;
 	    } else {
 		setWFlags( WX11BypassWM | WStyle_Tool | WStyle_NoBorder );
 	    }
@@ -482,27 +482,22 @@ void QWidget::create( WId window, bool i
 	    mwmhints.decorations = 0L;
 	    mwmhints.flags |= (1L << 1); // MWM_HINTS_DECORATIONS
 
-	    if ( testWFlags( WStyle_NoBorder ) ) {
-		// override netwm type - quick and easy for KDE noborder
-		net_wintypes[curr_wintype++] = qt_net_wm_window_type_override;
-	    } else {
-		if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) {
-		    mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER
-		    mwmhints.decorations |= (1L << 2); //  MWM_DECOR_RESIZEH
-		}
+	    if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) {
+		mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER
+		mwmhints.decorations |= (1L << 2); //  MWM_DECOR_RESIZEH
+	    }
 
-		if ( testWFlags( WStyle_Title ) )
-		    mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE
+	    if ( testWFlags( WStyle_Title ) )
+		mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE
 
-		if ( testWFlags( WStyle_SysMenu ) )
-		    mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU
+	    if ( testWFlags( WStyle_SysMenu ) )
+		mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU
 
-		if ( testWFlags( WStyle_Minimize ) )
-		    mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE
+	    if ( testWFlags( WStyle_Minimize ) )
+		mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE
 
-		if ( testWFlags( WStyle_Maximize ) )
-		    mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE
-	    }
+	    if ( testWFlags( WStyle_Maximize ) )
+		mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE
 
 	    if (testWFlags(WStyle_Tool)) {
 		wsa.save_under = True;
@@ -522,23 +517,6 @@ void QWidget::create( WId window, bool i
 	    }
 	}
 
-	// ### need a better way to do this
-	if (inherits("QPopupMenu")) {
-	    // menu netwm type
-	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu;
-	} else if (inherits("QToolBar")) {
-	    // toolbar netwm type
-	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar;
-	} else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) {
-	    // utility netwm type
-	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility;
-	}
-
-	if (dialog) // dialog netwm type
-            net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog;
-	// normal netwm type - default
-	net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal;
-
 	// stays on top
 	if (testWFlags(WStyle_StaysOnTop)) {
 	    net_winstates[curr_winstate++] = qt_net_wm_state_above;
@@ -573,6 +551,7 @@ void QWidget::create( WId window, bool i
 	wsa.save_under = True;
 	XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder,
 				 &wsa );
+	x11SetWindowType();
     } else if ( topLevel && !desktop ) {	// top-level widget
 	QWidget *p = parentWidget();	// real parent
 	if (p)
@@ -632,12 +611,7 @@ void QWidget::create( WId window, bool i
         else
             XDeleteProperty(dpy, id, qt_xa_motif_wm_hints);
 
-	// set _NET_WM_WINDOW_TYPE
-	if (curr_wintype > 0)
-	    XChangeProperty(dpy, id, qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace,
-			    (unsigned char *) net_wintypes, curr_wintype);
-        else
-            XDeleteProperty(dpy, id, qt_net_wm_window_type);
+	x11SetWindowType();
 
 	// set _NET_WM_WINDOW_STATE
 	if (curr_winstate > 0)
@@ -896,6 +870,64 @@ void QWidget::reparentSys( QWidget *pare
 	setMouseTracking(mouse_tracking);
 }
 
+// Sets the EWMH (netwm) window type. Needed as a separate function
+// because create() may be too soon in some cases.
+void QWidget::x11SetWindowType( X11WindowType type )
+{
+    // NET window types
+    long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
+    int curr_wintype = 0;
+    if( testWFlags(WType_Desktop))
+        return;
+    if( type == X11WindowTypeSelect ) {
+        if ( testWFlags(WStyle_Splash)) {
+            if (qt_net_supports(qt_net_wm_window_type_splash)) {
+                net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash;
+            }
+        } else if (inherits("QToolBar")) {
+	    // toolbar netwm type
+	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar;
+        } else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) {
+	    // utility netwm type
+	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility;
+        } else if (testWFlags(WType_Dialog)) {
+            // dialog netwm type
+            net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog;
+        }
+    } else if( type == X11WindowTypeCombo ) {
+        // combo netwm type
+	net_wintypes[curr_wintype++] = qt_net_wm_window_type_combo;
+    } else if( type == X11WindowTypeDND ) {
+        // dnd netwm type
+    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_dnd;
+    } else if( type == X11WindowTypeDropdown ) {
+        // dropdown netwm type
+    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_dropdown_menu;
+    } else if( type == X11WindowTypePopup ) {
+        // popup netwm type
+    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_popup_menu;
+    } else if( type == X11WindowTypeMenu ) {
+        // menu netwm type
+	net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu;
+    } else if( type == X11WindowTypeTooltip ) {
+        // tooltip netwm type
+    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_tooltip;
+    }
+
+    // normal netwm type - default
+    net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal;
+    // set _NET_WM_WINDOW_TYPE
+    if (curr_wintype > 0)
+        XChangeProperty(x11Display(), winId(), qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace,
+			(unsigned char *) net_wintypes, curr_wintype);
+    else
+        XDeleteProperty(x11Display(), winId(), qt_net_wm_window_type);
+}
+
+void QWidget::x11SetWindowTransient( QWidget* parent )
+{
+    XSetTransientForHint( x11Display(), winId(), parent->winId());
+}
 
 /*!
     Translates the widget coordinate \a pos to global screen
--- src/kernel/qwidget.h.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/kernel/qwidget.h	2007-05-31 10:30:58.000000000 +0200
@@ -464,7 +464,19 @@ public:
     CGContextRef macCGContext(bool clipped=TRUE) const;
 #endif
 #endif
-
+#if defined(Q_WS_X11)
+    enum X11WindowType {
+        X11WindowTypeSelect,
+        X11WindowTypeCombo,
+        X11WindowTypeDND,
+        X11WindowTypeTooltip,
+        X11WindowTypeMenu, // torn-off
+        X11WindowTypeDropdown,
+        X11WindowTypePopup
+    };
+    void x11SetWindowType( X11WindowType type = X11WindowTypeSelect );
+    void x11SetWindowTransient( QWidget* parent );
+#endif
     void setWindowOpacity(double level);
     double windowOpacity() const;
 
--- src/dialogs/qdialog.cpp.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/dialogs/qdialog.cpp	2007-05-31 10:30:58.000000000 +0200
@@ -668,10 +668,6 @@ bool QDialog::event( QEvent *e )
   Geometry management.
  *****************************************************************************/
 
-#if defined(Q_WS_X11)
-extern "C" { int XSetTransientForHint( Display *, unsigned long, unsigned long ); }
-#endif // Q_WS_X11
-
 /*!
     Shows the dialog as a \link #modeless modeless \endlink dialog.
     Control returns immediately to the calling code.
@@ -705,7 +701,7 @@ void QDialog::show()
 	&& qApp->mainWidget() && qApp->mainWidget()->isVisible()
 	&& !qApp->mainWidget()->isMinimized()) {
 	// make sure the transient for hint is set properly for modal dialogs
-        XSetTransientForHint( x11Display(), winId(), qApp->mainWidget()->winId() );
+        x11SetWindowTransient( qApp->mainWidget());
     }
 #endif // Q_WS_X11
 
--- src/widgets/qtooltip.cpp.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/widgets/qtooltip.cpp	2007-05-31 10:30:58.000000000 +0200
@@ -72,6 +72,7 @@ public:
 	polish();
 	setText(text);
 	adjustSize();
+        x11SetWindowType( X11WindowTypeTooltip );
     }
     void setWidth( int w ) { resize( sizeForWidth( w ) ); }
 };
@@ -528,6 +529,10 @@ void QTipManager::showTip()
     if (!widget)
 	return;
 
+#ifdef Q_WS_X11
+    label->x11SetWindowTransient( widget->topLevelWidget());
+#endif
+
 #ifdef Q_WS_MAC
     QRect screen = QApplication::desktop()->availableGeometry( scr );
 #else
--- src/widgets/qcombobox.cpp.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/widgets/qcombobox.cpp	2007-05-31 10:49:13.000000000 +0200
@@ -389,12 +389,8 @@ public:
     inline QListBox * listBox() { return lBox; }
     inline QComboBoxPopup * popup() { return pop; }
     void updateLinedGeometry();
-
-    void setListBox( QListBox *l ) { lBox = l ; usingLBox = TRUE;
-				l->setMouseTracking( TRUE );}
-
-    void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE )
-	{ pop = pm; if(isPopup) usingLBox = FALSE; }
+    void setListBox( QListBox *l );
+    void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE );
 
     int		current;
     int		maxCount;
@@ -440,6 +436,30 @@ void QComboBoxData::updateLinedGeometry(
 	ed->setGeometry( r );
 }
 
+void QComboBoxData::setListBox( QListBox *l )
+{
+    lBox = l;
+    usingLBox = TRUE;
+    l->setMouseTracking( TRUE );
+#ifdef Q_WS_X11
+    l->x11SetWindowType( QWidget::X11WindowTypeCombo );
+    l->x11SetWindowTransient( combo->topLevelWidget());
+#endif
+}
+
+void QComboBoxData::setPopupMenu( QComboBoxPopup * pm, bool isPopup )
+{
+    pop = pm;
+    if(isPopup)
+        usingLBox = FALSE;
+#ifdef Q_WS_X11
+    if( pm ) {
+        pm->x11SetWindowType( QWidget::X11WindowTypeCombo );
+        pm->x11SetWindowTransient( combo->topLevelWidget());
+    }
+#endif
+}
+
 static inline bool checkInsertIndex( const char *method, const char * name,
 				     int count, int *index)
 {
--- src/widgets/qpopupmenu.cpp.sav	2007-05-25 18:56:23.000000000 +0200
+++ src/widgets/qpopupmenu.cpp	2007-05-31 11:09:22.000000000 +0200
@@ -298,6 +298,9 @@ QPopupMenu::QPopupMenu( QWidget *parent,
     connectModalRecursionSafety = 0;
 
     setFocusPolicy( StrongFocus );
+#ifdef Q_WS_X11
+    x11SetWindowType( X11WindowTypePopup );
+#endif
 }
 
 /*!
@@ -537,6 +540,29 @@ void QPopupMenu::popup( const QPoint &po
 	emit aboutToShow();
 	updateSize(TRUE);
     }
+#ifdef Q_WS_X11
+#ifndef QT_NO_MENUBAR
+    QMenuData *top = this;		// find top level
+    while ( top->parentMenu )
+	top = top->parentMenu;
+    if( top->isMenuBar )
+        x11SetWindowType( X11WindowTypeDropdown );
+    if( parentMenu && parentMenu->isMenuBar )
+        x11SetWindowTransient( static_cast< QMenuBar* >( parentMenu )->topLevelWidget());
+#endif
+    if( parentMenu && !parentMenu->isMenuBar )
+        x11SetWindowTransient( static_cast< QPopupMenu* >( parentMenu ));
+    if( !parentMenu ) {
+        // hackish ... try to find the main window related to this popup
+        QWidget* parent = parentWidget() ? parentWidget()->topLevelWidget() : NULL;
+        if( parent == NULL )
+            parent = QApplication::widgetAt( pos );
+        if( parent == NULL )
+            parent = qApp->activeWindow();
+        if( parent != NULL )
+            x11SetWindowTransient( parent );
+    }
+#endif
 
     int sw = screen.width();			// screen width
     int sh = screen.height();			// screen height
@@ -1390,6 +1416,13 @@ void QPopupMenu::hide()
 #if defined(QT_ACCESSIBILITY_SUPPORT)
     QAccessible::updateAccessibility( this, 0, QAccessible::PopupMenuEnd );
 #endif
+#ifndef QT_NO_MENUBAR
+    QMenuData *top = this;		// find top level
+    while ( top->parentMenu )
+	top = top->parentMenu;
+    if( top->isMenuBar )
+        x11SetWindowType( X11WindowTypePopup ); // reset
+#endif
     parentMenu = 0;
     hidePopups();
     QWidget::hide();
@@ -2713,6 +2746,9 @@ void QPopupMenu::toggleTearOff()
 		     geometry().topLeft(), FALSE );
 	p->mitems->setAutoDelete( FALSE );
 	p->tornOff = TRUE;
+#ifdef Q_WS_X11
+        p->x11SetWindowType( X11WindowTypeMenu );
+#endif
 	for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) {
 	    if ( it.current()->id() != QMenuData::d->aInt && !it.current()->widget() )
 		p->mitems->append( it.current() );

0080-net-wm-sync-request-2.patch:

--- NEW FILE 0080-net-wm-sync-request-2.patch ---
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak at kde.org>

Support for _NET_WM_SYNC_REQUEST - allows the WM to find out when the app
finished one redraw - less flicker during resize and with compositing
also when opening a window.

--- src/kernel/qwidget.h.sav	2007-06-22 14:14:05.000000000 +0200
+++ src/kernel/qwidget.h	2007-06-23 11:53:39.000000000 +0200
@@ -586,6 +586,14 @@ private:
     void	 destroyInputContext();
     void	 focusInputContext();
     void	 checkChildrenDnd();
+
+#ifndef QT_NO_XSYNC
+    void        createSyncCounter();
+    void        destroySyncCounter();
+    void        incrementSyncCounter();
+    void        handleSyncRequest( void* ev );
+#endif
+
 #elif defined(Q_WS_MAC)
     uint    own_id : 1, macDropEnabled : 1;
     EventHandlerRef window_event;
@@ -962,8 +970,12 @@ struct Q_EXPORT QTLWExtra {
     uint     uspos : 1;				// User defined position
     uint     ussize : 1;			// User defined size
 #if defined(QT_NO_IM_EXTENSIONS)
     void    *xic;				// Input Context
 #endif
+#ifndef QT_NO_XSYNC
+    ulong    syncCounter;
+    uint     syncRequestValue[2];
+#endif
 #endif
 #if defined(Q_WS_MAC)
     WindowGroupRef group;
--- src/kernel/qt_x11_p.h.sav	2007-02-23 14:01:18.000000000 +0100
+++ src/kernel/qt_x11_p.h	2007-06-23 11:53:39.000000000 +0200
@@ -174,6 +174,11 @@ extern "C" {
 #endif // QT_NO_XRENDER
 
 
+#ifndef QT_NO_XSYNC
+#  include <X11/extensions/sync.h>
+#endif // QT_NO_XSYNC
+
+
 #ifndef QT_NO_XKB
 #  include <X11/XKBlib.h>
 #endif // QT_NO_XKB
--- src/kernel/qwidget_x11.cpp.sav	2007-04-16 13:47:26.000000000 +0200
+++ src/kernel/qwidget_x11.cpp	2007-06-23 19:48:44.000000000 +0200
@@ -87,6 +87,12 @@ static QWidget *keyboardGrb = 0;
 extern Time qt_x_time;
 extern Time qt_x_user_time;
 
+#ifndef QT_NO_XSYNC
+extern Atom qt_net_wm_sync_request_counter;
+extern Atom qt_net_wm_sync_request;
+extern bool qt_use_xsync;
+#endif
+
 // defined in qfont_x11.cpp
 extern bool qt_has_xft;
 
@@ -595,11 +601,14 @@ void QWidget::create( WId window, bool i
 
 	XResizeWindow( dpy, id, crect.width(), crect.height() );
 	XStoreName( dpy, id, qAppName() );
-	Atom protocols[4];
+	Atom protocols[5];
 	int n = 0;
 	protocols[n++] = qt_wm_delete_window;	// support del window protocol
 	protocols[n++] = qt_wm_take_focus;	// support take focus window protocol
 	protocols[n++] = qt_net_wm_ping;	// support _NET_WM_PING protocol
+#ifndef QT_NO_XSYNC
+	protocols[n++] = qt_net_wm_sync_request;// support the _NET_WM_SYNC_REQUEST protocol
+#endif
 	if ( testWFlags( WStyle_ContextHelp ) )
 	    protocols[n++] = qt_net_wm_context_help;
 	XSetWMProtocols( dpy, id, protocols, n );
@@ -625,6 +634,14 @@ void QWidget::create( WId window, bool i
 	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();
+        long counterVal = topData()->syncCounter;
+        XChangeProperty( dpy, id, qt_net_wm_sync_request_counter, XA_CARDINAL, 32, PropModeReplace,
+                         (unsigned char*) &counterVal, 1);
+#endif
+
 	// when we create a toplevel widget, the frame strut should be dirty
 	fstrut_dirty = 1;
 
@@ -720,6 +737,9 @@ void QWidget::destroy( bool destroyWindo
 	    if ( destroyWindow )
 		qt_XDestroyWindow( this, x11Display(), winid );
 	}
+#ifndef QT_NO_XSYNC
+        destroySyncCounter();
+#endif
 	setWinId( 0 );
 
 	extern void qPRCleanup( QWidget *widget ); // from qapplication_x11.cpp
@@ -769,6 +789,10 @@ void QWidget::reparentSys( QWidget *pare
         destroyInputContext();
     }
 
+#ifndef QT_NO_XSYNC
+    destroySyncCounter();
+#endif
+
     if ( isTopLevel() || !parent ) // we are toplevel, or reparenting to toplevel
         topData()->parentWinId = 0;
 
@@ -2456,8 +2480,13 @@ void QWidget::createTLSysExtra()
 {
 #if defined(QT_NO_IM_EXTENSIONS)
     // created lazily
     extra->topextra->xic = 0;
 #endif
+#ifndef QT_NO_XSYNC
+    extra->topextra->syncCounter = 0;
+    extra->topextra->syncRequestValue[0] = 0;
+    extra->topextra->syncRequestValue[1] = 0;
+#endif
 }
 
 void QWidget::deleteTLSysExtra()
@@ -2501,6 +2530,51 @@ void QWidget::checkChildrenDnd()
     }
 }
 
+
+#ifndef QT_NO_XSYNC
+// create a window's XSyncCounter
+void QWidget::createSyncCounter()
+{
+    if( !qt_use_xsync || !isTopLevel() || topData()->syncCounter )
+        return;
+    XSyncValue zero;
+    XSyncIntToValue( &zero, 0 );
+    topData()->syncCounter = XSyncCreateCounter( x11Display(), zero );
+}
+
+// destroy a window's XSyncCounter
+void QWidget::destroySyncCounter()
+{
+    if( !qt_use_xsync || !extra || !extra->topextra
+        || !extra->topextra->syncCounter )
+        return;
+    XSyncDestroyCounter( x11Display(), extra->topextra->syncCounter );
+    extra->topextra->syncCounter = 0;
+}
+
+// increment a window's XSyncCounter
+void QWidget::incrementSyncCounter()
+{
+    if( qt_use_xsync && topData()->syncCounter &&
+        !(topData()->syncRequestValue[0] == 0 &&
+         topData()->syncRequestValue[1] == 0) ) {
+        XSyncValue val;
+        XSyncIntsToValue( &val, topData()->syncRequestValue[ 0 ], topData()->syncRequestValue[ 1 ] );
+        XSyncSetCounter( x11Display(), topData()->syncCounter, val );
+        topData()->syncRequestValue[0] = topData()->syncRequestValue[1] = 0;
+    }
+}
+
+// handle _NET_WM_SYNC_REQUEST
+void QWidget::handleSyncRequest( void* ev )
+{
+    XEvent* xev = (XEvent*)ev;
+    topData()->syncRequestValue[ 0 ] = xev->xclient.data.l[ 2 ];
+    topData()->syncRequestValue[ 1 ] = xev->xclient.data.l[ 3 ];
+}
+#endif  // QT_NO_XSYNC
+
+
 /*!
     \property QWidget::acceptDrops
     \brief whether drop events are enabled for this widget
--- src/kernel/qapplication_x11.cpp.sav	2007-04-16 13:47:26.000000000 +0200
+++ src/kernel/qapplication_x11.cpp	2007-06-23 19:49:15.000000000 +0200
@@ -285,6 +285,11 @@ Atom		*qt_net_supported_list	= 0;
 Window		*qt_net_virtual_root_list	= 0;
 
 
+// X11 SYNC support
+#ifndef QT_NO_XSYNC
+Atom		qt_net_wm_sync_request_counter	= 0;
+Atom		qt_net_wm_sync_request     	= 0;
+#endif
 
 // client leader window
 Window qt_x11_wm_client_leader = 0;
@@ -309,6 +314,13 @@ static int xrandr_eventbase;
 // Display
 Q_EXPORT bool qt_use_xrender = FALSE;
 
+#ifndef QT_NO_XSYNC
+// True if SYNC extension exists on the connected display
+bool qt_use_xsync = FALSE;
+static int xsync_eventbase;
+static int xsync_errorbase;
+#endif
+
 // modifier masks for alt/meta - detected when the application starts
 static long qt_alt_mask = 0;
 static long qt_meta_mask = 0;
@@ -1938,6 +1950,11 @@ void qt_init_internal( int *argcptr, cha
 	qt_x11_intern_atom( "UTF8_STRING", &qt_utf8_string );
         qt_x11_intern_atom( "_SGI_DESKS_MANAGER", &qt_sgi_desks_manager );
 
+#ifndef QT_NO_XSYNC
+	qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST_COUNTER", &qt_net_wm_sync_request_counter );
+	qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST", &qt_net_wm_sync_request );
+#endif
+
 	qt_xdnd_setup();
 	qt_x11_motifdnd_init();
 
@@ -1974,6 +1991,15 @@ void qt_init_internal( int *argcptr, cha
 	}
 #endif // QT_NO_XRENDER
 
+#ifndef QT_NO_XSYNC
+	// Try to initialize SYNC extension on the connected display
+	int xsync_major, xsync_minor;
+	if ( XSyncQueryExtension( appDpy, &xsync_eventbase, &xsync_errorbase ) && 
+	     XSyncInitialize( appDpy, &xsync_major,  &xsync_minor ) ) {
+	     qt_use_xsync = TRUE;
+	}
+#endif 
+
 #ifndef QT_NO_XKB
 	// If XKB is detected, set the GrabsUseXKBState option so input method
 	// compositions continue to work (ie. deadkeys)
@@ -3141,6 +3167,10 @@ int QApplication::x11ClientMessage(QWidg
 		    XSendEvent( event->xclient.display, event->xclient.window,
 				False, SubstructureNotifyMask|SubstructureRedirectMask, event );
 		}
+#ifndef QT_NO_XSYNC
+	    } else if (a == qt_net_wm_sync_request ) {
+		    widget->handleSyncRequest( event );
+#endif
 	    }
 	} else if ( event->xclient.message_type == qt_qt_scrolldone ) {
 	    widget->translateScrollDoneEvent(event);
@@ -5681,6 +5711,21 @@ bool QETWidget::translateScrollDoneEvent
     return FALSE;
 }
 
+#if defined(Q_C_CALLBACKS)
+extern "C" {
+#endif
+#ifndef QT_NO_XSYNC
+static Bool qt_net_wm_sync_request_scanner(Display*, XEvent* event, XPointer arg)
+{
+    return (event->type == ClientMessage && event->xclient.window == *(Window*)arg
+        && event->xclient.message_type == qt_wm_protocols
+        && event->xclient.data.l[ 0 ] == qt_net_wm_sync_request );
+}
+#endif
+
+#if defined(Q_C_CALLBACKS)
+}
+#endif
 
 //
 // ConfigureNotify (window move and resize) event translation
@@ -5712,6 +5757,7 @@ bool QETWidget::translateConfigEvent( co
         if (! extra || extra->compress_events) {
             // ConfigureNotify compression for faster opaque resizing
             XEvent otherEvent;
+            int compressed_configs = 0;
             while ( XCheckTypedWindowEvent( x11Display(), winId(), ConfigureNotify,
                                             &otherEvent ) ) {
                 if ( qt_x11EventFilter( &otherEvent ) )
@@ -5732,7 +5778,18 @@ bool QETWidget::translateConfigEvent( co
                     newCPos.ry() = otherEvent.xconfigure.y +
                                    otherEvent.xconfigure.border_width;
                 }
+                ++compressed_configs;
+            }
+#ifndef QT_NO_XSYNC
+            // _NET_WM_SYNC_REQUEST compression 
+            Window wid = winId();
+            while ( compressed_configs &&
+                    XCheckIfEvent( x11Display(), &otherEvent,
+                    qt_net_wm_sync_request_scanner, (XPointer)&wid ) ) {
+                handleSyncRequest( (void*)&otherEvent );
+                --compressed_configs;
             }
+#endif
         }
 
 	QRect cr ( geometry() );
@@ -5786,6 +5843,8 @@ bool QETWidget::translateConfigEvent( co
 	repaint( !testWFlags(WResizeNoErase) || transbg );
     }
 
+    incrementSyncCounter();
+
     return TRUE;
 }
 

0084-compositing-properties.patch:

--- NEW FILE 0084-compositing-properties.patch ---
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak at 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 ) {

0088-fix-xinput-clash.diff:

--- NEW FILE 0088-fix-xinput-clash.diff ---
qt-bugs@ issue :
bugs.kde.org number :
applied: no
author: Dirk Mueller <mueller at kde.org>

fix compile errors with newer X.org

--- include/private/qt_x11_p.h
+++ include/private/qt_x11_p.h
@@ -86,7 +86,7 @@
 
 
 // the wacom tablet (currently just the IRIX version)
-#if defined (QT_TABLET_SUPPORT)
+#if defined (QT_TABLET_SUPPORT) && defined (QT_CLEAN_NAMESPACE)
 #  include <X11/extensions/XInput.h>
 #if defined (Q_OS_IRIX)
 #  include <wacom.h>  // wacom driver defines for IRIX (quite handy)
--- src/kernel/qtaddons_x11.cpp
+++ src/kernel/qtaddons_x11.cpp
@@ -22,6 +22,10 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
+#ifndef QT_CLEAN_NAMESPACE
+#define QT_CLEAN_NAMESPACE
+#endif
+
 #include "qt_x11_p.h"
 
 #if !defined(QT_NO_XFTFREETYPE) && !defined(QT_XFT2)
--- src/kernel/qt_x11_p.h
+++ src/kernel/qt_x11_p.h
@@ -86,7 +86,7 @@
 
 
 // the wacom tablet (currently just the IRIX version)
-#if defined (QT_TABLET_SUPPORT)
+#if defined (QT_TABLET_SUPPORT) && defined (QT_CLEAN_NAMESPACE)
 #  include <X11/extensions/XInput.h>
 #if defined (Q_OS_IRIX)
 #  include <wacom.h>  // wacom driver defines for IRIX (quite handy)
--- src/kernel/qwidget_x11.cpp
+++ src/kernel/qwidget_x11.cpp
@@ -38,6 +38,10 @@
 **
 **********************************************************************/
 
+#ifndef QT_CLEAN_NAMESPACE
+#define QT_CLEAN_NAMESPACE
+#endif
+
 #include "qapplication.h"
 #include "qapplication_p.h"
 #include "qnamespace.h"


--- NEW FILE assistant3.desktop ---
[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;


--- NEW FILE designer3.desktop ---
[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;


--- NEW FILE linguist3.desktop ---
[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;

qt-3.0.5-nodebug.patch:

--- NEW FILE qt-3.0.5-nodebug.patch ---
--- qt-x11-free-3.0.5/src/tools/qgpluginmanager.cpp.bero	2002-08-21 15:16:19.000000000 +0200
+++ qt-x11-free-3.0.5/src/tools/qgpluginmanager.cpp	2002-08-21 15:16:41.000000000 +0200
@@ -501,10 +501,10 @@
 			     (*f).latin1(),
 			     (const char*) QFile::encodeName( old->library() ) );
 		} else {
-		    qWarning("%s: Feature %s already defined in %s!",
+/*		    qWarning("%s: Feature %s already defined in %s!",
 			     (const char*) QFile::encodeName( old->library() ),
 			     (*f).latin1(),
-			     (const char*) QFile::encodeName( plugin->library() ) );
+			     (const char*) QFile::encodeName( plugin->library() ) ); */
 		}
 	    }
 	}

qt-3.1.0-makefile.patch:

--- NEW FILE qt-3.1.0-makefile.patch ---
--- qt-x11-free-3.1.0/Makefile.orig	2002-11-14 15:44:17.000000000 +0100
+++ qt-x11-free-3.1.0/Makefile	2002-11-14 15:49:33.000000000 +0100
@@ -11,7 +11,7 @@
 install: FORCE
 	@$(MAKE) qt.install
 
-all: symlinks src-qmake src-moc sub-src sub-tools sub-tutorial sub-examples
+all: symlinks src-qmake src-moc sub-src sub-tools
 	@echo
 	@echo "The Qt library is now built in ./lib"
 	@echo "The Qt examples are built in the directories in ./examples"

qt-3.3.3-gtkstyle.patch:

--- NEW FILE qt-3.3.3-gtkstyle.patch ---
--- qt-x11-free-3.3.3.orig/src/widgets/qmenubar.cpp	2004-08-05 16:42:21.000000000 +0200
+++ qt-x11-free-3.3.3/src/widgets/qmenubar.cpp	2004-12-03 17:26:43.000000000 +0100
@@ -228,6 +228,10 @@
 static const int motifItemHMargin	= 5;	// menu item hor text margin
 static const int motifItemVMargin	= 4;	// menu item ver text margin
 
+// The others are 0
+static const int gtkItemHMargin = 8;
+static const int gtkItemVMargin = 8;
+
 /*
 
 +-----------------------------
@@ -292,7 +296,14 @@
     setFrameStyle( QFrame::MenuBarPanel | QFrame::Raised );
 
     QFontMetrics fm = fontMetrics();
-    int h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
+
+    int h;
+    int gs = style().styleHint(QStyle::SH_GUIStyle);
+    if (gs == GtkStyle) {
+        h = fm.height() + gtkItemVMargin;
+    } else {
+        h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
+    }
 
     setGeometry( 0, 0, width(), h );
 
@@ -944,12 +955,19 @@
 	    h = QMAX( mi->pixmap()->height() + 4, QApplication::globalStrut().height() );
 	} else if ( !mi->text().isNull() ) {	// text item
 	    QString s = mi->text();
-	    w = fm.boundingRect( s ).width()
-		+ 2*motifItemHMargin;
+        if ( gs == GtkStyle ) {
+            w = fm.boundingRect( s ).width() + 2*gtkItemHMargin;
+        } else {
+	        w = fm.boundingRect( s ).width() + 2*motifItemHMargin;
+        }
 	    w -= s.contains('&')*fm.width('&');
 	    w += s.contains("&&")*fm.width('&');
 	    w = QMAX( w, QApplication::globalStrut().width() );
-	    h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
+        if (gs == GtkStyle ) {
+            h = QMAX( fm.height() + gtkItemVMargin, QApplication::globalStrut().height() );
+        } else {
+	        h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
+        }
 	} else if ( mi->isSeparator() ) {	// separator item
 	    if ( style().styleHint(QStyle::SH_GUIStyle) == MotifStyle )
 		separator = i; //### only motif?
--- qt-x11-free-3.3.3.orig/src/widgets/qpopupmenu.cpp	2004-08-05 16:42:21.000000000 +0200
+++ qt-x11-free-3.3.3/src/widgets/qpopupmenu.cpp	2004-12-03 17:43:50.000000000 +0100
@@ -65,6 +65,8 @@
 static const int motifArrowHMargin	= 6;	// arrow horizontal margin
 static const int motifArrowVMargin	= 2;	// arrow vertical margin
 
+static const int gtkArrowHMargin	= 0;	// arrow horizontal margin
+static const int gtkArrowVMargin	= 0;	// arrow vertical margin
 
 /*
 
@@ -2289,8 +2291,18 @@
     QRect r( itemGeometry( actItem ) );
     QPoint p;
     QSize ps = popup->sizeHint();
+    // GUI Style
+    int gs = style().styleHint(QStyle::SH_GUIStyle);
+    int arrowHMargin, arrowVMargin;
+    if (gs == GtkStyle) {
+        arrowHMargin = gtkArrowHMargin;
+        arrowVMargin = gtkArrowVMargin;
+    } else {
+        arrowHMargin = motifArrowHMargin;
+        arrowVMargin = motifArrowVMargin;
+    }
     if( QApplication::reverseLayout() ) {
-	p = QPoint( r.left() + motifArrowHMargin - ps.width(), r.top() + motifArrowVMargin );
+	p = QPoint( r.left() + arrowHMargin - ps.width(), r.top() + arrowVMargin );
 	p = mapToGlobal( p );
 
 	bool right = FALSE;
@@ -2303,7 +2315,7 @@
 	if ( right )
 	    p.setX( mapToGlobal( r.topRight() ).x() );
     } else {
-	p = QPoint( r.right() - motifArrowHMargin, r.top() + motifArrowVMargin );
+	p = QPoint( r.right() - arrowHMargin, r.top() + arrowVMargin );
 	p = mapToGlobal( p );
 
 	bool left = FALSE;
--- qt-x11-free-3.3.3.orig/src/kernel/qnamespace.h	2004-08-05 16:42:10.000000000 +0200
+++ qt-x11-free-3.3.3/src/kernel/qnamespace.h	2004-11-29 22:22:26.000000000 +0100
@@ -294,7 +294,8 @@
 #ifdef QT_NO_COMPAT
     enum GUIStyle {
 	WindowsStyle = 1,     // ### Qt 4.0: either remove the obsolete enums or clean up compat vs.
-	MotifStyle = 4        // ### QT_NO_COMPAT by reordering or combination into one enum.
+	MotifStyle = 4,       // ### QT_NO_COMPAT by reordering or combination into one enum.
+    GtkStyle = 6          // Gtk compability mode
     };
 #else
     enum GUIStyle {
@@ -302,7 +303,8 @@
 	WindowsStyle,
 	Win3Style, // OBSOLETE
 	PMStyle, // OBSOLETE
-	MotifStyle
+	MotifStyle,
+    GtkStyle = 6          // Gtk compability mode
     };
 #endif
 

qt-3.3.4-print-CJK.patch:

--- NEW FILE qt-3.3.4-print-CJK.patch ---
--- qt-x11-free-3.3.4/src/kernel/qpsprinter.cpp.cjk	2005-01-21 18:16:11.000000000 +0100
+++ qt-x11-free-3.3.4/src/kernel/qpsprinter.cpp	2005-01-26 15:09:20.911239907 +0100
@@ -4748,10 +4748,11 @@
 
 // GB18030 fonts on Turbolinux
 static const psfont SongGBK2K [] = {
-    { "MSung-Light-GBK2K-H", 0, 100. },
-    { "MSung-Italic-GBK2K-H", 0, 100. },
-    { "MSung-Bold-GBK2K-H", 0, 100. },
-    { "MSung-BoldItalic-GBK2K-H", 0, 100. },
+    { "MSungGBK-Light-GBK2K-H", 0, 100. },
+    { "MSungGBK-Light-GBK2K-H", 0, 100. },
+    { "MSungGBK-Light-GBK2K-H", 0, 100. },
+    { "MSungGBK-Light-GBK2K-H", 0, 100. },
+	 
 };
 static const psfont KaiGBK2K [] = {
     { "MKai-Medium-GBK2K-H", 0, 100. },

qt-3.3.6-fontrendering-214371.patch:

--- NEW FILE qt-3.3.6-fontrendering-214371.patch ---
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) {

qt-3.3.6-fontrendering-bn_IN-209975.patch:

--- NEW FILE qt-3.3.6-fontrendering-bn_IN-209975.patch ---
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak	2006-10-18 17:55:23.308589840 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp	2006-10-18 17:57:45.284006296 +0800
@@ -164,7 +164,7 @@
     Matra, Matra, Matra, Matra,
     Matra, Invalid, Invalid, Matra,
     Matra, Invalid, Invalid, Matra,
-    Matra, Halant, Unknown, Unknown,
+    Matra, Halant, Consonant, Unknown,
 
     Invalid, Invalid, Invalid, Invalid,
     Invalid, Invalid, Invalid, VowelMark,

qt-3.3.6-fontrendering-gu-228452.patch:

--- NEW FILE qt-3.3.6-fontrendering-gu-228452.patch ---
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	2007-02-13 14:41:25.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp	2007-02-13 14:40:02.000000000 +0530
@@ -253,7 +253,7 @@ static const unsigned char indicForms[0x
     Unknown, Unknown, Unknown, Unknown,
     Unknown, Unknown, Unknown, Unknown,
 
-    Other, Other, Other, Other,
+    Other, Other, VowelMark, VowelMark,
     Other, Other, Other, Other,
     Other, Other, Other, Other,
     Other, Other, Other, Other,

qt-3.3.6-fontrendering-ml_IN-209097.patch:

--- NEW FILE qt-3.3.6-fontrendering-ml_IN-209097.patch ---
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak	2006-10-13 13:21:37.000000000 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp	2006-10-13 13:57:36.000000000 +0800
@@ -868,7 +868,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,
@@ -1271,6 +1271,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++) {
@@ -1547,6 +1557,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 QChar *)reordered.data(), len, item->glyphs, item->advances,
                                  &item->num_glyphs, item->flags & QTextEngine::RightToLeft) != QFontEngine::NoError)
         return FALSE;
@@ -1658,6 +1677,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:");

qt-3.3.6-fontrendering-ml_IN-209974.patch:

--- NEW FILE qt-3.3.6-fontrendering-ml_IN-209974.patch ---
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.orig	2006-11-29 17:17:26.000000000 +0100
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp	2006-11-29 17:22:34.000000000 +0100
@@ -864,7 +864,7 @@
     None, None, None, Post,
 
     None, None, None, None,
-    None, Post, None, None,
+    None, None, None, None,
     None, None, None, None,
     None, None, Post, Post,
 

qt-3.3.6-fontrendering-ml_IN-217657.patch:

--- NEW FILE qt-3.3.6-fontrendering-ml_IN-217657.patch ---
diff -pruN qt-x11-free-3.3.6.org/src/kernel/qfont_x11.cpp qt-x11-free-3.3.6/src/kernel/qfont_x11.cpp
--- qt-x11-free-3.3.6.org/src/kernel/qfont_x11.cpp	2006-03-08 00:00:00.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qfont_x11.cpp	2006-12-04 18:49:09.000000000 +0530
@@ -709,7 +709,7 @@ int QFontMetrics::charWidth( const QStri
     if ( script >= QFont::Arabic && script <= QFont::Khmer ) {
 	// complex script shaping. Have to do some hard work
 	int from = QMAX( 0,  pos - 8 );
-	int to = QMIN( (int)str.length(), pos + 8 );
+	int to = str.length();
 	QConstString cstr( str.unicode()+from, to-from);
 	QTextEngine layout( cstr.string(), d );
 	layout.itemize( QTextEngine::WidthOnly );

qt-3.3.6-fontrendering-te_IN-211259.patch:

--- NEW FILE qt-3.3.6-fontrendering-te_IN-211259.patch ---
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak	2006-10-18 17:55:23.000000000 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp	2006-10-19 16:42:31.641160984 +0800
@@ -786,7 +786,7 @@
     Below, None, Below, Below,
     Below, Below, Below, Below,
 
-    Below, None, Below, Below,
+    Below, Below, Below, Below,
     None, Below, Below, Below,
     Below, Below, None, None,
     None, None, Post, Above,

qt-3.3.8-fontrendering-#214570.patch:

--- NEW FILE qt-3.3.8-fontrendering-#214570.patch ---
--- qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp.orig	2007-04-11 15:05:34.000000000 +0200
+++ qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp	2007-04-11 15:22:19.000000000 +0200
@@ -1240,7 +1240,7 @@
     int script = item->script;
     Q_ASSERT(script >= QFont::Devanagari && script <= QFont::Sinhala);
     const unsigned short script_base = 0x0900 + 0x80*(script-QFont::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;
 
@@ -1278,6 +1278,11 @@
     }
 #endif
 
+    unsigned short *chkAssamese=reordered.data();
+    if((script == QFont::Bengali) && (*chkAssamese==0x09F0)) //if it is assamese ra
+    {
+       ra  = script_base + 0x70;
+    }
     if (len != 1) {
         unsigned short *uc = reordered.data();
         bool beginsWithRa = FALSE;

qt-3.3.8-fontrendering-as_IN-209972.patch:

--- NEW FILE qt-3.3.8-fontrendering-as_IN-209972.patch ---
--- qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp.orig	2007-04-11 15:05:34.000000000 +0200
+++ qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp	2007-04-11 15:22:19.000000000 +0200
@@ -601,7 +601,7 @@
     None, None, None, None,
     None, None, None, None,
 
-    None, None, None, None,
+    Below, None, None, None,
     None, None, None, None,
     None, None, None, None,
     None, None, None, None,

qt-uic-nostdlib.patch:

--- NEW FILE qt-uic-nostdlib.patch ---
--- 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") {
+		QStringList x;
+		QApplication::setLibraryPaths(x);
 	    } else if ( opt == "L" ) {
 		if ( !(n < argc-1) ) {
 		    error = "Missing plugin path.";

qt-x11-free-3.3.2-quiet.patch:

--- NEW FILE qt-x11-free-3.3.2-quiet.patch ---
--- qt-x11-free-3.3.2/src/kernel/qpixmap_x11.cpp.orig	2004-05-10 13:54:03.592289052 +0200
+++ qt-x11-free-3.3.2/src/kernel/qpixmap_x11.cpp	2004-05-10 13:56:10.165560473 +0200
@@ -288,8 +288,9 @@
 {
 #if defined(QT_CHECK_STATE)
     if ( qApp->type() == QApplication::Tty ) {
-	qWarning( "QPixmap: Cannot create a QPixmap when no GUI "
-		  "is being used" );
+//	qWarning( "QPixmap: Cannot create a QPixmap when no GUI "
+//		  "is being used" );
+	;
     }
 #endif
 

qt-x11-free-3.3.3-gl.patch:

--- NEW FILE qt-x11-free-3.3.3-gl.patch ---
--- qt-x11-free-3.3.3/src/opengl/qgl_x11.cpp.orig	2004-08-18 14:55:20.629068213 +0200
+++ qt-x11-free-3.3.3/src/opengl/qgl_x11.cpp	2004-08-18 15:00:43.090260739 +0200
@@ -125,7 +125,7 @@
     if (gl_syms_resolved)
 	return TRUE;
 
-    QLibrary gl("GL");
+    QLibrary gl("GL.so.1");
     gl.setAutoUnload(FALSE);
 
     qt_glCallLists = (_glCallLists) gl.resolve("glCallLists");
@@ -283,7 +283,7 @@
 	typedef Status (*_XmuLookupStandardColormap)( Display *dpy, int screen, VisualID visualid, unsigned int depth,
 						      Atom property, Bool replace, Bool retain );
 	_XmuLookupStandardColormap qt_XmuLookupStandardColormap;
-	qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu", "XmuLookupStandardColormap");
+	qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu.so.6", "XmuLookupStandardColormap");
 	if (!qt_XmuLookupStandardColormap)
 	    qFatal("Unable to resolve Xmu symbols - please check your Xmu library installation.");
 #define XmuLookupStandardColormap qt_XmuLookupStandardColormap
--- qt-x11-free-3.3.3/src/tools/qlibrary.cpp.orig	2004-08-18 14:56:00.322185890 +0200
+++ qt-x11-free-3.3.3/src/tools/qlibrary.cpp	2004-08-18 14:57:51.939637946 +0200
@@ -425,6 +425,7 @@
 	    } else {
 		tmpfilename = QString( "lib%1" ).arg( filename );
 	    }
+	    if ( !filename.contains(".so") )
 	    tmpfilename += filter;
 	    if(QFile::exists(tmpfilename) || it == filters.end()) {
 		filename = tmpfilename;

qt-x11-free-3.3.3-qembed.patch:

--- NEW FILE qt-x11-free-3.3.3-qembed.patch ---
--- qt-x11-free-3.3.3/tools/tools.pro.qembed	2004-06-08 10:05:03.000000000 +0200
+++ qt-x11-free-3.3.3/tools/tools.pro	2004-08-11 15:47:35.393118498 +0200
@@ -5,6 +5,7 @@
     SUBDIRS		= assistant/lib \
 		      designer \
 		      assistant \
+		      qembed \
 		      linguist
     unix:SUBDIRS	+= qtconfig
 }
--- qt-x11-free-3.3.3/tools/qembed/qembed.pro.qembed	2004-06-08 10:08:40.000000000 +0200
+++ qt-x11-free-3.3.3/tools/qembed/qembed.pro	2004-08-11 15:51:12.008859486 +0200
@@ -2,3 +2,7 @@
 SOURCES = qembed.cpp
 TARGET  = qembed
 REQUIRES=full-config nocrosscompiler
+DESTDIR = ../../bin
+target.path=$$bins.path
+INSTALLS += target
+

qt-x11-free-3.3.4-fullscreen.patch:

--- NEW FILE qt-x11-free-3.3.4-fullscreen.patch ---
--- qt-x11-free-3.3.3/src/kernel/qapplication_x11.cpp.orig	2004-11-09 18:57:15.012843629 +0100
+++ qt-x11-free-3.3.3/src/kernel/qapplication_x11.cpp	2004-11-09 19:02:31.351637807 +0100
@@ -1412,7 +1412,7 @@
 			       False, XA_ATOM, &type, &format, &nitems, &after, &data);
 
 	    if (type == XA_ATOM && format == 32) {
-		ts.writeBlock((const char *) data, nitems * 4);
+		ts.writeBlock((const char *) data, nitems * sizeof(long));
 		offset += nitems;
 	    } else
 		after = 0;

qt-x11-free-3.3.5-uic.patch:

--- NEW FILE qt-x11-free-3.3.5-uic.patch ---
Index: tools/designer/uic/form.cpp
===================================================================
--- qt/tools/designer/uic/form.cpp	(revision 460038)
+++ qt/tools/designer/uic/form.cpp	(working copy)
@@ -731,6 +731,13 @@
             while ( !n2.isNull() ) {
                 if ( n2.tagName() == "includehint" ) {
                     QString file = n2.firstChild().toText().data();
+                    int colons = file.find("::");
+
+                    if (colons != -1)
+                    {
+                        file = file.right(file.length() - colons - 2);
+                    }
+
                     localIncludes += file;
                 }
                 n2 = n2.nextSibling().toElement();

qt-x11-free-3.3.6-fix-key-release-event-with-imm.diff:

--- NEW FILE qt-x11-free-3.3.6-fix-key-release-event-with-imm.diff ---
--- qt-x11-free-3.3.6/src/kernel/qapplication_x11.cpp.orig	2006-06-20 15:45:44.000000000 +0200
+++ qt-x11-free-3.3.6/src/kernel/qapplication_x11.cpp	2006-06-20 15:51:13.000000000 +0200
@@ -3294,11 +3294,7 @@
     // filtering opportunity first to ensure all input methods work
     // properly regardless of application design.
 
-#ifndef QT_NO_IM_EXTENSIONS
     if( keywidget && keywidget->isEnabled() && keywidget->isInputMethodEnabled() ) {
-#else
-    if( keywidget && keywidget->isEnabled() ) {
-#endif
 	if( ( event->type==XKeyPress || event->type==XKeyRelease ) &&
 	    sm_blockUserInput ) // block user interaction during session management
 	    return TRUE;
@@ -5220,11 +5216,12 @@
     } else {
 	key = (int)(long)keyDict->find( keycode );
 	if ( key )
-	    if( !willRepeat ) // Take out key of dictionary only if this call.
+	    if( !willRepeat && statefulTranslation ) // Take out key of dictionary only if this call.
 		keyDict->take( keycode );
 	long s = (long)textDict->find( keycode );
 	if ( s ) {
-	    textDict->take( keycode );
+	    if( statefulTranslation )
+	        textDict->take( keycode );
 	    ascii = (char)(s-256);
 	}
     }
--- qt-x11-free-3.3.6/src/kernel/qwidget_x11.cpp.orig	2006-06-20 15:46:49.000000000 +0200
+++ qt-x11-free-3.3.6/src/kernel/qwidget_x11.cpp	2006-06-20 15:48:14.000000000 +0200
@@ -2699,11 +2699,10 @@
 {
     QInputContext *qic = 0;
 
-#if !defined(QT_NO_IM_EXTENSIONS)
     if ( isInputMethodEnabled() ) {
+#if !defined(QT_NO_IM_EXTENSIONS)
 	qic = icHolderWidget()->ic;
 #else
-    {
 	// icHolderWidget is always topLevelWidget
 	QTLWExtra *topdata = icHolderWidget()->topData();
 	qic = (QInputContext *)topdata->xic;
@@ -2754,10 +2753,8 @@
 */
 void QWidget::createInputContext()
 {
-#if !defined(QT_NO_IM_EXTENSIONS)
     if( !isInputMethodEnabled() || QApplication::closingDown() )
 	return;
-#endif
 
     QWidget *icWidget = icHolderWidget();
 #ifndef QT_NO_IM

qt-x11-free-3.3.6-qfontdatabase_x11.patch:

--- NEW FILE qt-x11-free-3.3.6-qfontdatabase_x11.patch ---
--- qt-x11-free-3.3.6/src/kernel/qfontdatabase_x11.cpp.fonts	2004-08-05 16:42:06.000000000 +0200
+++ qt-x11-free-3.3.6/src/kernel/qfontdatabase_x11.cpp	2004-09-28 16:11:54.955374161 +0200
@@ -975,7 +981,7 @@
     };
     const XftDefaultFont defaults[] = {
 	{ "Serif", "serif", FALSE },
-	{ "Sans Serif", "sans-serif", FALSE },
+	{ "Sans", "sans-serif", FALSE },
         { "Monospace", "monospace", TRUE },
 	{ 0, 0, FALSE }
     };

qt-x11-free-3.3.6-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch:

--- NEW FILE qt-x11-free-3.3.6-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch ---
--- 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 QTextEdit::removeSelectedText( int selNum )
 {
-    if(selNum != 0)
-        resetInputContext();
-
     QTextCursor c1 = doc->selectionStartCursor( selNum );
     c1.restoreState();
     QTextCursor c2 = doc->selectionEndCursor( selNum );
@@ -3171,7 +3168,6 @@
 	return;
     }
 #endif
-    resetInputContext();
     QTextParagraph *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();
     QTextParagraph *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 );

qt-x11-free-3.3.6-strip.patch:

--- NEW FILE qt-x11-free-3.3.6-strip.patch ---
--- qt-x11-free-3.3.6/mkspecs/linux-g++/qmake.conf.orig	2006-06-21 15:37:53.000000000 +0200
+++ qt-x11-free-3.3.6/mkspecs/linux-g++/qmake.conf	2006-06-21 15:38:02.000000000 +0200
@@ -84,7 +84,7 @@
 QMAKE_MOVE		= mv -f
 QMAKE_DEL_FILE		= rm -f
 QMAKE_DEL_DIR		= rmdir
-QMAKE_STRIP             = strip
-QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
+QMAKE_STRIP             =
+QMAKE_STRIPFLAGS_LIB 	+=
 QMAKE_CHK_DIR_EXISTS	= test -d
 QMAKE_MKDIR		= mkdir -p
--- qt-x11-free-3.3.6/mkspecs/linux-g++-32/qmake.conf.orig	2006-06-21 15:37:09.000000000 +0200
+++ qt-x11-free-3.3.6/mkspecs/linux-g++-32/qmake.conf	2006-06-21 15:37:19.000000000 +0200
@@ -84,7 +84,7 @@
 QMAKE_MOVE		= mv -f
 QMAKE_DEL_FILE		= rm -f
 QMAKE_DEL_DIR		= rmdir
-QMAKE_STRIP             = strip
-QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
+QMAKE_STRIP             =
+QMAKE_STRIPFLAGS_LIB 	+=
 QMAKE_CHK_DIR_EXISTS	= test -d
 QMAKE_MKDIR		= mkdir -p
--- qt-x11-free-3.3.6/mkspecs/linux-g++-64/qmake.conf.orig	2006-06-21 15:36:23.000000000 +0200
+++ qt-x11-free-3.3.6/mkspecs/linux-g++-64/qmake.conf	2006-06-21 15:36:56.000000000 +0200
@@ -87,7 +87,7 @@
 QMAKE_MOVE		= mv -f
 QMAKE_DEL_FILE		= rm -f
 QMAKE_DEL_DIR		= rmdir
-QMAKE_STRIP             = strip
-QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
+QMAKE_STRIP             =
+QMAKE_STRIPFLAGS_LIB 	+=
 QMAKE_CHK_DIR_EXISTS	= test -d
 QMAKE_MKDIR		= mkdir -p

qt-x11-free-3.3.7-umask.patch:

--- NEW FILE qt-x11-free-3.3.7-umask.patch ---
--- qt-x11-free-3.3.7/src/tools/qsettings.cpp.tn	2006-11-09 20:53:25.000000000 +0100
+++ qt-x11-free-3.3.7/src/tools/qsettings.cpp	2006-11-09 20:59:53.000000000 +0100
@@ -994,7 +994,10 @@
 #endif
 
 	QFile 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("QSettings::sync: failed to open '%s' for writing",

qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-post.patch:

--- NEW FILE qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-post.patch ---
--- qt-x11-free-3.3.8/src/widgets/qtextedit.cpp.im	2007-03-19 10:19:10.000000000 +0100
+++ qt-x11-free-3.3.8/src/widgets/qtextedit.cpp	2007-03-19 10:19:47.000000000 +0100
@@ -5059,6 +5059,10 @@
 
 void QTextEdit::setDocument( QTextDocument *dc )
 {
+    if ( dc == 0 ) {
+        qWarning( "Q3TextEdit::setDocument() called with null Q3TextDocument pointer" );
+        return;
+    }
     if ( dc == doc )
 	return;
     resetInputContext();
--- qt-x11-free-3.3.8/src/widgets/qlineedit.cpp.im	2007-03-19 10:20:03.000000000 +0100
+++ qt-x11-free-3.3.8/src/widgets/qlineedit.cpp	2007-03-19 10:22:11.000000000 +0100
@@ -457,10 +457,10 @@
     \property QLineEdit::text
     \brief the line edit's text
 
-    Setting this property clears the selection, clears the undo/redo
-    history, moves the cursor to the end of the line and resets the
-    \c modified property to FALSE. The text is not validated when
-    inserted with setText().
+    Note that setting this property clears the selection, clears the
+    undo/redo history, moves the cursor to the end of the line and
+    resets the \c modified property to FALSE. The text is not
+    validated when inserted with setText().
 
     The text is truncated to maxLength() length.
 
@@ -1014,6 +1014,9 @@
 /*!
     Selects text from position \a start and for \a length characters.
 
+    Note that this function sets the cursor's position to the end of
+    the selection regardless of its current position.
+
     \sa deselect() selectAll() getSelection() cursorForward() cursorBackward()
 */
 

qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-pre.patch:

--- NEW FILE qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-pre.patch ---
--- qt-x11-free-3.3.8/src/kernel/qwidget_x11.cpp	2007-02-02 15:01:13.000000000 +0100
+++ qt-x11-free-3.3.7/src/kernel/qwidget_x11.cpp	2006-10-19 16:25:16.000000000 +0200
@@ -1442,7 +1442,16 @@
     QWidget *tlw = topLevelWidget();
     if ( tlw->isVisible() && !tlw->topData()->embedded && !qt_deferred_map_contains(tlw) ) {
 	XSetInputFocus( x11Display(), tlw->winId(), RevertToNone, qt_x_time);
-        focusInputContext();
+
+#ifndef QT_NO_XIM
+	// trigger input context creation if it hasn't happened already
+	createInputContext();
+
+	if (tlw->topData()->xic) {
+	    QInputContext *qic = (QInputContext *) tlw->topData()->xic;
+	    qic->setFocus();
+	}
+#endif
     }
 }
 
@@ -2717,16 +2726,14 @@
 {
 #ifndef QT_NO_XIM
     QWidget *tlw = topLevelWidget();
-    if (!tlw->isPopup() || isInputMethodEnabled()) {
-        QTLWExtra *topdata = tlw->topData();
+    QTLWExtra *topdata = tlw->topData();
 
-        // trigger input context creation if it hasn't happened already
-        createInputContext();
+    // trigger input context creation if it hasn't happened already
+    createInputContext();
 
-        if (topdata->xic) {
-            QInputContext *qic = (QInputContext *) topdata->xic;
-            qic->setFocus();
-        }
+    if (topdata->xic) {
+	QInputContext *qic = (QInputContext *) topdata->xic;
+	qic->setFocus();
     }
 #endif // QT_NO_XIM
 }
--- qt-x11-free-3.3.8/src/widgets/qtextedit.cpp	2007-02-02 15:01:23.000000000 +0100
+++ qt-x11-free-3.3.7/src/widgets/qtextedit.cpp	2006-10-19 16:25:34.000000000 +0200
@@ -4972,10 +4972,6 @@
 
 void QTextEdit::setDocument( QTextDocument *dc )
 {
-    if ( dc == 0 ) {
-        qWarning( "Q3TextEdit::setDocument() called with null Q3TextDocument pointer" );
-        return;
-    }
     if ( dc == doc )
 	return;
     resetInputContext();
--- qt-x11-free-3.3.8/src/widgets/qlineedit.cpp	2007-02-02 15:01:24.000000000 +0100
+++ qt-x11-free-3.3.7/src/widgets/qlineedit.cpp	2006-10-19 16:25:36.000000000 +0200
@@ -446,10 +446,10 @@
     \property QLineEdit::text
     \brief the line edit's text
 
-    Note that setting this property clears the selection, clears the
-    undo/redo history, moves the cursor to the end of the line and
-    resets the \c modified property to FALSE. The text is not
-    validated when inserted with setText().
+    Setting this property clears the selection, clears the undo/redo
+    history, moves the cursor to the end of the line and resets the
+    \c modified property to FALSE. The text is not validated when
+    inserted with setText().
 
     The text is truncated to maxLength() length.
 
@@ -1002,9 +1002,6 @@
 /*!
     Selects text from position \a start and for \a length characters.
 
-    Note that this function sets the cursor's position to the end of
-    the selection regardless of its current position.
-
     \sa deselect() selectAll() getSelection() cursorForward() cursorBackward()
 */
 

qt-x11-free-3.3.8b-gcc4-buildkey.patch:

--- NEW FILE qt-x11-free-3.3.8b-gcc4-buildkey.patch ---
diff -ur qt-x11-free-3.3.8b/configure qt-x11-free-3.3.8b-gcc4-buildkey/configure
--- qt-x11-free-3.3.8b/configure	2008-01-15 20:09:15.000000000 +0100
+++ qt-x11-free-3.3.8b-gcc4-buildkey/configure	2008-02-18 02:41:01.000000000 +0100
@@ -3081,16 +3081,16 @@
 g++*)
     # GNU C++
     QMAKE_CONF_COMPILER=`grep "QMAKE_CXX[^_A-Z0-9a-z]" $QMAKESPEC/qmake.conf | sed "s,.* *= *\(.*\)$,\1,"`
-    COMPILER_VERSION=`${QMAKE_CONF_COMPILER} --version 2>/dev/null`
+    COMPILER_VERSION=`${QMAKE_CONF_COMPILER} --version 2>/dev/null | sed 's,^[^0-9]*,,g'`
     case "$COMPILER_VERSION" in
-    *2.95.*)
+    2.95.*)
 	COMPILER_VERSION="2.95.*"
 	;;
-    *3.*)
+    3.*)
 	COMPILER_VERSION="3.*"
 	;;
-    *4.*)
-	COMPILER_VERSION="4"
+    4.*)
+	COMPILER_VERSION="4.*"
 	;;
     *)
 	;;

qt-x11-free-3.3.8b-gcc43.patch:

--- NEW FILE qt-x11-free-3.3.8b-gcc43.patch ---
diff -up qt-x11-free-3.3.8b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp.gcc43 qt-x11-free-3.3.8b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
--- qt-x11-free-3.3.8b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp.gcc43	2008-02-15 23:51:58.000000000 +0100
+++ qt-x11-free-3.3.8b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp	2008-02-16 00:42:09.000000000 +0100
@@ -44,7 +44,7 @@
 #include "qnoneinputcontextplugin.h"
 #include <qinputcontextfactory.h>
 #include <qsettings.h>
-
+#include <stdlib.h>
 
 QNoneInputContextPlugin::QNoneInputContextPlugin()
 {
diff -up qt-x11-free-3.3.8b/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp.gcc43 qt-x11-free-3.3.8b/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
--- qt-x11-free-3.3.8b/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp.gcc43	2008-02-15 23:54:26.000000000 +0100
+++ qt-x11-free-3.3.8b/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp	2008-02-16 00:33:49.000000000 +0100
@@ -45,6 +45,7 @@
 #include <qnamespace.h>
 #include <qevent.h>
 #include <qglobal.h>
+#include <algorithm>
 
 static const int ignoreKeys[] = {
     Qt::Key_Shift,

qt-x11-free-3.3.8b-uic-multilib.patch:

--- NEW FILE qt-x11-free-3.3.8b-uic-multilib.patch ---
diff -up qt-x11-free-3.3.8b/tools/designer/uic/main.cpp.orig qt-x11-free-3.3.8b/tools/designer/uic/main.cpp
--- qt-x11-free-3.3.8b/tools/designer/uic/main.cpp.orig	2008-01-24 13:25:29.000000000 +0100
+++ qt-x11-free-3.3.8b/tools/designer/uic/main.cpp	2008-01-24 13:28:17.000000000 +0100
@@ -320,7 +320,7 @@ int main( int argc, char * argv[] )
 	out << "/****************************************************************************" << endl;
 	out << "** Form "<< (impl? "implementation" : "interface") << " generated from reading ui file '" << fileName << "'" << endl;
 	out << "**" << endl;
-	out << "** Created: " << QDateTime::currentDateTime().toString() << endl;
+	out << "** Created by User Interface Compiler" << endl;
 	out << "**" << endl;
 	out << "** WARNING! All changes made in this file will be lost!" << endl;
 	out << "****************************************************************************/" << endl << endl;
diff -up qt-x11-free-3.3.8b/tools/designer/uic/embed.cpp.orig qt-x11-free-3.3.8b/tools/designer/uic/embed.cpp
--- qt-x11-free-3.3.8b/tools/designer/uic/embed.cpp.orig	2008-01-24 13:28:30.000000000 +0100
+++ qt-x11-free-3.3.8b/tools/designer/uic/embed.cpp	2008-01-24 13:29:10.000000000 +0100
@@ -137,7 +137,7 @@ void Uic::embed( QTextStream& out, const
     for ( it = images.begin(); it != images.end(); ++it )
 	out << "**      " << *it << "\n";
     out << "**\n";
-    out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
+    out << "** Created by The User Interface Compiler" << "\n";
     out << "**\n";
     out << "** WARNING! All changes made in this file will be lost!\n";
     out << "****************************************************************************/\n";

qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch:

--- NEW FILE qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch ---
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();
 }
 


--- NEW FILE qt.csh ---
# Qt initialization script (csh)

set qt_prefix = `/usr/bin/pkg-config --variable=prefix qt-mt`

if ( "${path}" !~ *$qt_prefix/bin* ) then
   set path = ( $qt_prefix/bin $path )
endif

if ( $?QTDIR ) then
   exit
endif

setenv QTDIR $qt_prefix
setenv QTINC $qt_prefix/include
setenv QTLIB $qt_prefix/lib


--- NEW FILE qt.sh ---
# Qt initialization script (sh)

qt_prefix=`/usr/bin/pkg-config --variable=prefix qt-mt`

if ! echo ${PATH} | /bin/grep -q $qt_prefix/bin ; then
   PATH=$qt_prefix/bin:${PATH}
fi

if [ -z "$QTDIR" ] ; then
	QTDIR="$qt_prefix"
	QTINC="$qt_prefix/include"
	QTLIB="$qt_prefix/lib"
fi

export QTDIR QTINC QTLIB PATH


--- NEW FILE qt3.spec ---
Summary: The shared library for the Qt 3 GUI toolkit
%if 0%{?fedora} > 8
Name: qt3
Obsoletes: qt < 1:%{version}-%{release}
Provides: qt = 1:%{version}-%{release}
%else
Name: qt
Epoch: 1
Obsoletes: qt3 < %{version}-%{release}
Provides: qt3 = %{version}-%{release}
%endif
Version: 3.3.8b
Release: 9%{?dist}
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: ftp://ftp.troll.no/qt/source/qt-x11-free-%{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: qt-3.0.5-nodebug.patch
Patch3: qt-3.1.0-makefile.patch
Patch4: qt-x11-free-3.3.7-umask.patch
Patch5: qt-x11-free-3.3.6-strip.patch
Patch7: qt-x11-free-3.3.2-quiet.patch
Patch8: qt-x11-free-3.3.3-qembed.patch
Patch12: qt-uic-nostdlib.patch
Patch13: qt-x11-free-3.3.6-qfontdatabase_x11.patch
Patch14: qt-x11-free-3.3.3-gl.patch
Patch19: qt-3.3.3-gtkstyle.patch 
Patch20: qt-x11-free-3.3.8b-gcc4-buildkey.patch
Patch24: qt-x11-free-3.3.5-uic.patch
Patch25: qt-x11-free-3.3.8b-uic-multilib.patch
Patch27: qt-3.3.6-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: qt-3.3.6-fontrendering-214371.patch
Patch33: qt-3.3.8-fontrendering-#214570.patch
Patch34: qt-3.3.6-fontrendering-ml_IN-209974.patch
Patch35: qt-3.3.6-fontrendering-ml_IN-217657.patch
Patch37: qt-3.3.6-fontrendering-gu-228452.patch

# immodule patches
Patch50: qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-pre.patch
Patch51: qt-x11-immodule-unified-qt3.3.7-20061229.diff.bz2
Patch52: qt-x11-free-3.3.8-qt-x11-immodule-unified-qt3.3.7-20061229-post.patch
Patch53: qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch
Patch54: qt-x11-free-3.3.6-fix-key-release-event-with-imm.diff
Patch55: qt-x11-free-3.3.6-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch

# qt-copy patches
Patch100: 0038-dragobject-dont-prefer-unknown.patch
Patch101: 0047-fix-kmenu-width.diff
Patch102: 0048-qclipboard_hack_80072.patch
Patch103: 0056-khotkeys_input_84434.patch
patch105: 0073-xinerama-aware-qpopup.patch
Patch107: 0079-compositing-types.patch
Patch108: 0080-net-wm-sync-request-2.patch
Patch110: 0084-compositing-properties.patch
Patch111: 0088-fix-xinput-clash.diff

# upstream patches
Patch200: qt-x11-free-3.3.4-fullscreen.patch
Patch201: qt-x11-free-3.3.8b-gcc43.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: fileutils
Requires: fontconfig >= 2.0
Requires: /etc/ld.so.conf.d
Requires: pkgconfig

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}

%if "%{name}" == "qt"
Obsoletes: qt3-config < %{version}-%{release}
Provides:  qt3-config = %{version}-%{release}
%else
Obsoletes: qt-config < 1:%{version}-%{release}
Provides:  qt-config = 1:%{version}-%{release}
%endif


%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

%if "%{name}" == "qt"
Obsoletes: qt3-devel < %{version}-%{release}
Provides:  qt3-devel = %{version}-%{release}
%else
Obsoletes: qt-devel < 1:%{version}-%{release}
Provides:  qt-devel = 1:%{version}-%{release}
%endif


%package devel-docs
Summary: Documentation for the Qt 3 GUI toolkit
Group: Development/Libraries
Requires: %{name}-devel = %{?epoch:%{epoch}:}:%{version}-%{release}

%if "%{name}" == "qt"
Obsoletes: qt3-devel-docs < %{version}-%{release}
Provides:  qt3-devel-docs = %{version}-%{release}
%else
Obsoletes: qt-devel-docs < 1:%{version}-%{release}
Provides:  qt-devel-docs = 1:%{version}-%{release}
%endif


%package ODBC
Summary: ODBC drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}:%{version}-%{release}

%if "%{name}" == "qt"
Obsoletes: qt3-ODBC < %{version}-%{release}
Provides:  qt3-ODBC = %{version}-%{release}
%else
Obsoletes: qt-ODBC < 1:%{version}-%{release}
Provides:  qt-ODBC = 1:%{version}-%{release}
%endif


%package MySQL
Summary: MySQL drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}:%{version}-%{release}

%if "%{name}" == "qt"
Obsoletes: qt3-MySQL < %{version}-%{release}
Provides:  qt3-MySQL = %{version}-%{release}
%else
Obsoletes: qt-MySQL < 1:%{version}-%{release}
Provides:  qt-MySQL = 1:%{version}-%{release}
%endif


%package PostgreSQL
Summary: PostgreSQL drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}:%{version}-%{release}

%if "%{name}" == "qt"
Obsoletes: qt3-PostgreSQL < %{version}-%{release}
Provides:  qt3-PostgreSQL = %{version}-%{release}
%else
Obsoletes: qt-PostgreSQL < 1:%{version}-%{release}
Provides:  qt-PostgreSQL = 1:%{version}-%{release}
%endif


%package sqlite
Summary: sqlite drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}:%{version}-%{release}

%if "%{name}" == "qt"
Obsoletes: qt3-sqlite < %{version}-%{release}
Provides:  qt3-sqlite = %{version}-%{release}
%else
Obsoletes: qt-sqlite < 1:%{version}-%{release}
Provides:  qt-sqlite = 1:%{version}-%{release}
%endif


%package designer
Summary: Interface designer (IDE) for the Qt 3 toolkit
Group: Development/Tools
Requires: %{name}-devel = %{?epoch:%{epoch}:}:%{version}-%{release}

%if "%{name}" == "qt"
Obsoletes: qt3-designer < %{version}-%{release}
Provides:  qt3-designer = %{version}-%{release}
%else
Obsoletes: qt-designer < 1:%{version}-%{release}
Provides:  qt-designer = 1:%{version}-%{release}
%endif


%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 qt-x11-free-%{version}
%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
%patch14 -p1 -b .gl
%patch19 -p1 -b .gtk
%patch20 -p1 -b .gcc4-buildkey
%patch24 -p1 -b .uic
%patch25 -p1 -b .uic-multilib
%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

# immodule patches
%if %{immodule}
%patch50 -p1 -b .pre
%patch51 -p1
%patch52 -p1 -b .post
%patch53 -p1 -b .quiet
%patch54 -p1 -b .fix-key-release-event-with-imm
%patch55 -p1 -b .resetinputcontext
%endif

# qt-copy patches
%patch100 -p0 -b .0038-dragobject-dont-prefer-unknown
%patch101 -p0 -b .0047-fix-kmenu-width
%patch102 -p0 -b .0048-qclipboard_hack_80072
%patch103 -p0 -b .0056-khotkeys_input_84434
%patch105 -p0 -b .0073-xinerama-aware-qpopup
%patch107 -p0 -b .0079-compositing-types
%patch108 -p0 -b .0080-net-wm-sync-request
%patch110 -p0 -b .0084-compositing-properties
%patch111 -p0 -b .0088-fix-xinput-clash

# upstream patches
%patch200 -p1 -b .fullscreen
%patch201 -p1 -b .gcc34

# 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}|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 755 %{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/styles
%if %{immodule}
%{qtdir}/plugins/inputmethods
%endif
%attr(0755,root,root) %config /etc/profile.d/*
/etc/ld.so.conf.d/*
%{qtdir}/lib/libqui.so.*
%{qtdir}/lib/libqt*.so.*

%files config
%defattr(-,root,root,-)
%{qtdir}/bin/qtconfig
%{_datadir}/applications/*qtconfig*.desktop
%{_datadir}/pixmaps/qtconfig3.png

%files devel
%defattr(-,root,root,-)
%{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/libqt*.so
%{qtdir}/lib/libqui.so
%{qtdir}/lib/libeditor.a
%{qtdir}/lib/libdesigner*.a
%{qtdir}/lib/libqassistantclient.a
%{qtdir}/lib/*.prl
%{qtdir}/translations
%{qtdir}/phrasebooks
%{_libdir}/pkgconfig/*
%{_datadir}/applications/*linguist*.desktop
%{_datadir}/applications/*assistant*.desktop
%{_datadir}/pixmaps/linguist3.png
%{_datadir}/pixmaps/assistant3.png
%doc %{qt_docdir}/html

%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,-)
%dir %{qtdir}/plugins/designer
%{qtdir}/templates
%{qtdir}/plugins/designer/*
%{qtdir}/bin/designer
%{_datadir}/applications/*designer*.desktop
%{_datadir}/pixmaps/designer3.png


%changelog
* Wed Mar 12 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 3.3.8b-9
- rename to qt3 on Fedora >= 9

* Tue Mar 11 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 3.3.8b-8
- prepare for rename to qt3 on Fedora >= 9 (not enabled yet)
- add Provides and Obsoletes everywhere
- update summaries and descriptions
- remove dots at end of Summary tags
- fix non-UTF-8 characters

* Tue Mar 11 2008 Than Ngo <than at redhat.com> 3.3.8b-7
- 0088-fix-xinput-clash.diff, fix compile errors with Xmd.h

* Fri Mar 07 2008 Than Ngo <than at redhat.com> 3.3.8b-6
- move qt.[c]sh in main package (#221000)

* Mon Feb 18 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 3.3.8b-5
- fix buildkey for GCC 4.3 (#433235)

* Mon Feb 11 2008 Than Ngo <than at redhat.com> 3.3.8b-4
- rebuild for GCC 4.3

* Thu Jan 24 2008 Than Ngo <than at redhat.com> 3.3.8b-3
- add LICENSE.GPL2/GPL3

* Thu Jan 24 2008 Than Ngo <than at redhat.com> 3.3.8b-2
- License: GPLv2 or GPLv3
- merged in 3.3.8b -> drop following patches:
    * qt-3.3.6-fontrendering-punjabi-209970.patch
    * qt-3.3.6-fontrendering-or_IN-209098.patch
    * qt-3.3.6-fontrendering-gu-228451.patch
    * qt-font-default-subst.diff
    * 0076-fix-qprocess.diff
    * 0082-fix-qdatetime-fromstring.diff
    * qt-x11-free-3.3.8-bz#243722-mysql.patch
    * qt3-CVE-2007-3388.patch
    * utf8-bug-qt3-CVE-2007-0242.diff
    * qt-3.3.6-bz#292941-CVE-2007-4137.patch

* Wed Jan 23 2008 Than Ngo <than at redhat.com> 3.3.8b-1
- update to 3.3.8b, fix License

* Mon Nov 26 2007 Than Ngo <than at redhat.com> 3.3.8-11
- add Provides: qt3 = %%version-%%release

* Wed Nov  7 2007 Stepan Kasal <skasal at redhat.com> - 3.3.8-10
- rh#239216, fix a typo in qt-config description

* Thu Oct 04 2007 Than Ngo <than at redhat.com> - 3.3.8-9
- rh#309091, qt should provide %%{qtdir}/plugins/styles
- rh#276521, qt-copy patches 0079, 0080, 0082 and 0084

* Mon Sep 17 2007 Than Ngo <than at redhat.com> - 3.3.8-8
- CVE-2007-4137

* Wed Aug 29 2007 Than Ngo <than at redhat.com> - 1:3.3.8-7.fc7.1
- CVE-2007-0242

* Tue Aug 28 2007 Than Ngo <than at redhat.com> - 1:3.3.8-7
- CVE-2007-3388 qt3 format string flaw
- backport to fix #bz243722, bz#244148, Applications using qt-mysql crash if database is
  removed before QApplication is destroyed
- cleanup desktop files

* Mon Apr 23 2007 Than Ngo <than at redhat.com> - 1:3.3.8-5.fc7
- apply patch to fix fontrendering problem in gu_IN #228451,#228452

* Wed Apr 11 2007 Than Ngo <than at redhat.com> - 1:3.3.8-4.fc7
- adjust qt-3.3.8-fontrendering-as_IN-209972.patch and
  qt-3.3.8-fontrendering-#214570.patch for qt-3.3.8

* Mon Apr 02 2007 Than Ngo <than at redhat.com> - 1:3.3.8-3.fc7
- apply patches to fix
   Qt UTF-8 overlong sequence decoding vulnerability
   QPopupMenu aware of Xinerama
   a regression in QProgress::writeToStdin()

* Tue Mar 27 2007 Than Ngo <than at redhat.com> 1:3.3.8-2.fc7
- enable tablet support

* Mon Mar 19 2007 Than Ngo <than at redhat.com> 1:3.3.8-1.fc7
- update to 3.3.8

* Wed Dec 06 2006 Than Ngo <than at redhat.com> - 1:3.3.7-2.fc7
- Resolves: bz#214371, bn_IN font rendering
- Resolves: bz#217657, ml_IN issue with cursor position
- Resolves: bz#217638, regression bug in qt
- Resolves: bz#209974, Vowel position set properly
- Resolves: bz#214570, Rendering is not fine for 'RA' 09B0

* Thu Nov 09 2006 Than Ngo <than at redhat.com> 1:3.3.7-1.fc6
- update to 3.3.7
- fix #209097, ml_IN font rendering
- fix #209970, pa font rendering
- fix #209098, or_IN font rendering
- fix #209972, as_IN font rendering
- fix #209975, bn_IN font rendering
- fix #211259, te_IN font rendering
- fix #211436, as_IN font rendering
  thanks Sachin Tawniya, LingNing Zhang for the fixes
- move html files to devel
- add sqlite plugin
- fix #189012, qt settings should be readable for other

* Thu Aug 31 2006 Than Ngo <than at redhat.com> 1:3.3.6-13
- add missing desktop files

* Mon Jul 17 2006 Than Ngo <than at redhat.com> 1:3.3.6-12
- rebuild

* Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> - 1:3.3.6-11.1
- rebuild

* Mon Jul 10 2006 Than Ngo <than at redhat.com> 1:3.3.6-11
- apply upstream patches, fix arabic fonts issue, and
  problems with missing minimum size when richtext
  labels are used

* Thu Jun 29 2006 Than Ngo <than at redhat.com> 1:3.3.6-10
- apply patch from Lars, fixes Qt 3.3.6 for Arabic fonts

* Wed Jun 28 2006 Than Ngo <than at redhat.com> 1:3.3.6-9
- fix #183302, IM preedit issue in kbabel

* Mon Jun 26 2006 Than Ngo <than at redhat.com> 1:3.3.6-8
- rebuilt

* Thu Jun 08 2006 Than Ngo <than at redhat.com> 1:3.3.6-7
- fix utf8 issue in changelog
- fix #195410, don't strip binaries/libraries
- fix #156572, keyReleaseEvent issue

* Mon Jun 05 2006 Than Ngo <than at redhat.com> 1:3.3.6-6
- qt-devel requires on mesa-libGLU-devel mesa-libGU-devel

* Tue May 16 2006 Than Ngo <than at redhat.com> 1:3.3.6-5 
- fix #191895, BR libXmu-devel
- disable warnings if debug is off

* Mon May 15 2006 Than Ngo <than at redhat.com> 1:3.3.6-4
- fix multilib issue 

* Tue May 09 2006 Than Ngo <than at redhat.com> 1:3.3.6-3 
- add subpackage qt-devel-docs #191099

* Thu Apr 13 2006 Than Ngo <than at redhat.com> 1:3.3.6-2
- fix xorg prefix #188510

* Mon Mar 20 2006 Than Ngo <than at redhat.com> 1:3.3.6-1
- update to 3.3.6
- adapt qt-x11-immodule-unified-qt3.3.5-20060318 to qt-3.3.6
- remove set of fixes for the immodule patch, included in qt-x11-immodule-unified-qt3.3.5-20060318
- remove 0051-qtoolbar_77047.patch, qt-x11-free-3.3.4-assistant_de.patch,
  qt-x11-free-3.3.5-warning.patch, included in new upstream


* Mon Feb 27 2006 Than Ngo <than at redhat.com> 1:3.3.5-13
- add set of fixes for the immodule patch, thanks to Dirk Müller

* Fri Feb 10 2006 Jesse Keating <jkeating at redhat.com> - 1:3.3.5-12.2
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating at redhat.com> - 1:3.3.5-12.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Tue Jan 17 2006 Than Ngo <than at redhat.com> 1:3.3.5-12
- add BuildRequires on mesa-libGL-devel

* Wed Dec 21 2005 Than Ngo <than at redhat.com> 1:3.3.5-11 
- BuildRequires on libXt-devel/xorg-x11-proto-devel
 
* Fri Dec 09 2005 Jesse Keating <jkeating at redhat.com>
- rebuilt
 
* Sun Nov 13 2005 Than Ngo <than at redhat.com> 1:3.3.5-10
- workaround for keyboard input action in KHotKeys

* Tue Nov 08 2005 Than Ngo <than at redhat.com> 1:3.3.5-9 
- fix for modular X

* Tue Nov 08 2005 Than Ngo <than at redhat.com> 1:3.3.5-8
- get rid of xorg-x11-devel, fix for modular X

* Tue Oct 25 2005 Than Ngo <than at redhat.com> 1:3.3.5-7
- update qt-x11-immodule-unified-qt3.3.5-20051012-quiet.patch

* Mon Oct 24 2005 Than Ngo <than at redhat.com> 1:3.3.5-6
- update qt-x11-immodule-unified-qt3.3.5-20051018.diff
- remove unneeded qt-x11-immodule-unified-qt3.3.5-20051012-build.patch

* Thu Oct 13 2005 Than Ngo <than at redhat.com> 1:3.3.5-5
- update qt-x11-immodule-unified-qt3.3.5-20051012
- disable some debug messages
- apply patch to fix build problem with the new immodule patch

* Tue Sep 27 2005 Than Ngo <than at redhat.com> 1:3.3.5-4
- apply patch to fix gcc warnings

* Mon Sep 26 2005 Than Ngo <than at redhat.com> 1:3.3.5-3 
- export QTINC/QTLIB, thanks to Rex Dieter (#169132)

* Tue Sep 20 2005 Than Ngo <than at redhat.com> 1:3.3.5-2
- German translation of the Qt Assistent #161558
- add uic workaround

* Sun Sep 11 2005 Than Ngo <than at redhat.com> 1:3.3.5-1
- update to 3.3.5

* Mon Aug 22 2005 Than Ngo <than at redhat.com> 1:3.3.4-22
- apply upstream patch to fix kmail folder selector #166430

* Mon Aug 15 2005 Than Ngo <than at redhat.com> 1:3.3.4-21
- fix gcc4 build problem

* Wed Aug 10 2005 Than Ngo <than at redhat.com> 1:3.3.4-20
- apply missing patches

* Wed Aug 10 2005 Than Ngo <than at redhat.com> 1:3.3.4-19
- apply patch to fix wrong K menu width, #165510

* Mon Aug 01 2005 Than Ngo <than at redhat.com> 1:3.3.4-18
- add visibility patch

* Wed Jul 20 2005 Than Ngo <than at redhat.com> 1:3.3.4-17
- fix German translation of the Qt Assistent #161558

* Mon Jun 27 2005 Than Ngo <than at redhat.com> 1:3.3.4-16
- apply patch to fix Rendering for Punjabii, thanks to Trolltech #156504

* Tue May 24 2005 Than Ngo <than at redhat.com> 1:3.3.4-15
- add better fix for #156977, thanks to trolltech
- apply patch to fix keyReleaseEvent problem #156572

* Wed May 18 2005 Than Ngo <than at redhat.com> 1:3.3.4-14
- apply patch to use ecvt, fcvt (thanks to Jakub)
- fix a bug in printing of postscript #156977

* Wed May 18 2005 Than Ngo <than at redhat.com> 1:3.3.4-13
- rebuild

* Thu Apr 14 2005 Than Ngo <than at redhat.com> 1:3.3.4-12
- fix bad symlink #154086

* Wed Apr 13 2005 Than Ngo <than at redhat.com> 1:3.3.4-11
- remove bad symlink #154086
- built with PostgresSQL 8.0.2

* Wed Mar 23 2005 Than Ngo <than at redhat.com> 1:3.3.4-10
- add GtkStyle patch from Peter Backlund #141125

* Fri Mar 04 2005 Than Ngo <than at redhat.com> 1:3.3.4-9
- fix buildkey issue with gcc-4

* Fri Mar 04 2005 Than Ngo <than at redhat.com> 1:3.3.4-8
- rebuilt against gcc-4.0.0-0.31

* Tue Mar 01 2005 Than Ngo <than at redhat.com> 1:3.3.4-7
- fix build problem with gcc4

* Mon Feb 28 2005 Than Ngo <than at redhat.com> 1:3.3.4-6
- rebuilt against gcc-4

* Tue Feb 22 2005 Than Ngo <than at redhat.com> 1:3.3.4-5
- fix application crash when input methode not available (bug #140658)
- remove .moc/.obj
- add qt-copy patch to fix KDE #80072

* Fri Feb 11 2005 Than Ngo <than at redhat.com> 1:3.3.4-4
- update qt-x11-immodule-unified patch

* Thu Feb 10 2005 Than Ngo <than at redhat.com> 1:3.3.4-3 
- fix rpm file conflict

* Wed Feb 02 2005 Than Ngo <than at redhat.com> 1:3.3.4-2
- remove useless doc files #143949
- fix build problem if installman is disable #146311
- add missing html/examples/tutorial symlinks

* Fri Jan 28 2005 Than Ngo <than at redhat.com> 1:3.3.4-1
- update to 3.3.4
- adapt many patches to qt-3.3.4
- drop qt-x11-free-3.3.0-freetype, qt-x11-free-3.3.3-qmake, qt-x11-free-3.3.1-lib64
  qt-x11-free-3.3.3-qimage, which are included in new upstream

* Tue Nov 30 2004 Than Ngo <than at redhat.com> 1:3.3.3-16
- add sql macro

* Mon Nov 29 2004 Than Ngo <than at redhat.com> 1:3.3.3-15
- convert qdial.3qt to UTF-8 bug #140946

* Tue Nov 23 2004 Than Ngo <than at redhat.com> 1:3.3.3-14
- add missing lupdate and lrelease #140230

* Fri Nov 19 2004 Than Ngo <than at redhat.com> 1:3.3.3-13 
- apply patch to fix qinputcontext

* Thu Nov 11 2004 Than Ngo <than at redhat.com> 1:3.3.3-12
- link against MySQL 3
- fix rpm conflict

* Wed Nov 10 2004 Than Ngo <than at redhat.com> 1:3.3.3-11
- apply patch to fix fullscreen problem
- remove html documents duplicate #135696

* Tue Nov 02 2004 Than Ngo <than at redhat.com> 1:3.3.3-10
- rebuilt

* Tue Nov 02 2004 Than Ngo <than at redhat.com> 1:3.3.3-9
- remove unused patch
- set XIMInputStyle=On The Spot
- require xorg-x11-devel instead XFree86-devel

* Thu Oct 14 2004 Than Ngo <than at redhat.com> 1:3.3.3-8
- don't compress examples/tutorial

* Thu Oct 07 2004 Than Ngo <than at redhat.com> 1:3.3.3-7
- fix build problem without qt immodule #134918

* Tue Sep 28 2004 Than Ngo <than at redhat.com> 1:3.3.3-6
- fix font problem, bz #133578

* Tue Sep 14 2004 Than Ngo <than at redhat.com> 1:3.3.3-4
- update new immodule patch
- fix multilib problem #132516

* Wed Aug 18 2004 Than Ngo <than at redhat.com> 1:3.3.3-3
- add patch to fix dlopen issue (#126422)
- add image handling fix

* Thu Aug 12 2004 Than Ngo <than at redhat.com> 1:3.3.3-2
- fix qmake broken link (#129723)

* Wed Aug 11 2004 Than Ngo <than at redhat.com> 1:3.3.3-1
- update to 3.3.3 release

* Thu Jul 01 2004 Than Ngo <than at redhat.com> 1:3.3.2-10
- add immodule for Qt

* Tue Jun 29 2004 Than Ngo <than at redhat.com> 1:3.3.2-9
- add sub package config, allow multi lib installation (#126643)

* Thu Jun 24 2004 Than Ngo <than at redhat.com> 1:3.3.2-8
- add fontconfig fix for qfontdatabase, #123868
- fix some buildrequires problem, #125289
- fix dangling symlink, #125351
- get rid of backup files

* Tue Jun 15 2004 Elliot Lee <sopwith at redhat.com> 1:3.3.2-7
- rebuilt

* Tue May 25 2004 Than Ngo <than at redhat.com> 1:3.3.2-5
- add missing qembed tool #124052, #124052
- get rid of unused trigger
- add qt.conf in ld.so.conf.d -> don't change ld.so.conf #124080

* Wed May 12 2004 Than Ngo <than at redhat.com> 1:3.3.2-4
- backport some qt patches, Symbol font works again

* Mon May 10 2004 Than Ngo <than at redhat.com> 1:3.3.2-3
- fixed annoying warning

* Tue May 04 2004 Than Ngo <than at redhat.com> 1:3.3.2-2
- fix broken symlink at qt document, bug #121652

* Thu Apr 29 2004 Than Ngo <than at redhat.com> 3.3.2-1
- update to 3.3.2

* Thu Apr 22 2004 Than Ngo <than at redhat.com> 3.3.1-1
- add cvs backport
- fix lib64 issue, #121052
- fix CJK font display, bug #121017, #120542, thanks to Leon Ho
- compress tutorial/examples

* Fri Mar 26 2004 Than Ngo <than at redhat.com> 3.3.1-0.8
- fixed symlinks issue, #117572

* Thu Mar 25 2004 Than Ngo <than at redhat.com> 3.3.1-0.7
- add Trolltech patch, fix dpi setting issue

* Tue Mar 23 2004 Than Ngo <than at redhat.com> 3.3.1-0.6
- add 0034-qclipboard_recursion_fix.patch from CVS, #118368
- add better qt-x11-free-3.3.1-fontdatabase.patch

* Sun Mar 07 2004 Than Ngo <than at redhat.com> 1:3.3.1-0.5
- disable smpflags

* Fri Mar 05 2004 Than Ngo <than at redhat.com> 1:3.3.1-0.4
- fix font alias

* Thu Mar 04 2004 Than Ngo <than at redhat.com> 1:3.3.1-0.3
- add fontdatabase fix from Trolltech

* Thu Mar 04 2004 Than Ngo <than at redhat.com> 1:3.3.1-0.2
- fix wrong symlink #117451

* Tue Mar 02 2004 Elliot Lee <sopwith at redhat.com>
- rebuilt

* Mon Mar 01 2004 Than Ngo <than at redhat.com> 3.3.1-0.1
- update to 3.3.1

* Mon Feb 23 2004 Than Ngo <than at redhat.com> 3.3.0-0.4
- add fix for building with freetype 2.1.7 or newer

* Tue Feb 17 2004 Than Ngo <than at redhat.com> 3.3.0-0.3 
- enable IPv6 support
- use dlopen, instead of linking with OpenGL libraries directly
- don't install backup files

* Thu Feb 05 2004 Than Ngo <than at redhat.com> 1:3.3.0-0.2
- fix fontdatabase
- don't use strip in install script
- fix qt default setting
 
* Wed Feb 04 2004 Than Ngo <than at redhat.com> 1:3.3.0-0.1
- 3.3.0

* Fri Jan 30 2004 Than Ngo <than at redhat.com> 1:3.2.3-0.4
- add mouse patch from CVS, bug #114647

* Tue Jan 20 2004 Than Ngo <than at redhat.com> 1:3.2.3-0.3
- rebuild

* Tue Dec  2 2003 Than Ngo <than at redhat.com> 1:3.2.3-0.2
- Added missing prl files, (report from trolltech)
- Fixed description
- include requires XFree86-devel on qt-devel
 
* Fri Nov 14 2003 Than Ngo <than at redhat.com> 1:3.2.3-0.1
- 3.2.3 release

* Thu Oct 30 2003 Than Ngo <than at redhat.com> 1:3.2.2-0.4
- fix encoding problem

* Sat Oct 18 2003 Than Ngo <than at redhat.com> 1:3.2.2-0.3
- fix encoding problem

* Fri Oct 17 2003 Than Ngo <than at redhat.com> 1:3.2.2-0.2
- add font alias patch file, thanks to Leon Ho
- clean up monospace.patch from Leon Ho
- remove some unneeded patch files

* Thu Oct 16 2003 Than Ngo <than at redhat.com> 1:3.2.2-0.1
- 3.2.2 release
- remove a patch file, which is included in 3.2.2

* Tue Oct 14 2003 Than Ngo <than at redhat.com> 1:3.2.1-1.3
- remove some unneeded patch files
- don't load XLFDs if XFT2 is used

* Mon Sep 08 2003 Than Ngo <than at redhat.com> 1:3.2.1-1.2
- fixed rpm file list

* Tue Sep 02 2003 Than Ngo <than at redhat.com> 1:3.2.1-1.1
- fix for the khtml form lineedit bug from CVS

* Wed Aug 27 2003 Than Ngo <than at redhat.com> 1:3.2.1-1
- 3.2.1 release

* Wed Jul 23 2003 Than Ngo <than at redhat.com> 1:3.2.0-1
- 3.2.0 release

* Mon Jun 23 2003 Than Ngo <than at redhat.com> 3.2.0b2-0.1
- 3.2.0b2
- add missing templates for designer

* Wed Jun 18 2003 Than Ngo <than at redhat.com> 3.2.0b1-0.2
- clean up specfile

* Wed Jun 18 2003 Than Ngo <than at redhat.com> 3.2.0b1-0.1
- 3.2.0b1

* Tue Jun 17 2003 Than Ngo <than at redhat.com> 3.1.2-12
- rebuilt

* Tue Jun 17 2003 Than Ngo <than at redhat.com> 3.1.2-10
- add missing translations

* Wed Jun 11 2003 Elliot Lee <sopwith at redhat.com>
- rebuilt

* Wed Jun 04 2003 Elliot Lee <sopwith at redhat.com>
- rebuilt

* Mon May 19 2003 Than Ngo <than at redhat.com> 3.1.2-7
- add some patches from KDE CVS qt-copy, thanks to Alexei Podtelezhnikov

* Mon May  5 2003 Than Ngo <than at redhat.com> 3.1.2-5.1
- set correct permission config scripts

* Tue Apr 29 2003 Than Ngo <than at redhat.com> 3.1.2-4
- fix typo bug in font loader

* Wed Apr  9 2003 Than Ngo <than at redhat.com> 3.1.2-2
- add xrandr extension

* Mon Mar  3 2003 Than Ngo <than at redhat.com> 3.1.2-1
- 3.1.2 release

* Mon Feb 17 2003 Elliot Lee <sopwith at redhat.com> 3.1.1-7
- ppc64 support

* Wed Jan 29 2003 Than Ngo <than at redhat.com> 3.1.1-6
- add missing Categories section in qt designer #82920

* Wed Jan 22 2003 Tim Powers <timp at redhat.com>
- rebuilt

* Mon Dec 30 2002 Florian La Roche <Florian.LaRoche at redhat.de>
- Change qmlined.h to not include an attic header that is also not shipped
  with Red Hat Linux. This also fixes building unixODBC, that includes this
  header (apparently also without needing it).

* Thu Dec 19 2002 Than Ngo <than at redhat.com> 3.1.1-3
- add monospace patch file from Leon Ho (bug #79949)
- add small patch file from Sysoltsev Slawa (bug #79731)

* Tue Dec 17 2002 Than Ngo <than at redhat.com> 3.1.1-2
- don't require XFree86, it's not needed

* Tue Dec 17 2002 Than Ngo <than at redhat.com> 3.1.1-1
- update to 3.1.1

* Thu Nov 28 2002 Than Ngo <than at redhat.com> 3.1.0-1.3
- don't write Date into created moc files

* Mon Nov 18 2002 Than Ngo <than at redhat.com> 3.1.0-1.2
- add missing libs
- remove workaround for ppc

* Sun Nov 17 2002 Than Ngo <than at redhat.com> 3.1.0-1.1
- adjust qfontdatabase_x11 for 3.1.0
- fix lib64 issue
- add workaround to build on ppc

* Wed Nov 13 2002 Than Ngo <than at redhat.com> 3.1.0-1
- update to 3.1.0
- adjust some patch files for 3.1.0
- clean up specfile
- remove some Xft2 patch files, which are now in 3.1.0
- add qwidget_x11.cpp.diff from Trolltech
- install qt in %%{_libdir}/qt-3.1 (bug #77706)
- don't use rpath
- enable large file support
- use system Xinerama
- remove unneeded cups patch file
- fix to build against new XFree86

* Tue Nov  5 2002 Than Ngo <than at redhat.com> 3.0.5-19
- examples misconfigured (bug #76083)
- don't include pkg-config (bug #74621)
- fix build problem with new XFree86

* Tue Sep 17 2002 Than Ngo <than at redhat.com> 3.0.5-18
- Fixed binaries symlinks

* Mon Sep  9 2002 Than Ngo <than at redhat.com> 3.0.5-17hammer
- clean up spec file for 64bit machine

* Thu Aug 29 2002 Than Ngo <than at redhat.com> 3.0.5-17
- Fixed rpath issue (bug #69692, #69575)
- Removed dlopen patch
- Added monospace alias patch from Leon Ho (bug #72811)
- Added man pages

* Sun Aug 25 2002 Than Ngo <than at redhat.com> 3.0.5-16
- Added missing catagory in qt designer
- Added small gb18030 patch file from Leon Ho

* Thu Aug 22 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.5-15
- Prereq fileutils (#71500)

* Tue Aug 20 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.5-14
- Don't link to libstdc++, it isn't used
- Work around s390 compiler bug (fpic/fPIC coexistance)
- Do away with the "Feature Bluecurve already defined" warning message
- Remove qmake cache files from the package

* Wed Aug 14 2002 Than Ngo <than at redhat.com> 3.0.5-13
- Added fix to use VT100 graphic characters (bug #71364)
- Added fontdatabase fix from llch at redhat.com (bug #68353)

* Mon Aug 12 2002 Bernhard Rosenkraenzer <bero at redhat.com> [not built]
- Fix default qtrc

* Mon Aug 12 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.5-12
- Fix CJK Printing (#71123)

* Sun Aug 11 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.5-11
- Move qtconfig from qt-devel to qt, it's generally useful
- Use -fno-use-cxa-atexit
- Some tweaks to allow building Qt/Embedded with the same spec file
- Apply the GB18030 patch even if xft2 isn't set

* Fri Aug  9 2002 Than Ngo <than at redhat.com> 3.0.5-10
- Added XIM patch from llch at redhat.com (bug #70411)

* Sun Aug  4 2002 Than Ngo <than at redhat.com> 3.0.5-9
- add a missing patch file (closelock/openlock)

* Thu Aug  1 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.5-8
- Define QT_INSTALL_PREFIX in qmake

* Thu Aug  1 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.5-7
- Find correct location of qmake mkspecs even if QTDIR isn't set

* Thu Jul 25 2002 Than Ngo <than at redhat.com> 3.0.5-6
- Check file descriptor before closelock
* Thu Jul 25 2002 Than Ngo <than at redhat.com> 3.0.5-5
- Fixed a bug in openlock

* Wed Jul 24 2002 Than Ngo <than at redhat.com> 3.0.5-4
- Tiny tweaks to qt3 patch

* Tue Jul 23 2002 Owen Taylor <otaylor at redhat.com>
- Tiny fix to qt3.diff to not add '0' as a test character (#68964)

* Mon Jul 22 2002 Tim Powers <timp at redhat.com> 3.0.5-2
- rebuild using gcc-3.2-0.1

* Mon Jul 22 2002 Than Ngo <than at redhat.com> 3.0.5-1
- 3.0.5
- Fixed dependencies issue

* Thu Jul 18 2002 Than Ngo <than at redhat.com> 3.0.4-12
- Added qt-clipfix from Harald Hoyer (bug #67648)

* Tue Jul 16 2002 Than Ngo <than at redhat.com> 3.0.4-11
- get rid of qt resource, it's now in redhat-artworks
- add some define to build for 7.3

* Thu Jul 11 2002 Than Ngo <than at redhat.com> 3.0.4-10
- add missing Buildprequires desktop-file-utils
- add patches for GB18030 (llch at redhat.com) bug #68430

* Tue Jul 09 2002 Than Ngo <than at redhat.com> 3.0.4-9
- add new desktop file for qt designer

* Fri Jul  5 2002 Jakub Jelinek <jakub at redhat.com> 3.0.4-8
- compile libXinerama.a with -fpic in Qt until XFree86 is fixed
- make %%xft2 work even if old Xft headers aren't installed

* Fri Jun 21 2002 Tim Powers <timp at redhat.com>
- automated rebuild

* Tue Jun 18 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.4-6
- Re-enable Xft2 now that fontconfig is fixed
- Require a version of fontconfig that works
- Use -fPIC rather than -fpic on alpha

* Tue Jun 18 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.4-5
- Revert to Xft1 for now, Xft2 is too unstable
- Exclude alpha for now to work around binutils bugs

* Tue Jun 11 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.4-4
- Add (and fix up) fontconfig patch

* Mon Jun  3 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.4-3
- Remove the glweak patch, it isn't needed after dropping XFree86 3.x

* Thu May 23 2002 Tim Powers <timp at redhat.com>
- automated rebuild

* Sun May  5 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.4-1
- 3.0.4
- Make SQL plugins optional (buildtime)
- Register with pkgconfig

* Thu May 02 2002 Than Ngo <than at redhat.com> 3.0.3-12
- qtdir /usr/lib/qt3
- build against gcc-3.1-0.26
- add qt-3.0.3-glweak.patch 

* Wed Apr 17 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-11
- qt3-gcc2.96 should be in qt, not qt-devel

* Mon Apr 15 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-10
- Tweaks to allow parallel installations of Qt 3.x (gcc 2.96) and Qt 3.x
  (gcc 3.1)
- Fix up debug spewage at Qt designer startup

* Wed Apr 10 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-9
- Spec file fixes

* Wed Apr 10 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-8
- Get rid of non-threaded version, dlopen()'ing threaded code
  (like plugins) from non-threaded code is dangerous
- Add some fixes from qt-copy, fixing the ksplash crash some people
  have noticed on a first login
- Add translation fixes from CVS
- Patch example .pro files to build outside the Qt source tree (#63023)
- Fix various bugs

* Thu Apr 04 2002 Leon Ho <llch at redhat.com> 3.0.3-7
- fixes for CJK - qpsprinter
- fixes for CJK - gb18030

* Fri Mar 29 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-6
- Make sure it builds with both gcc 2.96 and 3.1

* Wed Mar 28 2002 Leon Ho <llch at redhat.com> 3.0.3-5
- fixes for CJK - qpsprinter

* Wed Mar 27 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-4
- Add CJK patches

* Tue Mar 26 2002 Than Ngo <than at redhat.com> 3.0.3-3
- fix loading kde styles

* Tue Mar 19 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-1
- Update to 3.0.3 final

* Thu Mar 14 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.3-0.cvs20020314.1
- Update to 3.0.3-pre, required for KDE3
- force -fPIC usage
- Remove conflict with qt2 < 2.3.2-1, the new qt2 2.3.1 is fixed and qt 2.3.2
  is broken
- Ship the qmake config files (so qmake works for building any 3rd party stuff,
  e.g. aethera)

* Wed Mar  6 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-2
- Add some fixes from KDE's qt-copy CVS
- Pluginize image formats

* Mon Feb 25 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-1
- 3.0.2 final

* Tue Feb 19 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-0.cvs20020118.3
- Add GB18030 codec patch, #60034
- Force-build jpeg support, fixing #59775 and #59795

* Sat Jan 26 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-0.cvs20020118.2
- Build with CUPS support

* Fri Jan 18 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-0.cvs20020118.1
- Fix up /usr/bin/moc links, they should point to qt3

* Mon Jan 14 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-0.cvs20020114.1
- Build styles directly into the main library for now, there's too much broken
  code out there depending on this ATM.

* Wed Jan  9 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-0.cvs20020109.1
- Stop excluding alpha, gcc has been fixed

* Tue Jan  8 2002 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.2-0.cvs20020108.1
- Add fixes from CVS; this fixes the "Alt + F1, arrow up, arrow up doesn't work
  in KDE" bug

* Mon Dec 17 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.1-2
- Fix up settings search path
- Add default qtrc allowing to use KDE 3.x Qt plugins
- Make sure QLibrary uses RTLD_GLOBAL when dlopen()ing libraries

* Thu Dec 13 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.1.0-1
- Work around gcc bug #57467

* Wed Dec 12 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- 3.0.1 final

* Mon Dec 10 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.1-0.cvs20011210.1
- Update to current (needed by KDE 3.x)
- Rebuild with current libstdc++
- Temporarily disable building on alpha
- Fix build with PostgreSQL 7.2

* Mon Nov 26 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-5
- Fix up glweak

* Mon Nov  5 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-4
- Give designer, uic, moc, etc. their real names - the qt2 versions
  have been renamed in qt2-2.3.2-1.
  Conflict with qt2 < 2.3.2-1.

* Thu Oct 25 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-3
- Add symlink /usr/lib/qt-3.0.0 -> /usr/lib/qt3 and set QTDIR to the
  symlink, allowing to update to 3.0.1 without breaking rpath'ed binaries

* Tue Oct 16 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-1
- 3.0.0 final
- fix some minor specfile bugs
- Modularize some more (image format plugins)
- Build codecs

* Tue Sep 18 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta5.1
- beta5
- Share more code between qt-x11 and qt-embedded builds

* Wed Aug 29 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta4.1
- beta4
- build the Motif style directly into Qt rather than as a plugin - Qt should
  always have at least one style...
- replace the designer3 symlink with a shell script that sets QTDIR correctly
  before launching designer
- Add desktop file for designer

* Mon Aug  6 2001 Tim Powers <timp at redhat.com> 3.0.0-0.beta3.4
- explicitly include qm2ts, qmake, qtconfig in the devel package file list to avoid dangling symlinks

* Thu Aug  2 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta3.3
- Try yet another workaround for buildsystem breakages

* Tue Jul 31 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- Add another ugly workaround for build system problems, this should finally
  get rid of the dangling symlinks

* Tue Jul 31 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta3.2
- Rephrase parts of the spec file, hopefully pleasing the build system

* Sun Jul 29 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta3.1
- beta3
- Fix dangling symlinks

* Sun Jun 24 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta1.2
- Fix up QSQL Postgres classes for Postgres 7.1.x
- Fix various bugs:
  - QtMultilineEdit and QtTableView should actually compile
  - Link libqsqlpsql with libpq
  - Don't link the base library with libmysqlclient, linking the MySQL
    module with it is sufficient
- Add missing const qualifier
- move the SQL drivers to separate packages to avoid dependencies
- build and install designer plugins - converting glade files to Qt is fun. ;)
- handle RPM_OPT_FLAGS

* Tue May 22 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.beta1.1
- 3.0 beta 1

* Wed May 16 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.cvs20010516.1
- Update, remove conflicts with Qt 2.x

* Mon May 14 2001 Bernhard Rosenkraenzer <bero at redhat.com> 3.0.0-0.cvs20010514.1
- Initial build of 3.0 branch

* Fri Apr 27 2001 Bernhard Rosenkraenzer <bero at redhat.com> 2.3.0-6
- Fix crashes on ia64, Patch from Bill Nottingham <notting at redhat.com>
- Allow building qt-nox

* Fri Apr 20 2001 Bernhard Rosenkraenzer <bero at redhat.com> 2.3.0-5
- Make sure uic and designer use the libqui from the source tree, not
  a previously installed one.
  Linking uic-x11 against libqui-embedded is definitely not a feature. ;)
- The qclipboard fix is needed for qt-x11 only, don't apply it if we're
  building qt-embedded

* Sat Apr 14 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- Handle LPRng specific constructs in printcap, Bug #35937

* Sun Mar 25 2001 Florian La Roche <Florian.LaRoche at redhat.de>
- add qfont patch from Trolltech

* Tue Mar 13 2001 Harald Hoyer <harald at redhat.de>
- added patch for '@euro' language settings

* Tue Mar  6 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.3.0 final
- BuildRequires XFree86-devel >= 4.0.2 (#30486)

* Mon Feb 26 2001 Than Ngo <than at redhat.com>
- fix check_env function, so that qt does not crash if QT_XFT is not set
- fix symlinks

* Mon Feb 26 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.3.0b1
- Add a patch to qpsprinter that handles TrueType fonts even if they come from xfs

* Tue Feb 13 2001 Preston Brown <pbrown at redhat.com>
- japanese input and clipboard fixes applied.  Changes have been sent upstream by patch authors.

* Fri Feb  9 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- Rebuild with new Mesa to get rid of pthreads linkage
- Add Xft fix from KDE CVS

* Wed Feb  7 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- Add printing bugfix patch from Trolltech

* Sat Feb  3 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.2.4
- Qt Embedded: Add QVfb and VNC support

* Tue Jan 16 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- Don't segfault when running Qt/Embedded applications as root
- Improve the Qt/Embedded sparc patch so we don't need the specfile hacks
  anymore
- Fix a bug in QPrintDialog (causing KDE Bug #18608)

* Thu Jan 11 2001 Bernhard Rosenkraenzer <bero at redhat.com>
- bzip2 source to save space
- Qt/Embedded 2.2.3
- Fix qte build on sparc

* Wed Dec 20 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Run ldconfig in %%post and %%postun for qt-Xt

* Sun Dec 17 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Build with the Xrender extension
  (Patch from Keith Packard <keithp at keithp.com>)

* Wed Dec 13 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.2.3

* Tue Dec 12 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Rebuild to fix permissions on doc dir
- Don't exclude ia64 anymore

* Fri Nov 17 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Fix up uic (Patch from trolltech) 

* Wed Nov 15 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Build qt-embedded
  changes to base: fix build, fix ISO C99 compliance, fix 64bit support

* Mon Nov 13 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.2.2

* Tue Oct 24 2000 Than Ngo <than at redhat.com>
- call ldconfig for updating (Bug #19687)
- added patch from Trolltech, thanks to Rainer <rms at trolltech.com>

* Wed Oct 18 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Add missing msg2qm, msgmerge, qconfig tools (Bug #18997), introduced
  by broken Makefiles in base
- fix up %%install so it works both with old-style and new-style fileutils
  (fileutils <= 4.0z don't know about -L)

* Fri Oct 13 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Disable exception handling; this speeds up KDE 2.x and reduces its
  memory footprint by 20 MB.

* Tue Oct 10 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- dereference symlinks in include

* Sun Oct  8 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- fix -devel
- update to the new version of 2.2.1 on trolltech.com; the initial tarball
  contained broken docs

* Thu Oct  5 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.2.1

* Mon Sep 25 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Add missing uic

* Thu Sep 21 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Move Qt designer to a different source RPM to get rid of a
  circular dependency (kdelibs2->qt, qt->kdelibs2)
- Enable MNG support
- Don't compile (just include) examples and tutorials
- move the static libraries to a separate package (qt-static).
  They're HUGE, and most people won't ever need them.
- clean up spec file
- fix up dependencies (-devel requires base, -static requires devel,
  Xt requires base)
- add BuildRequires line

* Tue Sep 12 2000 Than Ngo <than at redhat.com>
- update release 2.2.0
- changed copyright to GPL
- added missing static libraries
- made symbolic link for designer to load the help files correct
- made designer and designer-kde2 as sub packages
- added missing templates for designer
- remove jakub patch, since the release 2.2.0 already 
  contains this patch.
- fixed qt again to compile with gcc-2.96
- use make -j for building

* Wed Aug 23 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Work around compiler bugs (Patch from Jakub)
- Use relative symlinks (Bug #16750)

* Mon Aug 21 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- beta2

* Mon Aug 14 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- new qt-copy from KDE2 CVS

* Wed Aug 9 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- official beta 1

* Thu Aug 3 2000 Than Ngo <than at redhat.de>
- rebuilt against the libpng-1.0.8

* Thu Jul 27 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- rebuild (so we have it on all arches)

* Tue Jul 25 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- move man pages to a more reasonable place (this fixes Bug #14126)
- exclude ia64 for now (compiler problems!!!)

* Mon Jul 24 2000 Harald Hoyer <harald at redhat.de>
- modified connect patch to fit qt 2.2.0 beta.

* Thu Jul 20 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- update to current qt-copy; this is now a qt 2.2.0 beta.

* Mon Jul 17 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- update to current qt-copy in kde CVS, required

* Wed Jul 12 2000 Prospector <bugzilla at redhat.com>
- automatic rebuild

* Sun Jul 11 2000 Harald Hoyer <harald at redhat.de>
- made patch smaller and binary compatible when recompiled with 6.2
- modified connect and moc to cope with the new g++ class layout

* Sun Jul 09 2000 Than Ngo <than at redhat.de>
- rebuilt qt with gcc-2.96-34

* Fri Jul 07 2000 Than Ngo <than at redhat.de>
- rebuilt qt with c++ 2.96

* Mon Jul  3 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Fix dependancies

* Sun Jul  2 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Use egcs++ for now ** FIXME

* Wed Jun 28 2000 Preston Brown <pbrown at redhat.com>
- fix up qt.sh

* Sun Jun 25 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- Build in jpeg and threading support
- Fix a bug in clipboard pasting code

* Wed Jun 07 2000 Preston Brown <pbrown at redhat.com>
- fix qt.{sh,csh}
- use new rpm macro paths
- package man pages

* Fri Jun  2 2000 Bill Nottingham <notting at redhat.com>
- build without optimization on ia64

* Mon May 29 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.1.1

* Thu May 18 2000 Florian La Roche <Florian.LaRoche at redhat.com>
- recompile with correct libstdc++

* Thu Apr 13 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- 2.1.0 final

* Wed Apr  5 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- beta4
- depend on libGL.so.1 rather than Mesa - XFree86 4.0 provides that
  lib, too

* Wed Mar 22 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- beta3

* Tue Mar  7 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- beta2
- fix compilation of the NSPlugin add-on

* Fri Mar  3 2000 Bill Nottingham <notting at redhat.com>
- fix %postun script

* Fri Feb 18 2000 Bernhard Rosenkränzer <bero at redhat.com>
- beta1
- get rid of qt-ImageIO, the functionality is now in the main Qt library
- remove qt-Network, the functionality is now in the main Qt library
- add changes-2.1.0 to %doc

* Thu Feb 17 2000 Preston Brown <pbrown at redhat.com>
- no refcount check on postun script, we want it to happen even on upgrades

* Thu Feb 10 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- new snapshot, should fix QWhatsThisButton
- remove executable permissions from *.pro files

* Mon Feb 07 2000 Preston Brown <pbrown at redhat.com>
- strip binaries in examples, tutorial

* Mon Jan 31 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- new snapshot - should fix the hotkey bug
- Fix up the Makefiles so it compiles

* Tue Jan 18 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- new snapshot - we need those QVariant fixes

* Thu Jan 13 2000 Bernhard Rosenkraenzer <bero at redhat.com>
- switch from glxMesa to Mesa for the GL addon

* Wed Jan 5 2000 Bernhard Rosenkränzer <bero at redhat.com>
- Fix up dependencies
- new snapshot

* Mon Jan 3 2000 Ngo Than <than at redhat.de>
- new snapshot for Red Hat Linux 6.2
- increase version number

* Mon Dec 20 1999 Bernhard Rosenkraenzer <bero at redhat.com>
- new snapshot
- handle RPM_OPT_FLAGS

* Mon Dec 13 1999 Bernhard Rosenkraenzer <bero at redhat.com>
- new snapshot
- -GL requires libGL.so.1 instead of Mesa (might as well be glxMesa
  or some commercial OpenGL)
- -GL BuildPrereqs /usr/X11R6/include/GL/gl.h instead of Mesa-devel
  (might as well be glxMesa or some commercial OpenGL)

* Sun Dec 05 1999 Bernhard Rosenkraenzer <bero at redhat.com>
- update to current RSYNC version
- remove compilation patch - it finally works out of the box

* Wed Oct 27 1999 Bernhard Rosenkraenzer <bero at redhat.com>
- update to current CVS snapshot
- build extensions
- add patch to fix QNetwork compilation

* Sun Oct 24 1999 Bernhard Rosenkraenzer <bero at redhat.de>
- current CVS snapshot
- fix compilation with gcc 2.95.x
- use install -c rather than just install to make BSD install happy

* Mon Oct 11 1999 Bernhard Rosenkraenzer <bero at redhat.de>
- 2.1.0 snapshot (for KDE2)
- Fix typo in spec

* Thu Sep 23 1999 Preston Brown <pbrown at redhat.com>
- don't ship tutorial or example binaries

* Tue Sep 21 1999 Preston Brown <pbrown at redhat.com>
- substitution in tutorial and examples so that dependencies are correct and
  they can be successfully rebuilt.
- switched to completely using QTDIR.  trying to coexist with links into
  /usr/{include,lib} and still compile with qt 1.x is very hard for
  configure scripts to cope with.

* Thu Aug 19 1999 Preston Brown <pbrown at redhat.com>
- implemented QTDIR compatibility.

* Tue Jul 20 1999 Preston Brown <pbrown at redhat.com>
- qt 2.0.1 packaged.

* Wed Jul 14 1999 Preston Brown <pbrown at redhat.com>
- Qt 2.00 packaged.
- examples, html documentation, tutorial moved to /usr/doc

* Sat Apr 17 1999 Preston Brown <pbrown at redhat.com>
- static library supplied in dev package.

* Wed Apr 07 1999 Preston Brown <pbrown at redhat.com>
- turn on internal GIF reading support

* Tue Apr 06 1999 Preston Brown <pbrown at redhat.com>
- strip binaries

* Mon Mar 15 1999 Preston Brown <pbrown at redhat.com>
- upgrade to qt 1.44.

* Wed Feb 24 1999 Preston Brown <pbrown at redhat.com>
- Injected new description and group.

* Tue Jan 19 1999 Preston Brown <pbrown at redhat.com>
- moved includes to /usr/include/qt

* Mon Jan 04 1999 Preston Brown <pbrown at redhat.com>
- made setup phase silent.

* Fri Dec 04 1998 Preston Brown <pbrown at redhat.com>
- upgraded to qt 1.42, released today.

* Tue Dec 01 1998 Preston Brown <pbrown at redhat.com>
- took Arnts RPM and made some minor changes for Red Hat.


--- NEW FILE qtconfig3.desktop ---
[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;


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/qt3/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	12 Mar 2008 17:30:08 -0000	1.1
+++ .cvsignore	12 Mar 2008 18:50:07 -0000	1.2
@@ -0,0 +1,2 @@
+qt-x11-immodule-unified-qt3.3.7-20061229.diff.bz2
+qt-x11-free-3.3.8b.tar.gz


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/qt3/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	12 Mar 2008 17:30:08 -0000	1.1
+++ sources	12 Mar 2008 18:50:07 -0000	1.2
@@ -0,0 +1,2 @@
+91adfea39f17a64b86497bce32782cf3  qt-x11-immodule-unified-qt3.3.7-20061229.diff.bz2
+9f05b4125cfe477cc52c9742c3c09009  qt-x11-free-3.3.8b.tar.gz




More information about the fedora-extras-commits mailing list