Pawel "l0ner" Soltys 12 years ago
commit 11bfc1adba

@ -4,7 +4,7 @@ include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include debian/cdbs/kde.mk
DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include/tde5
DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include/kde5
DEB_CONFIGURE_MANDIR := /opt/trinity/share/man
DEB_CONFIGURE_PREFIX := /opt/trinity
DEB_CONFIGURE_INFODIR := /opt/trinity/share/info

@ -1,12 +1,12 @@
--- starttde
+++ starttde
@@ -184,17 +184,17 @@
@@ -228,17 +228,17 @@
. $tdehome/share/config/startupconfig
fi
-# Make sure a default wallpaper is set.
-if [ ! -e $tdehome/share/config/kdesktoprc ]; then
- # With Trinity KDE this file should exist, but test first.
- # With Trinity this file should exist, but test first.
- if [ -r /usr/share/wallpapers/isadora.png.desktop ]; then
-cat >$tdehome/share/config/kdesktoprc <<EOF
-[Desktop0]
@ -17,7 +17,7 @@
-fi
+## Make sure a default wallpaper is set.
+#if [ ! -e $tdehome/share/config/kdesktoprc ]; then
+# # With Trinity KDE this file should exist, but test first.
+# # With Trinity this file should exist, but test first.
+# if [ -r /usr/share/wallpapers/isadora.png.desktop ]; then
+#cat >$tdehome/share/config/kdesktoprc <<EOF
+#[Desktop0]

@ -197,12 +197,12 @@ debian/tmp/opt/trinity/include/kdatewidget.h
debian/tmp/opt/trinity/include/kdcopactionproxy.h
debian/tmp/opt/trinity/include/kdcoppropertyproxy.h
debian/tmp/opt/trinity/include/kdcopservicestarter.h
debian/tmp/opt/trinity/include/tdebugclasses.h
debian/tmp/opt/trinity/include/tdebug.h
debian/tmp/opt/trinity/include/tdedmodule.h
debian/tmp/opt/trinity/include/tde_file.h
debian/tmp/opt/trinity/include/kdebugclasses.h
debian/tmp/opt/trinity/include/kdebug.h
debian/tmp/opt/trinity/include/kdedmodule.h
debian/tmp/opt/trinity/include/kde_file.h
debian/tmp/opt/trinity/include/tdelibs_export.h
debian/tmp/opt/trinity/include/tdemacros.h
debian/tmp/opt/trinity/include/kdemacros.h
debian/tmp/opt/trinity/include/kde.pot
debian/tmp/opt/trinity/include/tdeprint/driver.h
debian/tmp/opt/trinity/include/tdeprint/kiconselectaction.h
@ -221,7 +221,7 @@ debian/tmp/opt/trinity/include/tdeprint/kprintdialogpage.h
debian/tmp/opt/trinity/include/tdeprint/lpr/lprhandler.h
debian/tmp/opt/trinity/include/tdeprint/lpr/lprsettings.h
debian/tmp/opt/trinity/include/tdeprint/lpr/printcapentry.h
debian/tmp/opt/trinity/include/tdesktopfile.h
debian/tmp/opt/trinity/include/kdesktopfile.h
debian/tmp/opt/trinity/include/tdesu/client.h
debian/tmp/opt/trinity/include/tdesu/defaults.h
debian/tmp/opt/trinity/include/tdesu/kcookie.h
@ -231,7 +231,7 @@ debian/tmp/opt/trinity/include/tdesu/pty.h
debian/tmp/opt/trinity/include/tdesu/ssh.h
debian/tmp/opt/trinity/include/tdesu/stub.h
debian/tmp/opt/trinity/include/tdesu/su.h
debian/tmp/opt/trinity/include/tde_terminal_interface.h
debian/tmp/opt/trinity/include/kde_terminal_interface.h
debian/tmp/opt/trinity/include/tdeversion.h
debian/tmp/opt/trinity/include/kdialogbase.h
debian/tmp/opt/trinity/include/kdialog.h
@ -717,7 +717,7 @@ debian/tmp/opt/trinity/include/networkstatusindicator.h
debian/tmp/opt/trinity/include/connectionmanager.h
debian/tmp/opt/trinity/include/serviceiface.h
debian/tmp/opt/trinity/include/provideriface.h
#debian/tmp/opt/trinity/include/tdemm
#debian/tmp/opt/trinity/include/kdemm
debian/tmp/opt/trinity/lib/libnetworkstatus.la
debian/tmp/opt/trinity/lib/libnetworkstatus.so

@ -4,7 +4,7 @@ include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include debian/cdbs/kde.mk
DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include/tde5
DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include/kde5
DEB_CONFIGURE_MANDIR := /opt/trinity/share/man
DEB_CONFIGURE_PREFIX := /opt/trinity
DEB_CONFIGURE_INFODIR := /opt/trinity/share/info

@ -1,12 +1,12 @@
--- starttde
+++ starttde
@@ -184,17 +184,17 @@
@@ -228,17 +228,17 @@
. $tdehome/share/config/startupconfig
fi
-# Make sure a default wallpaper is set.
-if [ ! -e $tdehome/share/config/kdesktoprc ]; then
- # With Trinity KDE this file should exist, but test first.
- # With Trinity this file should exist, but test first.
- if [ -r /usr/share/wallpapers/isadora.png.desktop ]; then
-cat >$tdehome/share/config/kdesktoprc <<EOF
-[Desktop0]
@ -17,7 +17,7 @@
-fi
+## Make sure a default wallpaper is set.
+#if [ ! -e $tdehome/share/config/kdesktoprc ]; then
+# # With Trinity KDE this file should exist, but test first.
+# # With Trinity this file should exist, but test first.
+# if [ -r /usr/share/wallpapers/isadora.png.desktop ]; then
+#cat >$tdehome/share/config/kdesktoprc <<EOF
+#[Desktop0]

@ -197,12 +197,12 @@ debian/tmp/opt/trinity/include/kdatewidget.h
debian/tmp/opt/trinity/include/kdcopactionproxy.h
debian/tmp/opt/trinity/include/kdcoppropertyproxy.h
debian/tmp/opt/trinity/include/kdcopservicestarter.h
debian/tmp/opt/trinity/include/tdebugclasses.h
debian/tmp/opt/trinity/include/tdebug.h
debian/tmp/opt/trinity/include/tdedmodule.h
debian/tmp/opt/trinity/include/tde_file.h
debian/tmp/opt/trinity/include/kdebugclasses.h
debian/tmp/opt/trinity/include/kdebug.h
debian/tmp/opt/trinity/include/kdedmodule.h
debian/tmp/opt/trinity/include/kde_file.h
debian/tmp/opt/trinity/include/tdelibs_export.h
debian/tmp/opt/trinity/include/tdemacros.h
debian/tmp/opt/trinity/include/kdemacros.h
debian/tmp/opt/trinity/include/kde.pot
debian/tmp/opt/trinity/include/tdeprint/driver.h
debian/tmp/opt/trinity/include/tdeprint/kiconselectaction.h
@ -221,7 +221,7 @@ debian/tmp/opt/trinity/include/tdeprint/kprintdialogpage.h
debian/tmp/opt/trinity/include/tdeprint/lpr/lprhandler.h
debian/tmp/opt/trinity/include/tdeprint/lpr/lprsettings.h
debian/tmp/opt/trinity/include/tdeprint/lpr/printcapentry.h
debian/tmp/opt/trinity/include/tdesktopfile.h
debian/tmp/opt/trinity/include/kdesktopfile.h
debian/tmp/opt/trinity/include/tdesu/client.h
debian/tmp/opt/trinity/include/tdesu/defaults.h
debian/tmp/opt/trinity/include/tdesu/kcookie.h
@ -231,7 +231,7 @@ debian/tmp/opt/trinity/include/tdesu/pty.h
debian/tmp/opt/trinity/include/tdesu/ssh.h
debian/tmp/opt/trinity/include/tdesu/stub.h
debian/tmp/opt/trinity/include/tdesu/su.h
debian/tmp/opt/trinity/include/tde_terminal_interface.h
debian/tmp/opt/trinity/include/kde_terminal_interface.h
debian/tmp/opt/trinity/include/tdeversion.h
debian/tmp/opt/trinity/include/kdialogbase.h
debian/tmp/opt/trinity/include/kdialog.h
@ -717,7 +717,7 @@ debian/tmp/opt/trinity/include/networkstatusindicator.h
debian/tmp/opt/trinity/include/connectionmanager.h
debian/tmp/opt/trinity/include/serviceiface.h
debian/tmp/opt/trinity/include/provideriface.h
#debian/tmp/opt/trinity/include/tdemm
#debian/tmp/opt/trinity/include/kdemm
debian/tmp/opt/trinity/lib/libnetworkstatus.la
debian/tmp/opt/trinity/lib/libnetworkstatus.so

@ -36,6 +36,7 @@ extras/kasablanca
extras/ksensors
extras/libkarma
#extras/libkexif
extras/kdebluetooth
extras/trinity-desktop
extras/trinity-live
applications/k3b

@ -42,6 +42,7 @@ BuildRequires: glib2-devel
BuildRequires: libtool-ltdl-devel
BuildRequires: gsl-devel
BuildRequires: libvorbis-devel
BuildRequires: esound-devel
BuildRequires: jack-audio-connection-kit-devel
Requires: tqtinterface

@ -0,0 +1,110 @@
diff -up kdebluetooth-1.0_beta8/kdebluetooth/kcm_btpaired/pairedtab.h~ kdebluetooth-1.0_beta8/kdebluetooth/kcm_btpaired/pairedtab.h
--- kdebluetooth-1.0_beta8/kdebluetooth/kcm_btpaired/pairedtab.h~ 2007-09-17 19:52:30.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/kcm_btpaired/pairedtab.h 2008-01-06 15:45:56.000000000 +0200
@@ -29,6 +29,7 @@
#define PAIREDTAB_H
#include "pairedtabbase.h"
+#include <stdint.h>
#include <qcstring.h>
#include <qdatastream.h>
#include <qstringlist.h>
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverops.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverops.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverops.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverops.cpp 2008-01-06 15:58:29.000000000 +0200
@@ -28,6 +28,7 @@
#include "qobexserverops.h"
#include "qobexauth.h"
+#undef myDebug
#undef DEBUG
// #define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverconnection.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverconnection.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverconnection.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserverconnection.cpp 2008-01-06 15:57:54.000000000 +0200
@@ -42,6 +42,7 @@
#include "qobexnullserverops.h"
#include "qobexserverops.h"
+#undef myDebug
#undef DEBUG
#define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexclient.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexclient.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexclient.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexclient.cpp 2008-01-06 15:56:55.000000000 +0200
@@ -31,6 +31,7 @@
#include "qobexclient.h"
+#undef myDebug
//#undef DEBUG
#define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserialtransport.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserialtransport.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserialtransport.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserialtransport.cpp 2008-01-06 15:59:12.000000000 +0200
@@ -31,6 +31,7 @@
#include "qobexserialtransport.h"
+#undef myDebug
#undef DEBUG
// #define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobextransport.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobextransport.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobextransport.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobextransport.cpp 2008-01-06 15:57:32.000000000 +0200
@@ -46,6 +46,7 @@
#include "qobextransport.h"
+#undef myDebug
//#undef DEBUG
#define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qserialdevice.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qserialdevice.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qserialdevice.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qserialdevice.cpp 2008-01-06 15:58:59.000000000 +0200
@@ -43,6 +43,7 @@
#include "qttylock.h"
#include "qserialdevice.h"
+#undef myDebug
#undef DEBUG
// #define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexbase.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexbase.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexbase.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexbase.cpp 2008-01-06 15:58:05.000000000 +0200
@@ -23,6 +23,7 @@
#include "qobexbase.h"
+#undef myDebug
#undef DEBUG
// #define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserver.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserver.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserver.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexserver.cpp 2008-01-06 15:57:13.000000000 +0200
@@ -31,6 +31,7 @@
#include "qobexserver.h"
+#undef myDebug
#undef DEBUG
// #define DEBUG
#ifdef DEBUG
diff -up kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexericssontransport.cpp~ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexericssontransport.cpp
--- kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexericssontransport.cpp~ 2007-09-17 19:52:31.000000000 +0300
+++ kdebluetooth-1.0_beta8/kdebluetooth/libqobex/qobex/qobexericssontransport.cpp 2008-01-06 15:58:44.000000000 +0200
@@ -31,6 +31,7 @@
#include "qobexericssontransport.h"
+#undef myDebug
#undef DEBUG
#define DEBUG
#ifdef DEBUG

@ -0,0 +1,131 @@
diff -Nuar kdebluetooth.ORI/admin/acinclude.m4.in kdebluetooth.P/admin/acinclude.m4.in
--- kdebluetooth.ORI/admin/acinclude.m4.in 2012-02-12 14:10:33.093808915 +0100
+++ kdebluetooth.P/admin/acinclude.m4.in 2012-02-12 14:13:57.437558226 +0100
@@ -483,10 +483,10 @@
fi
fi
if test -z "$kde_styledir"; then
- kde_styledir='\${libdir}/kde3/plugins/styles'
+ kde_styledir='\${libdir}/trinity/plugins/styles'
fi
if test -z "$kde_widgetdir"; then
- kde_widgetdir='\${libdir}/kde3/plugins/designer'
+ kde_widgetdir='\${libdir}/trinity/plugins/designer'
fi
if test -z "$xdg_appsdir"; then
xdg_appsdir='\${datadir}/applications/kde'
@@ -1813,7 +1813,7 @@
kde_widgetdir=NO
dnl this might be somewhere else
-AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
+AC_FIND_FILE("trinity/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
AC_MSG_ERROR([
@@ -1821,14 +1821,14 @@
So, check this please and use another prefix!])
fi
-if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
+if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/trinity/plugins/designer/kdewidgets.la"; then
AC_MSG_ERROR([
I can't find the designer plugins. These are required and should have been installed
by kdelibs])
fi
if test -n "$kde_widgetdir"; then
- kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
+ kde_widgetdir="$kde_widgetdir/trinity/plugins/designer"
fi
diff -Nuar kdebluetooth.ORI/admin/cvs.sh kdebluetooth.P/admin/cvs.sh
--- kdebluetooth.ORI/admin/cvs.sh 2012-02-12 14:10:33.093808915 +0100
+++ kdebluetooth.P/admin/cvs.sh 2012-02-12 14:11:27.951558154 +0100
@@ -68,7 +68,7 @@
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
- automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
+ automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.1[0-9]*)
echo "*** $AUTOMAKE_STRING found."
UNSERMAKE=no
;;
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/libkbluetooth/Makefile.am.ORI 2012-02-12 14:40:37.124683567 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/libkbluetooth/Makefile.am 2012-02-12 14:41:13.572933231 +0100
@@ -12,7 +12,7 @@
libkbluetooth_la_LIBADD = $(LIB_KDECORE) $(DBUS_LIBS) $(LIB_KIO) $(BLUETOOTH_LIBS) -ldbus-qt-1
libkbluetoothincludedir = $(includedir)/libkbluetooth
-libkbluetoothinclude_HEADERS = adapter.h dbusinit.h dbussignal.h dbussignal.h manager.h inputdevice.h inputmanager.h \
+libkbluetoothinclude_HEADERS = adapter.h dbusinit.h dbussignal.h manager.h inputdevice.h inputmanager.h \
security.h dbusfilter.h service.h passkeyagent.h servicerecord.h devicemimeconverter.h \
deviceaddress.h rfcommsocket.h servicediscovery.h sdpservice.h namerequest.h adapter_old.h \
sdpdevice.h sdpattribute.h serviceselectionwidget.h inquiry.h hcisocket.h hcidefault.h \
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbluetooth/Makefile.am.ORI 2012-02-12 15:23:53.713273076 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbluetooth/Makefile.am 2012-02-12 15:24:04.547424194 +0100
@@ -4,7 +4,7 @@
bin_PROGRAMS = kbluetooth
kbluetooth_SOURCES = adapterconfig.cpp adapterdialog.ui authorize.cpp authdialog.ui deviceconfig.cpp trayicon.cpp main.cpp application.cpp pindefdialog.ui pindialog.cpp confirmationdlgbase.ui confirmation.cpp rfcommportlistener.cpp procinheritsock.cpp portlistener.cpp sdprecord.cpp
-kbluetooth_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries)
+kbluetooth_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries) -lDCOP -lkdefx
kbluetooth_LDADD = ../libkbluetooth/libkbluetooth.la $(LIB_KIO) $(LIB_KDEUI)
# this is where the desktop file will go
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbluemon/Makefile.am.ORI 2012-02-12 15:27:57.544671388 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbluemon/Makefile.am 2012-02-12 15:28:03.821758799 +0100
@@ -4,7 +4,7 @@
bin_PROGRAMS = kbluemon
kbluemon_SOURCES = main.cpp monitor.cpp mondialog.ui
-kbluemon_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries)
+kbluemon_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries) -lkdefx
kbluemon_LDADD = ../libkbluetooth/libkbluetooth.la $(LIB_KIO) $(LIB_KDEUI)
# this is where the desktop file will go
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbluelock/Makefile.am.ORI 2012-02-12 15:29:34.900026701 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbluelock/Makefile.am 2012-02-12 15:29:40.774108449 +0100
@@ -4,7 +4,7 @@
bin_PROGRAMS = kbluelock
kbluelock_SOURCES = main.cpp kbluelock.cpp lockdialog.ui
-kbluelock_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries)
+kbluelock_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries) -lDCOP -lkdefx
kbluelock_LDADD = ../libkbluetooth/libkbluetooth.la $(LIB_KIO) $(LIB_KDEUI)
# this is where the desktop file will go
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/kinputwizard/Makefile.am.ORI 2012-02-12 15:31:54.069962658 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/kinputwizard/Makefile.am 2012-02-12 15:32:00.579053161 +0100
@@ -4,7 +4,7 @@
bin_PROGRAMS = kinputwizard
kinputwizard_SOURCES = main.cpp inputwizard.cpp inputdialog.ui inputdialog_ext.ui
-kinputwizard_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries)
+kinputwizard_LDFLAGS = $(KDE_RPATH) $(DBUS_LIBS) -ldbus-qt-1 $(all_libraries) -lkdefx
kinputwizard_LDADD = ../libkbluetooth/libkbluetooth.la $(LIB_KIO) $(LIB_KDEUI)
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbtobexsrv/Makefile.am.ORI 2012-02-12 15:33:26.869242631 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbtobexsrv/Makefile.am 2012-02-12 15:33:44.826485520 +0100
@@ -19,7 +19,7 @@
# the application source, library search path, and link libraries
kbtobexsrv_SOURCES = main.cpp maindlg.cpp maindlgbase.ui myfileiconview.cpp
-kbtobexsrv_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+kbtobexsrv_LDFLAGS = $(KDE_RPATH) $(all_libraries) -lkdefx
kbtobexsrv_LDADD = ../libkbluetooth/libkbluetooth.la ../libkobex/libkobex.la $(LIB_KIO) $(OPENOBEX_LIBS) -lkio $(LIB_KDEUI) $(BLUETOOTH_LIBS)
# this is where the desktop file will go
--- kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbtobexclient/Makefile.am.ORI 2012-02-12 15:35:17.239735523 +0100
+++ kdebluetooth-1.0~beta9~r769275/kdebluetooth/kbtobexclient/Makefile.am 2012-02-12 15:35:25.381845659 +0100
@@ -17,7 +17,7 @@
# the application source, library search path, and link libraries
-kbtobexclient_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+kbtobexclient_LDFLAGS = $(KDE_RPATH) $(all_libraries) -lkdefx
kbtobexclient_LDADD = ../libkbluetooth/libkbluetooth.la ../libkobex/libkobex.la $(LIB_KIO) $(OPENOBEX_LIBS) -lkio $(LIB_KDEUI) $(BLUETOOTH_LIBS) $(DBUS_LIBS) -ldbus-qt-1
# this is where the desktop file will go

@ -0,0 +1,365 @@
# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
%if "%{?_prefix}" != "/usr"
%define _variant .opt
%define _docdir %{_prefix}/share/doc
%endif
Name: trinity-kdebluetooth
Version: 1.0_beta9_r769275
Release: 1%{?dist}%{?_variant}
Summary: The TDE Bluetooth Framework
License: GPLv2+
Group: Applications/Communications
URL: http://bluetooth.kmobiletools.org/
Source0: kdebluetooth_1.0~beta9~r769275.orig.tar.gz
Patch0: kdebluetooth-1.0_beta8-gcc43.patch
Patch1: kdebluetooth_1.0~beta9~r769275-0ubuntu1.diff.gz
Patch2: kdebluetooth-trinity.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gettext
BuildRequires: desktop-file-utils
BuildRequires: lockdev-devel
BuildRequires: xmms-devel
BuildRequires: bluez-libs-devel
BuildRequires: trinity-kdelibs-devel
BuildRequires: trinity-kdepim-devel
BuildRequires: openobex-devel >= 1.1
BuildRequires: libusb-devel
BuildRequires: pkgconfig
Buildrequires: libidn-devel
Buildrequires: dbus-qt-devel
BuildRequires: obexftp-devel
BuildRequires: automake >= 1.6.1
BuildRequires: autoconf >= 2.52
Requires: %{name}-libs = %{version}-%{release}
Requires: %{_bindir}/kdesu
%description
The KDE Bluetooth Framework is a set of tools built on top of Linux'
Bluetooth (Bluez) stack. The goal is to provide easy access to the most
common Bluetooth profiles and to make data exchange with Bluetooth
enabled devices as straightforward as possible.
%package libs
Summary: Base libraries for %{name}
Group: System Environment/Libraries
Obsoletes: %{name} < %{version}-%{release}
%if 0%{?fedora} >= 8
Provides: dbus-bluez-pin-helper
%endif
%description libs
KDE Bluetooth framework libraries.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: trinity-kdelibs-devel
Requires: bluez-libs-devel
Requires: %{name}-libs = %{version}-%{release}
%description devel
KDE Bluetooth framework development libraries and headers.
%prep
%setup -q -n kdebluetooth-1.0~beta9~r769275
%patch0 -p1
%patch1 -p1
%patch2 -p1
%__cp -f "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in"
if [ -r "/usr/share/libtool/config/ltmain.sh" ]; then
%__cp -f "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh"
else
%__cp -f "/usr/share/libtool/ltmain.sh" "admin/ltmain.sh"
fi
%__make -f "admin/Makefile.common"
%build
export PATH="%{_bindir}:${PATH}"
export LDFLAGS="-L%{_libdir} -I%{_includedir}"
export CXXFLAGS="-fpermissive"
unset QTDIR || : ; . /etc/profile.d/qt.sh
%configure \
--with-bluetooth-libraries=%{_libdir} \
--disable-rpath \
--enable-new-ldflags \
--disable-debug \
--disable-dependency-tracking \
--enable-final \
--enable-closure \
--with-extra-includes=%{_includedir}/tqt
make %{?_smp_mflags} LIBTOOL=/usr/bin/libtool
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
for DESK_PATH in applications/kde applnk/Utilities ; do
desktop-file-install \
--mode=644 \
--vendor="" \
--dir=$RPM_BUILD_ROOT%{_datadir}/applications/kde \
--remove-category="Network" \
--add-category="System" \
--delete-original \
$RPM_BUILD_ROOT%{_datadir}/$DESK_PATH/*.desktop ||:
done
touch %{name}.lang
PROG_LIST="kbluelock kbluemon kbluetooth kinputwizard
kcm_btpaired kio_bluetooth kio_obex2 kio_sdp
libkbluetooth kdebluetooth"
for PROG in $PROG_LIST ; do
%find_lang $PROG && cat $PROG.lang >> %{name}.lang ||:
done
rm -f $RPM_BUILD_ROOT/%{_datadir}/applnk/Settings/Network/Bluetooth/.directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.a
rm -f ${RPM_BUILD_ROOT}%{_libdir}/kde3/*.a
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
touch --no-create %{_datadir}/icons/hicolor ||:
gtk-update-icon-cache -qf %{_datadir}/icons/hicolor 2> /dev/null ||:
%postun
/sbin/ldconfig
touch --no-create %{_datadir}/icons/hicolor ||:
gtk-update-icon-cache -qf %{_datadir}/icons/hicolor 2> /dev/null ||:
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING INSTALL README
%{_bindir}/kblue*
%{_bindir}/kbtobexclient
%{_bindir}/kioobex_start
%{_bindir}/kinputwizard
%{_datadir}/applications/kde/*.desktop
%{_datadir}/applnk/.hidden/*.desktop
%{_datadir}/apps/konqsidebartng/virtual_folders/services/*.desktop
%{_datadir}/apps/*/*
%{_datadir}/autostart/*
%{_datadir}/desktop-directories/*
%{_datadir}/icons/hicolor/*/*/*
%{_datadir}/mimelnk/bluetooth/
%{_datadir}/service*/*
%lang(ca) %{_docdir}/HTML/ca/kdebluetooth/
%lang(da) %{_docdir}/HTML/da/kdebluetooth/
%lang(en) %{_docdir}/HTML/en/kdebluetooth/
%lang(es) %{_docdir}/HTML/es/kdebluetooth/
%lang(et) %{_docdir}/HTML/et/kdebluetooth/
%lang(fr) %{_docdir}/HTML/fr/kdebluetooth/
%lang(it) %{_docdir}/HTML/it/kdebluetooth/
%lang(nl) %{_docdir}/HTML/nl/kdebluetooth/
%lang(pt) %{_docdir}/HTML/pt/kdebluetooth/
%lang(ru) %{_docdir}/HTML/ru/kdebluetooth/
%lang(sv) %{_docdir}/HTML/sv/kdebluetooth/
%files libs
%defattr(-,root,root,-)
%{_libdir}/*.la
%{_libdir}/*.so.*
%{_libdir}/kde3/*.so
%{_libdir}/kde3/*.la
%{_libdir}/kdebluetooth/
%files devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/*.so
%changelog
* Sun Feb 12 2012 Francois Andriot <francois.andriot@free.fr> - 1.0_beta9_r769275-1
- Initial version for TDE 3.5.13
- Updates base version to 1.0_beta9_r769275 (taken from Ubuntu Hardy)
- Fix autotools detection
* Tue Apr 1 2008 Rex Dieter <rdieter@fedoraproject.org> - 1.0-0.41.beta8
- -devel: Requires: kdelibs3-devel
* Sun Jan 6 2008 Ville Skyttä <ville.skytta at iki.fi> - 1.0-0.40.beta8
- Fix build with gcc 4.3.
* Sun Dec 9 2007 Ville Skyttä <ville.skytta at iki.fi> - 1.0-0.39.beta8
- Require kdesu in main package.
* Sun Dec 08 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.0-0.38.beta8
- BR: kdelibs3-devel kdepim3-devel
- drop Requires: kdebase (?)
* Wed Nov 08 2007 Gilboa Davara <gilboad[AT]gmail.com> 1.0-0.37.beta8
- Missing BR: automake, autoconf.
* Wed Nov 08 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-36.beta8
- Move BRs to main package to fix mock breakage.
* Wed Nov 07 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-35.beta8
- Fix multi-lib conflicts (#341731).
* Sat Oct 06 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-34.beta8
- Beta8. (First official release since beta3)
- Remove redundant beta3 patches.
- LANG support by Ville Skytta.
- Virtual provides: dbus-bluez-pin-helper.
* Sun Aug 26 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-33.beta3
- Re-Fix the license tag.
* Sun Aug 26 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-32.beta3
- Fixed license tag.
- Re-enable PPC64.
* Tue Jul 31 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-31.beta3
- Fix error in ExcludeArch.
* Tue Jul 31 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-30.beta3
- ExcludeArch ppc64 (obexftp, again)
* Mon Jul 30 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-29.beta3
- ExcludeArch ppc/ppc64 (obexftp missing.)
* Sun Jul 15 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-28.beta3
- Fix %%dist... again...
* Thu Jul 12 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-27.beta3
- Add missing touch /icon/hicolor.
- Menu items: Remove only-in-KDE.
- BR: Remove libutempter-devel.
- Fix project URL and source URL.
- Add missing %%dist.
* Sun Jul 08 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-26.beta3
- Remove the Nokia N70 patch. (Doesn't seem to work.)
- OBEX Object push fix.
* Sun Jul 08 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-25.beta3
- Adopted Ville Skyttä b2 patch to b3. (Hopefully) re-enable Nokia N7x obex support.
- Patch out "Configure services". (Disabled in B3)
* Mon Jun 25 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-24.beta3
- Added hex encoding patch by Thomas Davis.
- Removed --enable-irmcsynckonnector (deprecated in b3)
- Add missing docs. (Removed by mistake in b23)
- Known issue - services menu doesn't seem to work. (Requires debugging / upstream )
* Tue Jun 12 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0.0-23.beta3
- Beta3.
- Remove pin-helper. (No longer needed - beta3 has dbus support.)
- Added BR dbus-qt.
- Added BR obexftp-devel.
- Remove b2 patches.
* Sat May 26 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0-0.22.beta2
- Use the bluez_pinhelper wrapper instead of modified bluez-utils.
- Remove %%dist.
- *rc should not be marked as config.
- Prevent RPM from owning Network/Peripherals.
* Mon Apr 23 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0-0.21.beta2
- Patch list clean-up.
- Add Nokia obex detection patch.
- Fix 64bit compile due to bad default in configure. (with_bluetooth_dir)
- Missing BR: libtempter-devel.
- Missing BT: libidn-devel.
- Added: kbluepin wrapper - configure kbluepin as the old-style pin helper.
* Wed Apr 04 2007 Gilboa Davara <gilboad[AT]gmail.com> 1-0-0.20.beta2
- Re-merge Ville Skytta's latest .spec. (Got dropped by mistake)
- Summery, description clean-up.
* Thu Mar 29 2007 Gilboa Davara <gilboad[AT]gmail.com> 1.0-0.19.beta2
- Spec file clean-up.
* Fri Oct 20 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.18.beta2
- BR: gettext
- include locales
* Tue Oct 17 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.17.beta2
- kdebluetooth-1.0_beta2
* Fri Sep 08 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.16.20060908svn
- kdebluetoooth-20060908svn
* Thu Jul 13 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.15.20060621svn
- put svn at end of Release tag (per packaging guidelines)
* Wed Jun 21 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.14.svn20060621
- kdebluetooth-20060621svn, fixes
compile error kdebluetooth libkobex obex.h not found (kde bug #94572)
* Tue Jun 20 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.13.svn20060620
- kdebluetooth-svn20060620, (re)fixes
konqueror bluetooth:/ returns error "Bad URL" (kde bug #123607)
- --disable-dependency-tracking
- own %%_datadir/applnk/Settings/Network
* Mon Jun 19 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.12.svn20060619
- document svn tarball creation
- Requires: kdebase (for kcm bits, applnk dir ownership)
- desktop-file-install --add-only-show-in=KDE
* Mon Jun 19 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.11.svn20060619
- kdebluetooth-svn20060619, making most patches obsolete
* Fri Apr 28 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.10.beta1
- -devel: Requires: qt-devel bluez-libs-devel
- include libirmcsynckonnector.so in main pkg
- .desktop: --remove-category=Network --add-category=System
- remove zero length files
- fix default hcid start/top command
* Mon Apr 17 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.0-0.9.beta1
- konqueror bluetooth:/ returns error "Bad URL" (kde bug #123607)
* Tue Mar 28 2006 Rex Dieter 1.0-0.8.beta1
- BR: kdepim-devel (for kitchensync)
- kdebluetooth-1.0_beta1-gcc41.patch
* Thu Mar 23 2006 Rex Dieter 1.0-0.7.beta1
- cleanup openobex patch
- fixup .desktop file(s)
* Wed Mar 22 2006 Rex Dieter 1.0-0.6.beta1
- cleanup for Extras
- %%post: ldconfig, fdo icon spec
* Mon Mar 06 2006 Rex Dieter 1.0-0.5.beta1
- respin
* Mon Mar 21 2005 Rex Dieter 1.0-0.3.beta1
- --enable-irmcsynckonnector
* Mon Mar 21 2005 Rex Dieter 1.0-0.1.beta1
- 1.0_beta1
* Wed Dec 29 2004 Rex Dieter <rexdieter[AT]users.sf.net> 0.0-0.1.cvs20050110
- first try

@ -0,0 +1,47 @@
commit 1e2983ad0107fb1d26e3e9931528701f30632c6d
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1326856834 -0600
Fix kdm_greet high CPU usage
Clean up a few build warnings
diff --git a/kdm/kfrontend/kgreeter.cpp b/kdm/kfrontend/kgreeter.cpp
index 9b974cc..5877cb6 100644
--- a/kdm/kfrontend/kgreeter.cpp
+++ b/kdm/kfrontend/kgreeter.cpp
@@ -273,6 +273,9 @@ void KGreeter::handleInputPipe(void) {
readbuf[numread] = 0;
readbuf[2047] = 0;
inputcommand += readbuf;
+ if (!tqApp->hasPendingEvents()) {
+ usleep(500);
+ }
tqApp->processEvents();
}
if (closingDown) {
@@ -508,11 +511,11 @@ KGreeter::insertUsers(int limit_users)
int count = 0;
for (setpwent(); (ps = getpwent()) != 0;) {
if (*ps->pw_dir && *ps->pw_shell &&
- (ps->pw_uid >= (unsigned)_lowUserId ||
- !ps->pw_uid && _showRoot) &&
- ps->pw_uid <= (unsigned)_highUserId &&
- !noUsers.hasUser( ps->pw_name ) &&
- !noUsers.hasGroup( ps->pw_gid ))
+ ((ps->pw_uid >= (unsigned)_lowUserId) ||
+ ((!ps->pw_uid) && _showRoot)) &&
+ (ps->pw_uid <= (unsigned)_highUserId) &&
+ (!noUsers.hasUser( ps->pw_name )) &&
+ (!noUsers.hasGroup( ps->pw_gid )))
{
TQString username( TQFile::decodeName( ps->pw_name ) );
if (!dupes.find( username )) {
@@ -574,7 +577,7 @@ KGreeter::insertUsers(int limit_users)
for (setpwent(); (ps = getpwent()) != 0;) {
if (*ps->pw_dir && *ps->pw_shell &&
(ps->pw_uid >= (unsigned)_lowUserId ||
- !ps->pw_uid && _showRoot) &&
+ ((!ps->pw_uid) && _showRoot)) &&
ps->pw_uid <= (unsigned)_highUserId &&
(users.hasUser( ps->pw_name ) ||
users.hasGroup( ps->pw_gid )))

@ -0,0 +1,95 @@
commit 8468d9bd5c66fe402acbc06f728b12ea996848de
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1327049889 -0600
Replicate LED status from virtual keyboards to physical keyboards
Fix keyboard attribute cloning
This commit closes Bug 561
diff --git a/tsak/main.cpp b/tsak/main.cpp
index df485a0..26aad00 100644
--- a/tsak/main.cpp
+++ b/tsak/main.cpp
@@ -126,22 +126,23 @@ static void copy_features(int devin, int devout)
for(i=0;i<EV_MAX;++i) {
if (bit_set(i, evtypes)) {
switch(i) {
- case EV_KEY: op = UI_SET_KEYBIT; break;
- case EV_REL: op = UI_SET_RELBIT; break;
- case EV_ABS: op = UI_SET_ABSBIT; break;
- case EV_MSC: op = UI_SET_MSCBIT; break;
- case EV_LED: op = UI_SET_LEDBIT; break;
- case EV_SND: op = UI_SET_SNDBIT; break;
- case EV_SW: op = UI_SET_SWBIT; break;
- default: op = -1;
+ case EV_KEY: op = UI_SET_KEYBIT; break;
+ case EV_REL: op = UI_SET_RELBIT; break;
+ case EV_ABS: op = UI_SET_ABSBIT; break;
+ case EV_MSC: op = UI_SET_MSCBIT; break;
+ case EV_LED: op = UI_SET_LEDBIT; break;
+ case EV_SND: op = UI_SET_SNDBIT; break;
+ case EV_SW: op = UI_SET_SWBIT; break;
+ default: op = -1;
+ }
}
- }
- if (op == -1) continue;
- ioctl(devout, UI_SET_EVBIT, i);
- memset(codes,0,sizeof(codes));
- if (ioctl(devin, EVIOCGBIT(i, sizeof(codes)), codes) < 0) return;
- for(code=0;code<KEY_MAX;code++) {
- if (bit_set(code, codes)) ioctl(devout, op, code);
+ if (op == -1) continue;
+ ioctl(devout, UI_SET_EVBIT, i);
+ memset(codes,0,sizeof(codes));
+ if (ioctl(devin, EVIOCGBIT(i, sizeof(codes)), codes) >= 0) {
+ for(code=0;code<KEY_MAX;code++) {
+ if (bit_set(code, codes)) ioctl(devout, op, code);
+ }
}
}
}
@@ -342,6 +343,7 @@ int main (int argc, char *argv[])
{
struct input_event ev[64];
struct input_event event;
+ struct input_event revev;
struct uinput_user_dev devinfo={0};
int devout[MAX_KEYBOARDS], rd, i, value, size = sizeof (struct input_event);
char name[256] = "Unknown";
@@ -416,9 +418,9 @@ int main (int argc, char *argv[])
fprintf(stderr, "Reading from keyboard: (%s)\n", name);
// Create filtered virtual output device
- devout[current_keyboard]=open("/dev/misc/uinput",O_WRONLY|O_NONBLOCK);
+ devout[current_keyboard]=open("/dev/misc/uinput",O_RDWR|O_NONBLOCK);
if (devout[current_keyboard]<0) {
- devout[current_keyboard]=open("/dev/uinput",O_WRONLY|O_NONBLOCK);
+ devout[current_keyboard]=open("/dev/uinput",O_RDWR|O_NONBLOCK);
if (devout[current_keyboard]<0) {
perror("open(\"/dev/misc/uinput\")");
}
@@ -483,6 +485,14 @@ int main (int argc, char *argv[])
fprintf(stderr, "Read failed.\n");
break;
}
+
+ // Replicate LED events from the virtual keyboard to the physical keyboard
+ int rrd = read(devout[current_keyboard], &revev, size);
+ if (rrd >= size) {
+ if (revev.type == EV_LED) {
+ write(keyboard_fds[current_keyboard], &revev, sizeof(revev));
+ }
+ }
value = ev[0].value;
@@ -506,7 +516,7 @@ int main (int argc, char *argv[])
}
}
- if (hide_event == false) {
+ if ((hide_event == false) && (ev[0].type != EV_LED) && (ev[1].type != EV_LED)) {
// Pass the event on...
event = ev[0];
write(devout[current_keyboard], &event, sizeof event);

@ -0,0 +1,641 @@
commit 5f413b26ebaab8a6478427e4125bda628058ff85
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1327015159 -0600
Add keyboard hotplug (add/remove) support to tsak
This closes Bug 587
Fix warning in kompmgr
diff --git a/tsak/CMakeLists.txt b/tsak/CMakeLists.txt
index 6aa5b49..4490636 100644
--- a/tsak/CMakeLists.txt
+++ b/tsak/CMakeLists.txt
@@ -23,5 +23,6 @@ link_directories(
tde_add_executable( tsak
SOURCES main.cpp
+ LINK udev
DESTINATION ${BIN_INSTALL_DIR}
)
diff --git a/tsak/main.cpp b/tsak/main.cpp
index 050d6c0..df485a0 100644
--- a/tsak/main.cpp
+++ b/tsak/main.cpp
@@ -1,8 +1,8 @@
/*
Copyright 2010 Adam Marchetti
-Copyright 2011 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Copyright 2011-2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
-This file is part of tsak.
+This file is part of tsak, the TDE Secure Attention Key daemon
tsak is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
@@ -35,9 +35,15 @@ License along with tsak. If not, see http://www.gnu.org/licenses/.
#include <sys/time.h>
#include <termios.h>
#include <signal.h>
+#include <libudev.h>
+#include <libgen.h>
#define FIFO_DIR "/tmp/ksocket-global"
#define FIFO_FILE_OUT "/tmp/ksocket-global/tsak"
+#define FIFO_LOCKFILE_OUT "/tmp/ksocket-global/tsak.lock"
+
+#define MAX_KEYBOARDS 64
+#define MAX_INPUT_NODE 128
#define TestBit(bit, array) (array[(bit) / 8] & (1 << ((bit) % 8)))
@@ -46,9 +52,18 @@ typedef unsigned char byte;
bool mPipeOpen_out = false;
int mPipe_fd_out = -1;
+int mPipe_lockfd_out = -1;
+
+char filename[32];
+char key_bitmask[(KEY_MAX + 7) / 8];
+
struct sigaction usr_action;
sigset_t block_mask;
+int keyboard_fd_num;
+int keyboard_fds[MAX_KEYBOARDS];
+int child_pids[MAX_KEYBOARDS];
+
const char *keycode[256] =
{
"", "<esc>", "1", "2", "3", "4", "5", "6", "7", "8",
@@ -79,6 +94,26 @@ int bit_set(size_t i, const byte* a)
return a[i/CHAR_BIT] & (1 << i%CHAR_BIT);
}
+// --------------------------------------------------------------------------------------
+// Useful function from Stack Overflow
+// http://stackoverflow.com/questions/874134/find-if-string-endswith-another-string-in-c
+// --------------------------------------------------------------------------------------
+/* returns 1 iff str ends with suffix */
+int str_ends_with(const char * str, const char * suffix) {
+
+ if( str == NULL || suffix == NULL )
+ return 0;
+
+ size_t str_len = strlen(str);
+ size_t suffix_len = strlen(suffix);
+
+ if(suffix_len > str_len)
+ return 0;
+
+ return 0 == strncmp( str + str_len - suffix_len, suffix, suffix_len );
+}
+// --------------------------------------------------------------------------------------
+
/* Assign features (supported axes and keys) of the physical input device (devin)
* to the virtual input device (devout) */
static void copy_features(int devin, int devout)
@@ -111,26 +146,40 @@ static void copy_features(int devin, int devout)
}
}
-int find_keyboard() {
+int find_keyboards() {
int i, j;
int fd;
- char filename[32];
- char key_bitmask[(KEY_MAX + 7) / 8];
+ char name[256] = "Unknown";
+
+ keyboard_fd_num = 0;
+ for (i=0; i<MAX_KEYBOARDS; i++) {
+ keyboard_fds[i] = 0;
+ }
- for (i=0; i<32; i++) {
+ for (i=0; i<MAX_INPUT_NODE; i++) {
snprintf(filename,sizeof(filename), "/dev/input/event%d", i);
-
+
fd = open(filename, O_RDWR|O_SYNC);
ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(key_bitmask)), key_bitmask);
-
- /* We assume that anything that has an alphabetic key in the
- QWERTYUIOP range in it is the main keyboard. */
- for (j = KEY_Q; j <= KEY_P; j++) {
- if (TestBit(j, key_bitmask))
- return fd;
+
+ // Ensure that we do not detect our own tsak faked keyboards
+ ioctl (fd, EVIOCGNAME (sizeof (name)), name);
+ if (str_ends_with(name, "+tsak") == 0) {
+ /* We assume that anything that has an alphabetic key in the
+ QWERTYUIOP range in it is the main keyboard. */
+ for (j = KEY_Q; j <= KEY_P; j++) {
+ if (TestBit(j, key_bitmask)) {
+ keyboard_fds[keyboard_fd_num] = fd;
+ }
+ }
+ }
+
+ if (keyboard_fds[keyboard_fd_num] == 0) {
+ close (fd);
+ }
+ else {
+ keyboard_fd_num++;
}
-
- close (fd);
}
return 0;
}
@@ -144,6 +193,12 @@ void tearDownPipe()
}
}
+void tearDownLockingPipe()
+{
+ close(mPipe_lockfd_out);
+ unlink(FIFO_LOCKFILE_OUT);
+}
+
bool setFileLock(int fd, bool close_on_failure)
{
struct flock fl;
@@ -154,8 +209,8 @@ bool setFileLock(int fd, bool close_on_failure)
fl.l_len = 1;
// Set the exclusive file lock
- if (fcntl(mPipe_fd_out, F_SETLK, &fl) == -1) {
- close(mPipe_fd_out);
+ if (fcntl(fd, F_SETLK, &fl) == -1) {
+ close(fd);
return false;
}
@@ -171,7 +226,7 @@ bool checkFileLock()
fl.l_whence = SEEK_SET;
fl.l_len = 0;
- int fd = open(FIFO_FILE_OUT, O_RDWR | O_NONBLOCK);
+ int fd = open(FIFO_LOCKFILE_OUT, O_RDWR | O_NONBLOCK);
fcntl(fd, F_GETLK, &fl); /* Overwrites lock structure with preventors. */
if (fd > -1) {
@@ -202,6 +257,71 @@ bool setupPipe()
return setFileLock(mPipe_fd_out, true);
}
+bool setupLockingPipe()
+{
+ /* Create the FIFOs if they do not exist */
+ umask(0);
+ mkdir(FIFO_DIR,0644);
+
+ mknod(FIFO_LOCKFILE_OUT, S_IFIFO|0600, 0);
+ chmod(FIFO_LOCKFILE_OUT, 0600);
+
+ mPipe_lockfd_out = open(FIFO_LOCKFILE_OUT, O_RDWR | O_NONBLOCK);
+ if (mPipe_lockfd_out > -1) {
+ // Set the exclusive file lock
+ return setFileLock(mPipe_lockfd_out, true);
+ }
+
+ return false;
+}
+
+void broadcast_sak()
+{
+ // Let anyone listening to our interface know that an SAK keypress was received
+ // I highly doubt there are more than 255 VTs active at once...
+ int i;
+ for (i=0;i<255;i++) {
+ write(mPipe_fd_out, "SAK\n\r", 6);
+ }
+}
+
+void restart_tsak()
+{
+ int i;
+
+ fprintf(stderr, "Forcibly terminating...\n");
+
+ // Close down all child processes
+ for (i=0; i<MAX_KEYBOARDS; i++) {
+ if (child_pids[i] != 0) {
+ kill(child_pids[i], SIGKILL);
+ }
+ }
+
+ // Wait for process termination
+ sleep(1);
+
+ // Release all exclusive keyboard locks
+ for (int current_keyboard=0;current_keyboard<keyboard_fd_num;current_keyboard++) {
+ if(ioctl(keyboard_fds[current_keyboard], EVIOCGRAB, 0) < 0) {
+ fprintf(stderr, "Failed to release exclusive input device lock");
+ }
+ close(keyboard_fds[current_keyboard]);
+ }
+
+#if 1
+ // Restart now
+ // Note that the execl function never returns
+ char me[2048];
+ int chars = readlink("/proc/self/exe", me, sizeof(me));
+ me[chars] = 0;
+ me[2047] = 0;
+ execl(me, basename(me), (char*)NULL);
+#else
+ _exit(0);
+#endif
+}
+
class PipeHandler
{
public:
@@ -215,7 +335,7 @@ PipeHandler::PipeHandler()
PipeHandler::~PipeHandler()
{
- tearDownPipe();
+ tearDownLockingPipe();
}
int main (int argc, char *argv[])
@@ -223,13 +343,19 @@ int main (int argc, char *argv[])
struct input_event ev[64];
struct input_event event;
struct uinput_user_dev devinfo={0};
- int fd, devout, rd, value, size = sizeof (struct input_event);
+ int devout[MAX_KEYBOARDS], rd, i, value, size = sizeof (struct input_event);
char name[256] = "Unknown";
bool ctrl_down = false;
bool alt_down = false;
bool hide_event = false;
bool established = false;
bool testrun = false;
+ int current_keyboard;
+ bool can_proceed;
+
+ for (i=0; i<MAX_KEYBOARDS; i++) {
+ child_pids[i] = 0;
+ }
if (argc == 2) {
if (strcmp(argv[1], "checkactive") == 0) {
@@ -239,7 +365,11 @@ int main (int argc, char *argv[])
// Check for existing file locks
if (!checkFileLock()) {
- fprintf(stderr, "Another instance of this program is already running\n");
+ fprintf(stderr, "Another instance of this program is already running [1]\n");
+ return 8;
+ }
+ if (!setupLockingPipe()) {
+ fprintf(stderr, "Another instance of this program is already running [2]\n");
return 8;
}
@@ -256,125 +386,227 @@ int main (int argc, char *argv[])
return 5;
}
- // Open Device
- fd = find_keyboard();
- if (fd == -1) {
- printf ("Could not find your keyboard!\n");
+ // Find keyboards
+ find_keyboards();
+ if (keyboard_fd_num == 0) {
+ printf ("Could not find any usable keyboard(s)!\n");
+ // Make sure everyone knows we physically can't detect a SAK
+ // Before we do this we broadcast one so that active dialogs are updated appropriately
+ // Also, we keep watching for a keyboard to be added via a forked child process...
+ broadcast_sak();
if (established)
sleep(1);
- else
- return 4;
+ else {
+ int i=fork();
+ if (i<0) return 12; // fork failed
+ if (i>0) {
+ return 4;
+ }
+ sleep(1);
+ restart_tsak();
+ }
}
else {
- // Print Device Name
- ioctl (fd, EVIOCGNAME (sizeof (name)), name);
- fprintf(stderr, "Reading From : (%s)\n", name);
-
- // Create filtered virtual output device
- devout=open("/dev/misc/uinput",O_WRONLY|O_NONBLOCK);
- if (devout<0) {
- perror("open(\"/dev/misc/uinput\")");
- devout=open("/dev/uinput",O_WRONLY|O_NONBLOCK);
- }
- if (devout<0) {
- fprintf(stderr,"Unable to open /dev/uinput or /dev/misc/uinput (char device 10:223).\nPossible causes:\n 1) Device node does not exist\n 2) Kernel not compiled with evdev [INPUT_EVDEV] and uinput [INPUT_UINPUT] user level driver support\n 3) Permission denied.\n");
- perror("open(\"/dev/uinput\")");
- if (established)
- sleep(1);
- else
- return 3;
- }
- else {
- if(ioctl(fd, EVIOCGRAB, 2) < 0) {
- close(fd);
- fprintf(stderr, "Failed to grab exclusive input device lock");
+ fprintf(stderr, "Found %d keyboard(s)\n", keyboard_fd_num);
+
+ can_proceed = true;
+ for (current_keyboard=0;current_keyboard<keyboard_fd_num;current_keyboard++) {
+ // Print Device Name
+ ioctl (keyboard_fds[current_keyboard], EVIOCGNAME (sizeof (name)), name);
+ fprintf(stderr, "Reading from keyboard: (%s)\n", name);
+
+ // Create filtered virtual output device
+ devout[current_keyboard]=open("/dev/misc/uinput",O_WRONLY|O_NONBLOCK);
+ if (devout[current_keyboard]<0) {
+ devout[current_keyboard]=open("/dev/uinput",O_WRONLY|O_NONBLOCK);
+ if (devout[current_keyboard]<0) {
+ perror("open(\"/dev/misc/uinput\")");
+ }
+ }
+ if (devout[current_keyboard]<0) {
+ can_proceed = false;
+ fprintf(stderr, "Unable to open /dev/uinput or /dev/misc/uinput (char device 10:223).\nPossible causes:\n 1) Device node does not exist\n 2) Kernel not compiled with evdev [INPUT_EVDEV] and uinput [INPUT_UINPUT] user level driver support\n 3) Permission denied.\n");
+ perror("open(\"/dev/uinput\")");
if (established)
sleep(1);
else
- return 1;
+ return 3;
}
- else {
- ioctl(fd, EVIOCGNAME(UINPUT_MAX_NAME_SIZE), devinfo.name);
- strncat(devinfo.name, "+tsak", UINPUT_MAX_NAME_SIZE-1);
- fprintf(stderr, "%s\n", devinfo.name);
- ioctl(fd, EVIOCGID, &devinfo.id);
-
- copy_features(fd, devout);
- write(devout,&devinfo,sizeof(devinfo));
- if (ioctl(devout,UI_DEV_CREATE)<0) {
- fprintf(stderr,"Unable to create input device with UI_DEV_CREATE\n");
+ }
+
+ if (can_proceed == true) {
+ for (current_keyboard=0;current_keyboard<keyboard_fd_num;current_keyboard++) {
+ if(ioctl(keyboard_fds[current_keyboard], EVIOCGRAB, 2) < 0) {
+ close(keyboard_fds[current_keyboard]);
+ fprintf(stderr, "Failed to grab exclusive input device lock");
if (established)
sleep(1);
else
- return 2;
+ return 1;
}
else {
- fprintf(stderr,"Device created.\n");
-
- if (established == false) {
- tearDownPipe();
- int i=fork();
- if (i<0) return 9; // fork failed
- if (i>0) {
- // close parent process
- close(mPipe_fd_out);
- return 0;
- }
- setupPipe();
+ ioctl(keyboard_fds[current_keyboard], EVIOCGNAME(UINPUT_MAX_NAME_SIZE), devinfo.name);
+ strncat(devinfo.name, "+tsak", UINPUT_MAX_NAME_SIZE-1);
+ fprintf(stderr, "%s\n", devinfo.name);
+ ioctl(keyboard_fds[current_keyboard], EVIOCGID, &devinfo.id);
+
+ copy_features(keyboard_fds[current_keyboard], devout[current_keyboard]);
+ write(devout[current_keyboard],&devinfo,sizeof(devinfo));
+ if (ioctl(devout[current_keyboard],UI_DEV_CREATE)<0) {
+ fprintf(stderr, "Unable to create input device with UI_DEV_CREATE\n");
+ if (established)
+ sleep(1);
+ else
+ return 2;
}
-
- established = true;
-
- if (testrun == true) {
- return 0;
- }
-
- while (1) {
- if ((rd = read (fd, ev, size * 2)) < size) {
- fprintf(stderr,"Read failed.\n");
- break;
- }
-
- value = ev[0].value;
-
- if (value != ' ' && ev[1].value == 0 && ev[1].type == 1){ // Read the key release event
- if (keycode[(ev[1].code)]) {
- if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = false;
- if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = false;
+ else {
+ fprintf(stderr, "Device created.\n");
+
+ if (established == false) {
+ int i=fork();
+ if (i<0) return 9; // fork failed
+ if (i>0) {
+ child_pids[current_keyboard] = i;
+ continue;
}
+ setupLockingPipe();
}
- if (value != ' ' && ev[1].value == 1 && ev[1].type == 1){ // Read the key press event
- if (keycode[(ev[1].code)]) {
- if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = true;
- if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = true;
- }
+
+ established = true;
+
+ if (testrun == true) {
+ return 0;
}
- hide_event = false;
- if (keycode[(ev[1].code)]) {
- if (alt_down && ctrl_down && (strcmp(keycode[(ev[1].code)], "<del>") == 0)) {
- hide_event = true;
+ while (1) {
+ if ((rd = read (keyboard_fds[current_keyboard], ev, size * 2)) < size) {
+ fprintf(stderr, "Read failed.\n");
+ break;
+ }
+
+ value = ev[0].value;
+
+ if (value != ' ' && ev[1].value == 0 && ev[1].type == 1){ // Read the key release event
+ if (keycode[(ev[1].code)]) {
+ if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = false;
+ if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = false;
+ }
+ }
+ if (value != ' ' && ev[1].value == 1 && ev[1].type == 1){ // Read the key press event
+ if (keycode[(ev[1].code)]) {
+ if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = true;
+ if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = true;
+ }
+ }
+
+ hide_event = false;
+ if (keycode[(ev[1].code)]) {
+ if (alt_down && ctrl_down && (strcmp(keycode[(ev[1].code)], "<del>") == 0)) {
+ hide_event = true;
+ }
+ }
+
+ if (hide_event == false) {
+ // Pass the event on...
+ event = ev[0];
+ write(devout[current_keyboard], &event, sizeof event);
+ event = ev[1];
+ write(devout[current_keyboard], &event, sizeof event);
+ }
+ if (hide_event == true) {
+ // Let anyone listening to our interface know that an SAK keypress was received
+ broadcast_sak();
}
}
+ }
+ }
+ }
+
+ // fork udev monitor process
+ int i=fork();
+ if (i<0) return 10; // fork failed
+ if (i>0) {
+ // Terminate parent
+ return 0;
+ }
+
+ // Prevent multiple process instances from starting
+ setupLockingPipe();
+
+ // Wait a little bit so that udev hotplug can stabilize before we start monitoring
+ sleep(1);
+
+ fprintf(stderr, "Hotplug monitoring process started\n");
+
+ // Monitor for hotplugged keyboards
+ int j;
+ int hotplug_fd;
+ bool is_new_keyboard;
+ struct udev *udev;
+ struct udev_device *dev;
+ struct udev_monitor *mon;
+
+ // Create the udev object
+ udev = udev_new();
+ if (!udev) {
+ fprintf(stderr, "Cannot connect to udev interface\n");
+ return 11;
+ }
+
+ // Set up a udev monitor to monitor input devices
+ mon = udev_monitor_new_from_netlink(udev, "udev");
+ udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
+ udev_monitor_enable_receiving(mon);
+
+ while (1) {
+ // Watch for input from the monitoring process
+ dev = udev_monitor_receive_device(mon);
+ if (dev) {
+ // If a keyboard was removed we need to restart...
+ if (strcmp(udev_device_get_action(dev), "remove") == 0) {
+ udev_device_unref(dev);
+ udev_unref(udev);
+ restart_tsak();
+ }
+
+ is_new_keyboard = false;
+ snprintf(filename,sizeof(filename), "%s", udev_device_get_devnode(dev));
+ udev_device_unref(dev);
+
+ // Print name of keyboard
+ hotplug_fd = open(filename, O_RDWR|O_SYNC);
+ ioctl(hotplug_fd, EVIOCGBIT(EV_KEY, sizeof(key_bitmask)), key_bitmask);
- if (hide_event == false) {
- // Pass the event on...
- event = ev[0];
- write(devout, &event, sizeof event);
- event = ev[1];
- write(devout, &event, sizeof event);
- }
- if (hide_event == true) {
- // Let anyone listening to our interface know that an SAK keypress was received
- // I highly doubt there are more than 255 VTs active at once...
- int i;
- for (i=0;i<255;i++) {
- write(mPipe_fd_out, "SAK\n\r", 6);
- }
+ /* We assume that anything that has an alphabetic key in the
+ QWERTYUIOP range in it is the main keyboard. */
+ for (j = KEY_Q; j <= KEY_P; j++) {
+ if (TestBit(j, key_bitmask)) {
+ is_new_keyboard = true;
}
}
+ ioctl (hotplug_fd, EVIOCGNAME (sizeof (name)), name);
+ close(hotplug_fd);
+
+ // Ensure that we do not detect our own tsak faked keyboards
+ if (str_ends_with(name, "+tsak") == 1) {
+ is_new_keyboard = false;
+ }
+
+ // If a keyboard was added we need to restart...
+ if (is_new_keyboard == true) {
+ fprintf(stderr, "Hotplugged new keyboard: (%s)\n", name);
+ udev_unref(udev);
+ restart_tsak();
+ }
+ }
+ else {
+ fprintf(stderr, "No Device from receive_device(). An error occured.\n");
}
}
+
+ udev_unref(udev);
+
+ fprintf(stderr, "Hotplug monitoring process terminated\n");
}
}
}
diff --git a/twin/kompmgr/kompmgr.c b/twin/kompmgr/kompmgr.c
index 5daf8c2..8216676 100644
--- a/kwin/kompmgr/kompmgr.c
+++ b/kwin/kompmgr/kompmgr.c
@@ -60,6 +60,7 @@ check baghira.sf.net for more infos
#include <signal.h>
#include <time.h>
#include <unistd.h>
+#include <libgen.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
@@ -397,7 +398,7 @@ void delete_pid_file()
int chars = readlink("/proc/self/exe", me, sizeof(me));
me[chars] = 0;
me[2047] = 0;
- execl(me, NULL);
+ execl(me, basename(me), (char*)NULL);
}
#endif
}

@ -2,7 +2,7 @@
%if "%{?version}" == ""
%define version 3.5.13
%endif
%define release 15
%define release 16
# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
%if "%{?_prefix}" != "/usr"
@ -99,6 +99,12 @@ Patch29: kdebase-3.5.13-fix_multihead_desktop_lock.patch
Patch30: kdebase-3.5.12-kdm_hide_menu_button.patch
## [kdebase/kxkb] Enables xtest support
Patch31: kdebase-3.5.13-enable_xtest_support.patch
## [kdebase/kdm/kfrontend] fix KDM high CPU usage when inactive [Bug #690]
Patch32: kdebase-3.5.13-fix_kdm_cpu_usage.patch
## [kdebase/tsak] Add keyboard hotplug (add/remove) support to tsak [Bug #587]
Patch33: kdebase-3.5.13-tsak_keyboard_hotplug.patch
## [kdebase/tsak] Replicate LED status from virtual keyboards to physical keyboards [Bug #561]
Patch34: kdebase-3.5.13-replicate_led_status_on_virtual_keyboard.patch
# Fedora 15 Theme: "Lovelock"
%if 0%{?fedora} == 15
@ -169,11 +175,11 @@ BuildRequires: libXcomposite-devel
BuildRequires: libXtst-devel
BuildRequires: libXdamage-devel
BuildRequires: xorg-x11-font-utils
# These dependancies are not met in RHEL
%if 0%{?fedora}
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: nas-devel
%if 0%{?rhel} >= 6 || 0%{?fedora} >= 15
BuildRequires: libudev-devel
%endif
Requires: tqtinterface
@ -306,6 +312,11 @@ Protocol handlers (KIOslaves) for personal information management, including:
%patch29 -p0
%patch30 -p1
%patch31 -p1
%patch32 -p1
%if 0%{?fedora} >= 15
%patch33 -p1
%patch34 -p1
%endif
# Applies an optional distro-specific graphical theme
%if "%{?tde_bg}" != ""
@ -354,7 +365,7 @@ cd build
-DWITH_XCOMPOSITE=ON \
-DWITH_XCURSOR=ON \
-DWITH_XFIXES=ON \
%if 0%{?fedora} || 0%{?rhel} > 5
%if 0%{?fedora} || 0%{?rhel} >= 6
-DWITH_XRANDR=ON \
%else
-DWITH_XRANDR=OFF \
@ -692,6 +703,11 @@ update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
%{_datadir}/cmake/*.cmake
%changelog
* Sat Jan 21 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-16
- Fix KDM high CPU usage when inactive [Bug #690]
- Add keyboard hotplug (add/remove) support to tsak [Bug #587]
- Replicate LED status from virtual keyboards to physical keyboards [Bug #561]
* Thu Jan 05 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-15
- Add a KDM option to hide 'Menu' button on login prompt
- Fix corrupted PNG tiles [Bug #298]

@ -0,0 +1,45 @@
From 1f37c9cdb9bb47f8453cf26af8006c7c8d4ca3b3 Mon Sep 17 00:00:00 2001
From: Thorsten Glaser <t.glaser@tarent.de>
Date: Tue, 27 Dec 2011 14:28:27 +0100
Subject: [PATCH] fix UTF-8 encoding for WebDAV directories
idea derived from KIO slave http.cpp from KDE 4; reimplemented
on top of Qt3/KDE3 APIs
Bug: http://bugs.kde.org/show_bug.cgi?id=127251
Signed-off-by: Thorsten Glaser <t.glaser@tarent.de>
---
kioslave/http/http.cc | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/kioslave/http/http.cc b/kioslave/http/http.cc
index a1495d7..16b785d 100644
--- a/kioslave/http/http.cc
+++ b/kioslave/http/http.cc
@@ -45,6 +45,7 @@
#include <tqregexp.h>
#include <tqdatetime.h>
#include <tqstringlist.h>
+#include <tqurl.h>
#include <kurl.h>
#include <kidna.h>
@@ -750,9 +751,14 @@ void HTTPProtocol::davStatList( const KURL& url, bool stat )
entry.clear();
TQString urlStr = href.text();
+#if 0
int encoding = remoteEncoding()->encodingMib();
if ((encoding == 106) && (!KStringHandler::isUtf8(KURL::decode_string(urlStr, 4).latin1())))
encoding = 4; // Use latin1 if the file is not actually utf-8
+#else
+ TQUrl::decode(urlStr);
+ int encoding = 106;
+#endif
KURL thisURL ( urlStr, encoding );
--
1.7.2.3

@ -0,0 +1,20 @@
commit 87201a3741bd9d4b4638be7b3d8c44a737115b0f
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: 1325899796 -0600
Fix make_driver_db_cups path
This closes Bug 383
diff --git a/kdeprint/cups/kmcupsmanager.cpp b/tdeprint/cups/kmcupsmanager.cpp
index 635cfd5..4a64248 100644
--- a/kdeprint/cups/kmcupsmanager.cpp
+++ b/kdeprint/cups/kmcupsmanager.cpp
@@ -95,7 +95,7 @@ KMCupsManager::~KMCupsManager()
TQString KMCupsManager::driverDbCreationProgram()
{
- return TQString::tqfromLatin1("/opt/trinity/bin/make_driver_db_cups");
+ return TQString(__KDE_BINDIR).append(TQString::fromLatin1("/make_driver_db_cups"));
}
TQString KMCupsManager::driverDirectory()

@ -2,7 +2,7 @@
%if "%{?version}" == ""
%define version 3.5.13
%endif
%define release 6
%define release 7
# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
%if "%{?_prefix}" != "/usr"
@ -48,6 +48,10 @@ Patch12: kdelibs-3.5.13-kate_syntax.patch.gz
Patch13: kdelibs-3.5.13-add_inotify_support.patch
## [kdelibs] Add fam/gamin support to tdelibs CMake (backport commit 2b035349c31fe64c31d2c050892b117a3a807179)
Patch14: kdelibs-3.5.13-enable_fam_gamin.patch
## [kdelibs/kioslave/http] Fix UTF8 Encoding for WebDAV directories
Patch15: kdelibs-3.5.13-fix_UTF8_encoding_for_WebDAV_directories.patch
## [kdelibs/kdeprint] Fix add printer [Bug #383]
Patch16: kdelibs-3.5.13-fix_add_printer.patch
BuildRequires: libtool
BuildRequires: tqtinterface-devel
@ -69,6 +73,7 @@ BuildRequires: OpenEXR-devel
BuildRequires: libtool-ltdl-devel
BuildRequires: glib2-devel
BuildRequires: gamin-devel
BuildRequires: xorg-x11-proto-devel
Requires: tqtinterface
Requires: trinity-arts
@ -124,6 +129,8 @@ format for easy browsing
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%build
@ -324,6 +331,10 @@ EOF
%changelog
* Sat Jan 21 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-7
- Fix UTF8 Encoding for WebDAV directories
- Fix hardcoded path in 'add printer' [Bug #383]
* Mon Jan 16 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-6
- Adds 'fam' and 'gamin' support

@ -0,0 +1,12 @@
diff -urN tdemultimedia/configure.in.in tdemultimedia.new/configure.in.in
--- tdemultimedia/configure.in.in 2010-08-11 22:36:30.000000000 -0500
+++ tdemultimedia.new/configure.in.in 2012-01-12 22:54:04.000000000 -0600
@@ -35,7 +35,7 @@
then
MMX_SUPPORT="no"
else
- as_ver=`echo $as_ver |sed -e "s/.*version //;s/ .*//"`
+ as_ver=`echo|as -v 2>&1 | grep ".*version.*" | awk '{print $NF}'`
as_major=`echo $as_ver |cut -d. -f1`
if test $as_major -gt 2
then

@ -54,6 +54,9 @@ Provides: kdemultimedia3 = %{version}-%{release}
Patch3: kdemultimedia-3.4.0-xdg.patch
Patch5: kdemultimedia-3.5.7-pthread.patch
# [kdemultimedia] Fix MMX detection [Bug #800]
Patch10: kdemultimedia-3.5.13-fix_mmx_detection.patch
Requires: %{name}-libs = %{version}-%{release}
BuildRequires: trinity-arts-devel
@ -132,6 +135,7 @@ Requires: %{name} = %{version}-%{release}
%setup -q -n kdemultimedia
%patch3 -p1 -b .xdg
%patch5 -p1 -b .pthread
%patch10 -p1
# Ugly hack to modify TQT include directory inside autoconf files.
# If TQT detection fails, it fallbacks to TQT4 instead of TQT3 !
@ -413,6 +417,7 @@ update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
%changelog
* Mon Jan 16 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-5
- Enables 'akode' support
- Fix MMX support [Bug #800]
* Fri Nov 25 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.13-4
- Fix HTML directory location

@ -185,7 +185,7 @@ Requires: %{name} = %{version}-%{release}
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch14 -p4
# TDE 3.5.13: missing 'dummy.cpp' in MSN protocol

@ -0,0 +1,80 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak@kde.org>
This patch makes override-redirect windows (popup menu, dropdown menu,
tooltip, combobox, etc.) also have more window properties like WM_CLASS,
so they can be used when compositing.
--- src/kernel/qwidget_x11.cpp.sav 2007-06-25 10:36:42.000000000 +0200
+++ src/kernel/qwidget_x11.cpp 2007-10-02 15:30:13.000000000 +0200
@@ -557,7 +557,10 @@ void QWidget::create( WId window, bool i
wsa.save_under = True;
XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder,
&wsa );
- x11SetWindowType();
+ XClassHint class_hint;
+ class_hint.res_name = (char *) qAppName(); // application name
+ class_hint.res_class = (char *) qAppClass(); // application class
+ XSetClassHint( dpy, id, &class_hint );
} else if ( topLevel && !desktop ) { // top-level widget
QWidget *p = parentWidget(); // real parent
if (p)
@@ -620,8 +623,6 @@ void QWidget::create( WId window, bool i
else
XDeleteProperty(dpy, id, qt_xa_motif_wm_hints);
- x11SetWindowType();
-
// set _NET_WM_WINDOW_STATE
if (curr_winstate > 0)
XChangeProperty(dpy, id, qt_net_wm_state, XA_ATOM, 32, PropModeReplace,
@@ -629,11 +630,6 @@ void QWidget::create( WId window, bool i
else
XDeleteProperty(dpy, id, qt_net_wm_state);
- // set _NET_WM_PID
- long curr_pid = getpid();
- XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace,
- (unsigned char *) &curr_pid, 1);
-
#ifndef QT_NO_XSYNC
// set _NET_WM_SYNC_COUNTER
createSyncCounter();
@@ -645,19 +641,31 @@ void QWidget::create( WId window, bool i
// when we create a toplevel widget, the frame strut should be dirty
fstrut_dirty = 1;
+ } else {
+ // non-toplevel widgets don't have a frame, so no need to
+ // update the strut
+ fstrut_dirty = 0;
+ }
+
+ if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows
+ x11SetWindowType();
+
+ // set _NET_WM_PID
+ long curr_pid = getpid();
+ XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &curr_pid, 1);
+
// declare the widget's object name as window role
XChangeProperty( dpy, id,
qt_window_role, XA_STRING, 8, PropModeReplace,
(unsigned char *)name(), qstrlen( name() ) );
// set client leader property
+ if ( !qt_x11_wm_client_leader )
+ qt_x11_create_wm_client_leader();
XChangeProperty( dpy, id, qt_wm_client_leader,
XA_WINDOW, 32, PropModeReplace,
(unsigned char *)&qt_x11_wm_client_leader, 1 );
- } else {
- // non-toplevel widgets don't have a frame, so no need to
- // update the strut
- fstrut_dirty = 0;
}
if ( initializeWindow ) {

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Qt3 Assistant
Comment=Add translations to Qt3 applications
Exec=assistant
Icon=assistant3
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

@ -0,0 +1,11 @@
[Desktop Entry]
Name=Qt3 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt3 applications
Exec=designer
Icon=designer3
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

@ -0,0 +1,10 @@
[Desktop Entry]
Name=Qt3 Linguist
Comment=Add translations to Qt3 applications
Exec=linguist
Icon=linguist3
MimeType=application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

@ -0,0 +1 @@
../qt3/qt-3.1.0-makefile.patch

@ -0,0 +1 @@
../qt3/qt-3.3.4-print-CJK.patch

@ -0,0 +1 @@
../qt3/qt-3.3.6-fontrendering-gu-228452.patch

@ -0,0 +1 @@
../qt3/qt-3.3.6-fontrendering-ml_IN-209974.patch

@ -0,0 +1 @@
../qt3/qt-3.3.6-fontrendering-te_IN-211259.patch

@ -0,0 +1 @@
../qt3/qt-3.3.8-fontrendering-as_IN-209972.patch

@ -0,0 +1 @@
../qt3/qt-x11-free-3.3.4-fullscreen.patch

@ -0,0 +1 @@
../qt3/qt-x11-free-3.3.6-qfontdatabase_x11.patch

@ -0,0 +1 @@
../qt3/qt-x11-free-3.3.6-strip.patch

@ -0,0 +1 @@
../qt3/qt-x11-free-3.3.7-arm.patch

@ -0,0 +1 @@
../qt3/qt-x11-free-3.3.8b-typo.patch

@ -0,0 +1,134 @@
diff -Nur qt-x11-free-3.3.5.orig/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp qt-x11-free-3.3.5/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
--- qt-x11-free-3.3.5.orig/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp 2005-10-13 16:09:36.000000000 +0200
+++ qt-x11-free-3.3.5/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp 2005-10-13 16:09:31.000000000 +0200
@@ -306,8 +306,8 @@
currentIMKey = key;
- qDebug( "QMultiInputContext::changeInputMethod(): index=%d, slave=%s",
- imIndex, (const char *)_slave->identifierName() );
+ /* qDebug( "QMultiInputContext::changeInputMethod(): index=%d, slave=%s",
+ imIndex, (const char *)_slave->identifierName() ); */
}
}
diff -Nur qt-x11-free-3.3.5.orig/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp qt-x11-free-3.3.5/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
--- qt-x11-free-3.3.5.orig/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp 2005-10-13 16:09:36.000000000 +0200
+++ qt-x11-free-3.3.5/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp 2005-10-13 16:09:31.000000000 +0200
@@ -140,7 +140,7 @@
// only one character. See description of
// QInputContext::filterEvent() about key compression.
val = text[0].unicode();
- qDebug( "str = %s", (const char*)keyevent->text().local8Bit() );
+ // qDebug( "str = %s", (const char*)keyevent->text().local8Bit() );
}
// Store value
@@ -164,14 +164,14 @@
void QSimpleInputContext::setFocus()
{
- qDebug( "QSimpleInputContext: %p->setFocus(), focusWidget()=%p",
- this, focusWidget() );
+ /* qDebug( "QSimpleInputContext: %p->setFocus(), focusWidget()=%p",
+ this, focusWidget() ); */
}
void QSimpleInputContext::unsetFocus()
{
- qDebug( "QSimpleInputContext: %p->unsetFocus(), focusWidget()=%p",
- this, focusWidget() );
+ /* qDebug( "QSimpleInputContext: %p->unsetFocus(), focusWidget()=%p",
+ this, focusWidget() ); */
reset();
}
@@ -188,8 +188,8 @@
case QEvent::MouseButtonRelease:
case QEvent::MouseButtonDblClick:
case QEvent::MouseMove:
- qDebug( "QSimpleInputContext::mouseHandler: "
- "x=%d, type=%d, button=%d, state=%d", x, type, button, state );
+ /* qDebug( "QSimpleInputContext::mouseHandler: "
+ "x=%d, type=%d, button=%d, state=%d", x, type, button, state ); */
break;
default:
break;
@@ -240,7 +240,7 @@
// no entries were found
if ( p == composeTable->data + composeTable->size ) {
- qDebug( "no match" );
+ // qDebug( "no match" );
clearComposeBuffer();
return FALSE;
}
@@ -250,18 +250,18 @@
// check if partial match
if ( composeBuffer[i] == 0 && p->keys[i] ) {
- qDebug("partial match");
+ // qDebug("partial match");
return TRUE;
}
if ( composeBuffer[i] != p->keys[i] ) {
- qDebug("different entry");
+ // qDebug("different entry");
clearComposeBuffer();
return i!=0;
}
}
- qDebug("match exactly");
+ // qDebug("match exactly");
// match exactly
commitChar( p->value );
diff -Nur qt-x11-free-3.3.5.orig/src/kernel/qinputcontext.cpp qt-x11-free-3.3.5/src/kernel/qinputcontext.cpp
--- qt-x11-free-3.3.5.orig/src/kernel/qinputcontext.cpp 2005-10-13 16:09:37.000000000 +0200
+++ qt-x11-free-3.3.5/src/kernel/qinputcontext.cpp 2005-10-13 16:09:31.000000000 +0200
@@ -526,17 +526,17 @@
return;
if ( type == QEvent::IMStart ) {
- qDebug( "sending IMStart with %d chars to %p",
- text.length(), receiver );
+ /* qDebug( "sending IMStart with %d chars to %p",
+ text.length(), receiver ); */
event = new QIMEvent( type, text, cursorPosition );
} else if ( type == QEvent::IMEnd ) {
- qDebug( "sending IMEnd with %d chars to %p, text=%s",
- text.length(), receiver, (const char*)text.local8Bit() );
+ /* qDebug( "sending IMEnd with %d chars to %p, text=%s",
+ text.length(), receiver, (const char*)text.local8Bit() ); */
event = new QIMEvent( type, text, cursorPosition );
} else if ( type == QEvent::IMCompose ) {
- qDebug( "sending IMCompose to %p with %d chars, cpos=%d, sellen=%d, text=%s",
+ /* qDebug( "sending IMCompose to %p with %d chars, cpos=%d, sellen=%d, text=%s",
receiver, text.length(), cursorPosition, selLength,
- (const char*)text.local8Bit() );
+ (const char*)text.local8Bit() ); */
event = new QIMComposeEvent( type, text, cursorPosition, selLength );
}
--- qt-x11-free-3.3.5/plugins/src/inputmethods/xim/qximinputcontext_x11.cpp.quiet 2005-10-13 19:00:56.000000000 +0200
+++ qt-x11-free-3.3.5/plugins/src/inputmethods/xim/qximinputcontext_x11.cpp 2005-10-25 15:36:43.000000000 +0200
@@ -356,7 +356,7 @@
#if !defined(QT_NO_XIM)
fontsetRefCount++;
if (! qt_xim) {
- qWarning("QInputContext: no input method context available");
+ // qWarning("QInputContext: no input method context available");
return;
}
@@ -742,7 +742,7 @@
void QXIMInputContext::close( const QString &errMsg )
{
- qDebug( errMsg );
+ // qDebug( errMsg );
emit deletionRequested();
}

@ -0,0 +1,34 @@
# Qt initialization script (csh)
# In multilib environments there is a preferred architecture, 64 bit over 32 bit in x86_64,
# When a conflict is found between two packages corresponding with different arches,
# the installed file is the one from the preferred arch. This is very common for executables
# in /usr/bin, for example. If the file /usr/bin/foo is found in an x86_64 package and in an
# i386 package, the executable from x86_64 will be installe
if ( $?QTDIR ) then
exit
endif
switch (`uname -m`)
case x86_64:
case ia64:
case s390x:
case ppc64:
set QTPREFIXES = "/usr/lib64/qt-3.3 /usr/lib/qt-3.3"
breaksw
case *:
set QTPREFIXES = "/usr/lib/qt-3.3 /usr/lib64/qt-3.3"
endsw
foreach QTPREFIX ( $QTPREFIXES )
test -d "$QTPREFIX" && setenv QTDIR $QTPREFIX && break
end
unset QTPREFIX QTPREFIXES
if ( "${path}" !~ *$QTDIR/bin* ) then
set path = ( $QTDIR/bin $path )
endif
setenv QTINC $QTDIR/include
setenv QTLIB $QTDIR/lib

@ -0,0 +1,32 @@
# Qt initialization script (sh)
# In multilib environments there is a preferred architecture, 64 bit over 32 bit in x86_64,
# When a conflict is found between two packages corresponding with different arches,
# the installed file is the one from the preferred arch. This is very common for executables
# in /usr/bin, for example. If the file /usr/bin/foo is found in an x86_64 package and in an
# i386 package, the executable from x86_64 will be installe
if [ -z "${QTDIR}" ]; then
case `uname -m` in
x86_64 | ia64 | s390x | ppc64 )
QT_PREFIXES="/usr/lib64/qt-3.3 /usr/lib/qt-3.3" ;;
* )
QT_PREFIXES="/usr/lib/qt-3.3 /usr/lib64/qt-3.3" ;;
esac
for QTDIR in ${QT_PREFIXES} ; do
test -d "${QTDIR}" && break
done
unset QT_PREFIXES
if ! echo ${PATH} | /bin/grep -q $QTDIR/bin ; then
PATH=$QTDIR/bin:${PATH}
fi
QTINC="$QTDIR/include"
QTLIB="$QTDIR/lib"
export QTDIR QTINC QTLIB PATH
fi

@ -0,0 +1 @@
../qt3/qt3-3.3.8.d-updates_zh-tw_translations.patch

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Qt3 Config
Comment=Configure Qt3 behavior, styles, fonts
Exec=qtconfig
Icon=qtconfig3
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Settings;

@ -0,0 +1,10 @@
--- tqt3/tools/qembed/qembed.pro.qembed 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/tools/qembed/qembed.pro 2012-02-13 21:26:57.417973392 +0100
@@ -3,5 +3,7 @@
TARGET = qembed
REQUIRES=full-config nocrosscompiler
+DESTDIR = ../../bin
target.path = $$bins.path
INSTALLS += target
+

@ -0,0 +1,23 @@
--- tqt3/src/kernel/qscriptengine_x11.cpp.fontrendering-#214570 2012-02-13 21:41:17.792005290 +0100
+++ tqt3/src/kernel/qscriptengine_x11.cpp 2012-02-13 21:42:38.785202528 +0100
@@ -1243,7 +1243,7 @@
int script = item->script;
Q_ASSERT(script >= TQFont::Devanagari && script <= TQFont::Sinhala);
const unsigned short script_base = 0x0900 + 0x80*(script-TQFont::Devanagari);
- const unsigned short ra = script_base + 0x30;
+ unsigned short ra = script_base + 0x30; //it was const unsigned short ra before modification
const unsigned short halant = script_base + 0x4d;
const unsigned short nukta = script_base + 0x3c;
@@ -1291,6 +1291,11 @@
}
#endif
+ unsigned short *chkAssamese=reordered.data();
+ if((script == TQFont::Bengali) && (*chkAssamese==0x09F0)) //if it is assamese ra
+ {
+ ra = script_base + 0x70;
+ }
if (len != 1) {
unsigned short *uc = reordered.data();
bool beginsWithRa = FALSE;

@ -0,0 +1,15 @@
diff -pruN qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp
--- qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp 2006-12-04 18:47:11.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-12-05 12:05:10.000000000 +0530
@@ -1412,7 +1412,10 @@ static bool indic_shape_syllable(QOpenTy
toPos += 2;
if (script == QFont::Devanagari || script == QFont::Gujarati || script == QFont::Bengali) {
if (matra_position == Post || matra_position == Split) {
- toPos = matra+1;
+ if (matra_position == Post )
+ toPos = matra;
+ else
+ toPos = matra+1;
matra -= 2;
}
} else if (script == QFont::Kannada) {

@ -0,0 +1,60 @@
--- tqt3/src/kernel/qscriptengine_x11.cpp.fontrendering-ml_IN-bz#209097 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/kernel/qscriptengine_x11.cpp 2012-02-13 21:36:07.227917886 +0100
@@ -871,7 +871,7 @@
None, None, None, None,
None, None, None, Post,
- Post, None, Below, None,
+ None, None, None, None,
None, Post, None, None,
None, None, None, None,
None, None, Post, Post,
@@ -1274,6 +1274,16 @@
int base = 0;
int reph = -1;
+ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+ bool is_special_conjuction_malayalam = false;
+
+ if ((len == 3) &&
+ ((reordered[2] == 0x0d30) || (reordered[2] == 0x0d31)) &&
+ (reordered[1] == 0x0d4d) &&
+ ((reordered[0] >= 0x0d15) && (reordered[0] <= 0x0d39))) {
+ is_special_conjuction_malayalam = true;
+ }
+
#ifdef INDIC_DEBUG
IDEBUG("original:");
for (i = 0; i < len; i++) {
@@ -1550,6 +1560,15 @@
reph = i;
}
+ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+ if (is_special_conjuction_malayalam) {
+ unsigned short temp;
+
+ temp = reordered[0];
+ reordered[0] = reordered[2];
+ reordered[2] = temp;
+ }
+
if (item->font->stringToCMap((const TQChar *)reordered.data(), len, item->glyphs, item->advances,
&item->num_glyphs, item->flags & TQTextEngine::RightToLeft) != TQFontEngine::NoError)
return FALSE;
@@ -1661,6 +1680,15 @@
// halant always applies
+ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+ if (is_special_conjuction_malayalam) {
+ unsigned int temp;
+
+ temp = properties[0];
+ properties[0] = ~PreSubstProperty;
+ properties[2] = temp;
+ }
+
#ifdef INDIC_DEBUG
{
IDEBUG("OT properties:");

@ -0,0 +1,11 @@
--- tqt3/src/kernel/qfont_x11.cpp.fontrendering-ml_IN-217657 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/kernel/qfont_x11.cpp 2012-02-13 21:45:39.903520249 +0100
@@ -712,7 +712,7 @@
if ( script >= TQFont::Arabic && script <= TQFont::Khmer ) {
// complex script shaping. Have to do some hard work
int from = TQMAX( 0, pos - 8 );
- int to = TQMIN( (int)str.length(), pos + 8 );
+ int to = str.length();
TQConstString cstr( str.unicode()+from, to-from);
TQTextEngine layout( cstr.string(), d );
layout.itemize( TQTextEngine::WidthOnly );

@ -0,0 +1,15 @@
--- tqt3/src/tools/qgpluginmanager.cpp.ndebug 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/tools/qgpluginmanager.cpp 2012-02-13 19:25:05.653477747 +0100
@@ -506,10 +506,12 @@
(*f).latin1(),
(const char*) TQFile::encodeName( old->library() ) );
} else {
+/*
qWarning("%s: Feature %s already defined in %s!",
(const char*) TQFile::encodeName( old->library() ),
(*f).latin1(),
(const char*) TQFile::encodeName( plugin->library() ) );
+*/
}
}
}

@ -0,0 +1,18 @@
--- tqt3/src/sql/drivers/odbc/qsql_odbc.cpp.odbc 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/sql/drivers/odbc/qsql_odbc.cpp 2012-02-13 21:47:25.232367854 +0100
@@ -61,13 +61,13 @@
#endif
// newer platform SDKs use SQLLEN instead of SQLINTEGER
-#ifdef SQLLEN
+#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
# define TQSQLLEN SQLLEN
#else
# define TQSQLLEN SQLINTEGER
#endif
-#ifdef SQLULEN
+#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
# define TQSQLULEN SQLULEN
#else
# define TQSQLULEN SQLUINTEGER

@ -0,0 +1,92 @@
--- qt-x11-free-3.3.6/src/widgets/qtextedit.cpp.preedit 2006-06-28 17:18:08.000000000 +0200
+++ qt-x11-free-3.3.6/src/widgets/qtextedit.cpp 2006-06-28 17:20:09.000000000 +0200
@@ -1906,9 +1906,6 @@
void TQTextEdit::removeSelectedText( int selNum )
{
- if(selNum != 0)
- resetInputContext();
-
TQTextCursor c1 = doc->selectionStartCursor( selNum );
c1.restoreState();
TQTextCursor c2 = doc->selectionEndCursor( selNum );
@@ -3171,7 +3168,6 @@
return;
}
#endif
- resetInputContext();
TQTextParagraph *p = doc->paragAt( para );
if ( !p )
return;
@@ -3198,7 +3194,6 @@
return;
}
#endif
- resetInputContext();
for ( int i = 0; i < (int)doc->numSelections(); ++i )
doc->removeSelection( i );
@@ -3240,7 +3235,6 @@
if ( d->optimMode )
return;
#endif
- resetInputContext();
TQTextParagraph *p = doc->paragAt( para );
if ( !p )
return;
@@ -3285,7 +3279,6 @@
if ( isReadOnly() || !doc->commands()->isUndoAvailable() || !undoEnabled )
return;
- resetInputContext();
for ( int i = 0; i < (int)doc->numSelections(); ++i )
doc->removeSelection( i );
@@ -3336,7 +3329,6 @@
if ( isReadOnly() || !doc->commands()->isRedoAvailable() || !undoEnabled )
return;
- resetInputContext();
for ( int i = 0; i < (int)doc->numSelections(); ++i )
doc->removeSelection( i );
@@ -3450,7 +3442,6 @@
{
if ( isReadOnly() )
return;
- resetInputContext();
normalCopy();
removeSelectedText();
updateMicroFocusHint();
@@ -3938,7 +3929,6 @@
return;
}
#endif
- resetInputContext();
if ( !isModified() && isReadOnly() &&
this->context() == context && this->text() == text )
return;
@@ -4112,7 +4102,6 @@
if ( !p )
return;
- resetInputContext();
if ( index > p->length() - 1 )
index = p->length() - 1;
@@ -4169,7 +4158,6 @@
return;
}
#endif
- resetInputContext();
if ( doc->hasSelection( selNum ) ) {
doc->removeSelection( selNum );
repaintChanged();
@@ -5072,7 +5060,6 @@
{
if ( dc == doc )
return;
- resetInputContext();
doc = dc;
delete cursor;
cursor = new QTextCursor( doc );

@ -0,0 +1,13 @@
--- tqt3/src/kernel/qpixmap_x11.cpp.quiet 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/kernel/qpixmap_x11.cpp 2012-02-13 21:24:08.190653338 +0100
@@ -394,8 +394,8 @@
{
#if defined(QT_CHECK_STATE)
if ( qApp->type() == TQApplication::Tty ) {
- qWarning( "TQPixmap: Cannot create a TQPixmap when no GUI "
- "is being used" );
+// qWarning( "TQPixmap: Cannot create a TQPixmap when no GUI "
+// "is being used" );
}
#endif

@ -0,0 +1,12 @@
--- qt-x11-free-3.3.2/tools/designer/uic/main.cpp.sopwith 2004-06-16 17:14:17.000000000 -0400
+++ qt-x11-free-3.3.2/tools/designer/uic/main.cpp 2004-06-16 17:21:43.000000000 -0400
@@ -149,6 +149,9 @@
} else {
trmacro = &opt[1];
}
+ } else if ( opt == "nostdlib") {
+ TQStringList x;
+ TQApplication::setLibraryPaths(x);
} else if ( opt == "L" ) {
if ( !(n < argc-1) ) {
error = "Missing plugin path.";

@ -0,0 +1,14 @@
--- tqt3/src/tools/qsettings.cpp.umask 2012-02-13 19:10:01.000000000 +0100
+++ tqt3/src/tools/qsettings.cpp 2012-02-13 19:28:00.802555882 +0100
@@ -997,7 +997,10 @@
#endif
TQFile file( filename + ".tmp" );
- if (! file.open(IO_WriteOnly)) {
+ mode_t old_umask = umask(0022);
+ bool f = file.open(IO_WriteOnly);
+ umask(old_umask);
+ if (! f) {
#ifdef QT_CHECK_STATE
qWarning("TQSettings::sync: failed to open '%s' for writing",

@ -0,0 +1,678 @@
# Always install under standard prefix
%define _prefix /usr
# This allows the legacy RHEL/Fedora patches to apply in TDE version.
%define _default_patch_fuzz 2
# The following QT4 packages should NOT be installed to
# allow QT3 compilation (please uninstall them prior to compile)
# qt
# qt-sqlite
# qt-mysql
# qt-x11
# qt-devel
# ...maybe others !!!!
%define _default_patch_fuzz 2
Summary: The shared library for the Qt 3 GUI toolkit
Version: 3.4.0
Release: 1%{?dist}
Name: tqt3
Obsoletes: qt < 1:%{version}-%{release}
Provides: qt = 1:%{version}-%{release}
Obsoletes: qt3 < 1:%{version}-%{release}
Provides: qt3 = 1:%{version}-%{release}
License: QPL or GPLv2 or GPLv3
Group: System Environment/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Url: http://www.troll.no
Source0: %{name}-%{version}.tar.gz
Source2: qt.sh
Source3: qt.csh
Source4: designer3.desktop
Source5: assistant3.desktop
Source6: linguist3.desktop
Source7: qtconfig3.desktop
Patch1: qt-3.3.4-print-CJK.patch
Patch2: tqt3-3.4.0-nodebug.patch
Patch3: qt-3.1.0-makefile.patch
Patch4: tqt3-3.4.0-umask.patch
Patch5: qt-x11-free-3.3.6-strip.patch
Patch7: tqt3-3.4.0-quiet.patch
Patch8: tqt3-3.4.0-embed.patch
Patch12: tqt3-3.4.0-uic-nostdlib.patch
Patch13: qt-x11-free-3.3.6-qfontdatabase_x11.patch
Patch27: tqt3-3.4.0-fontrendering-ml_IN-209097.patch
Patch29: qt-3.3.8-fontrendering-as_IN-209972.patch
Patch31: qt-3.3.6-fontrendering-te_IN-211259.patch
Patch32: tqt3-3.4.0-fontrendering-214371.patch
Patch33: tqt3-3.4.0-fontrendering-#214570.patch
Patch34: qt-3.3.6-fontrendering-ml_IN-209974.patch
Patch35: tqt3-3.4.0-fontrendering-ml_IN-217657.patch
Patch37: qt-3.3.6-fontrendering-gu-228452.patch
Patch38: tqt3-3.4.0-odbc.patch
Patch39: qt-x11-free-3.3.7-arm.patch
Patch40: qt-x11-free-3.3.8b-typo.patch
# immodule patches
Patch53: tqt3-3.4.0-qt-x11-immodule-unified-qt3.3.5-20060318-resetinputcontext.patch
# qt-copy patches
Patch110: 0084-compositing-properties.patch
# upstream patches
Patch200: qt-x11-free-3.3.4-fullscreen.patch
# TDE 3.5.13 patches
Patch300: qt3-3.3.8.d-updates_zh-tw_translations.patch
%define qt_dirname qt-3.3
%define qtdir %{_libdir}/%{qt_dirname}
%define qt_docdir %{_docdir}/qt-devel-%{version}
%define smp 1
%define immodule 1
%define debug 0
# MySQL plugins
%define plugin_mysql -plugin-sql-mysql
%define mysql_include_dir %{_includedir}/mysql
%define mysql_lib_dir %{_libdir}/mysql
# Postgres plugins
%define plugin_psql -plugin-sql-psql
# ODBC plugins
%define plugin_odbc -plugin-sql-odbc
# sqlite plugins
%define plugin_sqlite -plugin-sql-sqlite
%define plugins_style -qt-style-cde -qt-style-motifplus -qt-style-platinum -qt-style-sgi -qt-style-windows -qt-style-compact -qt-imgfmt-png -qt-imgfmt-jpeg -qt-imgfmt-mng
%define plugins %{plugin_mysql} %{plugin_psql} %{plugin_odbc} %{plugin_sqlite} %{plugins_style}
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: coreutils
Requires: fontconfig >= 2.0
Requires: /etc/ld.so.conf.d
BuildRequires: desktop-file-utils
BuildRequires: libmng-devel
BuildRequires: glibc-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: zlib-devel
BuildRequires: giflib-devel
BuildRequires: perl
BuildRequires: sed
BuildRequires: findutils
BuildRequires: cups-devel
BuildRequires: tar
BuildRequires: freetype-devel
BuildRequires: fontconfig-devel
BuildRequires: libXrender-devel
BuildRequires: libXrandr-devel
BuildRequires: libXcursor-devel
BuildRequires: libXinerama-devel
BuildRequires: libXft-devel
BuildRequires: libXext-devel
BuildRequires: libX11-devel
BuildRequires: libSM-devel
BuildRequires: libICE-devel
BuildRequires: libXt-devel
BuildRequires: libXmu-devel
BuildRequires: libXi-devel
BuildRequires: xorg-x11-proto-devel
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libGLU-devel
BuildRequires: desktop-file-utils
BuildRequires: mysql-devel
BuildRequires: postgresql-devel
BuildRequires: unixODBC-devel
BuildRequires: sqlite-devel
%package config
Summary: Graphical configuration tool for programs using Qt 3
Group: User Interface/Desktops
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-config < 1:%{version}-%{release}
Provides: qt-config = 1:%{version}-%{release}
Obsoletes: qt3-config < 1:%{version}-%{release}
Provides: qt3-config = 1:%{version}-%{release}
%package devel
Summary: Development files for the Qt 3 GUI toolkit
Group: Development/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: freetype-devel
Requires: fontconfig-devel
Requires: libXrender-devel
Requires: libXrandr-devel
Requires: libXcursor-devel
Requires: libXinerama-devel
Requires: libXft-devel
Requires: libXext-devel
Requires: libX11-devel
Requires: libSM-devel
Requires: libICE-devel
Requires: libXt-devel
Requires: xorg-x11-proto-devel
Requires: libpng-devel
Requires: libjpeg-devel
Requires: libmng-devel
Requires: mesa-libGL-devel
Requires: mesa-libGLU-devel
Obsoletes: qt-devel < 1:%{version}-%{release}
Provides: qt-devel = 1:%{version}-%{release}
Obsoletes: qt3-devel < 1:%{version}-%{release}
Provides: qt3-devel = 1:%{version}-%{release}
%package devel-docs
Summary: Documentation for the Qt 3 GUI toolkit
Group: Development/Libraries
Requires: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-devel-docs < 1:%{version}-%{release}
Provides: qt-devel-docs = 1:%{version}-%{release}
Obsoletes: qt3-devel-docs < 1:%{version}-%{release}
Provides: qt3-devel-docs = 1:%{version}-%{release}
%package ODBC
Summary: ODBC drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-ODBC < 1:%{version}-%{release}
Provides: qt-ODBC = 1:%{version}-%{release}
Obsoletes: qt3-ODBC < 1:%{version}-%{release}
Provides: qt3-ODBC = 1:%{version}-%{release}
%package MySQL
Summary: MySQL drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-MySQL < 1:%{version}-%{release}
Provides: qt-MySQL = 1:%{version}-%{release}
Obsoletes: qt3-MySQL < 1:%{version}-%{release}
Provides: qt3-MySQL = 1:%{version}-%{release}
%package PostgreSQL
Summary: PostgreSQL drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-PostgreSQL < 1:%{version}-%{release}
Provides: qt-PostgreSQL = 1:%{version}-%{release}
Obsoletes: qt3-PostgreSQL < 1:%{version}-%{release}
Provides: qt3-PostgreSQL = 1:%{version}-%{release}
%package sqlite
Summary: sqlite drivers for Qt 3's SQL classes
Group: System Environment/Libraries
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-sqlite < 1:%{version}-%{release}
Provides: qt-sqlite = 1:%{version}-%{release}
Obsoletes: qt3-sqlite < 1:%{version}-%{release}
Provides: qt3-sqlite = 1:%{version}-%{release}
%package designer
Summary: In3erface designer (IDE) for the Qt 3 toolkit
Group: Development/Tools
Requires: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: qt-designer < 1:%{version}-%{release}
Provides: qt-designer = 1:%{version}-%{release}
Obsoletes: qt3-designer < 1:%{version}-%{release}
Provides: qt3-designer = 1:%{version}-%{release}
%description
Qt is a GUI software toolkit which simplifies the task of writing and
maintaining GUI (Graphical User Interface) applications
for the X Window System.
Qt is written in C++ and is fully object-oriented.
This package contains the shared library needed to run Qt 3
applications, as well as the README files for Qt 3.
%description config
Qt is a GUI software toolkit which simplifies the task of writing and
maintaining GUI (Graphical User Interface) applications
for the X Window System.
Qt is written in C++ and is fully object-oriented.
This package contains a graphical configuration tool for programs using Qt 3.
%description devel
The %{name}-devel package contains the files necessary to develop
applications using the Qt GUI toolkit: the header files, the Qt meta
object compiler.
Install %{name}-devel if you want to develop GUI applications using the Qt 3
toolkit.
%description devel-docs
The %{name}-devel-docs package contains the man pages, the HTML documentation and
example programs for Qt 3.
%description ODBC
ODBC driver for Qt 3's SQL classes (QSQL)
%description MySQL
MySQL driver for Qt 3's SQL classes (QSQL)
%description PostgreSQL
PostgreSQL driver for Qt 3's SQL classes (QSQL)
%description sqlite
sqlite driver for Qt 3's SQL classes (QSQL)
%description designer
The %{name}-designer package contains an User Interface designer tool
for the Qt 3 toolkit.
%prep
%setup -q -n %{name}
%patch1 -p1 -b .cjk
%patch2 -p1 -b .ndebug
%patch3 -p1 -b .makefile
%patch4 -p1 -b .umask
%patch5 -p1
%patch7 -p1 -b .quiet
%patch8 -p1 -b .qembed
%patch12 -p1 -b .nostdlib
%patch13 -p1 -b .fonts
%patch27 -p1 -b .fontrendering-ml_IN-bz#209097
%patch29 -p1 -b .fontrendering-as_IN-bz#209972
%patch31 -p1 -b .fontrendering-te_IN-bz#211259
%patch32 -p1 -b .fontrendering-bz#214371
%patch33 -p1 -b .fontrendering-#214570
%patch34 -p1 -b .fontrendering-#209974
%patch35 -p1 -b .fontrendering-ml_IN-217657
%patch37 -p1 -b .fontrendering-gu-228452
%patch38 -p1 -b .odbc
# it's not 100% clear to me if this is safe for all archs -- Rex
%ifarch armv5tel
%patch39 -p1 -b .arm
%endif
%patch40 -p1
# immodule patches
%if %{immodule}
%patch53 -p1 -b .resetinputcontext
%endif
# qt-copy patches
%patch110 -p0 -b .0084-compositing-properties
# upstream patches
%patch200 -p1 -b .fullscreen
# TDE 3.5.13 patches
%patch300 -p1
# convert to UTF-8
iconv -f iso-8859-1 -t utf-8 < doc/man/man3/qdial.3qt > doc/man/man3/qdial.3qt_
mv doc/man/man3/qdial.3qt_ doc/man/man3/qdial.3qt
%build
export QTDIR=`/bin/pwd`
export LD_LIBRARY_PATH="$QTDIR/lib:$LD_LIBRARY_PATH"
export PATH="$QTDIR/bin:$PATH"
export QTDEST=%{qtdir}
%if %{smp}
export SMP_MFLAGS="%{?_smp_mflags}"
%endif
%if %{immodule}
sh ./make-symlinks.sh
%endif
# set correct X11 prefix
perl -pi -e "s,QMAKE_LIBDIR_X11.*,QMAKE_LIBDIR_X11\t=," mkspecs/*/qmake.conf
perl -pi -e "s,QMAKE_INCDIR_X11.*,QMAKE_INCDIR_X11\t=," mkspecs/*/qmake.conf
perl -pi -e "s,QMAKE_INCDIR_OPENGL.*,QMAKE_INCDIR_OPENGL\t=," mkspecs/*/qmake.conf
perl -pi -e "s,QMAKE_LIBDIR_OPENGL.*,QMAKE_LIBDIR_OPENGL\t=," mkspecs/*/qmake.conf
# don't use rpath
perl -pi -e "s|-Wl,-rpath,| |" mkspecs/*/qmake.conf
perl -pi -e "s|-O2|$INCLUDES %{optflags} -fno-strict-aliasing|g" mkspecs/*/qmake.conf
# set correct lib path
if [ "%{_lib}" == "lib64" ] ; then
perl -pi -e "s,/usr/lib /lib,/usr/%{_lib} /%{_lib},g" config.tests/{unix,x11}/*.test
perl -pi -e "s,/lib /usr/lib,/%{_lib} /usr/%{_lib},g" config.tests/{unix,x11}/*.test
fi
# build shared, threaded (default) libraries
echo yes | ./configure \
-prefix $QTDEST \
-docdir %{qt_docdir} \
%if %{_lib} == lib64
-platform linux-g++-64 \
%else
-platform linux-g++ \
%endif
%if %{debug}
-debug \
%else
-release \
%endif
-shared \
-largefile \
-qt-gif \
-system-zlib \
-system-libpng \
-system-libmng \
-system-libjpeg \
-no-exceptions \
-enable-styles \
-enable-tools \
-enable-kernel \
-enable-widgets \
-enable-dialogs \
-enable-iconview \
-enable-workspace \
-enable-network \
-enable-canvas \
-enable-table \
-enable-xml \
-enable-opengl \
-enable-sql \
-qt-style-motif \
%{plugins} \
-stl \
-thread \
-cups \
-sm \
-xinerama \
-xrender \
-xkb \
-ipv6 \
-dlopen-opengl \
-xft \
-tablet
make $SMP_MFLAGS src-qmake
# build sqlite plugin
pushd plugins/src/sqldrivers/sqlite
qmake -o Makefile sqlite.pro
popd
# build psql plugin
pushd plugins/src/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=%{_includedir}/pgsql %{_includedir}/pgsql/server %{_includedir}/pgsql/internal" "LIBS+=-lpq" psql.pro
popd
# build mysql plugin
pushd plugins/src/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+=%{mysql_include_dir}" "LIBS+=-L%{mysql_lib_dir} -lmysqlclient" mysql.pro
popd
# build odbc plugin
pushd plugins/src/sqldrivers/odbc
qmake -o Makefile "LIBS+=-lodbc" odbc.pro
popd
make $SMP_MFLAGS src-moc
make $SMP_MFLAGS sub-src
make $SMP_MFLAGS sub-tools UIC="$QTDIR/bin/uic -nostdlib -L $QTDIR/plugins"
%install
rm -rf %{buildroot}
export QTDIR=`/bin/pwd`
export LD_LIBRARY_PATH="$QTDIR/lib:$LD_LIBRARY_PATH"
export PATH="$QTDIR/bin:$PATH"
export QTDEST=%{qtdir}
make install INSTALL_ROOT=%{buildroot}
for i in findtr qt20fix qtrename140 lrelease lupdate ; do
install bin/$i %{buildroot}%{qtdir}/bin/
done
mkdir -p %{buildroot}%{_libdir}/pkgconfig/
mv %{buildroot}%{qtdir}/lib/pkgconfig/*.pc %{buildroot}%{_libdir}/pkgconfig/
# install man pages
mkdir -p %{buildroot}%{_mandir}
cp -fR doc/man/* %{buildroot}%{_mandir}/
# clean up
make -C tutorial clean
make -C examples clean
# Make sure the examples can be built outside the source tree.
# Our binaries fulfill all requirements, so...
perl -pi -e "s,^DEPENDPATH.*,,g;s,^REQUIRES.*,,g" `find examples -name "*.pro"`
# don't include Makefiles of qt examples/tutorials
find examples -name "Makefile" | xargs rm -f
find examples -name "*.obj" | xargs rm -rf
find examples -name "*.moc" | xargs rm -rf
find tutorial -name "Makefile" | xargs rm -f
for a in */*/Makefile ; do
sed 's|^SYSCONF_MOC.*|SYSCONF_MOC = %{qtdir}/bin/moc|' < $a > ${a}.2
mv -v ${a}.2 $a
done
mkdir -p %{buildroot}/etc/profile.d
install -m 644 %{SOURCE2} %{SOURCE3} %{buildroot}/etc/profile.d/
# Add desktop files
mkdir -p %{buildroot}%{_datadir}/applications
desktop-file-install \
--dir %{buildroot}%{_datadir}/applications \
--vendor="qt" \
%{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7}
# Patch qmake to use qt-mt unconditionally
perl -pi -e "s,-lqt ,-lqt-mt ,g;s,-lqt$,-lqt-mt,g" %{buildroot}%{qtdir}/mkspecs/*/qmake.conf
# remove broken links
rm -f %{buildroot}%{qtdir}/mkspecs/default/linux-g++*
rm -f %{buildroot}%{qtdir}/lib/*.la
mkdir -p %{buildroot}/etc/ld.so.conf.d
echo "%{qtdir}/lib" > %{buildroot}/etc/ld.so.conf.d/qt-%{_arch}.conf
# install icons
mkdir %{buildroot}%{_datadir}/pixmaps
install -m 644 tools/assistant/images/qt.png %{buildroot}%{_datadir}/pixmaps/qtconfig3.png
install -m 644 tools/assistant/images/designer.png %{buildroot}%{_datadir}/pixmaps/designer3.png
install -m 644 tools/assistant/images/assistant.png %{buildroot}%{_datadir}/pixmaps/assistant3.png
install -m 644 tools/assistant/images/linguist.png %{buildroot}%{_datadir}/pixmaps/linguist3.png
# own style directory
mkdir -p %{buildroot}%{qtdir}/plugins/styles
%clean
rm -rf %{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc FAQ LICENSE* README* changes*
%dir %{qtdir}
%dir %{qtdir}/bin
%dir %{qtdir}/lib
%dir %{qtdir}/plugins
%dir %{qtdir}/plugins/sqldrivers
%dir %{qtdir}/plugins/styles
%{qtdir}/translations
%{qtdir}/plugins/designer/
%if %{immodule}
%{qtdir}/plugins/inputmethods
%endif
%config /etc/profile.d/*
/etc/ld.so.conf.d/*
%{qtdir}/lib/libtqui.so.*
%{qtdir}/lib/libtqt*.so.*
# TQT 3.4.0: WTF is this file ??
%exclude %{_mandir}/README
%files config
%defattr(-,root,root,-)
%{qtdir}/bin/qtconfig
%{_datadir}/applications/*qtconfig*.desktop
%{_datadir}/pixmaps/qtconfig3.png
%files devel
%defattr(-,root,root,-)
%{qt_docdir}/
%{qtdir}/bin/moc
%{qtdir}/bin/uic
%{qtdir}/bin/findtr
%{qtdir}/bin/qt20fix
%{qtdir}/bin/qtrename140
%{qtdir}/bin/assistant
%{qtdir}/bin/qm2ts
%{qtdir}/bin/qmake
%{qtdir}/bin/qembed
%{qtdir}/bin/linguist
%{qtdir}/bin/lupdate
%{qtdir}/bin/lrelease
%{qtdir}/include
%{qtdir}/mkspecs
%{qtdir}/lib/libtqt*.so
%{qtdir}/lib/libtqui.so
%{qtdir}/lib/libeditor.a
%{qtdir}/lib/libdesigner*.a
%{qtdir}/lib/libqassistantclient.a
%{qtdir}/lib/*.prl
%{qtdir}/phrasebooks
%{_libdir}/pkgconfig/*
%{_datadir}/applications/*linguist*.desktop
%{_datadir}/applications/*assistant*.desktop
%{_datadir}/pixmaps/linguist3.png
%{_datadir}/pixmaps/assistant3.png
# QT 3.3.8.D (TDE): 4 binaries have appeared
%{qtdir}/bin/createcw
%{qtdir}/bin/makeqpf
%{qtdir}/bin/mergetr
%{qtdir}/bin/msg2qm
# QT 3.3.8.D (TDE): removes lots of unnecessary include files
# (where do they come from ??? They were not in 3.3.8b !)
%exclude %{qtdir}/include/btree.h
%exclude %{qtdir}/include/crc32.h
%exclude %{qtdir}/include/debian_qsql_odbc.h
%exclude %{qtdir}/include/deflate.h
%exclude %{qtdir}/include/ftglue.h
%exclude %{qtdir}/include/ftxgdef.h
%exclude %{qtdir}/include/ftxgpos.h
%exclude %{qtdir}/include/ftxgsub.h
%exclude %{qtdir}/include/ftxopen.h
%exclude %{qtdir}/include/ftxopenf.h
%exclude %{qtdir}/include/hash.h
%exclude %{qtdir}/include/inffast.h
%exclude %{qtdir}/include/inffixed.h
%exclude %{qtdir}/include/inflate.h
%exclude %{qtdir}/include/inftrees.h
%exclude %{qtdir}/include/jchuff.h
%exclude %{qtdir}/include/jconfig.h
%exclude %{qtdir}/include/jdct.h
%exclude %{qtdir}/include/jdhuff.h
%exclude %{qtdir}/include/jerror.h
%exclude %{qtdir}/include/jinclude.h
%exclude %{qtdir}/include/jmemsys.h
%exclude %{qtdir}/include/jmorecfg.h
%exclude %{qtdir}/include/jversion.h
%exclude %{qtdir}/include/moc_yacc.h
%exclude %{qtdir}/include/opcodes.h
%exclude %{qtdir}/include/os.h
%exclude %{qtdir}/include/otlbuffer.h
%exclude %{qtdir}/include/pager.h
%exclude %{qtdir}/include/parse.h
%exclude %{qtdir}/include/pngasmrd.h
%exclude %{qtdir}/include/pngconf.h
%exclude %{qtdir}/include/sqlite.h
%exclude %{qtdir}/include/sqliteInt.h
%exclude %{qtdir}/include/trees.h
%exclude %{qtdir}/include/vdbe.h
%exclude %{qtdir}/include/vdbeInt.h
%exclude %{qtdir}/mkspecs/linux-g++-sparc
%files devel-docs
%defattr(-,root,root,-)
%doc examples
%doc tutorial
%{_mandir}/*/*
%files sqlite
%defattr(-,root,root,-)
%{qtdir}/plugins/sqldrivers/libqsqlite.so
%files ODBC
%defattr(-,root,root,-)
%{qtdir}/plugins/sqldrivers/libqsqlodbc.so
%files PostgreSQL
%defattr(-,root,root,-)
%{qtdir}/plugins/sqldrivers/libqsqlpsql.so
%files MySQL
%defattr(-,root,root,-)
%{qtdir}/plugins/sqldrivers/libqsqlmysql.so
%files designer
%defattr(-,root,root,-)
%{qtdir}/templates
%{qtdir}/bin/designer
%{_datadir}/applications/*designer*.desktop
%{_datadir}/pixmaps/designer3.png
%changelog
* Mon Feb 13 2012 Francois Andriot <francois.andriot@free.fr> - 3.4.0-1
- Initial build for TDE R14
- Renames 'qt3' to 'tqt3'
- Spec file based on 'qt3-3.3.8b-30' from RHEL 6
* Sun Dec 18 2011 Francois Andriot <francois.andriot@free.fr> - 3.3.8.d-3
- Updates zh_TW translations, thanks to Wei-Lun Chao .
* Thu Nov 03 2011 Francois Andriot <francois.andriot@free.fr> - 3.3.8.d-2
- Add missing BuildRequires
* Fri Sep 02 2011 Francois Andriot <francois.andriot@free.fr> - 3.3.8.d-1
- Initial build for RHEL 6, RHEL 5, and Fedora 15
- Switch to Trinity Version
- Spec file based on RHEL 6 'qt3-3.3.8b-29'

@ -4,7 +4,7 @@ include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include debian/cdbs/kde.mk
DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include/tde5
DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include/kde5
DEB_CONFIGURE_MANDIR := /opt/trinity/share/man
DEB_CONFIGURE_PREFIX := /opt/trinity
DEB_CONFIGURE_INFODIR := /opt/trinity/share/info

@ -1,12 +1,12 @@
--- starttde
+++ starttde
@@ -184,17 +184,17 @@
@@ -228,17 +228,17 @@
. $tdehome/share/config/startupconfig
fi
-# Make sure a default wallpaper is set.
-if [ ! -e $tdehome/share/config/kdesktoprc ]; then
- # With Trinity KDE this file should exist, but test first.
- # With Trinity this file should exist, but test first.
- if [ -r /usr/share/wallpapers/isadora.png.desktop ]; then
-cat >$tdehome/share/config/kdesktoprc <<EOF
-[Desktop0]
@ -17,7 +17,7 @@
-fi
+## Make sure a default wallpaper is set.
+#if [ ! -e $tdehome/share/config/kdesktoprc ]; then
+# # With Trinity KDE this file should exist, but test first.
+# # With Trinity this file should exist, but test first.
+# if [ -r /usr/share/wallpapers/isadora.png.desktop ]; then
+#cat >$tdehome/share/config/kdesktoprc <<EOF
+#[Desktop0]

@ -197,12 +197,12 @@ debian/tmp/opt/trinity/include/kdatewidget.h
debian/tmp/opt/trinity/include/kdcopactionproxy.h
debian/tmp/opt/trinity/include/kdcoppropertyproxy.h
debian/tmp/opt/trinity/include/kdcopservicestarter.h
debian/tmp/opt/trinity/include/tdebugclasses.h
debian/tmp/opt/trinity/include/tdebug.h
debian/tmp/opt/trinity/include/tdedmodule.h
debian/tmp/opt/trinity/include/tde_file.h
debian/tmp/opt/trinity/include/kdebugclasses.h
debian/tmp/opt/trinity/include/kdebug.h
debian/tmp/opt/trinity/include/kdedmodule.h
debian/tmp/opt/trinity/include/kde_file.h
debian/tmp/opt/trinity/include/tdelibs_export.h
debian/tmp/opt/trinity/include/tdemacros.h
debian/tmp/opt/trinity/include/kdemacros.h
debian/tmp/opt/trinity/include/kde.pot
debian/tmp/opt/trinity/include/tdeprint/driver.h
debian/tmp/opt/trinity/include/tdeprint/kiconselectaction.h
@ -221,7 +221,7 @@ debian/tmp/opt/trinity/include/tdeprint/kprintdialogpage.h
debian/tmp/opt/trinity/include/tdeprint/lpr/lprhandler.h
debian/tmp/opt/trinity/include/tdeprint/lpr/lprsettings.h
debian/tmp/opt/trinity/include/tdeprint/lpr/printcapentry.h
debian/tmp/opt/trinity/include/tdesktopfile.h
debian/tmp/opt/trinity/include/kdesktopfile.h
debian/tmp/opt/trinity/include/tdesu/client.h
debian/tmp/opt/trinity/include/tdesu/defaults.h
debian/tmp/opt/trinity/include/tdesu/kcookie.h
@ -231,7 +231,7 @@ debian/tmp/opt/trinity/include/tdesu/pty.h
debian/tmp/opt/trinity/include/tdesu/ssh.h
debian/tmp/opt/trinity/include/tdesu/stub.h
debian/tmp/opt/trinity/include/tdesu/su.h
debian/tmp/opt/trinity/include/tde_terminal_interface.h
debian/tmp/opt/trinity/include/kde_terminal_interface.h
debian/tmp/opt/trinity/include/tdeversion.h
debian/tmp/opt/trinity/include/kdialogbase.h
debian/tmp/opt/trinity/include/kdialog.h
@ -717,7 +717,7 @@ debian/tmp/opt/trinity/include/networkstatusindicator.h
debian/tmp/opt/trinity/include/connectionmanager.h
debian/tmp/opt/trinity/include/serviceiface.h
debian/tmp/opt/trinity/include/provideriface.h
#debian/tmp/opt/trinity/include/tdemm
#debian/tmp/opt/trinity/include/kdemm
debian/tmp/opt/trinity/lib/libnetworkstatus.la
debian/tmp/opt/trinity/lib/libnetworkstatus.so

Loading…
Cancel
Save