Hello community,
here is the log from the commit of package kdebase4-workspace for openSUSE:Factory
checked in at Mon Jul 19 21:14:54 CEST 2010.
--------
--- KDE/kdebase4-workspace/kdebase4-wallpapers.changes 2010-07-05 17:44:43.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdebase4-workspace/kdebase4-wallpapers.changes 2010-07-19 21:14:10.224189000 +0200
@@ -1,0 +2,12 @@
+Fri Jul 16 18:16:56 CEST 2010 - dmueller@suse.de
+
+- update to 4.4.93svn1149349
+
+-------------------------------------------------------------------
+Thu Jul 8 01:21:12 CEST 2010 - dmueller@suse.de
+
+- update to 4.4.5
+ * bugfixes over 4.4.4
+ * see http://kde.org/announcements/changelogs/changelog4_4_4to4_4_5.php for details
+
+-------------------------------------------------------------------
kdebase4-workspace.changes: same change
python-kdebase4.changes: same change
calling whatdependson for head-i586
Old:
----
4_4_BRANCH.diff
kdebase-workspace-4.4.4.tar.bz2
klipper-kde229052-r1128514.diff
ksplash-scaling-selection.diff
ksplashx-jpeg.diff
kwin-intel-driver-version.diff
lowdiskspace.patch
plasma-dont-hide-jobs.diff
plasma-solid_hddtemp-no_timer.diff
New:
----
4_5_BRANCH.diff
build-final.diff
disable-python-support.diff
kdebase-workspace-4.4.93svn1149349.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase4-wallpapers.spec ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:22.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:22.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package kdebase4-wallpapers (Version 4.4.4)
+# spec file for package kdebase4-wallpapers (Version 4.4.93svn1149349)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,6 +20,7 @@
Name: kdebase4-wallpapers
BuildRequires: NetworkManager-devel bluez-devel libQtWebKit-devel libknotificationitem-devel
BuildRequires: libkdepimlibs4-devel libqimageblitz-devel libsmbclient-devel libxklavier-devel
+BuildRequires: libdbusmenu-qt-devel
%if %suse_version > 1020
BuildRequires: libusb-devel
%else
@@ -29,8 +30,8 @@
Group: System/GUI/KDE
Summary: KDE 4 Wallpapers
Url: http://www.kde.org/
-Version: 4.4.4
-Release: 4
+Version: 4.4.93svn1149349
+Release: 1
Source0: kdebase-workspace-%version.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
++++++ kdebase4-workspace.spec ++++++
++++ 842 lines (skipped)
++++ between KDE/kdebase4-workspace/kdebase4-workspace.spec
++++ and /mounts/work_src_done/STABLE/kdebase4-workspace/kdebase4-workspace.spec
++++++ python-kdebase4.spec ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:22.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:22.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package python-kdebase4 (Version 4.4.4)
+# spec file for package python-kdebase4 (Version 4.4.93svn1149349)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -18,7 +18,7 @@
Name: python-kdebase4
-BuildRequires: NetworkManager-devel bluez-devel libQtWebKit-devel libkdepimlibs4-devel libqimageblitz-devel
+BuildRequires: NetworkManager-devel bluez-devel libQtWebKit-devel libdbusmenu-qt-devel libkdepimlibs4-devel libqimageblitz-devel
BuildRequires: libknotificationitem-devel libsmbclient-devel libxklavier-devel python-kde4-devel
%if %suse_version > 1030
BuildRequires: ConsoleKit-devel libpolkit-qt-devel
@@ -28,8 +28,8 @@
Group: System/GUI/KDE
Summary: Python bindings for KDE 4 desktop shell
Url: http://www.kde.org/
-Version: 4.4.4
-Release: 4
+Version: 4.4.93svn1149349
+Release: 1
Source0: kdebase-workspace-%version.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: python-kde4 = %{version}
++++++ 4_4_BRANCH.diff -> 4_5_BRANCH.diff ++++++
++++ 1125 lines (skipped)
++++ between KDE/kdebase4-workspace/4_4_BRANCH.diff
++++ and /mounts/work_src_done/STABLE/kdebase4-workspace/4_5_BRANCH.diff
++++++ build-final.diff ++++++
Index: kcontrol/keyboard/xkb_rules.cpp
===================================================================
--- kcontrol/keyboard/xkb_rules.cpp (revision 1147030)
+++ kcontrol/keyboard/xkb_rules.cpp (working copy)
@@ -36,6 +36,7 @@
#include
#include
#include
+#include
#include
Index: kcontrol/keyboard/x11_helper.cpp
===================================================================
--- kcontrol/keyboard/x11_helper.cpp (revision 1147030)
+++ kcontrol/keyboard/x11_helper.cpp (working copy)
@@ -27,7 +27,7 @@
#include
#include
#include
-
+#include
// more information about the limit https://bugs.freedesktop.org/show_bug.cgi?id=19501
int X11Helper::MAX_GROUP_COUNT = 4;
Index: kcontrol/keyboard/xinput_helper.cpp
===================================================================
--- kcontrol/keyboard/xinput_helper.cpp (revision 1147030)
+++ kcontrol/keyboard/xinput_helper.cpp (working copy)
@@ -33,6 +33,7 @@
#include "x11_helper.h"
+#include
static int DEVICE_NONE = 0;
static int DEVICE_KEYBOARD = 1;
++++++ disable-python-support.diff ++++++
--- /suse/dmueller/src/kde/4.4/kdebase/workspace/CMakeLists.txt
+++ CMakeLists.txt
@@ -60,7 +60,6 @@
endif(PYQT4_FOUND AND PYQT4_VERSION STRLESS "040400")
macro_optional_find_package(PyKDE4)
-set(PythonSupport_FOUND TRUE)
#### End Python support ####
++++++ kdm-all-users-nopass.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,22 +1,18 @@
-Index: kdm/backend/client.c
-===================================================================
---- kdm/backend/client.c.orig
+--- kdm/backend/client.c
+++ kdm/backend/client.c
-@@ -525,6 +525,9 @@ isNoPassAllowed( struct passwd *pw )
- if (cursource != PWSRC_MANUAL)
- return True;
+@@ -522,6 +522,9 @@
+ if (cursource != PWSRC_MANUAL)
+ return True;
+ if (td->noPassAllUsers)
+ return True;
+
#if defined(USE_PAM) || defined(_AIX)
- /* Give nss_ldap, etc. a chance to normalize (uppercase) the name. */
- if (!(pw = getpwnam( un )) ||
-Index: kdm/config.def
-===================================================================
---- kdm/config.def.orig
+ /* Give nss_ldap, etc. a chance to normalize (uppercase) the name. */
+ if (!(pw = getpwnam(un)) ||
+--- kdm/config.def
+++ kdm/config.def
-@@ -1889,6 +1889,15 @@ Description:
+@@ -1914,6 +1914,15 @@
(and any other user with UID = 0).
<emphasis>Never</emphasis> list <systemitem class="username">root</systemitem>.
++++++ kdm-cope-with-new-grub.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,40 +1,37 @@
-Index: kdm/backend/bootman.c
-===================================================================
---- kdm/backend/bootman.c.orig
+--- kdm/backend/bootman.c
+++ kdm/backend/bootman.c
-@@ -133,31 +133,14 @@ setGrub( const char *opt, SdRec *sdr )
+@@ -133,31 +133,10 @@
static void
- commitGrub( void )
+ commitGrub(void)
{
-+ char buffer[PATH_MAX];
-+
- if (sdRec.bmstamp != mTime( GRUB_MENU ) &&
- setGrub( sdRec.osname, &sdRec ) != BO_OK)
- return;
+- if (sdRec.bmstamp != mTime(GRUB_MENU) &&
+- setGrub(sdRec.osname, &sdRec) != BO_OK)
+- return;
++ char buffer[PATH_MAX];
-- if (grubSetDefault) {
-- /* The grub-set-default command must be used, which is
-- * not so good because there is no way of setting an
-- * entry for the next boot only. */
-- char index[16];
-- const char *args[] = { grubSetDefault, index, 0 };
-- sprintf( index, "%d", sdRec.osindex );
-- runAndWait( (char **)args, environ );
-- } else {
-- /* The grub shell can be used with `savedefault'.
-- * That requires a (widely distributed) patch to grub, e.g.
-- * grub-0.97-once.patch. It won't work with a vanilla grub.*/
-- FILE *f;
-- int pid;
-- static const char *args[] = { 0, "--batch", "--no-floppy", 0 };
-- args[0] = grub;
-- if ((f = pOpen( (char **)args, 'w', &pid ))) {
-- fprintf( f, "savedefault --default=%d --once\n", sdRec.osindex );
-- pClose( f, &pid );
-- }
-- }
-+ snprintf(buffer, PATH_MAX, "/usr/sbin/grubonce %d", sdRec.osindex);
-+ system(buffer);
+- if (grubSetDefault) {
+- /* The grub-set-default command must be used, which is
+- * not so good because there is no way of setting an
+- * entry for the next boot only. */
+- char index[16];
+- const char *args[] = { grubSetDefault, index, 0 };
+- sprintf(index, "%d", sdRec.osindex);
+- runAndWait((char **)args, environ);
+- } else {
+- /* The grub shell can be used with `savedefault'.
+- * That requires a (widely distributed) patch to grub, e.g.
+- * grub-0.97-once.patch. It won't work with a vanilla grub.*/
+- FILE *f;
+- int pid;
+- static const char *args[] = { 0, "--batch", "--no-floppy", 0 };
+- args[0] = grub;
+- if ((f = pOpen((char **)args, 'w', &pid))) {
+- fprintf(f, "savedefault --default=%d --once\n", sdRec.osindex);
+- pClose(f, &pid);
+- }
+- }
++ snprintf(buffer, PATH_MAX, "/usr/sbin/grubonce %d", sdRec.osindex);
++ system(buffer);
}
static char *lilo;
++++++ kdm-dont-grab-mouse.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,31 +1,18 @@
-Subject: Do not grab mouse in KDM
-From: Lubos Lunak
-Patch-upstream: no (it's basically r732242 reverted)
-Bug: bnc#445726
-
-This patch reverts change in KDM that made it also grab the mouse, which
-prevents xvkbd from working on tablet PCs.
-
-
-Index: kdm/kfrontend/kdm_greet.c
-===================================================================
---- kdm/kfrontend/kdm_greet.c.orig
+--- kdm/kfrontend/kdm_greet.c
+++ kdm/kfrontend/kdm_greet.c
-@@ -462,7 +462,7 @@ secureInputs( Display *dpy )
+@@ -458,7 +458,6 @@
{
- debug( "secureInputs %s\n", dname );
- secureKeyboard( dpy );
-- securePointer( dpy );
-+/* securePointer( dpy ); */
- XSetInputFocus( dpy, None, None, CurrentTime );
- debug( "secureInputs %s done\n", dname );
+ debug("secureInputs %s\n", dname);
+ secureKeyboard(dpy);
+- securePointer(dpy);
+ XSetInputFocus(dpy, None, None, CurrentTime);
+ debug("secureInputs %s done\n", dname);
}
-@@ -473,7 +473,7 @@ unsecureInputs( Display *dpy )
- debug( "unsecureInputs %s\n", dname );
- XSetInputFocus( dpy, PointerRoot, PointerRoot, CurrentTime );
- XUngrabKeyboard( dpy, CurrentTime );
-- XUngrabPointer( dpy, CurrentTime );
-+/* XUngrabPointer( dpy, CurrentTime ); */
- XSync( dpy, False );
+@@ -469,7 +468,6 @@
+ debug("unsecureInputs %s\n", dname);
+ XSetInputFocus(dpy, PointerRoot, PointerRoot, CurrentTime);
+ XUngrabKeyboard(dpy, CurrentTime);
+- XUngrabPointer(dpy, CurrentTime);
+ XSync(dpy, False);
}
++++++ kdm-kdmconf.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,71 +1,69 @@
-Index: kdm/kfrontend/genkdmconf.c
-===================================================================
---- kdm/kfrontend/genkdmconf.c.orig
+--- kdm/kfrontend/genkdmconf.c
+++ kdm/kfrontend/genkdmconf.c
-@@ -1058,6 +1058,26 @@ linkFile( Entry *ce )
- doLinkFile( ce->value );
+@@ -1029,6 +1029,26 @@
}
-+static void
+ static void
+cleanupFile( const char *tname, int mode )
+{
-+ char *nname;
-+ File file, file2;
-+ char bn[PATH_MAX + 4];
++ char *nname;
++ File file, file2;
++ char bn[PATH_MAX + 4];
+
-+ ASPrintf( &nname, "%s/%s", newdir, tname );
-+ sprintf( bn, "%s.bak", nname );
++ ASPrintf( &nname, "%s/%s", newdir, tname );
++ sprintf( bn, "%s.bak", nname );
+
-+ if (readFile( &file, nname ) && readFile( &file2, bn )) {
-+ if ((file.eof - file.buf == file2.eof - file2.buf) && !strncmp( file.buf, file2.buf, file.eof - file.buf )) {
-+ unlink( nname );
-+ rename( bn, nname );
-+ chmod( nname, mode );
-+ }
-+ }
-+ free( nname );
++ if (readFile( &file, nname ) && readFile( &file2, bn )) {
++ if ((file.eof - file.buf == file2.eof - file2.buf) && !strncmp( file.buf, file2.buf, file.eof - file.buf )) {
++ unlink( nname );
++ rename( bn, nname );
++ chmod( nname, mode );
++ }
++ }
++ free( nname );
+}
+
- /* Create a new file in KDMCONF and fill it */
- static void
- writeFile( const char *tname, int mode, const char *cont )
-@@ -1066,6 +1086,8 @@ writeFile( const char *tname, int mode,
- fputs_( cont, f );
- fclose_( f );
- addedFile( tname );
-+ if (!no_backup)
-+ cleanupFile( tname + sizeof(KDMCONF), mode );
++static void
+ doLinkFile(const char *name)
+ {
+ File file;
+@@ -1067,9 +1087,10 @@
+ fputs_(cont, f);
+ fclose_(f);
+ addedFile(tname);
++ if (!no_backup)
++ cleanupFile(tname + sizeof(KDMCONF), mode);
}
-
-@@ -3070,9 +3092,9 @@ int main( int argc, char **argv )
- memcmp( oldkde + olen - sizeof(SHR_CONF) + 1,
- SHR_CONF, sizeof(SHR_CONF) ))
- {
-- fprintf( stderr,
-- "Warning: --old-kde does not end with " SHR_CONF ". "
-- "Might wreak havoc.\n" );
-+/* fprintf( stderr,
-+ * "Warning: --old-kde (%s) does not end with " SHR_CONF ". "
-+ * "Might wreak havoc.\n", oldkde ); */
- oldkdepfx = oldkde;
- } else
- ASPrintf( (char **)&oldkdepfx,
-@@ -3184,6 +3206,8 @@ int main( int argc, char **argv )
- f = createFile( "kdmrc", kdmrcmode );
- writeKdmrc( f );
- fclose_( f );
+-
+ static void
+ handleBgCfg(Entry *ce, Section *cs)
+ {
+@@ -3136,9 +3157,6 @@
+ memcmp(oldkde + olen - sizeof(SHR_CONF) + 1,
+ SHR_CONF, sizeof(SHR_CONF)))
+ {
+- fprintf(stderr,
+- "Warning: --old-kde does not end with " SHR_CONF ". "
+- "Might wreak havoc.\n");
+ oldkdepfx = oldkde;
+ } else
+ ASPrintf((char **)&oldkdepfx,
+@@ -3250,6 +3268,8 @@
+ f = createFile("kdmrc", kdmrcmode);
+ writeKdmrc(f);
+ fclose_(f);
+ if (!no_backup)
-+ cleanupFile( "kdmrc", kdmrcmode );
++ cleanupFile( "kdmrc", kdmrcmode );
- f = createFile( "README", 0644 );
- fprintf_( f,
-@@ -3232,6 +3256,8 @@ int main( int argc, char **argv )
+ f = createFile("README", 0644);
+ fprintf_(f,
+@@ -3298,6 +3318,8 @@
"\nTry 'genkdmconf --help' if you want to generate another configuration.\n"
- "\nYou may delete this README.\n" );
- fclose_( f );
-+ if (!no_backup)
-+ cleanupFile( "README", 0644 );
+ "\nYou may delete this README.\n");
+ fclose_(f);
++ if (!no_backup)
++ cleanupFile( "README", 0644 );
- return 0;
+ return 0;
}
++++++ kdm-make_it_cool.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,59 +1,57 @@
-Index: kdm/kfrontend/kgreeter.cpp
-===================================================================
---- kdm/kfrontend/kgreeter.cpp.orig
+--- kdm/kfrontend/kgreeter.cpp
+++ kdm/kfrontend/kgreeter.cpp
-@@ -66,20 +66,20 @@ Foundation, Inc., 51 Franklin Street, Fi
+@@ -67,20 +67,20 @@
class UserListView : public QListWidget {
public:
-- UserListView( QWidget *parent = 0 )
-+ UserListView( bool _themed, QWidget *parent = 0 )
- : QListWidget( parent )
- , cachedSizeHint( -1, 0 )
-+ , themed( _themed )
- {
- setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Ignored );
- setUniformItemSizes( true );
- setVerticalScrollMode( ScrollPerPixel );
- setIconSize( QSize( 48, 48 ) );
-- setAlternatingRowColors( true );
-+ setAlternatingRowColors( !themed );
- }
+- UserListView(QWidget *parent = 0)
++ UserListView( bool _themed, QWidget *parent = 0)
+ : QListWidget(parent)
+ , cachedSizeHint(-1, 0)
++ , themed (_themed)
+ {
+ setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored);
+ setUniformItemSizes(true);
+ setVerticalScrollMode(ScrollPerPixel);
+ setIconSize(QSize(48, 48));
+- setAlternatingRowColors(true);
++ setAlternatingRowColors(!themed);
+ }
- mutable QSize cachedSizeHint;
+ mutable QSize cachedSizeHint;
- protected:
- virtual QSize sizeHint() const
- {
- if (!cachedSizeHint.isValid()) {
-@@ -147,6 +147,7 @@ class UserListView : public QListWidget
+ virtual QSize sizeHint() const
+ {
+ if (!cachedSizeHint.isValid()) {
+@@ -148,6 +148,7 @@
private:
- bool m_suppressClick;
+ bool m_suppressClick;
+ bool themed;
};
class UserListViewItem : public QListWidgetItem {
-@@ -183,7 +184,7 @@ KGreeter::KGreeter( bool framed )
- "PrevUser" );
+@@ -184,7 +185,7 @@
+ "PrevUser");
- if (_userList) {
-- userView = new UserListView( this );
-+ userView = new UserListView( framed, this );
- connect( userView, SIGNAL(itemClicked( QListWidgetItem * )),
- SLOT(slotUserClicked( QListWidgetItem * )) );
- connect( userView, SIGNAL(itemDoubleClicked( QListWidgetItem * )),
-@@ -191,8 +192,6 @@ KGreeter::KGreeter( bool framed )
- }
- if (_userCompletion)
- userList = new QStringList;
-- if (userView || userList)
-- insertUsers();
-
- sessMenu = new QMenu( this );
- connect( sessMenu, SIGNAL(triggered( QAction * )),
-@@ -361,8 +360,11 @@ UserList::UserList( char **in )
- users.insert( *in );
+ if (_userList) {
+- userView = new UserListView(this);
++ userView = new UserListView(framed, this);
+ connect(userView, SIGNAL(itemClicked(QListWidgetItem *)),
+ SLOT(slotUserClicked(QListWidgetItem *)));
+ connect(userView, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
+@@ -192,8 +193,6 @@
+ }
+ if (_userCompletion)
+ userList = new QStringList;
+- if (userView || userList)
+- insertUsers();
+
+ sessMenu = new QMenu(this);
+ connect(sessMenu, SIGNAL(triggered(QAction *)),
+@@ -364,8 +363,11 @@
+ }
}
+#include
@@ -63,179 +61,166 @@
-KGreeter::insertUsers()
+KGreeter::insertUsers( int limit_users )
{
- struct passwd *ps;
+ struct passwd *ps;
-@@ -387,6 +389,9 @@ KGreeter::insertUsers()
- if (_showUsers == SHOW_ALL) {
- UserList noUsers( _noUsers );
- QSet<QString> dupes;
+@@ -391,6 +393,9 @@
+ if (_showUsers == SHOW_ALL) {
+ UserList noUsers(_noUsers);
+ QSet<QString> dupes;
+ QStringList toinsert;
+
+ int count = 0;
- for (setpwent(); (ps = getpwent()) != 0;) {
- if (*ps->pw_dir && *ps->pw_shell &&
- (ps->pw_uid >= (unsigned)_lowUserId ||
-@@ -398,10 +403,53 @@ KGreeter::insertUsers()
- QString username( QFile::decodeName( ps->pw_name ) );
- if (!dupes.contains( username )) {
- dupes.insert( username );
-- insertUser( default_pix, username, ps );
-+ toinsert.append( username );
-+
-+ if ( limit_users >= 0 && ++count > limit_users )
-+ break;
- }
- }
- }
-+ if ( limit_users >= 0 && ++count > limit_users ) {
-+ utmpname( _PATH_WTMP );
-+ setutxent();
-+ toinsert = QStringList();
-+ dupes.clear();
-+
-+ for ( count = 0; count < limit_users; ) {
-+ struct utmpx * ent = getutxent();
-+ if ( !ent )
-+ break;
-+ struct passwd *ps = getpwnam( ent->ut_user );
-+ if (ps && *ps->pw_dir && *ps->pw_shell &&
-+ (ps->pw_uid >= (unsigned)_lowUserId ||
-+ !ps->pw_uid && _showRoot) &&
-+ ( ps->pw_uid <= (unsigned)_highUserId ) &&
-+ !noUsers.hasUser( ps->pw_name ) &&
-+ !noUsers.hasGroup( ps->pw_gid ))
-+ {
-+ QString username( QFile::decodeName( ent->ut_user ) );
-+ if (!dupes.contains( username )) {
-+ dupes.insert( username );
-+ toinsert.append( username );
-+ count++;
-+ }
-+ }
+ for (setpwent(); (ps = getpwent()) != 0;) {
+ if (*ps->pw_dir && *ps->pw_shell &&
+ (ps->pw_uid >= (unsigned)_lowUserId ||
+@@ -402,10 +407,55 @@
+ QString username(QFile::decodeName(ps->pw_name));
+ if (!dupes.contains(username)) {
+ dupes.insert(username);
+- insertUser(default_pix, username, ps);
++ toinsert.append( username );
+
++ if ( limit_users >= 0 && ++count > limit_users )
++ break;
+
-+ }
-+ endutxent();
+ }
-+
-+ for ( QStringList::ConstIterator it = toinsert.begin();
-+ it != toinsert.end(); ++it )
++ }
++ }
++ if ( limit_users >= 0 && ++count > limit_users ) {
++ utmpname( _PATH_WTMP );
++ setutxent();
++ toinsert = QStringList();
++ dupes.clear();
++
++ for ( count = 0; count < limit_users; ) {
++ struct utmpx * ent = getutxent();
++ if ( !ent )
++ break;
++ struct passwd *ps = getpwnam( ent->ut_user );
++ if (ps && *ps->pw_dir && *ps->pw_shell &&
++ (ps->pw_uid >= (unsigned)_lowUserId ||
++ !ps->pw_uid && _showRoot) &&
++ ( ps->pw_uid <= (unsigned)_highUserId ) &&
++ !noUsers.hasUser( ps->pw_name ) &&
++ !noUsers.hasGroup( ps->pw_gid ))
+ {
-+ // pretty stupid to do another lookup round, but the number is limited
-+ // and caching struct passwd is pretty ugly
-+ struct passwd *ps = getpwnam( QFile::encodeName( *it ) );
-+ if ( ps )
-+ insertUser( default_pix, *it, ps );
-+ }
- } else {
- UserList users( _users );
- if (users.hasGroups()) {
-@@ -778,6 +826,9 @@ KStdGreeter::KStdGreeter()
- break;
- }
++ QString username( QFile::decodeName( ent->ut_user ) );
++ if (!dupes.contains( username )) {
++ dupes.insert( username );
++ toinsert.append( username );
++ count++;
++ }
+ }
++
++
+ }
++ endutxent();
+ }
++
++ for ( QStringList::ConstIterator it = toinsert.begin();
++ it != toinsert.end(); ++it )
++ {
++ // pretty stupid to do another lookup round, but the number is limited
++ // and caching struct passwd is pretty ugly
++ struct passwd *ps = getpwnam( QFile::encodeName( *it ) );
++ if ( ps )
++ insertUser( default_pix, *it, ps );
++ }
++
+ } else {
+ UserList users(_users);
+ if (users.hasGroups()) {
+@@ -782,6 +832,9 @@
+ break; }
+ }
+ if (userView || userList)
+ insertUsers();
+
- if (userView) {
- if (clock)
- inner_box->addWidget( clock, 0, Qt::AlignCenter );
-@@ -891,6 +942,9 @@ KThemedGreeter::KThemedGreeter( KdmTheme
+ if (userView) {
+ if (clock)
+ inner_box->addWidget(clock, 0, Qt::AlignCenter);
+@@ -894,6 +947,7 @@
+ setMouseTracking(true);
- adjustGeometry();
+ adjustGeometry();
++ themer->setTypeVisible( "userlist", true );
-+ // default
-+ themer->setTypeVisible( "userlist", true );
-+
- themer->setWidget( this );
+ themer->setWidget(this);
- connect( themer, SIGNAL(activated( const QString & )),
-@@ -974,6 +1028,13 @@ KThemedGreeter::KThemedGreeter( KdmTheme
- completeMenu();
+@@ -982,6 +1036,13 @@
+ completeMenu();
#endif
-+ if (userView || userList)
-+ {
-+ insertUsers(7);
-+ themer->setTypeVisible( "userlist", true );
-+ } else
-+ themer->setTypeVisible( "userlist", false );
-+
- if ((system_button = themer->findNode( "system_button" ))) {
- if (optMenu)
- addAction( optMenu->menuAction() );
-@@ -1004,7 +1065,10 @@ KThemedGreeter::pluginSetup()
- {
- inherited::pluginSetup();
-
-- if (userView && verify->entitiesLocal() && verify->entityPresettable() && userlist_node) {
-+ if (userView && verify->entitiesLocal() && verify->entityPresettable() && userlist_node) {
-+ userView->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
-+ userView->setMaximumHeight( userView->sizeHint().height() );
-+
- userlist_node->setWidget( userView );
- userlist_rect->setVisible( true );
- } else {
-Index: kdm/kfrontend/kgreeter.h
-===================================================================
---- kdm/kfrontend/kgreeter.h.orig
++ if (userView || userList)
++ {
++ insertUsers(7);
++ themer->setTypeVisible( "userlist", true );
++ } else
++ themer->setTypeVisible( "userlist", false );
++
+ if ((system_button = themer->findNode("system_button"))) {
+ if (optMenu)
+ addAction(optMenu->menuAction());
+@@ -1020,6 +1081,8 @@
+ inherited::pluginSetup();
+
+ if (userView && verify->entitiesLocal() && verify->entityPresettable() && userlist_node) {
++ userView->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
++ userView->setMaximumHeight( userView->sizeHint().height() );
+ userlist_node->setWidget(userView);
+ userlist_rect->setVisible(true);
+ } else {
+--- kdm/kfrontend/kgreeter.h
+++ kdm/kfrontend/kgreeter.h
-@@ -71,7 +71,7 @@ class KGreeter : public KGDialog, public
+@@ -70,7 +70,7 @@
+
protected:
- void installUserList();
- void insertUser( const QImage &, const QString &, struct passwd * );
-- void insertUsers();
-+ void insertUsers(int limit_users = -1);
- void putSession( const QString &, const QString &, bool, const char * );
- void insertSessions();
- virtual void pluginSetup();
-Index: kdm/kfrontend/themer/kdmitem.cpp
-===================================================================
---- kdm/kfrontend/themer/kdmitem.cpp.orig
+ void insertUser(const QImage &, const QString &, struct passwd *);
+- void insertUsers();
++ void insertUsers(int limit_users = -1);
+ void putSession(const QString &, const QString &, bool, const char *);
+ void insertSessions();
+ virtual void pluginSetup();
+--- kdm/kfrontend/themer/kdmitem.cpp
+++ kdm/kfrontend/themer/kdmitem.cpp
-@@ -65,7 +65,6 @@ KdmItem::KdmItem( QObject *parent, const
- !modes.split( ",", QString::SkipEmptyParts ).contains( "console" ))))
- {
- m_visible = false;
-- return;
- }
-
- m_showType = sel.attribute( "type" );
-@@ -78,7 +77,6 @@ KdmItem::KdmItem( QObject *parent, const
- themer()->typeVisible( m_showType ) == m_showTypeInvert)
- {
- m_visible = false;
-- return;
- }
- }
-
-Index: kdm/kfrontend/themer/kdmlist.cpp
-===================================================================
---- kdm/kfrontend/themer/kdmlist.cpp.orig
+@@ -65,7 +65,6 @@
+ !modes.split(",", QString::SkipEmptyParts).contains("console"))))
+ {
+ m_visible = false;
+- return;
+ }
+
+ m_showType = sel.attribute("type");
+@@ -78,7 +77,6 @@
+ themer()->typeVisible(m_showType) == m_showTypeInvert)
+ {
+ m_visible = false;
+- return;
+ }
+ }
+
+--- kdm/kfrontend/themer/kdmlist.cpp
+++ kdm/kfrontend/themer/kdmlist.cpp
-@@ -29,8 +29,6 @@ KdmList::KdmList( QObject *parent, const
- : KdmItem( parent, node )
+@@ -29,8 +29,6 @@
+ : KdmItem(parent, node)
{
- itemType = "list";
-- if (!isVisible())
-- return;
-
- // Read RECT TAGS
- QDomNodeList childList = node.childNodes();
-Index: kdm/kfrontend/themer/kdmthemer.cpp
-===================================================================
---- kdm/kfrontend/themer/kdmthemer.cpp.orig
+ itemType = "list";
+- if (!isVisible())
+- return;
+
+ // Read RECT TAGS
+ QDomNodeList childList = node.childNodes();
+--- kdm/kfrontend/themer/kdmthemer.cpp
+++ kdm/kfrontend/themer/kdmthemer.cpp
-@@ -227,11 +227,7 @@ KdmThemer::generateItems( KdmItem *paren
- else if (type == "svg")
- newItem = new KdmPixmap( parent, subnode );
- else
-- continue;
-- if (!newItem->isVisible()) {
-- delete newItem;
-- continue;
-- }
-+ continue;
- connect( newItem, SIGNAL(needUpdate( int, int, int, int )),
- SLOT(update( int, int, int, int )) );
- connect( newItem, SIGNAL(needPlacement()),
+@@ -224,10 +224,6 @@
+ } else {
+ continue;
+ }
+- if (!newItem->isVisible()) {
+- delete newItem;
+- continue;
+- }
+ connect(newItem, SIGNAL(needUpdate(int, int, int, int)),
+ SLOT(update(int, int, int, int)));
+ connect(newItem, SIGNAL(needPlacement()),
++++++ kdm-relaxed-auth.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,22 +1,20 @@
-Index: kdm/backend/auth.c
-===================================================================
---- kdm/backend/auth.c.orig
+--- kdm/backend/auth.c
+++ kdm/backend/auth.c
-@@ -607,6 +607,7 @@ defineLocal( FILE *file, Xauth *auth, in
- uname( &name );
- writeAddr( FamilyLocal, strlen( name.nodename ), (CARD8 *)name.nodename,
- file, auth, ok );
-+ setenv("XAUTHLOCALHOSTNAME", name.nodename, 1);
+@@ -610,6 +610,7 @@
+ writeAddr(FamilyLocal, strlen(name.nodename), (CARD8 *)name.nodename,
+ file, auth, ok);
#endif
++ setenv("XAUTHLOCALHOSTNAME", name.nodename, 1);
- /*
-@@ -1284,6 +1285,9 @@ setUserAuthorization( struct display *d
- userEnviron = setEnv( userEnviron, "XAUTHORITY", envname );
- systemEnviron = setEnv( systemEnviron, "XAUTHORITY", envname );
- }
-+ name = getenv("XAUTHLOCALHOSTNAME");
-+ if (name)
-+ userEnviron = setEnv( userEnviron, "XAUTHLOCALHOSTNAME", name);
- /* a chown() used to be here, but this code runs as user anyway */
- }
- debug( "done setUserAuthorization\n" );
+ /*
+ * For HP-UX, HP's Xlib expects a fully-qualified domain name, which
+@@ -1277,6 +1278,9 @@
+ userEnviron = setEnv(userEnviron, "XAUTHORITY", envname);
+ systemEnviron = setEnv(systemEnviron, "XAUTHORITY", envname);
+ }
++ name = getenv("XAUTHLOCALHOSTNAME");
++ if (name)
++ userEnviron = setEnv( userEnviron, "XAUTHLOCALHOSTNAME", name);
+ /* a chown() used to be here, but this code runs as user anyway */
+ }
+ debug("done setUserAuthorization\n");
++++++ kdm-suspend-hal.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,8 +1,29 @@
-Index: kdm/config.def
-===================================================================
---- kdm/config.def.orig
+--- kdm/backend/ctrl.c
++++ kdm/backend/ctrl.c
+@@ -499,6 +499,10 @@
+ Reply("nuke\t");
+ }
+ }
++ if (d->allowSuspend != SHUT_NONE) {
++ Reply( "suspend\t" );
++ }
++
+ if ((d->displayType & d_location) == dLocal &&
+ anyReserveDisplays())
+ {
+--- kdm/backend/greet.h
++++ kdm/backend/greet.h
+@@ -150,6 +150,7 @@
+ # define SHUT_REBOOT 1 /* how */
+ # define SHUT_HALT 2
+ # define SHUT_CONSOLE -1 /* pseudo-code */
++# define SHUT_SUSPEND -2 /* pseudo-code */
+ # define SHUT_SCHEDULE 0 /* when; config only */
+ # define SHUT_TRYNOW 1
+ # define SHUT_FORCENOW 2
+--- kdm/config.def
+++ kdm/config.def
-@@ -1793,6 +1793,19 @@ Description:
+@@ -1818,6 +1818,19 @@
Who is allowed to shut down the system. This applies both to the
greeter and to the command sockets.
@@ -22,38 +43,35 @@
Key: AllowSdForceNow
Type: enum
None: no forced shutdown is allowed at all
-Index: kdm/backend/greet.h
-===================================================================
---- kdm/backend/greet.h.orig
-+++ kdm/backend/greet.h
-@@ -150,6 +150,7 @@ from the copyright holder.
- # define SHUT_REBOOT 1 /* how */
- # define SHUT_HALT 2
- # define SHUT_CONSOLE -1 /* pseudo-code */
-+# define SHUT_SUSPEND -2 /* pseudo-code */
- # define SHUT_SCHEDULE 0 /* when; config only */
- # define SHUT_TRYNOW 1
- # define SHUT_FORCENOW 2
-Index: kdm/backend/ctrl.c
-===================================================================
---- kdm/backend/ctrl.c.orig
-+++ kdm/backend/ctrl.c
-@@ -435,6 +435,10 @@ processCtrl( const char *string, int len
- Reply( "nuke\t" );
- }
- }
-+ if (d->allowSuspend != SHUT_NONE) {
-+ Reply( "suspend\t" );
-+ }
+--- kdm/kfrontend/CMakeLists.txt
++++ kdm/kfrontend/CMakeLists.txt
+@@ -6,10 +6,14 @@
+ add_subdirectory( pics )
+ add_subdirectory( sessions )
+
++INCLUDE(UsePkgConfig)
++PKG_CHECK_MODULES(LAZY lazy)
+
- if ((d->displayType & d_location) == dLocal &&
- anyReserveDisplays())
- writer( fd, cbuf, sprintf( cbuf, "reserve %d\t",
-Index: kdm/kfrontend/kdmshutdown.cpp
-===================================================================
---- kdm/kfrontend/kdmshutdown.cpp.orig
+ include_directories(
+ ${KDEBASE_WORKSPACE_SOURCE_DIR}/kcontrol/kdm/background
+ ${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kdm
+ ${QIMAGEBLITZ_INCLUDES}
++ ${LAZY_INCLUDE_DIRS}
+ )
+
+ set(kdmthemer_SRCS
+@@ -72,7 +76,7 @@
+
+ macro_add_file_dependencies(kdm_greet.h ${confci})
+ kde4_add_executable(kdm_greet ${kdm_greet_SRCS})
+-target_link_libraries(kdm_greet ${KDE4_KDEUI_LIBS} ${QT_QTXML_LIBRARY} ${X11_X11_LIB} ${POSIX4_LIBRARIES})
++target_link_libraries(kdm_greet ${KDE4_KDEUI_LIBS} ${QT_QTXML_LIBRARY} ${X11_X11_LIB} ${POSIX4_LIBRARIES} lazy)
+ if (X11_XTest_FOUND)
+ target_link_libraries(kdm_greet ${X11_XTest_LIB})
+ endif (X11_XTest_FOUND)
+--- kdm/kfrontend/kdmshutdown.cpp
+++ kdm/kfrontend/kdmshutdown.cpp
-@@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fi
+@@ -22,6 +22,7 @@
*/
@@ -61,7 +79,7 @@
#include "kdmshutdown.h"
#include "kdm_greet.h"
#include "utils.h"
-@@ -33,6 +34,7 @@ Foundation, Inc., 51 Franklin Street, Fi
+@@ -33,6 +34,7 @@
#include
#include <KStandardGuiItem>
#include
@@ -69,44 +87,44 @@
#include <QAction>
#include <QApplication>
-@@ -55,6 +57,10 @@ Foundation, Inc., 51 Franklin Street, Fi
+@@ -55,6 +57,10 @@
int KDMShutdownBase::curPlugin = -1;
PluginList KDMShutdownBase::pluginList;
-+#define DBUS_HAL_INTERFACE "org.freedesktop.Hal"
-+#define DBUS_HAL_SYSTEM_POWER_INTERFACE "org.freedesktop.Hal.Device.SystemPowerManagement"
-+#define HAL_UDI_COMPUTER "/org/freedesktop/Hal/devices/computer"
-+
- KDMShutdownBase::KDMShutdownBase( int _uid, QWidget *_parent )
- : inherited( _parent )
- , box( new QVBoxLayout( this ) )
-@@ -65,6 +71,7 @@ KDMShutdownBase::KDMShutdownBase( int _u
- , doesNuke( false )
- , mayOk( true )
- , maySched( false )
-+ , willSuspend( false )
- , rootlab( 0 )
- , verify( 0 )
- , needRoot( -1 )
-@@ -85,6 +92,7 @@ KDMShutdownBase::complete( QWidget *prev
-
- if (uid &&
- ((willShut && _allowShutdown == SHUT_ROOT) ||
-+ ( willSuspend && _allowSuspend == SHUT_ROOT ) ||
- (mayNuke && _allowNuke == SHUT_ROOT)))
- {
- rootlab = new QLabel( i18n("Root authorization required."), this );
-@@ -171,6 +179,7 @@ KDMShutdownBase::updateNeedRoot()
++#define DBUS_HAL_INTERFACE "org.freedesktop.Hal"
++#define DBUS_HAL_SYSTEM_POWER_INTERFACE "org.freedesktop.Hal.Device.SystemPowerManagement"
++#define HAL_UDI_COMPUTER "/org/freedesktop/Hal/devices/computer"
++
+ KDMShutdownBase::KDMShutdownBase(int _uid, QWidget *_parent)
+ : inherited(_parent)
+ , box(new QVBoxLayout(this))
+@@ -65,6 +71,7 @@
+ , doesNuke(false)
+ , mayOk(true)
+ , maySched(false)
++ , willSuspend(false)
+ , rootlab(0)
+ , verify(0)
+ , needRoot(-1)
+@@ -85,6 +92,7 @@
+
+ if (uid &&
+ ((willShut && _allowShutdown == SHUT_ROOT) ||
++ ( willSuspend && _allowSuspend == SHUT_ROOT ) ||
+ (mayNuke && _allowNuke == SHUT_ROOT)))
+ {
+ rootlab = new QLabel(i18n("Root authorization required."), this);
+@@ -171,6 +179,7 @@
{
- int nNeedRoot = uid &&
- (((willShut && _allowShutdown == SHUT_ROOT) ||
-+ ( willSuspend && _allowSuspend == SHUT_ROOT ) ||
- (_allowNuke == SHUT_ROOT && doesNuke)));
- if (verify && nNeedRoot != needRoot) {
- if (needRoot == 1)
-@@ -487,6 +496,63 @@ KDMSlimShutdown::KDMSlimShutdown( QWidge
- buttonlay->addWidget( btnReboot );
- connect( btnReboot, SIGNAL(clicked()), SLOT(slotReboot()) );
+ int nNeedRoot = uid &&
+ (((willShut && _allowShutdown == SHUT_ROOT) ||
++ ( willSuspend && _allowSuspend == SHUT_ROOT ) ||
+ (_allowNuke == SHUT_ROOT && doesNuke)));
+ if (verify && nNeedRoot != needRoot) {
+ if (needRoot == 1)
+@@ -488,6 +497,63 @@
+ buttonlay->addWidget(btnReboot);
+ connect(btnReboot, SIGNAL(clicked()), SLOT(slotReboot()));
+ if ( _allowSuspend != SHUT_NONE )
+ {
@@ -122,10 +140,10 @@
+ standby = true;
+ else
+ standby = false;
-+ liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, "power_management.can_hibernate", &supported);
-+ if (supported == 1)
++ liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, "power_management.can_hibernate", &supported);
++ if (supported == 1)
+ suspend_disk = true;
-+ else
++ else
+ suspend_disk = false;
+
+ /* if (liblazy_polkit_is_user_allowed_by_uid(0, "hal-power-hibernate", NULL) != 1)
@@ -165,11 +183,11 @@
+ }
+ }
+
- int dummy, cur;
- if (getBootOptions( &targetList, &dummy, &cur )) {
- QMenu *targets = new QMenu( this );
-@@ -522,6 +588,65 @@ KDMSlimShutdown::KDMSlimShutdown( QWidge
- buttonlay->addSpacing( KDialog::spacingHint() );
+ int dummy, cur;
+ if (getBootOptions(&targetList, &dummy, &cur)) {
+ QMenu *targets = new QMenu(this);
+@@ -523,6 +589,65 @@
+ buttonlay->addSpacing(KDialog::spacingHint());
}
+void KDMSlimShutdown::slotSuspend()
@@ -234,103 +252,38 @@
void
KDMSlimShutdown::slotSched()
{
-@@ -591,16 +716,27 @@ KDMConfShutdown::KDMConfShutdown( int _u
- if (type == SHUT_CONSOLE)
- willShut = false;
- #endif
-+ QString title;
-+ if ( type == SHUT_HALT)
-+ title = i18n("Turn Off Computer");
-+ else {
-+#ifdef HAVE_VTS
-+ if ( type == SHUT_CONSOLE)
-+ title = i18n("Switch to Console");
-+ else
-+#endif
-+ if ( type == SHUT_SUSPEND ) {
-+ willSuspend = true;
-+ title = i18n( "Suspend Computer" );
-+ }
-+ else
-+ title = i18n("Restart Computer");
-+ }
-+
- box->addWidget( new QLabel( QString( "<qt><center><b><nobr>"
- "%1%2"
- "</nobr></b></center></qt>" )
-- .arg( (type == SHUT_HALT) ?
-- i18n("Turn Off Computer") :
--#ifdef HAVE_VTS
-- (type == SHUT_CONSOLE) ?
-- i18n("Switch to Console") :
--#endif
-- i18n("Restart Computer") )
-+ .arg( title )
- .arg( !os.isEmpty() ?
- i18n("<br/>(Next boot: %1)", os ) :
- QString() ),
-Index: kdm/kfrontend/CMakeLists.txt
-===================================================================
---- kdm/kfrontend/CMakeLists.txt.orig
-+++ kdm/kfrontend/CMakeLists.txt
-@@ -4,10 +4,14 @@ add_subdirectory( themes )
- add_subdirectory( pics )
- add_subdirectory( sessions )
-
-+INCLUDE(UsePkgConfig)
-+PKG_CHECK_MODULES(LAZY lazy)
-+
- include_directories(
- ${KDEBASE_WORKSPACE_SOURCE_DIR}/kcontrol/kdm/background
- ${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kdm
- ${QIMAGEBLITZ_INCLUDES}
-+ ${LAZY_INCLUDE_DIRS}
- )
-
- set(kdmthemer_SRCS
-@@ -70,7 +74,7 @@ endif (WITH_KDM_XCONSOLE)
-
- macro_add_file_dependencies(kdm_greet.h ${confci})
- kde4_add_executable(kdm_greet ${kdm_greet_SRCS})
--target_link_libraries(kdm_greet ${KDE4_KDEUI_LIBS} ${QT_QTXML_LIBRARY} ${X11_X11_LIB} ${POSIX4_LIBRARIES})
-+target_link_libraries(kdm_greet ${KDE4_KDEUI_LIBS} ${QT_QTXML_LIBRARY} ${X11_X11_LIB} ${POSIX4_LIBRARIES} lazy)
- if (X11_XTest_FOUND)
- target_link_libraries(kdm_greet ${X11_XTest_LIB})
- endif (X11_XTest_FOUND)
-Index: kdm/kfrontend/kdmshutdown.h
-===================================================================
---- kdm/kfrontend/kdmshutdown.h.orig
+--- kdm/kfrontend/kdmshutdown.h
+++ kdm/kfrontend/kdmshutdown.h
-@@ -67,7 +67,7 @@ class KDMShutdownBase : public FDialog,
+@@ -67,7 +67,7 @@
#else
- static const bool willShut = true;
+ static const bool willShut = true;
#endif
-- bool mayNuke, doesNuke, mayOk, maySched;
+- bool mayNuke, doesNuke, mayOk, maySched;
+ bool mayNuke, doesNuke, mayOk, maySched, willSuspend;
private Q_SLOTS:
- void slotSched();
-@@ -118,7 +118,6 @@ class KDMShutdown : public KDMShutdownBa
- QComboBox *targets;
- int oldTarget;
- int sch_st, sch_to;
+ void slotSched();
+@@ -118,7 +118,6 @@
+ QComboBox *targets;
+ int oldTarget;
+ int sch_st, sch_to;
-
};
class KDMRadioButton : public QRadioButton {
-@@ -161,11 +160,15 @@ class KDMSlimShutdown : public FDialog {
- void slotReboot();
- void slotReboot( QAction * );
- void slotSched();
-+ void slotSuspend();
-+ void slotSuspend( QAction * );
+@@ -161,11 +160,15 @@
+ void slotReboot();
+ void slotReboot(QAction *);
+ void slotSched();
++ void slotSuspend();
++ void slotSuspend(QAction *);
private:
- bool checkShutdown( int type, const QString &os );
- QStringList targetList;
-+ bool suspend_disk, suspend_ram, standby;
+ bool checkShutdown(int type, const QString &os);
+ QStringList targetList;
++ bool suspend_disk, suspend_ram, standby;
-+ QAction *qa_suspend_disk, *qa_suspend_ram, *qa_standby;
++ QAction *qa_suspend_disk, *qa_suspend_ram, *qa_standby;
};
class KDMConfShutdown : public KDMShutdownBase {
++++++ kdm-sysconfig-values.diff ++++++
++++ 741 lines (skipped)
++++ between KDE/kdebase4-workspace/kdm-sysconfig-values.diff
++++ and /mounts/work_src_done/STABLE/kdebase4-workspace/kdm-sysconfig-values.diff
++++++ kdm-wordbreak.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,8 +1,6 @@
-Index: kdm/kfrontend/kfdialog.cpp
-===================================================================
---- kdm/kfrontend/kfdialog.cpp.orig
+--- kdm/kfrontend/kfdialog.cpp
+++ kdm/kfrontend/kfdialog.cpp
-@@ -28,6 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fi
+@@ -28,6 +28,7 @@
#include <KGuiItem>
#include <KPushButton>
@@ -10,13 +8,13 @@
#include <QApplication>
#include <QDesktopWidget>
-@@ -170,6 +171,9 @@ KFMsgBox::KFMsgBox( QWidget *parent, QMe
- QLabel *label1 = new QLabel( this );
- label1->setPixmap( QMessageBox::standardIcon( type ) );
- QLabel *label2 = new QLabel( text, this );
-+ QRect d = KGlobalSettings::desktopGeometry(this);
-+ if ( label2->fontMetrics().size( 0, text).width() > d.width() * 3 / 5)
-+ label2->setWordWrap( true );
- KPushButton *button = new KPushButton( KStandardGuiItem::ok(), this );
- button->setDefault( true );
- button->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
+@@ -171,6 +172,9 @@
+ QLabel *label1 = new QLabel(this);
+ label1->setPixmap(QMessageBox::standardIcon(type));
+ QLabel *label2 = new QLabel(text, this);
++ QRect d = KGlobalSettings::desktopGeometry(this);
++ if ( label2->fontMetrics().size( 0, text).width() > d.width() * 3 / 5)
++ label2->setWordWrap( true );
+ KPushButton *button = new KPushButton(KStandardGuiItem::ok(), this);
+ button->setDefault(true);
+ button->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
++++++ pam-translate.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,30 +1,25 @@
-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
+--- libs/kdm/kgreet_generic.cpp
++++ libs/kdm/kgreet_generic.cpp
+@@ -141,7 +141,9 @@
- 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" ));
+ 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);
+ QLabel *label = new QLabel(qtext, m_parentWidget);
+ m_grid->addWidget(label, m_line++, 0, 1, 2);
+@@ -169,7 +171,10 @@
+ else
+ m_infoMsgs.clear();
-@@ -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 );
+- QLabel *label = new QLabel(QString::fromUtf8(prompt).trimmed());
++ // PAM does not translate these
++ ( void ) I18N_NOOP( "Password: " );
++ ( void ) I18N_NOOP( "Password or swipe finger: " );
++ QLabel *label = new QLabel(i18n( prompt ).trimmed());
+ m_grid->addWidget(label, m_line, 0);
+ m_children.append(label);
+ m_echo = echo;
++++++ plasma-panel-resize-hint.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,34 +1,39 @@
---- plasma/desktop/shell/panelcontroller.cpp.orig
+--- plasma/desktop/shell/panelcontroller.cpp
+++ plasma/desktop/shell/panelcontroller.cpp
-@@ -594,6 +594,7 @@ void PanelController::mouseMoveFilter(QM
- newX - screenGeom.left() <= screenGeom.width()/3) {
- move(newX, pos().y());
- resizeFrameHeight(geometry().left() - screenGeom.left());
-+ m_sizeTool->setText(i18n("Width: %1", screenGeom.left() + (mapToGlobal(event->pos()).x() - m_startDragPos.x())));
- }
+@@ -605,6 +605,8 @@
+ newX = qMin(newX, screenGeom.left() + screenGeom.width()/3);
+ move(newX, pos().y());
+ resizeFrameHeight(geometry().left() - screenGeom.left());
++ m_sizeTool->setText(i18n("Width: %1", screenGeom.left() + (mapToGlobal(event->pos()).x() -
++ m_startDragControllerPos.x())));
break;
}
-@@ -603,6 +604,7 @@ void PanelController::mouseMoveFilter(QM
- newX + width() - screenGeom.left() >= 2*(screenGeom.width()/3)) {
- move(newX, pos().y());
- resizeFrameHeight(screenGeom.right() - geometry().right());
-+ m_sizeTool->setText(i18n("Width: %1", screenGeom.right() - (mapToGlobal(event->pos()).x() - m_startDragPos.x()) - width() + 1));
- }
+ case Plasma::RightEdge: {
+@@ -613,6 +615,8 @@
+ newX = qMax(newX, screenGeom.left() + 2*(screenGeom.width()/3) - width());
+ move(newX, pos().y());
+ resizeFrameHeight(screenGeom.right() - geometry().right());
++ m_sizeTool->setText(i18n("Width: %1", screenGeom.right() - (mapToGlobal(event->pos()).x() -
++ m_startDragControllerPos.x()) - width() + 1));
break;
}
-@@ -612,6 +614,7 @@ void PanelController::mouseMoveFilter(QM
- newY - screenGeom.top()<= screenGeom.height()/3) {
- move(pos().x(), newY);
- resizeFrameHeight(geometry().top() - screenGeom.top());
-+ m_sizeTool->setText(i18n("Height: %1", screenGeom.top() + (mapToGlobal(event->pos()).y() - m_startDragPos.y())));
- }
+ case Plasma::TopEdge: {
+@@ -621,6 +625,9 @@
+ newY = qMin(newY, screenGeom.top() + screenGeom.height()/3);
+ move(pos().x(), newY);
+ resizeFrameHeight(geometry().top() - screenGeom.top());
++ m_sizeTool->setText(i18n("Height: %1", screenGeom.top() + (mapToGlobal(event->pos()).y() -
++ m_startDragControllerPos.y())));
++
break;
}
-@@ -622,6 +625,7 @@ void PanelController::mouseMoveFilter(QM
- newY + height() - screenGeom.top() >= 2*(screenGeom.height()/3)) {
- move(pos().x(), newY);
- resizeFrameHeight(screenGeom.bottom() - geometry().bottom());
-+ m_sizeTool->setText(i18n("Height: %1", screenGeom.bottom() - (mapToGlobal(event->pos()).y() - m_startDragPos.y()) - height() + 1));
- }
+ case Plasma::BottomEdge:
+@@ -630,6 +637,8 @@
+ newY = qMax(newY, screenGeom.top() + 2*(screenGeom.height()/3) - height());
+ move(pos().x(), newY);
+ resizeFrameHeight(screenGeom.bottom() - geometry().bottom());
++ m_sizeTool->setText(i18n("Height: %1", screenGeom.bottom() - (mapToGlobal(event->pos()).y() -
++ m_startDragControllerPos.y()) - height() + 1));
break;
}
+ }
++++++ plasma-plaindesktop.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,6 +1,12 @@
---- plasma/desktop/containments/plaindesktop/CMakeLists.txt.sav 2009-09-16 13:40:52.000000000 +0200
-+++ plasma/desktop/containments/plaindesktop/CMakeLists.txt 2010-05-10 16:46:34.260930438 +0200
-@@ -3,9 +3,8 @@ set(desktop_SRCS
+--- plasma/desktop/containments//CMakeLists.txt
++++ plasma/desktop/containments//CMakeLists.txt
+@@ -1,2 +1,3 @@
+ add_subdirectory(desktop)
+ add_subdirectory(panel)
++add_subdirectory(plaindesktop)
+--- plasma/desktop/containments//plaindesktop/CMakeLists.txt
++++ plasma/desktop/containments//plaindesktop/CMakeLists.txt
+@@ -3,9 +3,9 @@
itemspace.cpp
desktoplayout.cpp)
@@ -10,12 +16,13 @@
+target_link_libraries(plasma_containment_plaindesktop ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS})
-install(TARGETS plasma_containment_desktop DESTINATION ${PLUGIN_INSTALL_DIR})
--install(FILES plasma-containment-desktop.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+-install(FILES plasma-containment-desktop.desktop plasma-containment-desktopdashboard.desktop DESTINATION ${SERVICES_INSTALL_DIR})
-install(FILES plasma_desktop_containment.kwinrules DESTINATION ${DATA_INSTALL_DIR}/kwin/default_rules)
+install(TARGETS plasma_containment_plaindesktop DESTINATION ${PLUGIN_INSTALL_DIR})
-+install(FILES plasma-containment-plaindesktop.desktop DESTINATION ${SERVICES_INSTALL_DIR})
---- plasma/desktop/containments/plaindesktop/desktop.cpp.sav 2009-09-16 13:40:52.000000000 +0200
-+++ plasma/desktop/containments/plaindesktop/desktop.cpp 2010-05-10 16:45:33.882929026 +0200
++install(FILES plasma-containment-plaindesktop.desktop plasma-containment-plaindesktopdashboard.desktop DESTINATION ${SERVICES_INSTALL_DIR})
++install(FILES plasma_plaindesktop_containment.kwinrules DESTINATION ${DATA_INSTALL_DIR}/kwin/default_rules)
+--- plasma/desktop/containments//plaindesktop/desktop.cpp
++++ plasma/desktop/containments//plaindesktop/desktop.cpp
@@ -27,7 +27,7 @@
using namespace Plasma;
@@ -25,8 +32,8 @@
dropping(false)
{
qRegisterMetaType<QImage>("QImage");
---- plasma/desktop/containments/plaindesktop/plasma-containment-plaindesktop.desktop 2009-05-15 14:15:33.000000000 +0200
-+++ plasma/desktop/containments/plaindesktop/plasma-containment-plaindesktop.desktop 2009-05-15 14:07:28.000000000 +0200
+--- plasma/desktop/containments//plaindesktop/plasma-containment-plaindesktop.desktop
++++ plasma/desktop/containments//plaindesktop/plasma-containment-plaindesktop.desktop
@@ -1,17 +1,17 @@
[Desktop Entry]
# ctxt: plasma containment
@@ -38,7 +45,7 @@
Type=Service
X-KDE-ServiceTypes=Plasma/Applet,Plasma/Containment
X-Plasma-ContainmentCategories=desktop
- NoDisplay=true
+ NoDisplay=false
-X-KDE-Library=plasma_containment_desktop
+X-KDE-Library=plasma_containment_plaindesktop
@@ -49,11 +56,27 @@
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://plasma.kde.org/
X-KDE-PluginInfo-Category=Containments
+--- plasma/desktop/containments//plaindesktop/plasma-containment-plaindesktopdashboard.desktop
++++ plasma/desktop/containments//plaindesktop/plasma-containment-plaindesktopdashboard.desktop
+@@ -1,17 +1,17 @@
+ [Desktop Entry]
+ # ctxt: plasma containment
+-Name=Desktop Dashboard
+-Comment=Default desktop containment
++Name=Plain Desktop Dashboard
++Comment=Desktop containment without toolbox
+ Icon=user-desktop
+ Type=Service
+ X-KDE-ServiceTypes=Plasma/Applet,Plasma/Containment
+ X-Plasma-ContainmentCategories=desktop
+ NoDisplay=true
-Index: plasma/containments/CMakeLists.txt
---- plasma/desktop/containments/CMakeLists.txt.sav 2009-09-16 13:40:52.000000000 +0200
-+++ plasma/desktop/containments/CMakeLists.txt 2010-05-10 16:44:59.490931083 +0200
-@@ -1,2 +1,3 @@
- add_subdirectory(desktop)
- add_subdirectory(panel)
-+add_subdirectory(plaindesktop)
+-X-KDE-Library=plasma_containment_desktop
++X-KDE-Library=plasma_containment_plaindesktop
+ X-KDE-PluginInfo-Author=The Plasma Team
+ X-KDE-PluginInfo-Email=panel-devel@kde.org
+-X-KDE-PluginInfo-Name=desktopDashboard
++X-KDE-PluginInfo-Name=plaindesktopDashboard
+ X-KDE-PluginInfo-Version=1.0
+ X-KDE-PluginInfo-Website=http://plasma.kde.org/
+ X-KDE-PluginInfo-Category=Containments
++++++ same-pam-generic-classic.diff ++++++
--- /var/tmp/diff_new_pack.OHmDKE/_old 2010-07-19 21:14:23.000000000 +0200
+++ /var/tmp/diff_new_pack.OHmDKE/_new 2010-07-19 21:14:23.000000000 +0200
@@ -1,42 +1,6 @@
-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
+--- kcheckpass/checkpass_pam.c
++++ kcheckpass/checkpass_pam.c
+@@ -140,12 +140,14 @@
openlog("kcheckpass", LOG_PID, LOG_AUTH);
PAM_data.conv = conv;
@@ -55,22 +19,49 @@
}
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 ||
+--- kdm/backend/client.c
++++ kdm/backend/client.c
+@@ -537,7 +537,8 @@
+ #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)) {
+@@ -552,11 +553,11 @@
+ } 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))
+--- libs/kdm/kgreet_generic.cpp
++++ libs/kdm/kgreet_generic.cpp
+@@ -156,6 +156,7 @@
+ exp =
+ exp >= 0 ||
+ func != Authenticate ||
+ !echo ||
- !(kgreeterplugin_info.flags & KGreeterPluginInfo::Presettable);
+ !(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;
+ if (!exp && !fixedUser.isEmpty()) {
+@@ -325,8 +326,7 @@
+ 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())
+- kgreeterplugin_info.flags |= KGreeterPluginInfo::Presettable;
++ 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