RHEL/Fedora: lots of kdebase/tdebase updates

pull/3/head
Francois Andriot 13 years ago
parent 8334f62eb4
commit c19de01aa5

@ -72,7 +72,7 @@ diff -r -u kdebase-3.5.5a.dfsg.1.orig/kioslave/media/mediamanager/halbackend.h k
const char* message const char* message
); );
+ QStringList getHALmountoptions(QString udi); + TQStringList getHALmountoptions(QString udi);
/* HAL and DBus structures */ /* HAL and DBus structures */
private: private:
/** /**

@ -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;
};

@ -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;
+ }
}
}

@ -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;
}

@ -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

@ -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.

@ -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]=文件目錄

@ -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( );

@ -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

@ -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(); }

@ -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'

@ -2,7 +2,7 @@
%if "%{?version}" == "" %if "%{?version}" == ""
%define version 3.5.13 %define version 3.5.13
%endif %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 TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
%if "%{?_prefix}" != "/usr" %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 Patch33: kdebase-3.5.13-tsak_keyboard_hotplug.patch
## [kdebase/tsak] Replicate LED status from virtual keyboards to physical keyboards [Bug #561] ## [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 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" # Fedora 15 Theme: "Lovelock"
%if 0%{?fedora} == 15 %if 0%{?fedora} == 15
@ -317,6 +335,15 @@ Protocol handlers (KIOslaves) for personal information management, including:
%patch33 -p1 %patch33 -p1
%patch34 -p1 %patch34 -p1
%endif %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 # Applies an optional distro-specific graphical theme
%if "%{?tde_bg}" != "" %if "%{?tde_bg}" != ""
@ -703,6 +730,17 @@ update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
%{_datadir}/cmake/*.cmake %{_datadir}/cmake/*.cmake
%changelog %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 * Sat Jan 21 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-16
- Fix KDM high CPU usage when inactive [Bug #690] - Fix KDM high CPU usage when inactive [Bug #690]
- Add keyboard hotplug (add/remove) support to tsak [Bug #587] - Add keyboard hotplug (add/remove) support to tsak [Bug #587]

Loading…
Cancel
Save