Hello community,
here is the log from the commit of package kdebase4-workspace for openSUSE:Factory
checked in at Thu Apr 1 16:09:54 CEST 2010.
--------
--- KDE/kdebase4-workspace/kdebase4-wallpapers.changes 2010-03-08 18:13:11.000000000 +0100
+++ /mounts/work_src_done/STABLE/kdebase4-workspace/kdebase4-wallpapers.changes 2010-04-01 16:09:20.397160000 +0200
@@ -1,0 +2,27 @@
+Fri Mar 26 19:05:07 CET 2010 - dmueller@suse.de
+
+- update to 4.4.2
+ * bugfixes over 4.4.1
+ * see http://kde.org/announcements/changelogs/changelog4_4_1to4_4_2.php for details
+
+-------------------------------------------------------------------
+Tue Mar 23 12:17:23 UTC 2010 - llunak@novell.com
+
+- CVE-2010-0436 (bnc#584223)
+
+-------------------------------------------------------------------
+Tue Mar 16 12:20:15 UTC 2010 - llunak@novell.com
+
+- include Aurorae theme docs in the kwin package
+
+-------------------------------------------------------------------
+Mon Mar 15 15:23:28 UTC 2010 - llunak@novell.com
+
+- update kdm theme fixes for bnc#533189
+
+-------------------------------------------------------------------
+Fri Mar 5 17:18:04 UTC 2010 - llunak@novell.com
+
+- fix problems when fingerprint support is enabled (bnc#533189)
+
+-------------------------------------------------------------------
kdebase4-workspace.changes: same change
python-kdebase4.changes: same change
calling whatdependson for head-i586
Old:
----
kdebase-workspace-4.4.1.tar.bz2
kdm-generic-same-pam.diff
New:
----
bnc584223.diff
kdebase-workspace-4.4.2.tar.bz2
kdm-fix-generic-greeter.diff
kdm-fix-labelcolors.diff
pam-translate.diff
plasma-notifications-kill-timer.diff
plasma-solid_hddtemp-no_timer.diff
same-pam-generic-classic.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase4-wallpapers.spec ++++++
--- /var/tmp/diff_new_pack.x1puFO/_old 2010-04-01 16:09:33.000000000 +0200
+++ /var/tmp/diff_new_pack.x1puFO/_new 2010-04-01 16:09:33.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package kdebase4-wallpapers (Version 4.4.1)
+# spec file for package kdebase4-wallpapers (Version 4.4.2)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -29,7 +29,7 @@
Group: System/GUI/KDE
Summary: KDE 4 Wallpapers
Url: http://www.kde.org/
-Version: 4.4.1
+Version: 4.4.2
Release: 1
Source0: kdebase-workspace-%version.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kdebase4-workspace.spec ++++++
--- /var/tmp/diff_new_pack.x1puFO/_old 2010-04-01 16:09:33.000000000 +0200
+++ /var/tmp/diff_new_pack.x1puFO/_new 2010-04-01 16:09:33.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package kdebase4-workspace (Version 4.4.1)
+# spec file for package kdebase4-workspace (Version 4.4.2)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -39,7 +39,7 @@
Group: System/GUI/KDE
Summary: The KDE Workspace Components
Url: http://www.kde.org/
-Version: 4.4.1
+Version: 4.4.2
Release: 1
Source0: kdebase-workspace-%version.tar.bz2
Source1: rcksysguardd
@@ -60,7 +60,7 @@
Patch67: kdm-remove-duplicated-sessions.diff
Patch68: kdm-make_it_cool.diff
Patch69: kdm-all-users-nopass.diff
-Patch70: kdm-generic-same-pam.diff
+Patch70: same-pam-generic-classic.diff
Patch71: kdm-kdmconf.diff
# https://svn.kde.org/home/kde/trunk/playground/base/freespacenotifier
Patch74: lowdiskspace.patch
@@ -87,6 +87,12 @@
Patch111: plasma-new-default-panel.diff
Patch112: plasma-obvious-configure.diff
Patch115: plasma-dont-hide-jobs.diff
+Patch123: kdm-fix-generic-greeter.diff
+Patch124: kdm-fix-labelcolors.diff
+Patch125: pam-translate.diff
+Patch200: plasma-solid_hddtemp-no_timer.diff
+Patch201: plasma-notifications-kill-timer.diff
+Patch202: bnc584223.diff
Requires: kde4-kgreeter-plugins = %version
%kde4_runtime_requires
%if %suse_version == 1110
@@ -116,7 +122,7 @@
Obsoletes: kde4-plasmoid-quicklauncher <= 0.4
Provides: PolicyKit-kde = 0.2.0
Obsoletes: PolicyKit-kde <= 0.2.0
-Obsoletes: PolicyKit-kde-lang <= 0.2.0
+Obsoletes: PolicyKit-kde-lang < 11.2
%description
This package contains the basic packages for a K Desktop Environment
@@ -153,7 +159,7 @@
%patch67
%patch68
%patch69
-%patch70
+%patch70 -p1
%patch71
%patch74
%patch77
@@ -182,6 +188,12 @@
#%patch112
###KDE44: rediff!
#%patch115
+%patch123 -p1
+%patch124 -p1
+%patch125
+%patch200 -p1
+%patch201 -p1
+%patch202 -p1
cp %{SOURCE3} kwin/effects/cube/data/cubecap.png
%build
@@ -417,7 +429,7 @@
%files -n kwin -f filelists/kwin
%defattr(-,root,root)
-%doc COPYING COPYING.DOC README
+%doc COPYING COPYING.DOC README kwin/clients/aurorae/theme-description
%dir %_kde4_servicesdir/kwin
%exclude %_kde4_appsdir/kwin/cubecap.png
%exclude %_kde4_appsdir/kwin/titlebar_decor.png
@@ -571,7 +583,7 @@
%doc %lang(en) %_kde4_htmldir/en/kmenuedit
%doc %lang(en) %_kde4_htmldir/en/ksysguard
%doc %lang(en) %_kde4_htmldir/en/kxkb
-%doc %lang(en) %_kde4_htmldir/en/plasma
+%doc %lang(en) %_kde4_htmldir/en/plasma-desktop
%doc %lang(en) %_kde4_htmldir/en/systemsettings
#/etc/systemsettingsrc
%_kde4_modulesdir/fontthumbnail.so
@@ -605,7 +617,7 @@
%_kde4_modulesdir/kded_khotkeys.so
%_kde4_modulesdir/kded_networkstatus.so
%_kde4_modulesdir/kfontviewpart.so
-%_kde4_modulesdir/kgreet_*.so
+#%_kde4_modulesdir/kgreet_*.so
%_kde4_modulesdir/kio_fonts.so
%_kde4_modulesdir/krunner_bookmarksrunner.so
%_kde4_modulesdir/krunner_calculatorrunner.so
++++++ python-kdebase4.spec ++++++
--- /var/tmp/diff_new_pack.x1puFO/_old 2010-04-01 16:09:33.000000000 +0200
+++ /var/tmp/diff_new_pack.x1puFO/_new 2010-04-01 16:09:33.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package python-kdebase4 (Version 4.4.1)
+# spec file for package python-kdebase4 (Version 4.4.2)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -28,7 +28,7 @@
Group: System/GUI/KDE
Summary: Python bindings for KDE 4 desktop shell
Url: http://www.kde.org/
-Version: 4.4.1
+Version: 4.4.2
Release: 1
Source0: kdebase-workspace-%version.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ bnc584223.diff ++++++
diff --git a/kdm/ConfigureChecks.cmake b/kdm/ConfigureChecks.cmake
index 36544a2..eab8df9 100644
--- a/kdm/ConfigureChecks.cmake
+++ b/kdm/ConfigureChecks.cmake
@@ -37,6 +37,35 @@ int main()
}
" HAVE_SETLOGIN)
+check_c_source_runs("
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+int main()
+{
+ int fd, fd2;
+ struct sockaddr_un sa;
+
+ if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
+ return 2;
+ sa.sun_family = AF_UNIX;
+ strcpy(sa.sun_path, \"testsock\");
+ unlink(sa.sun_path);
+ if (bind(fd, (struct sockaddr *)&sa, sizeof(sa)))
+ return 2;
+ chmod(sa.sun_path, 0);
+ setuid(getuid() + 1000);
+ if ((fd2 = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
+ return 2;
+ connect(fd2, (struct sockaddr *)&sa, sizeof(sa));
+ return errno != EACCES;
+}
+" HONORS_SOCKET_PERMS)
+
# for config-kdm.h
check_function_exists(seteuid HAVE_SETEUID)
diff --git a/kdm/backend/ctrl.c b/kdm/backend/ctrl.c
index da35712..2b9c113 100644
--- a/kdm/backend/ctrl.c
+++ b/kdm/backend/ctrl.c
@@ -79,7 +79,25 @@ nukeSock( struct cmdsock *cs )
}
+#ifdef HONORS_SOCKET_PERMS
static CtrlRec ctrl = { 0, 0, -1, 0 };
+#else
+static CtrlRec ctrl = { 0, 0, 0, -1, 0 };
+
+static int mkTempDir( char *dir )
+{
+ int i, l = strlen( dir ) - 6;
+
+ for (i = 0; i < 100; i++) {
+ randomStr( dir + l );
+ if (!mkdir( dir, 0700 ))
+ return True;
+ if (errno != EEXIST)
+ break;
+ }
+ return False;
+}
+#endif
void
openCtrl( struct display *d )
@@ -113,22 +131,50 @@ openCtrl( struct display *d )
if (strlen( cr->path ) >= sizeof(sa.sun_path))
logError( "path %\"s too long; control socket will not be available\n",
cr->path );
- else if (mkdir( sockdir, 0755 ) && errno != EEXIST)
+#ifdef HONORS_SOCKET_PERMS
+ else if (mkdir( sockdir, 0700 ) && errno != EEXIST)
logError( "mkdir %\"s failed: %m; control socket will not be available\n",
sockdir );
+ else if (unlink( cr->path ) && errno != ENOENT)
+ logError( "unlink %\"s failed: %m; control socket will not be available\n",
+ cr->path );
else {
- if (!d)
- chown( sockdir, -1, fifoGroup );
+#else
+ else if (unlink( sockdir ) && errno != ENOENT)
+ logError( "unlink %\"s failed: %m; control socket will not be available\n",
+ sockdir );
+ else if (!strApp( &cr->realdir, sockdir, "-XXXXXX", (char *)0))
+ ;
+ else if (!mkTempDir( cr->realdir )) {
+ logError( "mkdir %\"s failed: %m; control socket will not be available\n",
+ cr->realdir );
+ free( cr->realdir );
+ cr->realdir = 0;
+ } else if (symlink( cr->realdir, sockdir )) {
+ logError( "symlink %\"s => %\"s failed: %m; control socket will not be available\n",
+ sockdir, cr->realdir );
+ rmdir( cr->realdir );
+ free( cr->realdir );
+ cr->realdir = 0;
+ } else {
+ chown( sockdir, 0, d ? 0 : fifoGroup );
chmod( sockdir, 0750 );
+#endif
if ((cr->fd = socket( PF_UNIX, SOCK_STREAM, 0 )) < 0)
logError( "Cannot create control socket: %m\n" );
else {
- unlink( cr->path );
sa.sun_family = AF_UNIX;
strcpy( sa.sun_path, cr->path );
if (!bind( cr->fd, (struct sockaddr *)&sa, sizeof(sa) )) {
if (!listen( cr->fd, 5 )) {
+#ifdef HONORS_SOCKET_PERMS
+ chmod( cr->path, 0660 );
+ if (!d)
+ chown( cr->path, -1, fifoGroup );
+ chmod( sockdir, 0755 );
+#else
chmod( cr->path, 0666 );
+#endif
registerCloseOnFork( cr->fd );
registerInput( cr->fd );
free( sockdir );
@@ -143,6 +189,14 @@ openCtrl( struct display *d )
close( cr->fd );
cr->fd = -1;
}
+#ifdef HONORS_SOCKET_PERMS
+ rmdir( sockdir );
+#else
+ unlink( sockdir );
+ rmdir( cr->realdir );
+ free( cr->realdir );
+ cr->realdir = 0;
+#endif
}
free( cr->path );
cr->path = 0;
@@ -163,7 +217,14 @@ closeCtrl( struct display *d )
cr->fd = -1;
unlink( cr->path );
*strrchr( cr->path, '/' ) = 0;
+#ifdef HONORS_SOCKET_PERMS
rmdir( cr->path );
+#else
+ unlink( cr->path );
+ rmdir( cr->realdir );
+ free( cr->realdir );
+ cr->realdir = 0;
+#endif
free( cr->path );
cr->path = 0;
while (cr->css) {
@@ -177,12 +238,12 @@ closeCtrl( struct display *d )
void
chownCtrl( CtrlRec *cr, int uid )
{
- if (cr->path) {
- char *ptr = strrchr( cr->path, '/' );
- *ptr = 0;
+ if (cr->path)
+#ifdef HONORS_SOCKET_PERMS
chown( cr->path, uid, -1 );
- *ptr = '/';
- }
+#else
+ chown( cr->realdir, uid, -1 );
+#endif
}
void
diff --git a/kdm/backend/dm.h b/kdm/backend/dm.h
index 42d6a13..0696e2e 100644
--- a/kdm/backend/dm.h
+++ b/kdm/backend/dm.h
@@ -232,6 +232,9 @@ typedef struct {
struct cmdsock *css; /* open connections */
char *path; /* filename of the socket */
+#ifndef HONORS_SOCKET_PERMS
+ char *realdir; /* real dirname of the socket */
+#endif
int fd; /* fd of the socket */
int gid; /* owner group of the socket */
} CtrlRec;
diff --git a/kdm/config-kdm.h.cmake b/kdm/config-kdm.h.cmake
index a9bcce1..3e8912d 100644
--- a/kdm/config-kdm.h.cmake
+++ b/kdm/config-kdm.h.cmake
@@ -129,6 +129,9 @@
/* Define to 1 if the ck-connector library is found */
#cmakedefine HAVE_CKCONNECTOR 1
+/* Define to 1 if OS honors permission bits on socket inodes */
+#cmakedefine HONORS_SOCKET_PERMS 1
+
/* $PATH defaults set by KDM */
#cmakedefine KDM_DEF_USER_PATH "${KDM_DEF_USER_PATH}"
#cmakedefine KDM_DEF_SYSTEM_PATH "${KDM_DEF_SYSTEM_PATH}"
--
1.6.6.20.g9bfff
++++++ kdebase-workspace-4.4.1.tar.bz2 -> kdebase-workspace-4.4.2.tar.bz2 ++++++
KDE/kdebase4-workspace/kdebase-workspace-4.4.1.tar.bz2 /mounts/work_src_done/STABLE/kdebase4-workspace/kdebase-workspace-4.4.2.tar.bz2 differ: char 11, line 1
++++++ kdm-fix-generic-greeter.diff ++++++
Subject: Fix broken KDM layout with fingerprint support
From: Lubos Lunak
Patch-upstream: not yet
Bug: bnc#533189
Relates: kdm-fix-labelcolors.diff, same-pam-generic-classic.diff
--- workspace/kdm/kfrontend/kgreeter.cpp.sav 2010-03-11 13:59:41.000000000 +0100
+++ workspace/kdm/kfrontend/kgreeter.cpp 2010-03-15 15:45:39.000000000 +0100
@@ -915,8 +915,6 @@ KThemedGreeter::KThemedGreeter( KdmTheme
timed_label = themer->findNode( "timed-label" );
KdmItem *itm;
- if ((itm = themer->findNode( "pam-message" ))) // done via msgboxes
- itm->setVisible( false );
if ((itm = themer->findNode( "language_button" ))) // not implemented yet
itm->setVisible( false );
--- workspace/kdm/kfrontend/themes/greeter.dtd.sav 2010-03-11 13:59:41.000000000 +0100
+++ workspace/kdm/kfrontend/themes/greeter.dtd 2010-03-15 15:57:51.000000000 +0100
@@ -19,9 +19,9 @@ Items with these IDs get special treatme
caps-lock-warning | xauth-warning | pam-error | timed-label |
login_button | session_button | system_button
Items with these IDs might get special treatment by conversation plugins:
- talker | domain-entry | user-entry | pw-entry
+ talker | domain-entry | user-entry | pw-entry | pam-message | pam-prompt | user-pw-entry
Items with these IDs are always hidden:
- pam-message | language_button
+ language_button
-->
<!ATTLIST item
--- workspace/libs/kdm/kgreet_generic.cpp.sav 2010-03-11 13:59:40.000000000 +0100
+++ workspace/libs/kdm/kgreet_generic.cpp 2010-03-15 16:20:56.000000000 +0100
@@ -41,24 +41,14 @@ extern KDE_EXPORT KGreeterPluginInfo kgr
static int echoMode;
-class KDMPasswordEdit : public KLineEdit {
-public:
- KDMPasswordEdit( QWidget *parent = 0 ) : KLineEdit( parent )
- {
- if (::echoMode == -1)
- setPasswordMode( true );
- else
- setEchoMode( ::echoMode ? Password : NoEcho );
- setContextMenuPolicy( Qt::NoContextMenu );
- }
-};
-
KGenericGreeter::KGenericGreeter( KGreeterPluginHandler *_handler,
QWidget *parent,
const QString &_fixedEntity,
Function _func, Context _ctx ) :
QObject(),
KGreeterPlugin( _handler ),
+ m_label( 0 ),
+ m_messageLabel( 0 ),
m_lineEdit( 0 ),
fixedUser( _fixedEntity ),
func( _func ),
@@ -66,22 +56,55 @@ KGenericGreeter::KGenericGreeter( KGreet
exp( -1 ),
running( false )
{
- m_parentWidget = new QWidget( parent );
- m_parentWidget->setObjectName( "talker" );
- // XXX set some minimal size
- widgetList << m_parentWidget;
- m_grid = new QGridLayout( m_parentWidget );
- m_grid->setMargin( 0 );
+ QGridLayout *grid = 0;
+ if (!_handler->gplugHasNode( "pam-prompt" ) ||
+ !_handler->gplugHasNode( "user-pw-entry" ) ||
+ !_handler->gplugHasNode( "pam-message" )) {
+ parent = new QWidget( parent );
+ parent->setObjectName( "talker" );
+ widgetList << parent;
+ grid = new QGridLayout( parent );
+ grid->setMargin( 0 );
+ }
if (ctx == ExUnlock || ctx == ExChangeTok)
fixedUser = KUser().loginName();
+
+ m_label = new QLabel( parent );
+ if( grid ) {
+ m_label->setMinimumWidth(
+ m_label->fontMetrics().width( "A username" ) );
+ grid->addWidget( m_label, 0, 0 );
+ } else {
+ m_label->setObjectName( "pam-prompt" );
+ widgetList << m_label;
+ }
+ m_lineEdit = new KLineEdit( parent );
+ m_label->setBuddy( m_lineEdit );
+ if( grid ) {
+ m_lineEdit->setMinimumWidth(
+ m_lineEdit->fontMetrics().width( "This is a long password" ) );
+ grid->addWidget( m_lineEdit, 0, 1 );
+ } else {
+ m_lineEdit->setObjectName( "user-pw-entry" );
+ widgetList << m_lineEdit;
+ }
+ m_messageLabel = new QLabel( parent );
+ if( grid ) {
+ m_messageLabel->setMinimumWidth(
+ m_messageLabel->fontMetrics().width( "Information text" ) );
+ grid->addWidget( m_messageLabel, 1, 0 );
+ } else {
+ m_messageLabel->setObjectName( "pam-message" );
+ widgetList << m_messageLabel;
+ }
}
// virtual
KGenericGreeter::~KGenericGreeter()
{
abort();
- delete m_parentWidget;
+ qDeleteAll( widgetList );
}
void // virtual
@@ -127,8 +150,7 @@ KGenericGreeter::setEnabled( bool enable
{
// assert( func == Authenticate && ctx == Shutdown );
// XXX this is likely to bear some bogosity
- foreach (QWidget *w, m_children)
- w->setEnabled( enable );
+ m_lineEdit->setEnabled( enable );
if (enable && m_lineEdit)
m_lineEdit->setFocus();
}
@@ -143,9 +165,7 @@ KGenericGreeter::textMessage( const char
revive();
QString qtext = QString::fromUtf8( text );
m_infoMsgs.append( qtext );
- QLabel *label = new QLabel( qtext, m_parentWidget );
- m_grid->addWidget( label, m_line++, 0, 1, 2 );
- m_children.append( label );
+ m_messageLabel->setText( m_infoMsgs.join( "\n" ));
return true;
}
@@ -168,15 +188,19 @@ KGenericGreeter::textPrompt( const char
revive();
else
m_infoMsgs.clear();
-
- QLabel *label = new QLabel( QString::fromUtf8( prompt ).trimmed() );
- m_grid->addWidget( label, m_line, 0 );
- m_children.append( label );
m_echo = echo;
+
+ m_label->setText( QString::fromUtf8( prompt ).trimmed());
+ m_lineEdit->setContextMenuPolicy( Qt::NoContextMenu );
+ m_lineEdit->setCompletionObject( 0 );
+ m_lineEdit->disconnect( this );
+ m_lineEdit->clear();
+ m_lineEdit->setPasswordMode( false );
+ m_lineEdit->setEchoMode( QLineEdit::Normal );
if (echo) {
- m_lineEdit = new KLineEdit;
- m_lineEdit->setContextMenuPolicy( Qt::NoContextMenu );
if (!exp) {
+ if (m_label->text().isEmpty())
+ m_label->setText( i18n("&Username:"));
if (!m_users.isEmpty()) {
KCompletion *userNamesCompletion = new KCompletion;
userNamesCompletion->setItems( m_users );
@@ -187,20 +211,18 @@ KGenericGreeter::textPrompt( const char
if (!curUser.isEmpty()) {
m_lineEdit->setText( curUser );
m_lineEdit->selectAll();
- connect( m_lineEdit, SIGNAL(selectionChanged()), SLOT(slotChanged()) );
}
connect( m_lineEdit, SIGNAL(editingFinished()), SLOT(slotLoginLostFocus()) );
}
connect( m_lineEdit, SIGNAL(editingFinished()), SLOT(slotChanged()) );
connect( m_lineEdit, SIGNAL(textChanged( const QString & )), SLOT(slotChanged()) );
} else {
- m_lineEdit = new KDMPasswordEdit;
+ if (::echoMode == -1)
+ m_lineEdit->setPasswordMode( true );
+ else
+ m_lineEdit->setEchoMode( ::echoMode ? QLineEdit::Password : QLineEdit::NoEcho );
+ connect( m_lineEdit, SIGNAL(editingFinished()), SLOT(slotChanged()) );
}
- m_lineEdit->setMinimumWidth(
- m_lineEdit->fontMetrics().width( "This is a long password" ) );
- m_grid->addWidget( m_lineEdit, m_line, 1 );
- m_children.append( m_lineEdit );
- m_lineEdit->show();
m_lineEdit->setFocus();
}
@@ -235,7 +257,6 @@ KGenericGreeter::next()
if (m_lineEdit) {
m_lineEdit->setEnabled( false );
QString text = m_lineEdit->text();
- m_lineEdit = 0;
handler->gplugReturnText( text.toLocal8Bit(),
!m_echo ?
KGreeterPluginHandler::IsSecret :
@@ -272,8 +293,7 @@ KGenericGreeter::failed()
revive();
handler->gplugMsgBox( QMessageBox::Information, text );
} else {
- foreach (QWidget *w, m_children)
- w->setEnabled( false );
+ m_lineEdit->setEnabled( false );
}
exp = -1;
running = false;
@@ -283,12 +303,9 @@ void // virtual
KGenericGreeter::revive()
{
// assert( !running );
- foreach (QWidget *w, m_children)
- w->deleteLater();
- m_children.clear();
m_infoMsgs.clear();
- m_lineEdit = 0;
- m_line = 0;
+ m_lineEdit->clear();
+ m_lineEdit->setEnabled( true );
}
void // virtual
--- workspace/libs/kdm/kgreet_generic.h.sav 2010-03-11 13:59:40.000000000 +0100
+++ workspace/libs/kdm/kgreet_generic.h 2010-03-15 16:02:30.000000000 +0100
@@ -33,7 +33,6 @@ Foundation, Inc., 51 Franklin Street, Fi
#include <QObject>
-class QGridLayout;
class QWidget;
class KLineEdit;
@@ -68,11 +67,11 @@ class KGenericGreeter : public QObject,
void slotChanged();
private:
- QGridLayout *m_grid;
QList m_children;
+ QLabel *m_label;
+ QLabel *m_messageLabel;
KLineEdit *m_lineEdit;
- QWidget *m_parentWidget;
- QList<QString> m_infoMsgs;
+ QStringList m_infoMsgs;
QString fixedUser, curUser;
QStringList m_users;
Function func;
--- workspace/kdm/kfrontend/themes/oxygen-air/oxygen-air.xml.sav 2010-03-09 11:52:01.000000000 +0100
+++ workspace/kdm/kfrontend/themes/oxygen-air/oxygen-air.xml 2010-03-15 15:57:08.000000000 +0100
@@ -27,11 +27,12 @@
<stock type="welcome-label"/>
</item>
- <item type="rect" id="user-field">
+ <item type="rect" id="talker">
<pos anchor="c" x="50%" y="43%" width="400" height="144"/>
<box orientation="vertical" spacing="0" homogeneous="true">
- <item type="pixmap" butoon="true">
+ <item type="pixmap" button="true">
+ <show type="!plugin-specific-generic"/>
<normal file="user-entry.png"/>
<prelight file="user-entry-li.png"/>
<active file="user-entry-li.png"/>
@@ -39,18 +40,38 @@
</item>
<item type="entry" id="user-entry">
+ <show type="!plugin-specific-generic"/>
<pos anchor="c" x="52%" y="0%" width="110" height="22"/>
</item>
<item type="pixmap">
+ <show type="!plugin-specific-generic"/>
<normal file="pw-entry.png"/>
<prelight file="pw-entry-li.png"/>
<pos anchor="c" x="50%" y="100%"/>
</item>
<item type="entry" id="pw-entry">
+ <show type="!plugin-specific-generic"/>
<pos anchor="c" x="52%" y="0%" width="110" height="22"/>
</item>
+
+ <item type="label" id="pam-message">
+ <show type="plugin-specific-generic"/>
+ <pos anchor="n" x="50%" y="60%" width="90%" height="30%"/>
+ <text> </text>
+ </item>
+
+ <item type="label" id="pam-prompt">
+ <show type="plugin-specific-generic"/>
+ <pos anchor="n" x="50%" y="30%" width="90%" height="22"/>
+ <text> </text>
+ </item>
+
+ <item type="entry" id="user-pw-entry">
+ <show type="plugin-specific-generic"/>
+ <pos anchor="c" x="50%" y="30%" width="90%" height="22"/>
+ </item>
</box>
</item>
++++++ kdm-fix-labelcolors.diff ++++++
Subject: Fix broken KDM layout with fingerprint support
From: Lubos Lunak
Patch-upstream: yes
Bug: bnc#533189
Relates: kdm-fix-generic-greeter.diff, same-pam-generic-classic.diff
--- workspace/kdm/kfrontend/themer/kdmlabel.h.sav 2009-12-17 19:55:47.000000000 +0100
+++ workspace/kdm/kfrontend/themer/kdmlabel.h 2010-02-23 14:08:46.493126179 +0100
@@ -61,6 +61,8 @@ protected:
virtual void doPlugActions( bool plug );
+ virtual void updatePalette( QWidget *w );
+
struct LabelStruct {
QString text;
bool isTimer;
--- workspace/kdm/kfrontend/themer/kdmitem.cpp.sav 2009-12-17 19:55:47.000000000 +0100
+++ workspace/kdm/kfrontend/themer/kdmitem.cpp 2010-02-23 14:54:51.423875416 +0100
@@ -240,9 +240,9 @@ void
KdmItem::setWidgetAttribs( QWidget *widget )
{
widget->setPalette( style.palette );
+ ::setWidgetAttribs( widget, style, style.frame );
widget->installEventFilter( this );
updatePalette( myWidget );
- ::setWidgetAttribs( widget, style, style.frame );
}
void
--- workspace/kdm/kfrontend/themer/kdmitem.h.sav 2009-12-17 19:55:47.000000000 +0100
+++ workspace/kdm/kfrontend/themer/kdmitem.h 2010-02-23 14:08:00.428124930 +0100
@@ -199,7 +199,7 @@ protected:
bool eventFilter( QObject *o, QEvent *e );
void setWidgetAttribs( QWidget * );
- void updatePalette( QWidget *w );
+ virtual void updatePalette( QWidget *w );
void updateThisVisible();
--- workspace/kdm/kfrontend/themer/kdmlabel.cpp.sav 2010-02-23 13:58:17.000000000 +0100
+++ workspace/kdm/kfrontend/themer/kdmlabel.cpp 2010-02-23 15:57:27.457125094 +0100
@@ -219,6 +219,8 @@ KdmLabel::statusChanged( bool descend )
if ((state == Sprelight && !label.prelight.present) ||
(state == Sactive && !label.active.present))
return;
+ if( myWidget )
+ updatePalette( myWidget );
needUpdate();
}
@@ -336,4 +338,19 @@ KdmLabel::lookupText( const QString &t )
return text;
}
+void
+KdmLabel::updatePalette( QWidget *w )
+{
+ struct LabelStruct::LabelClass *l = &label.normal;
+ if (state == Sactive && label.active.present)
+ l = &label.active;
+ else if (state == Sprelight && label.prelight.present)
+ l = &label.prelight;
+ w->setFont( l->font.font );
+ QPalette p = w->palette();
+ p.setColor( QPalette::WindowText, l->color );
+ w->setPalette( p );
+ KdmItem::updatePalette( w );
+}
+
#include "kdmlabel.moc"
++++++ pam-translate.diff ++++++
Subject: Translate messages from PAM
From: Lubos Lunak
Patch-upstream: not yet
Bug: bnc#533189
--- libs/kdm/kgreet_generic.cpp.sav 2010-03-09 11:52:17.000000000 +0100
+++ libs/kdm/kgreet_generic.cpp 2010-03-09 15:04:49.000000000 +0100
@@ -163,7 +163,9 @@ KGenericGreeter::textMessage( const char
if (m_infoMsgs.isEmpty())
revive();
- QString qtext = QString::fromUtf8( text );
+ // PAM does not translate these
+ //(void) I18N_NOOP("");
+ QString qtext = i18n( text );
m_infoMsgs.append( qtext );
m_messageLabel->setText( m_infoMsgs.join( "\n" ));
@@ -191,7 +193,10 @@ KGenericGreeter::textPrompt( const char
m_infoMsgs.clear();
m_echo = echo;
- m_label->setText( QString::fromUtf8( prompt ).trimmed());
+ // PAM does not translate these
+ ( void ) I18N_NOOP( "Password: " );
+ ( void ) I18N_NOOP( "Password or swipe finger: " );
+ m_label->setText( i18n( prompt ).trimmed());
m_lineEdit->setContextMenuPolicy( Qt::NoContextMenu );
m_lineEdit->setCompletionObject( 0 );
m_lineEdit->disconnect( this );
++++++ plasma-notifications-kill-timer.diff ++++++
diff --git a/plasma/generic/dataengines/notifications/notificationsengine.cpp b/plasma/generic/dataengines/notifications/notificationsengine.cpp
index 898b4f6..b75f2bd 100644
--- a/plasma/generic/dataengines/notifications/notificationsengine.cpp
+++ b/plasma/generic/dataengines/notifications/notificationsengine.cpp
@@ -206,10 +206,12 @@ uint NotificationsEngine::Notify(const Q
void NotificationsEngine::timerEvent(QTimerEvent *event)
{
+ // qDebug() << "Timer: " << event->timerId();
const QString source = m_timeouts.value(event->timerId());
if (!source.isEmpty()) {
m_sourceTimers.remove(source);
m_timeouts.remove(event->timerId());
+ killTimer(event->timerId());
removeSource(source);
emit NotificationClosed(source.split(" ").last().toInt(), 1);
return;
++++++ plasma-solid_hddtemp-no_timer.diff ++++++
diff --git a/plasma/generic/dataengines/soliddevice/hddtemp.cpp b/plasma/generic/dataengines/soliddevice/hddtemp.cpp
index 9b74ac5..567137e 100644
--- a/plasma/generic/dataengines/soliddevice/hddtemp.cpp
+++ b/plasma/generic/dataengines/soliddevice/hddtemp.cpp
@@ -21,30 +21,39 @@
#include <QTcpSocket>
+#include <QTimerEvent>
+
#include <KDebug>
HddTemp::HddTemp(QObject* parent)
: QObject(parent),
m_failCount(0),
- m_timer(0)
+ m_cacheValid(false)
{
updateData();
- m_timer = new QTimer(this);
- connect(m_timer, SIGNAL(timeout()), this, SLOT(updateData()));
- m_timer->start(10000);
}
HddTemp::~HddTemp()
{
}
-QStringList HddTemp::sources() const
+QStringList HddTemp::sources()
{
+ updateData();
return m_data.keys();
}
+void HddTemp::timerEvent(QTimerEvent *event)
+{
+ killTimer(event->timerId());
+ m_cacheValid = false;
+}
+
bool HddTemp::updateData()
{
+ if (m_cacheValid) {
+ return true;
+ }
if (m_failCount > 4) {
return false;
}
@@ -80,6 +89,9 @@ bool HddTemp::updateData()
m_data[list[i]].append(list[i + 3]);
i += 5;
}
+ m_cacheValid = true;
+ startTimer(0);
+
return true;
}
diff --git a/plasma/generic/dataengines/soliddevice/hddtemp.h b/plasma/generic/dataengines/soliddevice/hddtemp.h
index d03d59b..ea372ea 100644
--- a/plasma/generic/dataengines/soliddevice/hddtemp.h
+++ b/plasma/generic/dataengines/soliddevice/hddtemp.h
@@ -37,16 +37,17 @@ class HddTemp : public QObject
HddTemp(QObject *parent=0);
~HddTemp();
- QStringList sources() const;
+ QStringList sources();
QVariant data(const QString source, const DataType type) const;
- private Q_SLOTS:
- bool updateData();
-
+ protected:
+ void timerEvent(QTimerEvent *event);
+
private:
int m_failCount;
+ bool m_cacheValid;
QMap m_data;
- QTimer *m_timer;
+ bool updateData();
};
++++++ same-pam-generic-classic.diff ++++++
Subject: Use same PAM for generic greeter
From: Dirk Mueller, Lubos Lunak
Patch-upstream: no
Bug: ?
This patch makes KDM and screen lock use the same PAM for classic and generic
authentication plugins. It also does some modifications that make it possible
to preselect a user even with generic plugin, although I(=Lubos) am not
completely sure about what exactly those parts do.
--- workspace/kdm/backend/client.c.sav 2010-03-09 11:10:47.000000000 +0100
+++ workspace/kdm/backend/client.c 2010-03-09 11:52:35.000000000 +0100
@@ -537,7 +537,8 @@ verify( GConvFunc gconv, int rootok )
#ifdef USE_PAM
pnopass = False;
- if (!strcmp( curtype, "classic" )) {
+ pdata.usecur = False;
+ if (!strcmp( curtype, "classic" ) || !strcmp( curtype, "generic" )) {
if (!gconv( GCONV_USER, 0 ))
return False;
if (isNoPassAllowed( curuser )) {
@@ -550,11 +551,11 @@ verify( GConvFunc gconv, int rootok )
psrv = PAMService;
} else
psrv = PAMService;
- pdata.usecur = True;
+ if (!strcmp( curtype, "classic"))
+ pdata.usecur = True;
} else {
sprintf( psrvb, "%.31s-%.31s", PAMService, curtype );
psrv = psrvb;
- pdata.usecur = False;
}
pdata.gconv = gconv;
if (!doPAMAuth( psrv, &pdata ))
--- workspace/kcheckpass/checkpass_pam.c.sav 2010-03-09 11:10:47.000000000 +0100
+++ workspace/kcheckpass/checkpass_pam.c 2010-03-09 11:52:35.000000000 +0100
@@ -140,12 +140,14 @@ AuthReturn Authenticate(const char *call
openlog("kcheckpass", LOG_PID, LOG_AUTH);
PAM_data.conv = conv;
- if (strcmp(method, "classic")) {
- sprintf(pservb, "%.31s-%.31s", caller, method);
- pam_service = pservb;
- } else {
+ if (strcmp(method, "classic") == 0) {
/* PAM_data.classic = 1; */
pam_service = caller;
+ } else if (strcmp(method, "generic") == 0) {
+ pam_service = caller;
+ } else {
+ sprintf(pservb, "%.31s-%.31s", caller, method);
+ pam_service = pservb;
}
pam_error = pam_start(pam_service, user, &PAM_conversation, &pamh);
if (pam_error != PAM_SUCCESS)
--- workspace/libs/kdm/kgreet_generic.cpp.sav 2010-03-09 11:52:17.000000000 +0100
+++ workspace/libs/kdm/kgreet_generic.cpp 2010-03-09 11:53:26.000000000 +0100
@@ -156,6 +156,7 @@ KGenericGreeter::textPrompt( const char
exp =
exp >= 0 ||
func != Authenticate ||
+ !echo ||
!(kgreeterplugin_info.flags & KGreeterPluginInfo::Presettable);
if (!exp && !fixedUser.isEmpty()) {
@@ -325,7 +326,7 @@ static bool init( const QString &,
echoMode = getConf( ctx, "EchoMode", QVariant( -1 ) ).toInt();
// Fielded entities are not supported per se.
// This implies that the first field is the presettable entity, if any.
- if (getConf( ctx, "generic.Presettable", QVariant( false ) ).toBool())
+// if (getConf( ctx, "generic.Presettable", QVariant( false ) ).toBool())
kgreeterplugin_info.flags |= KGreeterPluginInfo::Presettable;
KGlobal::locale()->insertCatalog( "kgreet_generic" );
return true;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org