summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--redhat/kdebase/kdebase-3.5.12-halmountoptions.patch2
-rw-r--r--redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch372
-rw-r--r--redhat/kdebase/kdebase-3.5.13-fix_device_icon_placement.patch30
-rw-r--r--redhat/kdebase/kdebase-3.5.13-fix_fqdn_in_title.patch46
-rw-r--r--redhat/kdebase/kdebase-3.5.13-fix_kdesktop_lock_security_issue.patch157
-rw-r--r--redhat/kdebase/kdebase-3.5.13-fix_potential_ABI_compat_problem.patch24
-rw-r--r--redhat/kdebase/kdebase-3.5.13-fix_translations_in_desktop_files.patch105
-rw-r--r--redhat/kdebase/kdebase-3.5.13-kate_focus_fix.patch133
-rw-r--r--redhat/kdebase/kdebase-3.5.13-kwin-keramic-pics-emb.patch62
-rw-r--r--redhat/kdebase/kdebase-3.5.13-option_to_disable_scroll_desktop.patch101
-rw-r--r--redhat/kdebase/tdebase-r14.spec646
-rw-r--r--redhat/kdebase/trinity-kdebase-3.5.13.spec40
12 files changed, 1716 insertions, 2 deletions
diff --git a/redhat/kdebase/kdebase-3.5.12-halmountoptions.patch b/redhat/kdebase/kdebase-3.5.12-halmountoptions.patch
index 31a6717b3..4a604f9a3 100644
--- a/redhat/kdebase/kdebase-3.5.12-halmountoptions.patch
+++ b/redhat/kdebase/kdebase-3.5.12-halmountoptions.patch
@@ -72,7 +72,7 @@ diff -r -u kdebase-3.5.5a.dfsg.1.orig/kioslave/media/mediamanager/halbackend.h k
const char* message
);
-+ QStringList getHALmountoptions(QString udi);
++ TQStringList getHALmountoptions(QString udi);
/* HAL and DBus structures */
private:
/**
diff --git a/redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch b/redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch
new file mode 100644
index 000000000..1c022587d
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch
@@ -0,0 +1,372 @@
+commit 057932620ba8355a6506b9d437518e253ba14ed9
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1327619240 -0600
+
+ Clean up lock screen internals
+ This cleanup is part of an effort to resolve Bug 810, but a new Qt3 version is required to fully resolve it
+
+diff --git a/kdesktop/lock/autologout.cc b/kdesktop/lock/autologout.cc
+index 22b449c..bef39dd 100644
+--- a/kdesktop/lock/autologout.cc
++++ b/kdesktop/lock/autologout.cc
+@@ -82,6 +82,8 @@ AutoLogout::AutoLogout(LockProcess *parent) : TQDialog(parent, "password dialog"
+ mCountdownTimerId = startTimer(1000/25);
+
+ connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity()));
++
++ setFixedSize( sizeHint() );
+ }
+
+ AutoLogout::~AutoLogout()
+diff --git a/kdesktop/lock/infodlg.cc b/kdesktop/lock/infodlg.cc
+index f5f35b9..3fbc276 100644
+--- a/kdesktop/lock/infodlg.cc
++++ b/kdesktop/lock/infodlg.cc
+@@ -99,6 +99,7 @@ InfoDlg::InfoDlg(LockProcess *parent)
+ frameLayout->addLayout( layStatus, 1, 1 );
+
+ installEventFilter(this);
++ setFixedSize( sizeHint() );
+ }
+
+ InfoDlg::~InfoDlg()
+diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc
+index 0863a22..f3eeee0 100644
+--- a/kdesktop/lock/lockdlg.cc
++++ b/kdesktop/lock/lockdlg.cc
+@@ -215,6 +215,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin)
+ mNewSessButton->hide();
+
+ installEventFilter(this);
++ setFixedSize( sizeHint() );
+
+ mFailedTimerId = 0;
+ mTimeoutTimerId = startTimer(PASSDLG_HIDE_TIMEOUT);
+@@ -598,6 +599,7 @@ void PasswordDlg::show()
+ {
+ TQDialog::show();
+ TQApplication::flushX();
++ setFixedSize( sizeHint() );
+ }
+
+ void PasswordDlg::slotStartNewSession()
+@@ -818,6 +820,8 @@ void PasswordDlg::slotSwitchUser()
+ connect( btn, TQT_SIGNAL(clicked()), &dialog, TQT_SLOT(reject()) );
+ vbox2->addWidget( btn );
+
++ dialog.setFixedSize( dialog.sizeHint() );
++
+ int ret = static_cast< LockProcess* >(parent())->execDialog( &dialog );
+ if (ret != TQDialog::Rejected) {
+ TQDialog::reject();
+diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
+index 5acc96e..9648bbc 100644
+--- a/kdesktop/lock/lockprocess.cc
++++ b/kdesktop/lock/lockprocess.cc
+@@ -4,7 +4,7 @@
+ //
+ // Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
+ // Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
+-// Copyright (c) 2010-2011 Timothy Pearson <kb9vqf@pearsoncomputing.net>
++// Copyright (c) 2010-2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ //
+
+ //kdesktop keeps running and checks user inactivity
+@@ -111,6 +111,10 @@ Status DPMSInfo ( Display *, CARD16 *, BOOL * );
+ #define LOCK_GRACE_DEFAULT 5000
+ #define AUTOLOGOUT_DEFAULT 600
+
++// FIXME
++// This should be defined if Qt 3.4.0 or higher is in use
++// #define KEEP_MOUSE_UNGRABBED 1
++
+ // These lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special multimedia keys
+ #define XF86XK_AudioMute 0x1008FF12
+ #define XF86XK_AudioRaiseVolume 0x1008FF13
+@@ -183,6 +187,10 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
+ mBackingStartupDelayTimer(0),
+ m_startupStatusDialog(NULL)
+ {
++#ifdef KEEP_MOUSE_UNGRABBED
++ setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize);
++#endif
++
+ setupSignals();
+ setupPipe();
+
+@@ -267,7 +275,11 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
+ #endif
+
+ #if (QT_VERSION-0 >= 0x030200) // XRANDR support
+- connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized()));
++ connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized()));
++#endif
++
++#ifdef KEEP_MOUSE_UNGRABBED
++ setEnabled(false);
+ #endif
+
+ greetPlugin.library = 0;
+@@ -874,7 +886,6 @@ void LockProcess::createSaverWindow()
+ // this is a security risk and has been deactivated--welcome to the 21st century folks!
+ // setBackgroundMode(TQWidget::NoBackground);
+
+- setCursor( tqblankCursor );
+ setGeometry(0, 0, mRootWidth, mRootHeight);
+
+ kdDebug(1204) << "Saver window Id: " << winId() << endl;
+@@ -884,7 +895,6 @@ void LockProcess::desktopResized()
+ {
+ mBusy = true;
+ suspend();
+- setCursor( tqblankCursor );
+
+ // Get root window size
+ XWindowAttributes rootAttr;
+@@ -1087,6 +1097,7 @@ bool LockProcess::grabInput()
+ }
+ }
+
++#ifndef KEEP_MOUSE_UNGRABBED
+ if (!grabMouse())
+ {
+ usleep(100000);
+@@ -1096,6 +1107,7 @@ bool LockProcess::grabInput()
+ return false;
+ }
+ }
++#endif
+
+ lockXF86();
+
+@@ -1150,7 +1162,6 @@ bool LockProcess::startSaver()
+ createSaverWindow();
+ move(0, 0);
+ show();
+- setCursor( tqblankCursor );
+
+ raise();
+ XSync(qt_xdisplay(), False);
+@@ -1313,6 +1324,8 @@ void LockProcess::repaintRootWindowIfNeeded()
+
+ bool LockProcess::startHack()
+ {
++ setCursor( tqblankCursor );
++
+ if ((mEnsureVRootWindowSecurityTimer) && (!mEnsureVRootWindowSecurityTimer->isActive())) mEnsureVRootWindowSecurityTimer->start(250, FALSE);
+
+ if (currentDialog || (!mDialogs.isEmpty()))
+@@ -1429,6 +1442,7 @@ void LockProcess::stopHack()
+ mHackProc.kill(SIGKILL);
+ }
+ }
++ setCursor( tqarrowCursor );
+ }
+
+ //---------------------------------------------------------------------------
+@@ -1730,7 +1744,6 @@ void LockProcess::doFunctionKeyBroadcast() {
+ mDialogControlLock = false;
+ }
+ }
+- setCursor( tqblankCursor );
+
+ DCOPRef ref( "*", "MainApplication-Interface");
+ ref.send("sendFakeKey", DCOPArg(mkeyCode , "unsigned int"));
+diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
+index c0b8e24..0cbef60 100644
+--- a/kdesktop/lock/main.cc
++++ b/kdesktop/lock/main.cc
+@@ -45,8 +45,9 @@ bool trinity_desktop_lock_forced = FALSE;
+
+ bool MyApp::x11EventFilter( XEvent *ev )
+ {
+- if (ev->type == XKeyPress || ev->type == ButtonPress)
++ if (ev->type == XKeyPress || ev->type == ButtonPress) {
+ emit activity();
++ }
+ else if (ev->type == MotionNotify) {
+ time_t tick = time( 0 );
+ if (tick != lastTick) {
+diff --git a/kdesktop/lock/querydlg.cc b/kdesktop/lock/querydlg.cc
+index e672d54..5f50cbe 100644
+--- a/kdesktop/lock/querydlg.cc
++++ b/kdesktop/lock/querydlg.cc
+@@ -118,6 +118,7 @@ QueryDlg::QueryDlg(LockProcess *parent)
+ connect(ok, TQT_SIGNAL(clicked()), TQT_SLOT(slotOK()));
+
+ installEventFilter(this);
++ setFixedSize( sizeHint() );
+ }
+
+ QueryDlg::~QueryDlg()
+diff --git a/kdesktop/lock/sakdlg.cc b/kdesktop/lock/sakdlg.cc
+index 17f54a1..d96e0af 100644
+--- a/kdesktop/lock/sakdlg.cc
++++ b/kdesktop/lock/sakdlg.cc
+@@ -102,6 +102,7 @@ SAKDlg::SAKDlg(LockProcess *parent)
+ mStatusLabel->setText("<b>" + i18n("Press Ctrl+Alt+Del to begin.") + "</b><p>" + i18n("This process helps keep your password secure.") + "<br>" + i18n("It prevents unauthorized users from emulating the login screen."));
+
+ installEventFilter(this);
++ setFixedSize( sizeHint() );
+
+ mSAKProcess = new KProcess;
+ *mSAKProcess << "kdmtsak";
+diff --git a/kdesktop/lock/securedlg.cc b/kdesktop/lock/securedlg.cc
+index 532b904..37524f7 100644
+--- a/kdesktop/lock/securedlg.cc
++++ b/kdesktop/lock/securedlg.cc
+@@ -144,6 +144,7 @@ SecureDlg::SecureDlg(LockProcess *parent)
+ mSwitchButton->setFixedWidth(btnSize);
+
+ installEventFilter(this);
++ setFixedSize( sizeHint() );
+ }
+
+ SecureDlg::~SecureDlg()
+commit 678bea5ba74b3b39981e482e188c61fdd37786f0
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1328606373 -0600
+
+ Allow minimal managed window interaction inside the lock process
+ This closes Bug 810
+
+diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
+index 9648bbc..2e9c9d3 100644
+--- a/kdesktop/lock/lockprocess.cc
++++ b/kdesktop/lock/lockprocess.cc
+@@ -111,8 +111,8 @@ Status DPMSInfo ( Display *, CARD16 *, BOOL * );
+ #define LOCK_GRACE_DEFAULT 5000
+ #define AUTOLOGOUT_DEFAULT 600
+
+-// FIXME
+-// This should be defined if Qt 3.4.0 or higher is in use
++// Setting this define is INSECURE
++// Use it for debugging purposes ONLY
+ // #define KEEP_MOUSE_UNGRABBED 1
+
+ // These lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special multimedia keys
+@@ -185,7 +185,12 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
+ mHackStartupEnabled(true),
+ m_rootPixmap(NULL),
+ mBackingStartupDelayTimer(0),
+- m_startupStatusDialog(NULL)
++ m_startupStatusDialog(NULL),
++ m_mouseDown(0),
++ m_mousePrevX(0),
++ m_mousePrevY(0),
++ m_dialogPrevX(0),
++ m_dialogPrevY(0)
+ {
+ #ifdef KEEP_MOUSE_UNGRABBED
+ setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize);
+@@ -208,6 +213,8 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
+ mEnsureVRootWindowSecurityTimer = new TQTimer( this );
+ connect( mEnsureVRootWindowSecurityTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(repaintRootWindowIfNeeded()) );
+
++ connect(tqApp, TQT_SIGNAL(mouseInteraction(XEvent *)), TQT_SLOT(slotMouseActivity(XEvent *)));
++
+ mHackDelayStartupTimeout = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::timeout()*1000:10*1000;
+ mHackStartupEnabled = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::screenSaverEnabled():true;
+
+@@ -2200,4 +2207,64 @@ void LockProcess::sendVkbdFocusInOut( WId window, Time t )
+ }
+ }
+
++void LockProcess::slotMouseActivity(XEvent *event)
++{
++ bool inFrame = 0;
++ bool inDialog = 0;
++ XButtonEvent *be = (XButtonEvent *) event;
++ XMotionEvent *me = (XMotionEvent *) event;
++ if (event->type == ButtonPress) {
++ // Get geometry including window frame/titlebar
++ TQRect fgeom = mDialogs.first()->frameGeometry();
++ TQRect wgeom = mDialogs.first()->geometry();
++
++ if (((be->x_root > fgeom.x()) && (be->y_root > fgeom.y())) && ((be->x_root < (fgeom.x()+fgeom.width())) && (be->y_root < (fgeom.y()+fgeom.height())))) {
++ inFrame = 1;
++ }
++ if (((be->x_root > wgeom.x()) && (be->y_root > wgeom.y())) && ((be->x_root < (wgeom.x()+wgeom.width())) && (be->y_root < (wgeom.y()+wgeom.height())))) {
++ inDialog = 1;
++ }
++
++ // Clicked inside dialog; set focus
++ if (inFrame == TRUE) {
++ WId window = mDialogs.first()->winId();
++ XSetInputFocus(qt_xdisplay(), window, RevertToParent, CurrentTime);
++ fakeFocusIn(window);
++ // Why this needs to be repeated I have no idea...
++ XSetInputFocus(qt_xdisplay(), window, RevertToParent, CurrentTime);
++ fakeFocusIn(window);
++ }
++
++ // Clicked inside window handle (or border); drag window
++ if ((inFrame == TRUE) && (inDialog == FALSE)) {
++ TQPoint oldPoint = mDialogs.first()->pos();
++ m_mouseDown = 1;
++ m_dialogPrevX = oldPoint.x();
++ m_dialogPrevY = oldPoint.y();
++ m_mousePrevX = be->x_root;
++ m_mousePrevY = be->y_root;
++ XChangeActivePointerGrab( qt_xdisplay(), GRABEVENTS, TQCursor(tqsizeAllCursor).handle(), CurrentTime);
++ }
++ }
++
++ // Drag the window...
++ if (event->type == MotionNotify) {
++ if (m_mouseDown == TRUE) {
++ int deltaX = me->x_root - m_mousePrevX;
++ int deltaY = me->y_root - m_mousePrevY;
++ m_dialogPrevX = m_dialogPrevX + deltaX;
++ m_dialogPrevY = m_dialogPrevY + deltaY;
++ mDialogs.first()->move(m_dialogPrevX, m_dialogPrevY);
++
++ m_mousePrevX = me->x_root;
++ m_mousePrevY = me->y_root;
++ }
++ }
++
++ if (event->type == ButtonRelease) {
++ m_mouseDown = 0;
++ XChangeActivePointerGrab( qt_xdisplay(), GRABEVENTS, TQCursor(tqarrowCursor).handle(), CurrentTime);
++ }
++}
++
+ #include "lockprocess.moc"
+diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h
+index 3a7e3db..18320a8 100644
+--- a/kdesktop/lock/lockprocess.h
++++ b/kdesktop/lock/lockprocess.h
+@@ -94,6 +94,7 @@ private slots:
+ bool closeCurrentWindow();
+ void repaintRootWindowIfNeeded();
+ void startSecureDialog();
++ void slotMouseActivity(XEvent *event);
+
+ private:
+ void configure();
+@@ -197,6 +198,12 @@ private:
+ KSMModalDialog* m_startupStatusDialog;
+
+ TQDateTime mlockDateTime;
++
++ bool m_mouseDown;
++ int m_mousePrevX;
++ int m_mousePrevY;
++ int m_dialogPrevX;
++ int m_dialogPrevY;
+ };
+
+ #endif
+diff --git a/kdesktop/lock/main.h b/kdesktop/lock/main.h
+index c8e0e05..23797e4 100644
+--- a/kdesktop/lock/main.h
++++ b/kdesktop/lock/main.h
+@@ -32,6 +32,7 @@ protected:
+ bool x11EventFilter( XEvent * );
+ signals:
+ void activity();
++ void mouseInteraction(XEvent *event);
+ private:
+ time_t lastTick;
+ };
diff --git a/redhat/kdebase/kdebase-3.5.13-fix_device_icon_placement.patch b/redhat/kdebase/kdebase-3.5.13-fix_device_icon_placement.patch
new file mode 100644
index 000000000..00bda21c2
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-fix_device_icon_placement.patch
@@ -0,0 +1,30 @@
+commit 5df6c5fca20e917aaa82665131b931a0aa7c8628
+Author: Darrell Anderson <humanreadable@yahoo.com>
+Date: 1332447011 -0500
+
+ Restore code snippet removed with GIT hash
+ 27856879bf962f178d88e79144e37a47e731b122,
+ Sept. 3, 2010, "Massive import of OpenSUSE patches."
+ Restoring this snippet restores the device icon
+ placement and resolves bug report 392.
+
+diff --git a/kdesktop/kdiconview.cc b/kdesktop/kdiconview.cc
+index e2f1c80..3404e4a 100644
+--- a/kdesktop/kdiconview.cc
++++ b/kdesktop/kdiconview.cc
+@@ -1141,6 +1141,15 @@ void KDIconView::slotNewItems( const KFileItemList & entries )
+ kdDebug(1214)<<"Using saved position"<<endl;
+ }
+ }
++ else
++ {
++ // Not found, we'll need to save the new pos
++ kdDebug(1214)<<"slotNewItems(): New item without position information, try to find a sane location"<<endl;
++
++ moveToFreePosition(fileIVI);
++
++ m_bNeedSave = true;
++ }
+ }
+ }
+
diff --git a/redhat/kdebase/kdebase-3.5.13-fix_fqdn_in_title.patch b/redhat/kdebase/kdebase-3.5.13-fix_fqdn_in_title.patch
new file mode 100644
index 000000000..74122ec46
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-fix_fqdn_in_title.patch
@@ -0,0 +1,46 @@
+commit d409abdbef8dd8b72bb2f311fcaa7456bdc2404b
+Author: Luboš Luňák <l.lunak@suse.cz>
+Date: Fri Mar 4 16:22:23 2011 +0100
+
+ do not show hostname in titlebar if it's FQDN of localhost
+
+diff --git a/kwin/utils.cpp b/kwin/utils.cpp
+--- a/kwin/utils.cpp
++++ b/kwin/utils.cpp
+@@ -18,6 +18,8 @@
+ #include "utils.h"
+
+ #include <unistd.h>
++#include <string.h>
++#include <netdb.h>
+
+ #ifndef KCMRULES
+
+@@ -323,6 +325,27 @@ bool isLocalMachine( const TQCString& host )
+ if( host == hostnamebuf )
+ return true;
+ }
++ else
++ { // e.g. LibreOffice likes to give FQDN, even if gethostname() doesn't include domain
++ struct addrinfo hints, *res, *addr;
++ bool is_local = false;
++
++ memset (&hints, 0, sizeof (hints));
++ hints.ai_family = PF_UNSPEC;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags |= AI_CANONNAME;
++
++ if( getaddrinfo( host, NULL, &hints, &res ) != 0)
++ return false;
++ for(addr = res; !is_local && addr; addr = addr->ai_next)
++ {
++ if( res->ai_canonname &&
++ host == TQCString( res->ai_canonname ))
++ is_local = true;
++ }
++ freeaddrinfo(res);
++ return is_local;
++ }
+ }
+ return false;
+ }
diff --git a/redhat/kdebase/kdebase-3.5.13-fix_kdesktop_lock_security_issue.patch b/redhat/kdebase/kdebase-3.5.13-fix_kdesktop_lock_security_issue.patch
new file mode 100644
index 000000000..1660d03f2
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-fix_kdesktop_lock_security_issue.patch
@@ -0,0 +1,157 @@
+commit f05f9dc7532ea41c49b3e9385165d942dfab5d0e
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1327036924 -0600
+
+ If someone manages to close down kdesktop_lock through an undiscovered security vulnerability such as http://security-tracker.debian.org/tracker/CVE-2012-0064, immediately terminate the compromised TDE session
+
+diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
+index 6bd18f7..2588bbf 100644
+--- a/kdesktop/lock/lockprocess.cc
++++ b/kdesktop/lock/lockprocess.cc
+@@ -326,10 +326,8 @@ static int signal_pipe[2];
+ static void sigterm_handler(int)
+ {
+ if (!trinity_desktop_lock_in_sec_dlg) {
+- char tmp = 'T';
+- if (::write( signal_pipe[1], &tmp, 1) == -1) {
+- // Error handler to shut up gcc warnings
+- }
++ // Exit uncleanly
++ exit(1);
+ }
+ }
+
+@@ -522,7 +520,7 @@ void LockProcess::setupSignals()
+ sigaddset(&(act.sa_mask), SIGQUIT);
+ act.sa_flags = 0;
+ sigaction(SIGQUIT, &act, 0L);
+- // exit cleanly on SIGTERM
++ // exit uncleanly on SIGTERM
+ act.sa_handler= sigterm_handler;
+ sigemptyset(&(act.sa_mask));
+ sigaddset(&(act.sa_mask), SIGTERM);
+diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
+index b957218..c5306e9 100644
+--- a/kdesktop/lockeng.cc
++++ b/kdesktop/lockeng.cc
+@@ -36,10 +36,11 @@ bool trinity_lockeng_sak_available = TRUE;
+ // a newly started process.
+ //
+ SaverEngine::SaverEngine()
+- : KScreensaverIface(),
+- TQWidget(),
++ : TQWidget(),
++ KScreensaverIface(),
+ mBlankOnly(false),
+- mSAKProcess(NULL)
++ mSAKProcess(NULL),
++ mTerminationRequested(false)
+ {
+ // Save X screensaver parameters
+ XGetScreenSaver(qt_xdisplay(), &mXTimeout, &mXInterval,
+@@ -340,6 +341,7 @@ void SaverEngine::stopLockProcess()
+ kdDebug(1204) << "SaverEngine: stopping lock" << endl;
+ emitDCOPSignal("KDE_stop_screensaver()", TQByteArray());
+
++ mTerminationRequested=true;
+ mLockProcess.kill();
+
+ if (mEnabled)
+@@ -357,7 +359,33 @@ void SaverEngine::stopLockProcess()
+
+ void SaverEngine::lockProcessExited()
+ {
++printf("Lock process exited\n\r"); fflush(stdout);
++ bool abnormalExit = false;
+ kdDebug(1204) << "SaverEngine: lock exited" << endl;
++ if (mLockProcess.normalExit() == false) {
++ abnormalExit = true;
++ }
++ else {
++ if (mLockProcess.exitStatus() != 0) {
++ abnormalExit = true;
++ }
++ }
++ if (mTerminationRequested == true) {
++ abnormalExit = false;
++ }
++ if (abnormalExit == true) {
++ // PROBABLE HACKING ATTEMPT DETECTED
++ // Terminate the TDE session ASAP!
++ // Values are explained at http://lists.kde.org/?l=kde-linux&m=115770988603387
++ TQByteArray data;
++ TQDataStream arg(data, IO_WriteOnly);
++ arg << (int)0 << (int)0 << (int)2;
++ if ( ! kapp->dcopClient()->send("ksmserver", "default", "logout(int,int,int)", data) ) {
++ // Someone got to DCOP before we did
++ // Try an emergency system logout
++ system("logout");
++ }
++ }
+ if (trinity_lockeng_sak_available == TRUE) {
+ handleSecureDialog();
+ }
+diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h
+index b1e31bd..ae81f90 100644
+--- a/kdesktop/lockeng.h
++++ b/kdesktop/lockeng.h
+@@ -114,6 +114,7 @@ protected:
+
+ private:
+ KProcess* mSAKProcess;
++ bool mTerminationRequested;
+ };
+
+ #endif
+commit 5f8d730703882e1335305a2c43a378f0c4b96e8e
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1327216641 -0600
+
+ Fix desktop lock
+
+diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
+index 2588bbf..5acc96e 100644
+--- a/kdesktop/lock/lockprocess.cc
++++ b/kdesktop/lock/lockprocess.cc
+@@ -630,6 +630,8 @@ void LockProcess::startSecureDialog()
+ return;
+ }
+
++ setGeometry(0, 0, mRootWidth, mRootHeight);
++
+ int ret;
+ SecureDlg inDlg( this );
+ inDlg.setRetInt(&ret);
+diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
+index 2711c36..c0b8e24 100644
+--- a/kdesktop/lock/main.cc
++++ b/kdesktop/lock/main.cc
+@@ -181,14 +181,14 @@ int main( int argc, char **argv )
+ rt = process.runSecureDialog();
+ }
+ else {
+- return 1;
++ return 0;
+ }
+ }
+ else {
+ rt = process.defaultSave();
+ }
+ if (!rt) {
+- return 1;
++ return 0;
+ }
+
+ if( sig )
+diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
+index fb0f754..5307c5c 100644
+--- a/kdesktop/lockeng.cc
++++ b/kdesktop/lockeng.cc
+@@ -372,6 +372,7 @@ printf("Lock process exited\n\r"); fflush(stdout);
+ }
+ if (mTerminationRequested == true) {
+ abnormalExit = false;
++ mTerminationRequested = false;
+ }
+ if (abnormalExit == true) {
+ // PROBABLE HACKING ATTEMPT DETECTED
diff --git a/redhat/kdebase/kdebase-3.5.13-fix_potential_ABI_compat_problem.patch b/redhat/kdebase/kdebase-3.5.13-fix_potential_ABI_compat_problem.patch
new file mode 100644
index 000000000..ce8b23182
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-fix_potential_ABI_compat_problem.patch
@@ -0,0 +1,24 @@
+commit 77041d785dbbede734f8dc44aa454d07d14f0317
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1329161441 -0600
+
+ Clean up 9cc1e2c1 changes to enum
+ This corrects a potential ABI compat problem noted by Martin Gräßlin
+
+diff --git a/twin/lib/kdecoration.h b/twin/lib/kdecoration.h
+index 19fe494..f18f970 100644
+--- a/kwin/lib/kdecoration.h
++++ b/kwin/lib/kdecoration.h
+@@ -97,10 +97,10 @@ public:
+ LowerOp,
+ FullScreenOp,
+ NoBorderOp,
+- ShadowOp,
+ NoOp,
+ SetupWindowShortcutOp,
+- ApplicationRulesOp ///< @since 3.5
++ ApplicationRulesOp, ///< @since 3.5
++ ShadowOp ///< @since 3.5.12
+ };
+ /**
+ * Basic color types that should be recognized by all decoration styles.
diff --git a/redhat/kdebase/kdebase-3.5.13-fix_translations_in_desktop_files.patch b/redhat/kdebase/kdebase-3.5.13-fix_translations_in_desktop_files.patch
new file mode 100644
index 000000000..3bf1c1fbe
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-fix_translations_in_desktop_files.patch
@@ -0,0 +1,105 @@
+--- a/kdesktop/init/My_Documents 2011-10-24 00:31:04.000000000 +0200
++++ b/kdesktop/init/My_Documents 2012-02-15 19:03:22.830485960 +0100
+@@ -3,12 +3,10 @@
+ Icon=folder_wordprocessing
+ Name=My Documents
+ Name[af]=Dokument Gids
+-Name[ar]=مستنداتي
++Name[ar]=مستنداتي
+ Name[be]=Тэчка для дакументаў
+ Name[bg]=Директория с документи
+ Name[bn]=ডকুমেন্ট ফোল্ডার
+-Name[br]=Renkell an teulioù
+-Name[ar]=مستنداتي
+ Name[br]=Renkell an teulioù
+ Name[bs]=Direktorij dokumenata
+ Name[ca]=Carpeta de documents
+--- a/kioslave/system/entries/documents.desktop 2010-09-24 08:36:47.000000000 +0200
++++ b/kioslave/system/entries/documents.desktop 2012-02-15 19:02:55.094464303 +0100
+@@ -4,66 +4,55 @@
+ Icon=folder_man
+ Name=Documents Folder
+ Name[af]=Dokument Gids
+-Name[ar]=مستنداتي
++Name[ar]=مستنداتي
+ Name[be]=Тэчка для дакументаў
+ Name[bg]=Директория с документи
+ Name[bn]=ডকুমেন্ট ফোল্ডার
+-Name[br]=Renkell an teulioù
++Name[br]=Renkell an teulioù
+ Name[bs]=Direktorij dokumenata
+ Name[ca]=Carpeta de documents
+-Name[cs]=Složka s dokumenty
+-Name[csb]=Katalog dokùmentów
++Name[cs]=Složka s dokumenty
++Name[csb]=Katalog dokùmentów
+ Name[da]=Dokumentmappe
+ Name[de]=Dokumente
+-Name[el]=Φάκελος εγγράφων
+ Name[eo]=Dokumenta dosierujo
+ Name[es]=Carpeta de documentos
+ Name[et]=Dokumentide kataloog
+ Name[eu]=Dokumentuen karpeta
+-Name[fa]=پوشۀ مستندات
++Name[fa]=پوشۀ مستندات
+ Name[fi]=Asiakirjakansio
+ Name[fr]=Dossier des documents
+ Name[fy]=Ofkeppele kamera
+-Name[ga]=Fillteán na gCáipéisí
++Name[ga]=Fillteán na gCáipéisí
+ Name[gl]=Cartafol de Documentos
+-Name[he]=תיקיית מסמכים
+ Name[hr]=Mapa dokumenata
+-Name[hu]=Dokumentumok könyvtár
++Name[hu]=Dokumentumok könyvtár
+ Name[is]=Skjalamappa
+ Name[it]=Cartella documenti
+-Name[ja]=ドキュメントフォルダ
+-Name[ka]=დოკუმენტების დასტა
+-Name[kk]=Құжаттар қапшығы
+-Name[km]=ថត​ឯកសារ
+-Name[ko]=문서 탐색기
+-Name[lt]=Dokumentų aplankai
+-Name[mk]=Папка со документи
++Name[ja]=ドキュメントフォルダ
++Name[kk]=Құжаттар қапшығы
++Name[lt]=Dokumentų aplankai
+ Name[nb]=Dokumentmappe
+ Name[nds]=Dokmenten-Orner
+-Name[ne]=कागजात फोल्डर
+ Name[nl]=Documenten
+ Name[nn]=Dokumentmappe
+-Name[pa]=ਦਸਤਾਵੇਜ਼ ਫੋਲਡਰ
+-Name[pl]=Katalog dokumentów
++Name[pa]=ਦਸਤਾਵੇਜ਼ ਫੋਲਡਰ
++Name[pl]=Katalog dokumentów
+ Name[pt]=Pasta de Documentos
+ Name[pt_BR]=Pasta de Documentos
+ Name[ro]=Folder documente
+-Name[ru]=Документы
+-Name[se]=Dokumeantamáhppa
+-Name[sk]=Priečinok dokumentov
++Name[ru]=Документы
++Name[se]=Dokumeantamáhppa
+ Name[sl]=Mapa z dokumenti
+-Name[sr]=Фасцикла са документима
+ Name[sr@Latn]=Fascikla sa dokumentima
+ Name[sv]=Dokumentkatalog
+-Name[te]=పత్రాల ఫొల్డర్
+-Name[tg]=Ҳуҷҷатҳо
+-Name[th]=โฟลเดอร์เอกสาร
++Name[tg]=Ҳуҷҷатҳо
+ Name[tr]=Belgeler Dizini
+-Name[uk]=Тека документів
++Name[uk]=Тека документів
+ Name[uz]=Hujjatlar jildi
+-Name[uz@cyrillic]=Ҳужжатлар жилди
+-Name[vi]=Thư mục Tà i liệu
++Name[uz@cyrillic]=Ҳужжатлар жилди
++Name[vi]=Thư mục T� i liệu
+ Name[wa]=Ridant documints
+-Name[zh_CN]=文档文件夹
+-Name[zh_TW]=文件目錄
++Name[zh_CN]=文档文件夹
++Name[zh_TW]=文件目錄
+
diff --git a/redhat/kdebase/kdebase-3.5.13-kate_focus_fix.patch b/redhat/kdebase/kdebase-3.5.13-kate_focus_fix.patch
new file mode 100644
index 000000000..589341f29
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-kate_focus_fix.patch
@@ -0,0 +1,133 @@
+--- kdebase.o/kate/app/kateconfigdialog.cpp.orig 2012-04-01 18:22:50.732901887 +0200
++++ kdebase/kate/app/kateconfigdialog.cpp 2012-04-01 18:25:01.100327408 +0200
+@@ -138,6 +138,16 @@
+ TQWhatsThis::add( sb_numRecentFiles, youwouldnotbelieveit );
+ connect( sb_numRecentFiles, TQT_SIGNAL( valueChanged ( int ) ), this, TQT_SLOT( slotChanged() ) );
+
++ // Use only one instance of kate (MDI) ?
++ cb_useInstance = new TQCheckBox(bgStartup);
++ cb_useInstance->setText(i18n("Always use the current instance of kate to open new files"));
++ cb_useInstance->setChecked(parent->useInstance);
++ TQWhatsThis::add( cb_useInstance, i18n(
++ "When checked, all files opened from outside of Kate will only use the "
++ "currently opened instance of Kate.") );
++ connect( cb_useInstance, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) );
++
++
+ // sync the konsole ?
+ cb_syncKonsole = new TQCheckBox(bgStartup);
+ cb_syncKonsole->setText(i18n("Sync &terminal emulator with active document"));
+@@ -161,7 +171,7 @@
+ this, TQT_SLOT( slotChanged() ) );
+
+ // GROUP with the one below: "Meta-informations"
+- bgStartup = new TQButtonGroup( 1, Qt::Horizontal, i18n("Meta-Information"), frGeneral );
++ bgStartup = new TQButtonGroup( 2, Qt::Horizontal, i18n("Meta-Information"), frGeneral );
+ lo->addWidget( bgStartup );
+
+ // save meta infos
+@@ -409,6 +419,7 @@
+ mainWindow->modNotification = cb_modNotifications->isChecked();
+
+ mainWindow->syncKonsole = cb_syncKonsole->isChecked();
++ mainWindow->useInstance = cb_useInstance->isChecked();
+
+ mainWindow->filelist->setSortType(cb_sortFiles->isChecked() ? KateFileList::sortByName : KateFileList::sortByID);
+
+diff -urN tdebase/kate/app/kateconfigdialog.h tdebase.new/kate/app/kateconfigdialog.h
+--- tdebase/kate/app/kateconfigdialog.h 2012-01-08 18:00:01.000000000 -0600
++++ tdebase.new/kate/app/kateconfigdialog.h 2012-03-11 00:05:03.000000000 -0600
+@@ -66,6 +66,7 @@
+
+ TQCheckBox *cb_fullPath;
+ TQCheckBox *cb_syncKonsole;
++ TQCheckBox *cb_useInstance;
+ TQCheckBox *cb_sortFiles;
+ TQSpinBox *sb_numRecentFiles;
+ TQCheckBox *cb_modNotifications;
+diff -urN tdebase/kate/app/katemain.cpp tdebase.new/kate/app/katemain.cpp
+--- tdebase/kate/app/katemain.cpp 2011-12-25 00:52:38.000000000 -0600
++++ tdebase.new/kate/app/katemain.cpp 2012-03-11 00:05:03.000000000 -0600
+@@ -41,6 +41,8 @@
+ { "start <name>", I18N_NOOP("Start Kate with a given session"), 0 },
+ { "u", 0, 0 },
+ { "use", I18N_NOOP("Use a already running kate instance (if possible)"), 0 },
++ { "f", 0, 0 },
++ { "force-sdi", I18N_NOOP("Force single document mode if the MDI setting is enabled."), 0 },
+ { "p", 0, 0 },
+ { "pid <pid>", I18N_NOOP("Only try to reuse kate instance with this pid"), 0 },
+ { "e", 0, 0 },
+@@ -57,9 +59,13 @@
+
+ extern "C" KDE_EXPORT int kdemain( int argc, char **argv )
+ {
++ KConfig * config = NULL;
++ bool alwaysUseInstance;
+ // here we go, construct the Kate version
+ TQString kateVersion = KateApp::kateVersion();
+
++ KInstance instance( "kate" );
++
+ KAboutData aboutData ("kate", I18N_NOOP("Kate"), kateVersion.latin1(),
+ I18N_NOOP( "Kate - Advanced Text Editor" ), KAboutData::License_LGPL_V2,
+ I18N_NOOP( "(c) 2000-2005 The Kate Authors" ), 0, "http://kate.kde.org");
+@@ -107,8 +113,13 @@
+ // get our command line args ;)
+ KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
+
+- // now, first try to contact running kate instance if needed
+- if ( args->isSet("use") || (::getenv("KATE_PID")!=0) )
++ config = KGlobal::config();
++ config->setGroup("General");
++ alwaysUseInstance = config->readBoolEntry("UseInstance");
++
++// now, first try to contact running kate instance if needed
++ if ( ((args->isSet("use") || alwaysUseInstance) &&
++ !(args->isSet("force-sdi"))) || (::getenv("KATE_PID")!=0) )
+ {
+ DCOPClient client;
+ client.attach ();
+diff -urN tdebase/kate/app/katemainwindow.cpp tdebase.new/kate/app/katemainwindow.cpp
+--- tdebase/kate/app/katemainwindow.cpp 2012-01-08 18:00:01.000000000 -0600
++++ tdebase.new/kate/app/katemainwindow.cpp 2012-03-11 01:18:48.000000000 -0600
+@@ -406,6 +406,7 @@
+
+ config->setGroup("General");
+ syncKonsole = config->readBoolEntry("Sync Konsole", true);
++ useInstance = config->readBoolEntry("UseInstance", false);
+ modNotification = config->readBoolEntry("Modified Notification", false);
+ KateDocManager::self()->setSaveMetaInfos(config->readBoolEntry("Save Meta Infos", true));
+ KateDocManager::self()->setDaysMetaInfos(config->readNumEntry("Days Meta Infos", 30));
+@@ -437,6 +438,8 @@
+
+ config->writeEntry("Sync Konsole", syncKonsole);
+
++ config->writeEntry("UseInstance", useInstance);
++
+ fileOpenRecent->saveEntries(config, "Recent Files");
+
+ fileselector->writeConfig(config, "fileselector");
+diff -urN tdebase/kate/app/katemainwindow.h tdebase.new/kate/app/katemainwindow.h
+--- tdebase/kate/app/katemainwindow.h 2011-12-25 00:52:38.000000000 -0600
++++ tdebase.new/kate/app/katemainwindow.h 2012-03-11 00:05:03.000000000 -0600
+@@ -182,6 +182,7 @@
+ Kate::ToolViewManager *m_toolViewManager;
+
+ bool syncKonsole;
++ bool useInstance;
+ bool modNotification;
+
+ DCOPObject *m_dcop;
+diff -urN tdebase/kate/app/katemain.cpp tdebase.new/kate/app/katemain.cpp
+--- tdebase/kate/app/katemain.cpp 2011-12-25 00:52:38.000000000 -0600
++++ tdebase.new/kate/app/katemain.cpp 2012-03-11 13:32:05.000000000 -0500
+@@ -231,7 +231,9 @@
+ else
+ wRef.call("restore");
+ }
++ wRef.call( "hide" );
+ wRef.call( "raise" );
++ wRef.call( "show" );
+
+ // stop startup notification
+ KStartupInfo::appStarted( );
diff --git a/redhat/kdebase/kdebase-3.5.13-kwin-keramic-pics-emb.patch b/redhat/kdebase/kdebase-3.5.13-kwin-keramic-pics-emb.patch
new file mode 100644
index 000000000..50768f626
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-kwin-keramic-pics-emb.patch
@@ -0,0 +1,62 @@
+diff -uNr kdebase-3.5.13.orig/kwin/clients/keramik/CMakeLists.txt kdebase-3.5.13/kwin/clients/keramik/CMakeLists.txt
+--- kdebase-3.5.13.orig/kwin/clients/keramik/CMakeLists.txt 2012-03-14 12:56:02.567586872 +0200
++++ kdebase-3.5.13/kwin/clients/keramik/CMakeLists.txt 2012-03-14 12:50:07.000000000 +0200
+@@ -42,22 +42,11 @@
+
+ ##### tiles.h (header) ##########################
+
+-set( pics
+- pics/caption-large-left.png pics/caption-small-right.png
+- pics/titlebar-center.png pics/titlebutton-square.png
+- pics/border-left.png pics/caption-large-right.png
+- pics/grabbar-center.png pics/titlebar-left.png
+- pics/border-right.png pics/caption-small-center.png
+- pics/grabbar-left.png pics/titlebar-right.png
+- pics/caption-large-center.png pics/caption-small-left.png
+- pics/grabbar-right.png pics/titlebutton-round.png
+- pics/bottom-left.png pics/bottom-right.png pics/bottom-center.png
+- pics/titlebutton-square-large.png pics/titlebutton-square-huge.png
+- pics/titlebutton-round-large.png pics/titlebutton-round-huge.png )
++file(GLOB _pics "${CMAKE_CURRENT_SOURCE_DIR}/pics/*.png" )
+
+ add_custom_command( OUTPUT tiles.h
+- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${pics}
+- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${pics} )
++ COMMAND ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${_pics}
++ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${_pics} )
+
+ tde_add_executable( embedtool
+ SOURCES embedtool.cpp
+diff -Naur tdebase-master-orig/CMakeLists.txt tdebase-master/CMakeLists.txt
+--- tdebase-master-orig/CMakeLists.txt 2012-03-28 09:07:30.000000000 +0200
++++ tdebase-master/CMakeLists.txt 2012-04-01 11:41:49.000000000 +0200
+@@ -27,6 +27,7 @@
+ include( CheckLibraryExists )
+ include( CheckFunctionExists )
+ include( CheckStructHasMember )
++include( CheckTypeSize )
+
+
+ ##### include our cmake modules #################
+@@ -150,6 +151,8 @@
+ set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
+ set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
+
++check_type_size( "long long" LONG_LONG )
++
+
+ ##### kdebase directories #######################
+
+diff -Naur tdebase-master-orig/config.h.cmake tdebase-master/config.h.cmake
+--- tdebase-master-orig/config.h.cmake 2012-03-28 09:07:30.000000000 +0200
++++ tdebase-master/config.h.cmake 2012-04-01 11:45:21.000000000 +0200
+@@ -3,6 +3,9 @@
+ // konsole
+ #cmakedefine HAVE_PROC_CWD 1
+
++// Defined if compiler supports long long type.
++#cmakedefine HAVE_LONG_LONG 1
++
+ // kdesktop, konsole, kcontrol, kicker
+ #cmakedefine HAVE_XRENDER 1
+
diff --git a/redhat/kdebase/kdebase-3.5.13-option_to_disable_scroll_desktop.patch b/redhat/kdebase/kdebase-3.5.13-option_to_disable_scroll_desktop.patch
new file mode 100644
index 000000000..732619ff5
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-option_to_disable_scroll_desktop.patch
@@ -0,0 +1,101 @@
+Index: pagerapplet.cpp
+===================================================================
+--- kdebase.ori/kicker/applets/minipager/pagerapplet.cpp (revision 1287351)
++++ kdebase/kicker/applets/minipager/pagerapplet.cpp (working copy)
+@@ -442,6 +442,10 @@
+ {
+ int newDesk;
+ int desktops = KWin::numberOfDesktops();
++
++
++ if(cycleWindow()){
++
+ if (m_kwin->numberOfViewports(0).width() * m_kwin->numberOfViewports(0).height() > 1 )
+ desktops = m_kwin->numberOfViewports(0).width() * m_kwin->numberOfViewports(0).height();
+ if (e->delta() < 0)
+@@ -452,8 +456,9 @@
+ {
+ newDesk = (desktops + m_curDesk - 2) % desktops + 1;
+ }
+-
++
+ slotButtonSelected(newDesk);
++ }
+ }
+
+ void KMiniPager::drawButtons()
+@@ -729,6 +734,7 @@
+
+ showMenu->insertItem(i18n("&Window Thumbnails"), WindowThumbnails);
+ showMenu->insertItem(i18n("&Window Icons"), WindowIcons);
++ showMenu->insertItem(i18n("&Cycle on Wheel"), Cycle);
+
+ showMenu->insertTitle(i18n("Text Label"));
+ showMenu->insertItem(i18n("Desktop N&umber"),
+@@ -760,6 +766,7 @@
+
+ m_contextMenu->setItemChecked(WindowThumbnails, m_settings->preview());
+ m_contextMenu->setItemChecked(WindowIcons, m_settings->icons());
++ m_contextMenu->setItemChecked(Cycle, m_settings->cycle());
+ m_contextMenu->setItemEnabled(WindowIcons, m_settings->preview());
+ m_contextMenu->setItemEnabled(RenameDesktop,
+ m_settings->labelType() ==
+@@ -812,11 +819,12 @@
+ m_settings->setPreview(!m_settings->preview());
+ TaskManager::the()->trackGeometry();
+ break;
+-
++ case Cycle:
++ m_settings->setCycle(!m_settings->cycle());
++ break;
+ case WindowIcons:
+ m_settings->setIcons(!m_settings->icons());
+ break;
+-
+ case PagerSettings::EnumBackgroundType::BgPlain + bgOffset:
+ m_settings->setBackgroundType(PagerSettings::EnumBackgroundType::BgPlain);
+ break;
+Index: pagersettings.kcfg
+===================================================================
+--- kdebase.ori/kicker/applets/minipager/pagersettings.kcfg (revision 1287351)
++++ kdebase/kicker/applets/minipager/pagersettings.kcfg (working copy)
+@@ -49,10 +49,15 @@
+ <label>Show desktop preview?</label>
+ <default>true</default>
+ </entry>
+-
++
+ <entry name="Icons" type="Bool">
+ <label>Show window icons in previews?</label>
+ <default>true</default>
+ </entry>
++
++ <entry name="Cycle" type="Bool">
++ <label>Cycle through desktops with wheel?</label>
++ <default>true</default>
++ </entry>
+ </group>
+ </kcfg>
+Index: pagerapplet.h
+===================================================================
+--- kdebase.ori/kicker/applets/minipager/pagerapplet.h (revision 1287351)
++++ kdebase/kicker/applets/minipager/pagerapplet.h (working copy)
+@@ -64,15 +64,17 @@
+ void setActive( WId active ) { m_activeWindow = active; }
+ WId activeWindow() { return m_activeWindow; }
+
+- enum ConfigOptions { LaunchExtPager = 96, WindowThumbnails,
++ enum ConfigOptions { LaunchExtPager = 96, WindowThumbnails, Cycle,
+ WindowIcons, ConfigureDesktops, RenameDesktop };
+ int labelType() const { return m_settings->labelType(); }
+
+ int bgType() const { return m_settings->backgroundType(); }
+
+ bool desktopPreview() const { return m_settings->preview(); }
++ bool cycleWindow() const { return m_settings->cycle(); }
+ bool windowIcons() const { return m_settings->icons(); }
+
++
+ Orientation orientation() const { return KPanelApplet::orientation(); }
+ Direction popupDirection() { return KPanelApplet::popupDirection(); }
+
diff --git a/redhat/kdebase/tdebase-r14.spec b/redhat/kdebase/tdebase-r14.spec
new file mode 100644
index 000000000..e1eee6c5b
--- /dev/null
+++ b/redhat/kdebase/tdebase-r14.spec
@@ -0,0 +1,646 @@
+# 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
+
+# TDE specific variables
+BuildRequires: cmake >= 2.8
+%define tde_docdir %{_docdir}/trinity
+%define tde_libdir %{_libdir}/trinity
+
+# Older RHEL/Fedora versions use packages named "qt", "qt-devel", ..
+# whereas newer versions use "qt3", "qt3-devel" ...
+%if 0%{?rhel} >= 6 || 0%{?fedora} >= 8
+%define _qt_suffix 3
+%endif
+
+
+Name: tdebase
+Version: r14
+Release: 1%{?dist}%{?_variant}
+License: GPL
+Summary: Trinity Base Programs
+Group: User Interface/Desktops
+
+Vendor: Trinity Project
+Packager: Francois Andriot <francois.andriot@free.fr>
+URL: http://www.trinitydesktop.org/
+
+Prefix: %{_prefix}
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+Source0: tdebase-%{version}.tar.gz
+
+# Wrapper script to prevent Plasma launch at Trinity Startup
+Source1: plasma-desktop
+
+# Pam configuration files for RHEL / Fedora
+Source2: pamd.kdm-trinity%{?dist}
+Source3: pamd.kdm-trinity-np%{?dist}
+Source4: pamd.kcheckpass-trinity%{?dist}
+Source5: pamd.kscreensaver-trinity%{?dist}
+
+# TDE unofficial patches, fixing FTBFS
+
+# TDE for RHEL/Fedora specific patches
+## [kdebase/kdesktop] Modifies 'open terminal here' on desktop
+Patch11: kdebase-3.5.12-desktop-openterminalhere.patch
+## [kdebase/kioslave] Forces HAL backend to use HAL mount options
+Patch12: kdebase-3.5.12-halmountoptions.patch
+
+# TDE unofficial patches for enhanced features or bugfixes.
+## [kdebase/kioslave/man] Fix kio_man for older distros without 'man-db' [Bug #714]
+Patch21: kdebase-3.5.13-kio_man_utf8.patch
+## [kdebase/konqueror] Re-enable 'open tab in background' [Bug #245]
+Patch22: kdebase-3.5.13-konq_menu_tab_background.patch
+## [kdebase/kicker] Restores the original KDE3 clock [Bug #387]
+Patch27: kdebase-3.5.13-restore_kde3_clock.patch
+
+# Fedora 15 Theme: "Lovelock"
+%if 0%{?fedora} == 15
+Requires: lovelock-backgrounds-single
+%define tde_bg /usr/share/backgrounds/lovelock/default/standard/lovelock.png
+
+Requires: fedora-release-notes
+%define tde_aboutlabel Fedora 15
+%define tde_aboutpage /usr/share/doc/HTML/fedora-release-notes/index.html
+%endif
+
+# Fedora 16 Theme: "Verne"
+%if 0%{?fedora} == 16
+Requires: verne-backgrounds-single
+%define tde_bg /usr/share/backgrounds/verne/default/standard/verne.png
+
+Requires: fedora-release-notes
+%define tde_aboutlabel Fedora 16
+%define tde_aboutpage /usr/share/doc/HTML/fedora-release-notes/index.html
+%endif
+
+# RHEL 5 Theme
+%if 0%{?rhel} == 5
+Requires: desktop-backgrounds-basic
+%define tde_bg /usr/share/backgrounds/images/default.jpg
+
+Requires: indexhtml
+%define tde_aboutlabel Enterprise Linux 5
+%define tde_aboutpage /usr/share/doc/HTML/index.html
+%endif
+
+# RHEL 6 Theme
+%if 0%{?rhel} == 6
+Requires: redhat-logos
+%define tde_bg /usr/share/backgrounds/default.png
+
+Requires: redhat-indexhtml
+%define tde_aboutlabel Enterprise Linux 6
+%define tde_aboutpage /usr/share/doc/HTML/index.html
+%endif
+
+BuildRequires: tqtinterface-devel
+BuildRequires: trinity-arts-devel
+BuildRequires: tdelibs-devel >= %{version}
+BuildRequires: tqt3-devel >= 3.4.0
+BuildRequires: openssl-devel
+BuildRequires: avahi-devel
+BuildRequires: avahi-tqt-devel
+BuildRequires: imake
+BuildRequires: xorg-x11-proto-devel
+BuildRequires: OpenEXR-devel
+BuildRequires: libsmbclient-devel
+BuildRequires: dbus-devel
+BuildRequires: dbus-tqt-devel
+BuildRequires: lm_sensors-devel
+BuildRequires: libfontenc-devel
+BuildRequires: hal-devel
+BuildRequires: audiofile-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: libraw1394-devel
+BuildRequires: openldap-devel
+BuildRequires: libvorbis-devel
+BuildRequires: pam-devel
+BuildRequires: libXdmcp-devel
+BuildRequires: libxkbfile-devel
+BuildRequires: libusb-devel
+BuildRequires: esound-devel
+BuildRequires: glib2-devel
+BuildRequires: libXcomposite-devel
+BuildRequires: libXtst-devel
+BuildRequires: libXdamage-devel
+BuildRequires: xorg-x11-font-utils
+BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: nas-devel
+
+%if 0%{?rhel} >= 6 || 0%{?fedora} >= 15
+BuildRequires: libudev-devel
+%endif
+
+Requires: tqtinterface >= %{version}
+Requires: trinity-arts
+Requires: tdelibs >= %{version}
+Requires: tqt3 >= 3.4.0
+Requires: openssl
+Requires: avahi
+Requires: avahi-tqt
+Requires: dbus-tqt
+# Provides the global Xsession script (/etc/X11/xinit/Xsession)
+Requires: xorg-x11-xinit
+
+
+# RHEL 6 Configuration files are provided in separate packages
+%if "%{?_prefix}" == "/usr"
+Requires: kde-settings-kdm
+%endif
+Requires: redhat-menus
+
+#Provides: kdebase%{?_qt_suffix} = %{version}
+%if "%{?_prefix}" == "/usr"
+Provides: kdebase%{?_qt_suffix} = %{version}
+Obsoletes: kdebase%{?_qt_suffix} <= 3.5.10
+%endif
+
+
+# Required for Fedora LiveCD
+Provides: service(graphical-login)
+
+Obsoletes: trinity-kdebase <= 3.5.13
+
+
+%description
+Core applications for the Trinity Desktop Environment. Included are: kdm
+(replacement for xdm), twin (window manager), konqueror (filemanager,
+web browser, ftp client, ...), konsole (xterm replacement), kpanel
+(application starter and desktop pager), kaudio (audio server),
+kdehelp (viewer for kde help files, info and man pages), kthememgr
+(system for managing alternate theme packages) plus other KDE
+components (kcheckpass, kikbd, kscreensaver, kcontrol, kfind,
+kfontmanager, kmenuedit).
+
+
+%package devel
+Requires: %{name}
+Requires: %{name}-libs = %{version}-%{release}
+Requires: tdelibs-devel >= %{version}
+Summary: %{summary} - Development files
+%if "%{?_prefix}" == "/usr"
+Provides: kdebase%{?_qt_suffix}-devel = %{version}
+Obsoletes: kdebase%{?_qt_suffix}-devel <= 3.5.10
+%endif
+Obsoletes: trinity-kdebase-devel <= 3.5.13
+
+Group: Development/Libraries
+%description devel
+Header files for developing applications using %{name}.
+Install kdebase-devel if you want to develop or compile Konqueror,
+Kate plugins or TWin styles.
+
+
+%package extras
+Summary: Extra applications from %{name}
+Group: User Interface/Desktops
+Requires: %{name} = %{version}-%{release}
+%if "%{?_prefix}" == "/usr"
+Provides: kdebase%{?_qt_suffix}-extras = %{version}
+Obsoletes: kdebase%{?_qt_suffix}-extras <= 3.5.10
+%endif
+Obsoletes: trinity-kdebase-extras <= 3.5.13
+%description extras
+%{summary}, including:
+ * kappfinder
+ * kpager
+ * ktip
+ * kpersonalizer
+
+
+%package libs
+Summary: %{name} runtime libraries
+Group: System Environment/Libraries
+Requires: tdelibs >= %{version}
+%if "%{?_prefix}" == "/usr"
+Provides: kdebase%{?_qt_suffix}-libs = %{version}
+Obsoletes: kdebase%{?_qt_suffix}-libs <= 3.5.10
+%endif
+Requires: %{name} = %{version}-%{release}
+Obsoletes: trinity-kdebase-libs <= 3.5.13
+%description libs
+%{summary}
+
+
+%package pim-ioslaves
+Summary: PIM KIOslaves from %{name}
+Group: System Environment/Libraries
+%if "%{?_prefix}" == "/usr"
+Provides: kdebase%{?_qt_suffix}-pim-ioslaves = %{version}
+Obsoletes: kdebase%{?_qt_suffix}-pim-ioslaves <= 3.5.10
+%endif
+Obsoletes: trinity-kdebase-pim-ioslaves <= 3.5.13
+%description pim-ioslaves
+Protocol handlers (KIOslaves) for personal information management, including:
+ * kio_ldap
+ * kio_nntp
+ * kio_pop3
+ * kio_smtp
+
+
+%prep
+%setup -q -n %{name}
+
+%patch11 -p1
+%patch12 -p1
+
+%if 0%{?rhel} > 0
+%patch21 -p1
+%endif
+%patch22 -p1
+%patch27 -p0
+
+# Applies an optional distro-specific graphical theme
+%if "%{?tde_bg}" != ""
+# TDM Background
+%__sed -i "tdm/kfrontend/gentdmconf.c" \
+ -e 's|"Wallpaper=isadora.png\n"|"Wallpaper=%{tde_bg}\n"|'
+
+# TDE user default background
+%__sed -i "kpersonalizer/keyecandypage.cpp" \
+ -e 's|#define DEFAULT_WALLPAPER "isadora.png"|#define DEFAULT_WALLPAPER "%{tde_bg}"|'
+%__sed -i "starttde" \
+ -e 's|/usr/share/wallpapers/isadora.png.desktop|%{tde_bg}|' \
+ -e 's|Wallpaper=isadora.png|Wallpaper=%{tde_bg}|'
+%endif
+
+# TDE branding: removes KUbuntu references [Bug #617]
+%__sed -i "kcontrol/tdm/tdm-appear.cpp" \
+ -e "s|Welcome to Kubuntu |Welcome to %{tde_aboutlabel} |"
+%__sed -i "konqueror/about/konq_aboutpage.cc" \
+ -e "s|About Kubuntu|About %{tde_aboutlabel}|" \
+ -e "s|help:/kubuntu/|%{tde_aboutpage}|" \
+ -e "s|Kubuntu Documentation|%{tde_aboutlabel} Documentation|"
+%__sed -i "konqueror/about/launch.html" \
+ -e "s|help:/kubuntu/about-kubuntu/index.html|%{tde_aboutpage}|"
+%__sed -i "tdm/config.def" \
+ -e "s|Welcome to Trinity |Welcome to %{tde_aboutlabel} |"
+
+# TDE default directory in 'starttde' script (TDEDIR)
+%__sed -i "starttde" \
+ -e "s|/opt/trinity|%{_prefix}|g"
+
+%build
+export PATH="%{_bindir}:${PATH}"
+export PKG_CONFIG_PATH="%{_libdir}/pkgconfig"
+export CMAKE_INCLUDE_PATH="%{_includedir}:%{_includedir}/tqt"
+export LD_LIBRARY_PATH="%{_libdir}"
+
+%__mkdir build
+cd build
+%cmake \
+ -DHAVE_REAL_TQT=ON \
+ -DHTML_INSTALL_DIR=%{tde_docdir}/HTML \
+ -DWITH_SASL=ON \
+ -DWITH_LDAP=ON \
+ -DWITH_SAMBA=ON \
+ -DWITH_OPENEXR=ON \
+ -DWITH_XCOMPOSITE=ON \
+ -DWITH_XCURSOR=ON \
+ -DWITH_XFIXES=ON \
+%if 0%{?fedora} || 0%{?rhel} >= 6
+ -DWITH_XRANDR=ON \
+%else
+ -DWITH_XRANDR=OFF \
+%endif
+ -DWITH_XRENDER=ON \
+ -DWITH_XDAMAGE=ON \
+ -DWITH_XEXT=ON \
+ -DWITH_XTEST=ON \
+ -DWITH_LIBUSB=ON \
+ -DWITH_LIBRAW1394=ON \
+ -DWITH_PAM=ON \
+ -DWITH_SHADOW=OFF \
+ -DWITH_XDMCP=ON \
+ -DWITH_XINERAMA=ON \
+ -DWITH_ARTS=ON \
+ -DWITH_I8K=OFF \
+ -DWITH_HAL=ON \
+ -DBUILD_ALL=ON \
+ -DKCHECKPASS_PAM_SERVICE="kcheckpass-trinity" \
+ -DKDM_PAM_SERVICE="kdm-trinity" \
+ -DKSCREENSAVER_PAM_SERVICE="kscreensaver-trinity" \
+ ..
+
+%__make %{?_smp_mflags}
+
+%install
+%__rm -rf %{?buildroot}
+%__make install DESTDIR=%{?buildroot} -C build
+
+# Adds a GDM/KDM/TDM/XDM session called 'TDE'
+%__install -D -m 644 \
+ "%{?buildroot}%{_datadir}/apps/tdm/sessions/tde.desktop" \
+ "%{?buildroot}%{_usr}/share/xsessions/tde.desktop"
+
+# Renames '/etc/ksysguarddrc' to avoid conflict with KDE4 'ksysguard'
+%__mv -f \
+ %{?buildroot}%{_sysconfdir}/ksysguarddrc \
+ %{?buildroot}%{_sysconfdir}/ksysguarddrc.tde
+
+# TDE 3.5.12: add script "plasma-desktop" to avoid conflict with KDE4
+%if "%{?_prefix}" != "/usr"
+%__install -m 755 "%{SOURCE1}" "%{?buildroot}%{_bindir}"
+%endif
+
+# PAM configuration files
+%__install -D -m 644 "%{SOURCE2}" "%{?buildroot}%{_sysconfdir}/pam.d/kdm-trinity"
+%__install -D -m 644 "%{SOURCE3}" "%{?buildroot}%{_sysconfdir}/pam.d/kdm-trinity-np"
+%__install -D -m 644 "%{SOURCE4}" "%{?buildroot}%{_sysconfdir}/pam.d/kcheckpass-trinity"
+%__install -D -m 644 "%{SOURCE5}" "%{?buildroot}%{_sysconfdir}/pam.d/kscreensaver-trinity"
+
+# KDM configuration for RHEL/Fedora
+%__sed -i "%{?buildroot}%{_datadir}/config/tdm/tdmrc" \
+%if 0%{?fedora} >= 16
+ -e "s/^#*MinShowUID=.*/MinShowUID=1000/"
+%else
+ -e "s/^#*MinShowUID=.*/MinShowUID=500/"
+%endif
+
+# Moves the XDG configuration files to TDE directory
+%if "%{_prefix}" != "/usr"
+%__mkdir_p "%{?buildroot}%{_prefix}/etc"
+%__mv -f "%{?buildroot}%{_sysconfdir}/xdg" "%{?buildroot}%{_prefix}/etc"
+%endif
+
+%clean
+%__rm -rf %{?buildroot}
+
+
+%post
+touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
+gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
+update-desktop-database 2> /dev/null || :
+# Dirty hack to install '/etc/ksysguardrc' alongside with KDE4
+[ -r "%{_sysconfdir}/ksysguarddrc" ] || cp -f "%{_sysconfdir}/ksysguarddrc.tde" "%{_sysconfdir}/ksysguarddrc"
+
+%postun
+touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
+gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
+update-desktop-database 2> /dev/null || :
+
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+%post extras
+for f in crystalsvg hicolor ; do
+ touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||:
+ gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||:
+done
+update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
+
+%postun extras
+for f in crystalsvg hicolor ; do
+ touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||:
+ gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||:
+done
+update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
+
+
+%files extras
+%defattr(-,root,root,-)
+# kappfinder
+%{_bindir}/kappfinder
+%{_datadir}/applications/kde/kappfinder.desktop
+%{_datadir}/applnk/System/kappfinder.desktop
+%{_datadir}/apps/kappfinder/
+%{_datadir}/icons/hicolor/*/apps/kappfinder.png
+# ktip
+%{_bindir}/ktip
+%{_datadir}/applications/kde/ktip.desktop
+%{_datadir}/applnk/Toys/ktip.desktop
+%{_datadir}/apps/kdewizard
+%{_datadir}/autostart/ktip.desktop
+%{_datadir}/icons/hicolor/*/apps/ktip*
+# kpersonalizer
+%{_bindir}/kpersonalizer
+%{_datadir}/applications/kde/kpersonalizer.desktop
+%{_datadir}/applnk/System/kpersonalizer.desktop
+%{_datadir}/apps/kpersonalizer/
+%{_datadir}/icons/crystalsvg/*/apps/kpersonalizer.png
+# kpager
+%{_bindir}/kpager
+%{_datadir}/applications/kde/kpager.desktop
+%{_datadir}/applnk/Utilities/kpager.desktop
+%{_datadir}/icons/hicolor/*/apps/kpager.png
+
+
+%files
+%defattr(-,root,root,-)
+# kappfinder
+%exclude %{_datadir}/applications/kde/kappfinder.desktop
+%exclude %{_datadir}/applnk/System/kappfinder.desktop
+%exclude %{_datadir}/apps/kappfinder/
+%exclude %{_datadir}/icons/hicolor/*/apps/kappfinder.png
+# ktip
+%exclude %{_datadir}/applications/kde/ktip.desktop
+%exclude %{_datadir}/applnk/Toys/ktip.desktop
+%exclude %{_datadir}/apps/kdewizard
+%exclude %{_datadir}/autostart/ktip.desktop
+%exclude %{_datadir}/icons/hicolor/*/apps/ktip*
+# kpersonalizer
+%exclude %{_datadir}/applications/kde/kpersonalizer.desktop
+%exclude %{_datadir}/applnk/System/kpersonalizer.desktop
+%exclude %{_datadir}/apps/kpersonalizer/
+%exclude %{_datadir}/icons/crystalsvg/*/apps/kpersonalizer.png
+# kpager
+%exclude %{_datadir}/applications/kde/kpager.desktop
+%exclude %{_datadir}/applnk/Utilities/kpager.desktop
+%exclude %{_datadir}/icons/hicolor/*/apps/kpager.png
+
+# Pam configuration
+%{_sysconfdir}/pam.d/*
+
+%doc AUTHORS COPYING COPYING-DOCS README README.pam
+%{tde_docdir}/HTML/en/*
+%config(noreplace) %{_sysconfdir}/ksysguarddrc.tde
+%{_bindir}/gentdmconf
+%{_bindir}/kaccess
+%{_bindir}/kapplymousetheme
+%{_bindir}/kate
+%{_bindir}/kblankscrn.kss
+%{_bindir}/kbookmarkmerger
+%{_bindir}/kcminit
+%{_bindir}/kcminit_startup
+%{_bindir}/kcontrol
+%{_bindir}/kcontroledit
+%{_bindir}/kdebugdialog
+%{_bindir}/kdeinstallktheme
+%{_bindir}/kdepasswd
+%{_bindir}/tdesu
+%attr(0755,root,root) %{_bindir}/tdesud
+%{_bindir}/kdialog
+%{_bindir}/tdm
+%{_bindir}/tdmctl
+%{_bindir}/keditbookmarks
+%{_bindir}/keditfiletype
+%{_bindir}/kfind
+%{_bindir}/kfmclient
+%{_bindir}/khelpcenter
+%{_bindir}/khotkeys
+%{_bindir}/kinfocenter
+%{_bindir}/klipper
+%{_bindir}/kmenuedit
+%{_bindir}/konqueror
+%{_bindir}/konsole
+%{_bindir}/krandom.kss
+%{_bindir}/krdb
+%{_bindir}/kreadconfig
+%{_bindir}/ksmserver
+%{_bindir}/ksplashsimple
+%{_bindir}/kstart
+%{_bindir}/ksysguard
+%{_bindir}/ksysguardd
+%{_bindir}/ksystraycmd
+%{_bindir}/ktrash
+%{_bindir}/twin
+%{_bindir}/twin_killer_helper
+%{_bindir}/twin_rules_dialog
+%{_bindir}/kwrite
+%{_bindir}/kwriteconfig
+%{_bindir}/kxkb
+%{_bindir}/nspluginscan
+%{_bindir}/nspluginviewer
+%{_bindir}/starttde
+%{_bindir}/kcheckrunning
+%{_bindir}/kdesktop
+%{_bindir}/kdesktop_lock
+%{_bindir}/tdm_config
+%{_bindir}/tdm_greet
+%{_bindir}/kfontinst
+%{_bindir}/kfontview
+%{_bindir}/krootimage
+%{_bindir}/kwebdesktop
+%{_datadir}/autostart/*
+%{_datadir}/desktop-directories/*
+%{_datadir}/locale/*/entry.desktop
+%{_datadir}/locale/l10n
+%{_datadir}/templates/*
+%{_datadir}/templates/.source/*
+%{_datadir}/wallpapers/*
+%{_bindir}/appletproxy
+%{_bindir}/drkonqi
+%{_bindir}/extensionproxy
+%{_bindir}/kasbar
+%attr(4755,root,root) %{_bindir}/kcheckpass
+%{_bindir}/kdeeject
+%{_bindir}/khc_docbookdig.pl
+%{_bindir}/khc_htdig.pl
+%{_bindir}/khc_htsearch.pl
+%{_bindir}/khc_indexbuilder
+%{_bindir}/khc_mansearch.pl
+%{_bindir}/kicker
+%{_bindir}/knetattach
+%if 0%{?rhel} >= 6 || 0%{?fedora} >= 15
+%{_bindir}/krandrtray
+%endif
+%{_bindir}/kompmgr
+%{_bindir}/kpm
+%{_bindir}/ksplash
+%{_libdir}/kconf_update_bin
+%{_datadir}/applnk/*.desktop
+%{_datadir}/applnk/*/*
+%{_datadir}/applnk/.hidden/*
+%exclude %{_datadir}/applnk/.hidden/.directory
+%{_datadir}/config.kcfg/*
+%{_bindir}/kio_media_mounthelper
+%{_bindir}/kdcop
+%{_bindir}/tdeprintfax
+%{_bindir}/khc_beagle_index.pl
+%{_bindir}/khc_beagle_search.pl
+%{_bindir}/kxdglauncher
+%{_bindir}/kjobviewer
+%{_bindir}/klocaldomainurifilterhelper
+%{_bindir}/kprinter
+%{_datadir}/applications/*/*
+%{_datadir}/apps/*
+%{_datadir}/icons/*color/*/*/*
+%{_datadir}/icons/crystalsvg/*/*/*
+%{_datadir}/mimelnk/*/*
+%{_datadir}/services/*
+%{_datadir}/servicetypes/*
+%{_datadir}/sounds/*
+%{tde_libdir}/*
+%{_libdir}/libtdeinit_*.*
+%if "%{_prefix}" != "/usr"
+%{_prefix}/etc/xdg/menus/applications-merged/kde-essential.menu
+%{_prefix}/etc/xdg/menus/kde-information.menu
+%{_prefix}/etc/xdg/menus/kde-screensavers.menu
+%{_prefix}/etc/xdg/menus/kde-settings.menu
+%else
+%{_sysconfdir}/xdg/menus/applications-merged/kde-essential.menu
+%{_sysconfdir}/xdg/menus/kde-information.menu
+%{_sysconfdir}/xdg/menus/kde-screensavers.menu
+%{_sysconfdir}/xdg/menus/kde-settings.menu
+%endif
+/usr/share/xsessions/*.desktop
+# Remove conflicts with redhat-menus
+%if "%{?_prefix}" != "/usr"
+%{_bindir}/plasma-desktop
+%config(noreplace) %{_datadir}/config/*
+%else
+%exclude %{_datadir}/config
+%endif
+# exclude pim-ioslaves files from main package
+%exclude %{tde_libdir}/kio_ldap.*
+%exclude %{tde_libdir}/kio_nntp.*
+%exclude %{tde_libdir}/kio_pop3.*
+%exclude %{tde_libdir}/kio_smtp.*
+%exclude %{_datadir}/services/ldap*.protocol
+%exclude %{_datadir}/services/nntp*.protocol
+%exclude %{_datadir}/services/pop3*.protocol
+%exclude %{_datadir}/services/smtp*.protocol
+
+# New in TDE 3.5.13
+%{_bindir}/krootbacking
+%{_bindir}/tsak
+%attr(4511,root,root) %{_bindir}/tdmtsak
+
+# New in TDE R14
+%{_bindir}/crashtest
+%{_bindir}/tdeinit_phase1
+%{_bindir}/twin_resumer_helper
+
+
+%files libs
+%defattr(-,root,root,-)
+%exclude %{_libdir}/libtdeinit_*.*
+%{_libdir}/lib*.so.*
+%{_libdir}/lib*.la
+
+%files pim-ioslaves
+%defattr(-,root,root,-)
+%{tde_libdir}/kio_ldap.*
+%{tde_libdir}/kio_nntp.*
+%{tde_libdir}/kio_pop3.*
+%{tde_libdir}/kio_smtp.*
+%{_datadir}/services/ldap*.protocol
+%{_datadir}/services/nntp*.protocol
+%{_datadir}/services/pop3*.protocol
+%{_datadir}/services/smtp*.protocol
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/*.h
+%dir %{_includedir}/kate
+%{_includedir}/kate/*
+%dir %{_includedir}/twin
+%{_includedir}/twin/*
+%dir %{_includedir}/ksgrd
+%{_includedir}/ksgrd/*
+%dir %{_includedir}/ksplash
+%{_includedir}/ksplash/*
+%{_libdir}/lib*.so
+%exclude %{_libdir}/libtdeinit_*.*
+# New in TDE 3.5.13
+%{_datadir}/cmake/*.cmake
+
+%changelog
+* Sun Mar 04 2012 Francois Andriot <francois.andriot@free.fr> - r14-1
+- Initial build for TDE R14, using 'tqt3' instead of 'qt3'
diff --git a/redhat/kdebase/trinity-kdebase-3.5.13.spec b/redhat/kdebase/trinity-kdebase-3.5.13.spec
index 7496f1ec9..dd5bf82ab 100644
--- a/redhat/kdebase/trinity-kdebase-3.5.13.spec
+++ b/redhat/kdebase/trinity-kdebase-3.5.13.spec
@@ -2,7 +2,7 @@
%if "%{?version}" == ""
%define version 3.5.13
%endif
-%define release 16
+%define release 17
# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
%if "%{?_prefix}" != "/usr"
@@ -105,6 +105,24 @@ Patch32: kdebase-3.5.13-fix_kdm_cpu_usage.patch
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
+## [kdebase/kwin] do not show hostname in titlebar if it's FQDN of localhost [Bug #889]
+Patch35: kdebase-3.5.13-fix_fqdn_in_title.patch
+## [kdebase/kicker/applets] Adds option to disable desktop switch on mouse wheel cycling [Bug #908]
+Patch36: kdebase-3.5.13-option_to_disable_scroll_desktop.patch
+## [kdebase] Fix Keramik window decoration in KWIN [Bug #905]
+Patch37: kdebase-3.5.13-kwin-keramic-pics-emb.patch
+## [kdebase/kdesktop] Fix device icon placement on desktop [Bug #392]
+Patch38: kdebase-3.5.13-fix_device_icon_placement.patch
+## [kdebase/kdesktop/lock] Fix security hole in kdesktop_lock
+Patch39: kdebase-3.5.13-fix_kdesktop_lock_security_issue.patch
+## [kdebase/kdesktop/lock] Allow minimal managed window interaction inside the lock process [Bug #810]
+Patch40: kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch
+## [kdebase/kwin] Corrects a potential ABI compat problem
+Patch41: kdebase-3.5.13-fix_potential_ABI_compat_problem.patch
+## [kdebase] Fix kdebase translations in desktop files - part 2 [Bug #890]
+Patch42: kdebase-3.5.13-fix_translations_in_desktop_files.patch
+## [kdebase/kate] Kate: fix focus broken when using the --use parameter [Bug #692]
+Patch43: kdebase-3.5.13-kate_focus_fix.patch
# Fedora 15 Theme: "Lovelock"
%if 0%{?fedora} == 15
@@ -317,6 +335,15 @@ Protocol handlers (KIOslaves) for personal information management, including:
%patch33 -p1
%patch34 -p1
%endif
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
# Applies an optional distro-specific graphical theme
%if "%{?tde_bg}" != ""
@@ -703,6 +730,17 @@ update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
%{_datadir}/cmake/*.cmake
%changelog
+* Sun Apr 01 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-17
+- do not show hostname in titlebar if it's FQDN of localhost [Bug #889]
+- Adds option to disable desktop switch on mouse wheel cycling [Bug #908]
+- Fix Keramik window decoration in KWIN [Bug #905]
+- Fix device icon placement on desktop [Bug #392]
+- Fix security hole in kdesktop_lock
+- Allow minimal managed window interaction inside the lock process [Bug #810]
+- Corrects a potential ABI compat problem
+- Fix kdebase translations in desktop files - part 2 [Bug #890]
+- Kate: fix focus broken when using the --use parameter [Bug #692]
+
* 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]