parent
8334f62eb4
commit
c19de01aa5
@ -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,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'
|
Loading…
Reference in new issue