#
# Patch managed by http://www.holgerschurig.de/patcher.html
#

Index: qt-2.3.10/configure
===================================================================
--- qt-2.3.10.orig/configure	2005-07-03 12:26:10.000000000 +0200
+++ qt-2.3.10/configure	2005-07-03 12:30:36.000000000 +0200
@@ -412,6 +412,9 @@
    -visibility-hidden)
    	VISIBILITY=YES
 	;;
+   -devfs)
+       DEVFS=yes
+	;;
    -no-g++-exceptions)
 	GPLUSPLUS_EXCEPTIONS=no
 	;;
@@ -1302,6 +1305,8 @@
     -visibility-hidden . Use -fvisibility=hidden as default. This requires GCC 4.0
                          or a special patched GCC to support the visibility attribute
 
+    -devfs ............. Use devfs /dev paths.
+
     -no-g++-exceptions . Disable exceptions on platforms using the GNU C++
 			 compiler by using the -fno-exceptions flag.
 
@@ -1374,6 +1379,10 @@
 then
    QT_CXX="${QT_CXX} -DGCC_SUPPORTS_VISIBILITY -fvisibility=hidden"
 fi
+if [ "x$DEVFS" = "xyes" ]
+then
+   QT_CXX="${QT_CXX} -DQT_QWS_DEVFS"
+fi
 if [ "x$THREAD" = "xyes" ]
 then
    cat >src-mt.mk <<EOF
Index: qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp
===================================================================
--- qt-2.3.10.orig/src/kernel/qgfxlinuxfb_qws.cpp	2005-07-03 12:26:13.000000000 +0200
+++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp	2005-07-03 12:30:36.000000000 +0200
@@ -101,11 +101,19 @@
 bool QLinuxFbScreen::connect( const QString &displaySpec )
 {
     // Check for explicitly specified device
+#ifdef QT_QWS_DEVFS
+    QRegExp r( "/dev/fb/[0-9]+" );
+#else
     QRegExp r( "/dev/fb[0-9]+" );
+#endif
     int len;
     int m = r.match( displaySpec, 0, &len );
 
+#ifdef QT_QWS_DEVFS
+    QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb/0");
+#else
     QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb0");
+#endif
 
     fd=open( dev.latin1(), O_RDWR );
     if (fd<0) {
@@ -121,14 +129,22 @@
 
     /* Get fixed screen information */
     if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
+#ifdef QT_QWS_DEVFS
+	perror("reading /dev/fb/0");
+#else
 	perror("reading /dev/fb0");
+#endif
 	qWarning("Error reading fixed information");
 	return FALSE;
     }
 
     /* Get variable screen information */
     if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {
+#ifdef QT_QWS_DEVFS
+	perror("reading /dev/fb/0");
+#else
 	perror("reading /dev/fb0");
+#endif
 	qWarning("Error reading variable information");
 	return FALSE;
     }
@@ -165,7 +181,11 @@
     data += dataoffset;
 
     if ((int)data == -1) {
-	perror("mapping /dev/fb0");
+#ifdef QT_QWS_DEVFS
+	perror("reading /dev/fb/0");
+#else
+	perror("reading /dev/fb0");
+#endif
 	qWarning("Error: failed to map framebuffer device to memory.");
 	return FALSE;
     }
@@ -229,7 +249,11 @@
 
 static void writeTerm(const char* termctl, int sizeof_termctl)
 {
+#ifdef QT_QWS_DEVFS
+    const char* tt[]={"/dev/vc/1","/dev/console","/dev/tty",0};
+#else
     const char* tt[]={"/dev/console","/dev/tty","/dev/tty0",0};
+#endif
     const char** dev=tt;
     while (*dev) {
 	int tty=::open(*dev,O_WRONLY);
Index: qt-2.3.10/src/kernel/qkeyboard_qws.cpp
===================================================================
--- qt-2.3.10.orig/src/kernel/qkeyboard_qws.cpp	2005-07-03 12:26:13.000000000 +0200
+++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp	2005-07-03 12:30:36.000000000 +0200
@@ -1253,7 +1253,11 @@
 
 QWSTtyKeyboardHandler::QWSTtyKeyboardHandler(const QString& device)
 {
+#ifdef QT_QWS_DEVFS
+    kbdFD=open(device.isEmpty() ? "/dev/vc/1" : device.latin1(), O_RDWR | O_NDELAY, 0);
+#else
     kbdFD=open(device.isEmpty() ? "/dev/tty0" : device.latin1(), O_RDWR | O_NDELAY, 0);
+#endif
 
     if ( kbdFD >= 0 ) {
 	QSocketNotifier *notifier;
Index: qt-2.3.10/src/kernel/qwindowsystem_qws.cpp
===================================================================
--- qt-2.3.10.orig/src/kernel/qwindowsystem_qws.cpp	2005-07-03 12:26:11.000000000 +0200
+++ qt-2.3.10/src/kernel/qwindowsystem_qws.cpp	2005-07-03 12:30:36.000000000 +0200
@@ -836,7 +836,11 @@
     void openDevice()
     {
 	if ( !sn ) {
+#ifdef QT_QWS_DEVFS
+	    int fd = ::open("/dev/sound/dsp",O_RDWR);
+#else
 	    int fd = ::open("/dev/dsp",O_RDWR);
+#endif
 	    if ( fd < 0 ) {
 		// For debugging purposes - defined QT_NO_SOUND if you
 		// don't have sound hardware!
Index: qt-2.3.10/src/kernel/qsoundqss_qws.cpp
===================================================================
--- qt-2.3.10.orig/src/kernel/qsoundqss_qws.cpp	2005-01-23 15:00:46.000000000 +0100
+++ qt-2.3.10/src/kernel/qsoundqss_qws.cpp	2005-07-03 12:30:36.000000000 +0200
@@ -1088,7 +1088,12 @@
 	    // Don't block open right away.
 	    //
             bool openOkay = false;
-	    if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1) {
+#ifdef QT_QWS_DEVFS
+            if ((fd = ::open("/dev/sound/dsp", O_WRONLY|O_NONBLOCK)) != -1)
+#else
+            if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1)
+#endif
+            {
 		int flags = fcntl(fd, F_GETFL);
 		flags &= ~O_NONBLOCK;
 		openOkay = (fcntl(fd, F_SETFL, flags) == 0);