diff -u kdeutils-4.2.2/debian/ktimer.install kdeutils-4.2.2/debian/ktimer.install --- kdeutils-4.2.2/debian/ktimer.install +++ kdeutils-4.2.2/debian/ktimer.install @@ -1,12 +1,6 @@ usr/bin/ktimer usr/share/applications/kde4/ktimer.desktop -usr/share/doc/kde4/HTML/en/ktimer/common -usr/share/doc/kde4/HTML/en/ktimer/first.png -usr/share/doc/kde4/HTML/en/ktimer/index.cache.bz2 -usr/share/doc/kde4/HTML/en/ktimer/index.docbook -usr/share/doc/kde4/HTML/en/ktimer/main.png -usr/share/doc/kde4/HTML/en/ktimer/running.png -usr/share/doc/kde4/HTML/en/ktimer/two.at.once.png +usr/share/doc/kde/HTML/en/ktimer/* usr/share/icons/hicolor/128x128/apps/ktimer.png usr/share/icons/hicolor/16x16/apps/ktimer.png usr/share/icons/hicolor/32x32/apps/ktimer.png diff -u kdeutils-4.2.2/debian/plasma-scriptengine-superkaramba.install kdeutils-4.2.2/debian/plasma-scriptengine-superkaramba.install --- kdeutils-4.2.2/debian/plasma-scriptengine-superkaramba.install +++ kdeutils-4.2.2/debian/plasma-scriptengine-superkaramba.install @@ -5,9 +5,9 @@ usr/lib/libsuperkaramba.so.4.2.0 usr/share/applications/kde4/superkaramba.desktop usr/share/dbus-1/interfaces/org.kde.superkaramba.xml -usr/share/doc/kde4/HTML/en/superkaramba/common -usr/share/doc/kde4/HTML/en/superkaramba/index.cache.bz2 -usr/share/doc/kde4/HTML/en/superkaramba/index.docbook +usr/share/doc/kde/HTML/en/superkaramba/common +usr/share/doc/kde/HTML/en/superkaramba/index.cache.bz2 +usr/share/doc/kde/HTML/en/superkaramba/index.docbook usr/share/icons/hicolor/128x128/apps/superkaramba.png usr/share/icons/hicolor/16x16/apps/superkaramba.png usr/share/icons/hicolor/22x22/apps/superkaramba.png diff -u kdeutils-4.2.2/debian/ark.install kdeutils-4.2.2/debian/ark.install --- kdeutils-4.2.2/debian/ark.install +++ kdeutils-4.2.2/debian/ark.install @@ -1,3 +1,4 @@ +../utilities-file-archiver.xpm /usr/share/pixmaps usr/bin/ark usr/lib/kde4/kerfuffle_7zip.so usr/lib/kde4/kerfuffle_libarchive.so @@ -8,10 +9,10 @@ usr/lib/libkerfuffle.so.4 usr/lib/libkerfuffle.so.4.2.0 usr/share/applications/kde4/ark.desktop -usr/share/doc/kde4/HTML/en/ark/common -usr/share/doc/kde4/HTML/en/ark/index.cache.bz2 -usr/share/doc/kde4/HTML/en/ark/index.docbook -usr/share/doc/kde4/HTML/en/ark/man-ark.1.docbook +usr/share/doc/kde/HTML/en/ark/common +usr/share/doc/kde/HTML/en/ark/index.cache.bz2 +usr/share/doc/kde/HTML/en/ark/index.docbook +usr/share/doc/kde/HTML/en/ark/man-ark.1.docbook usr/share/kde4/apps/ark/ark_part.rc usr/share/kde4/apps/ark/arkui.rc usr/share/kde4/config.kcfg/ark.kcfg diff -u kdeutils-4.2.2/debian/changelog kdeutils-4.2.2/debian/changelog --- kdeutils-4.2.2/debian/changelog +++ kdeutils-4.2.2/debian/changelog @@ -1,3 +1,45 @@ +kdeutils (4:4.2.2-1ubuntu1) karmic; urgency=low + + * Merge with Debian + * Debian changes: + - remove usr/share/kde4/services/ServiceMenus/viewdecrypted.desktop from + ark.install and add it in kgpg.install + - bump debian/compat and debhelper build dependency to v7 (to get more + sophisticated debian/tmp handling). + - update copyright + - add liboktetapart.so in okteta.install + - add plasma-scriptengine-superkaramba.install, printer-applet.install, + README.source + - switch from internal debian/cdbs/kde.mk to pkg-kde-tools: + - build depend on pkg-kde-tools + - replace /usr/share/cdbs/1/class/kde4.mk with + /usr/share/pkg-kde-tools/qt-kde-team/1/debian-qt-kde.mk in debian/rules + - rename superkaramba to plasma-scriptengine-superkaramba + - remove cmake, libplasma-dev from build-deps + * Ubuntu differences + - docs are in /usr/share/doc/kde + - add superkaramba transitional package + - add missing xpm for ark (utilities-file-archiver.xpm) + - kde-printer-applet - add package and deps + - kubuntu_01_printer_applet_trunk.diff + - conflicts/replaces for -kde4 packages + - conflicts/replaces for superkaramba + - change kdeutils-dbg to depend on kdeutils (not suggest) + - kdeutils-dev - add package and deps + - debian/not-installed - libkerfuffle.so, libsuperkaramba.so are in + Debian but not here (part of kdeutils-dev) + - ark - mark packages Suggests rather than Recommends` + + -- Alessandro Ghersi Fri, 08 May 2009 21:41:55 +0200 + +kdeutils (4:4.2.2-0ubuntu2) jaunty; urgency=low + + * Update kubuntu_01_printer_applet_trunk.diff from trunk + - Ensures all strings are localised + - Closes LP: #337093 "python2.6 crashed with AttributeError in job_event()" + + -- Jonathan Riddell Thu, 09 Apr 2009 21:46:17 +0100 + kdeutils (4:4.2.2-1) unstable; urgency=low * New upstream release: @@ -8,6 +50,15 @@ -- Ana Beatriz Guerrero Lopez Sun, 05 Apr 2009 13:08:10 +0200 +kdeutils (4:4.2.2-0ubuntu1) jaunty; urgency=low + + * New upstream release + - debian/control: Bump build-depends + - debian/kwalletmanager.install: Updated to reflect added/removed .png's + in the documentation. + + -- Andreas Wenning Sun, 29 Mar 2009 08:42:28 +0200 + kdeutils (4:4.2.1-1) experimental; urgency=low * New upstream release. @@ -20,6 +71,27 @@ -- Debian Qt/KDE Maintainers Thu, 05 Mar 2009 13:13:45 +0100 +kdeutils (4:4.2.1-0ubuntu1) jaunty; urgency=low + + * New upstream release: (LP: #300250) + - Bump build-depends versions in debian/control + - Update printer-applet-kde.install and ark.install files + + -- Jonathan Thomas Fri, 27 Feb 2009 13:58:25 -0500 + +kdeutils (4:4.2.0-0ubuntu3) jaunty; urgency=low + + * Add missing quilt build-dep + + -- Jonathan Riddell Fri, 30 Jan 2009 11:11:26 +0000 + +kdeutils (4:4.2.0-0ubuntu2) jaunty; urgency=low + + * Add kubuntu_01_printer_applet_trunk.diff to update + printer-applet to code I did in KDE trunk + + -- Jonathan Riddell Wed, 28 Jan 2009 17:31:25 +0000 + kdeutils (4:4.2.0-1) experimental; urgency=low * New upstream release. @@ -56,12 +128,87 @@ -- Debian Qt/KDE Maintainers Mon, 26 Jan 2009 22:04:28 +0100 +kdeutils (4:4.2.0-0ubuntu1) jaunty; urgency=low + + * New upstream release + * Changed doc path from kde4/HTML to kde/HTML in *.install files + * bumped build-deps kdepimlibs5-dev, libplasma-dev + + -- Richard Birnie Sun, 25 Jan 2009 15:55:47 +0000 + +kdeutils (4:4.1.96-0ubuntu1) jaunty; urgency=low + + * New upstream release + - debian/control: Bump build-deps versions + - debian/ark.install: + + Remove usr/lib/kde4/kerfuffle_bk.so and + usr/share/kde4/services/kerfuffle_bk.desktop + + -- Nathan Handler Thu, 08 Jan 2009 20:53:06 -0600 + +kdeutils (4:4.1.85-0ubuntu1) jaunty; urgency=low + + * Change Vcs-Browser to Launchpad and replace Vcs-Svn with Vcs-Bzr + * New upstream release + * Bump build-dep versions + * Update ktimer.install + + -- Harald Sitter Mon, 15 Dec 2008 17:55:26 +0100 + +kdeutils (4:4.1.80-0ubuntu1) jaunty; urgency=low + + [ Michael Casadevall ] + * New upstream release + * debian/control: + - Bumped build-deps to meet current build-requirements + * debian/patches: + - Removed kubuntu_01_printer_applet_trunk.diff - merged upstream + - Removed kubuntu_02_fix_debs_in_ark.diff - merged upstream + - Removed kubuntu_03_add_ark_gzplugin.diff - merged upstream + * debian/install: + - Refreshed for new release + + [ Jonathan Thomas ] + * Refreshed debian/ark.install for new upstream release + + -- Jonathan Thomas Wed, 26 Nov 2008 17:29:26 -0500 + kdeutils (4:4.1.3-2) experimental; urgency=low * Build the printer applet -- Sune Vuorela Sun, 30 Nov 2008 18:41:12 +0100 +kdeutils (4:4.1.3-1ubuntu1) jaunty; urgency=low + + * Merge with Debian + * Debian changes + - bump build deps (cmake 2.6.0) + - okteta expanded description block + - add missing files to kdf.install + * Ubuntu differences + - doc'd here as well as KUBUNTU-DEBIAN-DIFFERENCES + - use kde4.mk rather than local cdbs + - remove kgpg link patch - 97_fix_target_link_libraries.diff + - add missing xpm for ark (utilities-file-archiver.xpm) + - cleanup install file (sort): superkaramba.install + - bump standards version to 3.8.0 + - kde-printer-applet - add package and deps + - kubuntu_01_printer_applet_trunk.diff + - conflicts/replaces for -kde4 packages + - change kdeutils-dbg to depend on kdeutils (not suggest) + - kdeutils-dev - add package and deps + - debian/not-installed - libkerfuffle.so, libsuperkaramba.so are in + Debian but not here (part of kdeutils-dev) + - ark - mark packages Suggests rather than Recommends` + - ark - patches to fix opening various file formats + - kubuntu_02_fix_debs_in_ark.diff + - kubuntu_03_add_ark_gzplugin.diff + - merge changelog entries from Debian + - MD5SUM has changed on src + + -- Roderick B. Greening Fri, 07 Nov 2008 13:47:22 -0330 + kdeutils (4:4.1.3-1) experimental; urgency=low * New upstream @@ -77,6 +224,45 @@ -- Ana Beatriz Guerrero Lopez Tue, 30 Sep 2008 18:16:22 +0200 +kdeutils (4:4.1.2-0ubuntu5) intrepid; urgency=low + + * Modified kubuntu_03_add_ark_gzplugin.diff + + Remove application/x-gzip from libarchive in favor of libgz + + -- Harald Sitter Tue, 21 Oct 2008 21:39:49 +0200 + +kdeutils (4:4.1.2-0ubuntu4) intrepid; urgency=low + + * Add kubuntu_03_add_ark_gzplugin.diff from KDE trunk for gzip file reading + support (LP: #276236) + * Add zlib1g-dev as build dependency + + -- Harald Sitter Mon, 13 Oct 2008 17:55:39 +0200 + +kdeutils (4:4.1.2-0ubuntu3) intrepid; urgency=low + + * Backport upstream commit 857262 as kubuntu_02_fix_debs_in_ark.diff to fix + opening .deb files in ark. This can be removed come KDE 4.2. (LP: #39534) + + -- Jonathan Thomas Fri, 10 Oct 2008 13:41:00 -0400 + +kdeutils (4:4.1.2-0ubuntu2) intrepid; urgency=low + + * Add kubuntu_01_printer_applet_trunk.diff, fixes a crash and partially + fixes refresh, see https://bugs.kde.org/167699 + + -- Jonathan Riddell Mon, 06 Oct 2008 23:32:23 +0100 + +kdeutils (4:4.1.2-0ubuntu1) intrepid; urgency=low + + [ Devid Antonio Filoni ] + * New upstream release. + + [ Harald Sitter ] + * Properly bump build-dep versions + + -- Harald Sitter Sun, 28 Sep 2008 13:23:12 +0200 + kdeutils (4:4.1.1-1) experimental; urgency=low * New upstream release @@ -85,6 +271,23 @@ -- Sune Vuorela Fri, 29 Aug 2008 11:39:50 +0200 +kdeutils (4:4.1.1-0ubuntu2) intrepid; urgency=low + + * Rebuild against kdelibs 4:4.1.1+really4.1.1 + + -- Harald Sitter Tue, 02 Sep 2008 03:45:00 +0200 + +kdeutils (4:4.1.1-0ubuntu1) intrepid; urgency=low + + [ Steve Stalcup ] + * New upstream release + * Removed obsolete debian/cdbs dir + + [ Harald Sitter ] + * Removed obsolete THIS_SHOULD_GO_TO_UNSTABLE from debian/rules + + -- Harald Sitter Sun, 31 Aug 2008 12:56:51 +0200 + kdeutils (4:4.1.0-1) experimental; urgency=low * New upstream release. @@ -92,6 +295,52 @@ -- Ana Beatriz Guerrero Lopez Mon, 28 Jul 2008 02:06:25 +0200 +kdeutils (4:4.1.0-0ubuntu5) intrepid; urgency=low + + * Add build-dep on libzip-dev, now in main + + -- Jonathan Riddell Fri, 22 Aug 2008 19:45:36 +0100 + +kdeutils (4:4.1.0-0ubuntu4) intrepid; urgency=low + + * Add desktop/utilities-file-archiver.xpm icon (needed by Ark), (LP: #256466) + + -- Salvatore Palma Fri, 08 Aug 2008 19:59:10 +0200 + +kdeutils (4:4.1.0-0ubuntu3) intrepid; urgency=low + + * Add okteta and kde-printer-applet to kdeutils metapackage + + -- Jonathan Riddell Tue, 05 Aug 2008 12:22:25 +0100 + +kdeutils (4:4.1.0-0ubuntu2) intrepid; urgency=low + + * switch to kde4.mk from cdbs + + -- Jonathan Riddell Fri, 01 Aug 2008 15:29:44 +0000 + +kdeutils (4:4.1.0-0ubuntu1) intrepid; urgency=low + + * New upstream release + + -- Jonathan Thomas (The man) Wed, 23 Jul 2008 10:43:19 -0400 + +kdeutils (4:4.0.98-0ubuntu2) intrepid; urgency=low + + * Ark Suggests not Recommends + + -- Jonathan Riddell Fri, 18 Jul 2008 11:56:36 +0100 + +kdeutils (4:4.0.98-0ubuntu1) intrepid; urgency=low + + * New upstream release candidate + * Bump Standards-Version 3.8.0 + * Fix Anthony Mercatante's email address in debian/changelog + * Add python itself to kde-printer-applet's Deps + * -dbg depends kdeutils + + -- Harald Sitter Sat, 12 Jul 2008 14:19:17 +0200 + kdeutils (4:4.0.98-1) experimental; urgency=low * New upstream release, Release Candidate 1. @@ -108,6 +357,43 @@ -- Debian Qt/KDE Maintainers Sun, 29 Jun 2008 01:47:14 +0200 +kdeutils (4:4.0.83-0ubuntu6) intrepid; urgency=low + + * Add build-dep on python-kde4 + + -- Jonathan Riddell Thu, 26 Jun 2008 13:51:50 +0000 + +kdeutils (4:4.0.83-0ubuntu5) intrepid; urgency=low + + * Build-dep on python-qt4-dev + + -- Jonathan Riddell Thu, 26 Jun 2008 12:10:56 +0000 + +kdeutils (4:4.0.83-0ubuntu4) intrepid; urgency=low + + * Add build-dep on python-sip4-dev + + -- Jonathan Riddell Thu, 26 Jun 2008 11:39:26 +0000 + +kdeutils (4:4.0.83-0ubuntu3) intrepid; urgency=low + + * Add build-dep on libplasma-dev + + -- Jonathan Riddell Thu, 26 Jun 2008 11:07:06 +0000 + +kdeutils (4:4.0.83-0ubuntu2) intrepid; urgency=low + + * Make printer-applet depend on python-kde4 instead of python-qt4 + + -- Jonathan Riddell Wed, 25 Jun 2008 16:25:40 +0000 + +kdeutils (4:4.0.83-0ubuntu1) intrepid; urgency=low + + * New upstream beta release + * Remove libzip build-depend, security team haven't got round to doing MIR + + -- Jonathan Riddell Thu, 19 Jun 2008 11:45:18 +0000 + kdeutils (4:4.0.82+svn819867-1) experimental; urgency=low * New upstream snapshot. @@ -118,6 +404,22 @@ -- Ana Beatriz Guerrero Lopez Sun, 15 Jun 2008 20:23:57 +0200 +kdeutils (4:4.0.80-1ubuntu2) intrepid; urgency=low + + * Fix config install paths + + -- Jonathan Riddell Mon, 09 Jun 2008 16:13:11 +0100 + +kdeutils (4:4.0.80-1ubuntu1) intrepid; urgency=low + + * Merge with Debian + * Add conflicts/replaces on -kde4 packages + * Add package for kde-printer-applet, needs build-deps on + python-kde4-dev, python-cups, hal-cups-utils, + system-config-printer-common + + -- Jonathan Riddell Thu, 29 May 2008 14:56:09 +0100 + kdeutils (4:4.0.80-1) experimental; urgency=low * New upstream snapshot. @@ -315,0 +618,1532 @@ +kdeutils (4:3.5.9-0ubuntu3) hardy; urgency=low + + * Edited debian/patches/kubuntu_14_kmilo_powermanager.diff: + Brightness, suspend and hibernate events removed. (LP: #151444) + + -- Andreas Wenning Fri, 21 Mar 2008 03:44:17 +0100 + +kdeutils (4:3.5.9-0ubuntu2) hardy; urgency=low + + * Fix build-failure in patch 14_kmilo_actions.diff + + -- Jonathan Riddell Mon, 03 Mar 2008 11:12:36 +0000 + +kdeutils (4:3.5.9-0ubuntu1) hardy; urgency=low + + * New upstream release + + -- Jonathan Riddell Thu, 14 Feb 2008 12:27:08 +0000 + +kdeutils (4:3.5.8-1ubuntu7) hardy; urgency=low + + * debian/patches/kubuntu_14_kmilo_powermanager.diff: + Added Brightness Down & Up key actions (DCOP call to Guidance + Power-Manager). Fixed all DCOP calls to recent change of + application top level name (power-manager -> guidance). + + -- Luka Renko Sun, 10 Feb 2008 20:45:42 +0100 + +kdeutils (4:3.5.8-1ubuntu6) hardy; urgency=low + + * Rebuild against latest libqt3-mt + + -- Anthony Mercatante Thu, 24 Jan 2008 15:00:58 +0100 + +kdeutils (4:3.5.8-1ubuntu5) hardy; urgency=low + + * kgpg: Add depend on konsole + + -- Terence Simpson Tue, 08 Jan 2008 13:18:21 +0000 + +kdeutils (4:3.5.8-1ubuntu4) hardy; urgency=low + + * Add kubuntu_18_kmilo_rear_speakers_volume.diff from X2B to correctly + adjust volume for surround sound speaker systems + + -- Jonathan Riddell Fri, 14 Dec 2007 12:12:48 +0000 + +kdeutils (4:3.5.8-1ubuntu3) hardy; urgency=low + + * Rebuild for libsnmp10 -> libsnmp15 transition. + * s/developers/Developers/ for the Maintainer field. + + -- Steve Kowalik Mon, 10 Dec 2007 20:31:22 +1100 + +kdeutils (4:3.5.8-1ubuntu2) hardy; urgency=low + + * Run buildprep before upload + + -- Jonathan Riddell Thu, 15 Nov 2007 10:55:31 +0000 + +kdeutils (4:3.5.8-1ubuntu1) hardy; urgency=low + + * Merge with Debian, remaining change + - Add package kmilo-legacy + + -- Jonathan Riddell Wed, 14 Nov 2007 17:25:45 +0000 + +kdeutils (4:3.5.8-1) unstable; urgency=low + + * Implement the use of uploaders.mk and update control. + + +++ Changes by Ana Beatriz Guerrero Lopez: + + * New upstream release: + + Remove patch 16_klaptopdaemon_lock_and_hibernate, applied upstream. + * Bye, bye, xmms. Remove xmms support in superkaramba. + * Redo buildprep and bump build-dependencies to 3.5.8 + + -- Ana Beatriz Guerrero Lopez Sun, 14 Oct 2007 12:52:24 +0200 + +kdeutils (4:3.5.7-3) unstable; urgency=low + + * New patch for 16_klaptopdaemon_lock_and_hibernate, take 3. Thanks to Raul + again. (Closes: #416824) + + -- Ana Beatriz Guerrero Lopez Tue, 03 Jul 2007 15:58:20 +0200 + +kdeutils (4:3.5.7-2) unstable; urgency=low + + * Redone patch 16_klaptopdaemon_lock_and_hibernate. Thanks to Raúl Sánchez + Siles again. (Closes: #416824) + + -- Ana Beatriz Guerrero Lopez Mon, 18 Jun 2007 21:38:07 +0200 + +kdeutils (4:3.5.8-0ubuntu2) hardy; urgency=low + + * Added kubuntu_17_zoo_extraction_fix.diff, fixes zoo extraction + support. Patch from SVN + + -- Anthony Mercatante Thu, 25 Oct 2007 15:41:44 +0200 + +kdeutils (4:3.5.8-0ubuntu1) gutsy; urgency=low + + * New upstream release + + -- Jonathan Riddell Tue, 09 Oct 2007 11:41:26 +0100 + +kdeutils (4:3.5.7-1ubuntu4) gutsy; urgency=low + + * debian/control: drop xmms-dev to allow xmms to move to universe, adjust + maintainer field. + + -- Kees Cook Thu, 21 Jun 2007 13:59:49 -0700 + +kdeutils (4:3.5.7-1ubuntu3) gutsy; urgency=low + + * Added kubuntu_16_ark_utf8.diff + Fixed encoding issue opening rar and zip files. + + -- Anthony Mercatante Thu, 14 Jun 2007 13:17:22 +0200 + +kdeutils (4:3.5.7-1ubuntu2) gutsy; urgency=low + + * Added the compact look kmilo patch kubuntu_15_kmilo_compact_look.diff from + http://blog.guillermoamaral.com/2007/04/14/patch-kde-kmilo-compact-dialog/ + + -- Ryan Kavanagh Sat, 26 May 2007 11:04:06 -0400 + +kdeutils (4:3.5.7-1ubuntu1) gutsy; urgency=low + + * Merge with Debian for new upstream release + + -- Jonathan Riddell Wed, 23 May 2007 16:45:43 +0100 + +kdeutils (4:3.5.7-1) unstable; urgency=low + + * New upstream release: + + Adapt patch 15 about klaptop daemon filenames. + * Change build-deps from libsnmp10-dev to libsnmp-dev. + * Add patch to use unrar-free if available. (Closes: #423170) + + -- Sune Vuorela Tue, 15 May 2007 21:31:36 +0200 + +kdeutils (4:3.5.6-2ubuntu1) gutsy; urgency=low + + * Merge with Debian + * Remaining changes in KUBUNTU-DEBIAN-DIFFERENCES + + -- Jonathan Riddell Mon, 30 Apr 2007 20:32:55 +0100 + +kdeutils (4:3.5.6-2) unstable; urgency=low + + * Upload to unstable after Etch release. + + +++ Changes by Ana Beatriz Guerrero Lopez: + + * Update from libsnmp9-dev to libsnmp10-dev. + + -- Debian Qt/KDE Maintainers Mon, 23 Apr 2007 16:20:48 +0100 + +kdeutils (4:3.5.6-1) experimental; urgency=low + + * New upstream release. + * Update Uploaders. + * Make kdeutils-dbg depend on kdelibs-dbg to get useful backtraces when + debugging. + + -- Debian Qt/KDE Maintainers Wed, 17 Jan 2007 00:16:21 +0100 + +kdeutils (4:3.5.5-2) unstable; urgency=medium + + +++ Changes by Fathi Boudra: + + * Add 14_kmilo_actions patch, stolen from Kubuntu. It adds new actions to the + generic kmilo actions (volume up/down and mute). Thanks to Jonathan + Riddell. (Closes: #396622) + + * Remove tpctl build-depends, which was removed from testing due to #392235 + and #392239. (Closes: #397637) + + +++ Changes by Josh Metzler: + + * Adapt rewritten paragraph for kcharselect.1 manpage. (Closes: #314691) + + * Add klaptopdaemon patch to check for empty filenames before trying to + open them so we don't fill .xsession-errors and keep the disk busy. + (Closes: #397098) + + -- Debian Qt/KDE Maintainers Tue, 14 Nov 2006 17:32:12 -0500 + +kdeutils (4:3.5.6-0ubuntu2) feisty; urgency=low + + * Added kubuntu_14_kmilo_powermanager.diff: + Implement keyboard shortcuts for laptop keys (Battery, Suspend, + Hibernate). Guidance Power Manager is called trough DCOP interfaces. + + -- Luka Renko Sun, 4 Feb 2007 20:57:29 +0100 + +kdeutils (4:3.5.6-0ubuntu1) feisty; urgency=low + + * New upstream release + * Remove patches applied upstream + - kubuntu_10_show_ksim.diff + - kubuntu_13_ark_part.diff + + -- Jonathan Riddell Wed, 17 Jan 2007 11:22:30 +0000 + +kdeutils (4:3.5.5-1ubuntu4) feisty; urgency=low + + * Remove kmilo.install.powerpc, fix build failure, it isn't + needed since we don't use pbbuttons + + -- Jonathan Riddell Mon, 15 Jan 2007 20:22:42 +0000 + +kdeutils (4:3.5.5-1ubuntu3) feisty; urgency=low + + * Rebuild for python2.5 as the default python version. + + -- Matthias Klose Mon, 15 Jan 2007 17:57:17 +0000 + +kdeutils (4:3.5.5-1ubuntu2) feisty; urgency=low + + * Removed ark_part.desktop from ark.install + + -- Anthony Mercatante Mon, 04 Dec 2006 22:53:32 +0200 + +kdeutils (4:3.5.5-1ubuntu1) feisty; urgency=low + + * Merge with Debian + * Compile with --enable-gcc-hidden-visibility + + -- Jonathan Riddell Thu, 16 Nov 2006 20:41:48 +0000 + +kdeutils (4:3.5.5-1) unstable; urgency=low + + * New upstream release. + + Fixes kcalc: Alt-H does not select hex. (Closes: #272026) + + Fixes kwalletmanager does not appear in kde system tray. + (Closes: #372258) + + Fixes kgpg: Kgpg editor crashes on decrypting. (Closes: #372767) + + +++ Changes by Christopher Martin: + + * Change ark's Recommends: p7zip to p7zip-full, which has the binaries it + actually looks for. (Closes: #381696) + + * Allow kpowersave, an alternative to klaptopdaemon, to satisfy the Depends + of kdeutils. (Closes: #382545) + + -- Debian Qt/KDE Maintainers Wed, 4 Oct 2006 20:39:27 -0400 + +kdeutils (4:3.5.4-1) unstable; urgency=low + + * New upstream release. + + * KDE_3_5_BRANCH update (up to r567761). + + Fixes kwalletmanager crashes on logout. (Closes: #372564, #377001) + + +++ Changes by Christopher Martin: + + * Add kdf, kwikdisk, kfloppy, and kedit manpages, thanks to Holger Hartmann. + (Closes: #370490, #370527, #370783) + + -- Debian Qt/KDE Maintainers Sat, 29 Jul 2006 21:01:40 -0400 + +kdeutils (4:3.5.5-0ubuntu3) feisty; urgency=low + + * Upgrade kubuntu_13_ark_part.diff for better 7z integration + + -- Anthony Mercatante Fri, 20 Oct 2006 18:50:05 +0200 + +kdeutils (4:3.5.5-0ubuntu2) edgy; urgency=low + + * Add kubuntu_13_ark_part.diff, fixes ark kpart + + -- Anthony Mercatante Tue, 11 Oct 2006 13:42:05 +0200 + +kdeutils (4:3.5.5-0ubuntu1) edgy; urgency=low + + * New upstream release + * kubuntu_12_kmilo_actions.diff updated + * Remove kubuntu_13_downgrade_kwallet.diff + + -- Jonathan Riddell Tue, 3 Oct 2006 10:56:05 +0000 + +kdeutils (4:3.5.4-0ubuntu5) edgy; urgency=low + + * Rebuild with latest cdbs to add gettext domain to .desktop files for + langpacks-desktopfiles-kde, no source changes + + -- Jonathan Riddell Tue, 5 Sep 2006 22:53:11 +0000 + +kdeutils (4:3.5.4-0ubuntu4) edgy; urgency=low + + * Added kubuntu_13_downgrade_kwallet to avoid bug #57696, downgrading + kwalletmanager to 3.5.2, This bug has been reported on KDE 2 month + ago (http://bugs.kde.org/show_bug.cgi?id=129161) and 3.5.4 has been + released without any correction. + Because most apps' authentication system is based on this, the issue + is quite critical. + This is a crappy way to do, but sometimes the working thing isn't the + cleanest. + + -- Anthony Mercatante Sat, 26 Aug 2006 11:43:28 +0200 + +kdeutils (4:3.5.4-0ubuntu3) edgy; urgency=low + + * Removed ubuntu.xmodmap from kmilo (moved to kdebase package) + + -- Luka Renko Sun, 20 Aug 2006 12:15:28 +0200 + +kdeutils (4:3.5.4-0ubuntu2) edgy; urgency=low + + [ Jonathan Riddell ] + * Create package kmilo-legacy for all the non-generic KMilo plugins + + [ Luka Renko and Jonathan Riddell ] + * Added ubuntu.xmodmap with keycode -> keysym mappings + * kubuntu_12_kmilo_actions.diff: kmilo actions and run xmodmap on startup + + -- Jonathan Riddell Fri, 4 Aug 2006 16:59:19 +0000 + +kdeutils (4:3.5.4-0ubuntu1) edgy; urgency=low + + * New upstream release + + -- Jonathan Riddell Tue, 25 Jul 2006 10:12:20 +0000 + +kdeutils (4:3.5.3-1ubuntu1) edgy; urgency=low + + * Sync with Debian + + -- Jonathan Riddell Mon, 3 Jul 2006 20:57:29 +0000 + +kdeutils (4:3.5.3-1) unstable; urgency=low + + * New upstream release. + + Fixes kregexpeditor crash when editing Pos (or Neg) Look Ahead. + (Closes: #287811) + + Fixes ark's ability to open deb packages. (Closes: #362871) + + * KDE_3_5_BRANCH update (up to r548145). + + +++ Changes by Christopher Martin: + + * Remove arj from ark's Recommends, since support doesn't exist currently. + (Closes: #362677) + + * Add p7zip to the ark Recommends, since Free support for that format does + exist. + + * Add ark manpage, thanks to Sune Vuorela. (Closes: #365806) + + * Add kcalc and khexedit manpages, thanks to Holger Hartmann. + (Closes: #369855, #370170) + + -- Debian Qt/KDE Maintainers Sun, 4 Jun 2006 16:47:31 -0400 + +kdeutils (4:3.5.2-1) unstable; urgency=low + + * New upstream release. + + * KDE_3_5_BRANCH update (up to r524080). + + +++ Changes by Christopher Martin: + + * When klaptopdaemon changes klaptop_acpi_helper's permissions, use + dpkg-statoverride. Thanks to Romain Lenglet for the patch. See + klatopdaemon's README.Debian for details. + (Closes: #355527, #355529) + + -- Debian Qt/KDE Maintainers Wed, 29 Mar 2006 19:16:13 -0500 + +kdeutils (4:3.5.1-2) unstable; urgency=low + + +++ Changes by Christopher Martin: + + * KDE_3_5_BRANCH update (up to r507313). Includes kcalc fixes for hex + precision. (Closes: #347928) + + * Add a patch which dlopens XMMS instead of linking to it in Superkaramba. + Set XMMS as a Suggests, rather than a dependency. Thanks to Kevin Krammer + for the patch. (Closes: #276587, #350589) + + -- Debian Qt/KDE Maintainers Wed, 8 Feb 2006 20:12:20 -0500 + +kdeutils (4:3.5.1-1) unstable; urgency=low + + * New upstream release. + + +++ Changes by Christopher Martin: + + * Upload to unstable. + + -- Debian Qt/KDE Maintainers Fri, 27 Jan 2006 11:56:34 -0500 + +kdeutils (4:3.5.0-3) unstable; urgency=low + + +++ Changes by Christopher Martin: + + * Upload to unstable. + + * KDE_3_5_BRANCH update (up to r495372). + + -- Debian Qt/KDE Maintainers Sat, 7 Jan 2006 17:19:54 -0500 + +kdeutils (4:3.5.0-2) experimental; urgency=low + + * Upload to experimental. + + * KDE_3_5_BRANCH update (up to r489522). + + +++ Changes by Christopher Martin: + + * No longer build with gcc-3.4 on any architectures, since gcc-4.0 should + be fixed. (Closes: #342990) + + -- Debian Qt/KDE Maintainers Sun, 18 Dec 2005 18:53:11 -0500 + +kdeutils (4:3.5.2-0ubuntu8) dapper; urgency=low + + * debian/cdbs/kde.mk: + - added dh_iconcache. + + -- Daniel Holbach Sun, 21 May 2006 16:42:11 +0200 + +kdeutils (4:3.5.2-0ubuntu7) dapper; urgency=low + + * Add kubuntu_11_suspend2.diff fixing suspect2 detection, + closes Malone #41926 + + -- Jonathan Riddell Mon, 1 May 2006 17:27:21 +0100 + +kdeutils (4:3.5.2-0ubuntu6) dapper; urgency=low + + * Fix ksim.install for removed .desktop file + + -- Jonathan Riddell Mon, 1 May 2006 16:09:05 +0100 + +kdeutils (4:3.5.2-0ubuntu5) dapper; urgency=low + + * Add kubuntu_10_show_ksim.diff + Closes malone #40113 + + -- Jonathan Riddell Sat, 29 Apr 2006 15:40:37 +0100 + +kdeutils (4:3.5.2-0ubuntu4) dapper; urgency=low + + * Edit debian/cdbs/kde.mk to mark .po files as UTF-8 + + -- Jonathan Riddell Fri, 21 Apr 2006 19:14:31 +0100 + +kdeutils (4:3.5.2-0ubuntu3) dapper; urgency=low + + * Install klaptop_acpi_helper setuid root so it can be used by default + + -- Jonathan Riddell Tue, 18 Apr 2006 16:52:49 +0100 + +kdeutils (4:3.5.2-0ubuntu2) dapper; urgency=low + + * Remove xmms build-dep + + -- Jonathan Riddell Thu, 30 Mar 2006 19:14:56 +0100 + +kdeutils (4:3.5.2-0ubuntu1) dapper; urgency=low + + * New upstream release + + -- Jonathan Riddell Mon, 20 Mar 2006 12:06:31 +0000 + +kdeutils (4:3.5.1-0ubuntu2) dapper; urgency=low + + * Add kubuntu_09_hide_ark_part.diff, hide the mostly unused Ark part + things open in Ark proper by default anyway + + -- Jonathan Riddell Wed, 15 Feb 2006 15:50:17 +0000 + +kdeutils (4:3.5.1-0ubuntu1) dapper; urgency=low + + * New upstream release + * Build-dep on libsnmp5-dev | libsnmp9-dev for backports + + -- Jonathan Riddell Mon, 23 Jan 2006 14:26:07 +0000 + +kdeutils (4:3.5.0-0ubuntu4) dapper; urgency=low + + * Add kubuntu_08_kwallermanager_menu_tidy.diff to + remove KWallet from menu (can be launched from systray) + + -- Jonathan Riddell Wed, 18 Jan 2006 15:20:43 +0000 + +kdeutils (4:3.5.0-0ubuntu3) dapper; urgency=low + + * Rebuild because libXft.la is gone + + -- Stephan Hermann Sat, 14 Jan 2006 15:52:30 +0100 + +kdeutils (4:3.5.0-0ubuntu2) dapper; urgency=low + + * Add kubuntu_07_tidy_messages.diff to rm generated + tips.cpp file + + -- Jonathan Riddell Thu, 8 Dec 2005 03:02:34 +0000 + +kdeutils (4:3.5.0-0ubuntu1) dapper; urgency=low + + * New upstream release + * Remove gcc 3.4 on hppa + + -- Jonathan Riddell Tue, 6 Dec 2005 12:29:24 +0000 + +kdeutils (4:3.5-rc2-0ubuntu2) dapper; urgency=low + + * Build-dep on libsnmp9-dev not libsnmp5-dev + + -- Jonathan Riddell Sat, 26 Nov 2005 17:41:10 +0000 + +kdeutils (4:3.5-rc2-0ubuntu1) dapper; urgency=low + + * New upstream pre-release + * Generate .pot files + + -- Jonathan Riddell Mon, 21 Nov 2005 22:51:19 +0000 + +kdeutils (4:3.5-rc1-1ubuntu1) dapper; urgency=low + + * Sync with Debian + + -- Jonathan Riddell Mon, 14 Nov 2005 01:18:32 +0000 + +kdeutils (4:3.5.0-1) alioth; urgency=low + + * New upstream release. + + +++ Changes by Christopher Martin: + + * New package: superkaramba. It is no longer an independent source package, + but has been merged in KDE. + + * Also add a kdeutils-doc package, containing the superkaramba and kcalc + API documentation. + + * Improve ark's description by referring to it as a _graphical_ archiving + tool. (Closes: #335839) + + * Bump DH_COMPAT to 5. No changes. + + * Add kdeutils-dbg, to help track down problems. + + -- Debian Qt/KDE Maintainers Wed, 30 Nov 2005 09:34:21 -0500 + +kdeutils (4:3.4.3-2) unstable; urgency=low + + * Upload to unstable, rebuilding against kdelibs4c2a. + + +++ Changes by Christopher Martin: + + * Improve ark's description by referring to it as a _graphical_ archiving + tool. (Closes: #335839) + + -- Debian Qt/KDE Maintainers Thu, 1 Dec 2005 12:03:16 +0100 + +kdeutils (4:3.4.3-1) experimental; urgency=low + + * New upstream release. + + +++ Changes by Christopher Martin: + + * Add a patch which fixes kfloppy formatting with udev, though auto-detection + remains broken. This is an adapted version of the patch submitted by + Edward J. Sharnock. (Closes: #329588, #278909, #264924) + + -- Debian Qt/KDE Maintainers Sun, 16 Oct 2005 09:50:15 -0400 + +kdeutils (4:3.4.2-3) unstable; urgency=low + + +++ Changes by Adeodato Simó: + + * Build-Depend on libsnmp9-dev instead of libsnmp5-dev. (Closes: #328210) + + -- Debian Qt/KDE Maintainers Wed, 14 Sep 2005 11:59:43 +0200 + +kdeutils (4:3.4.2-2) unstable; urgency=low + + +++ Changes by Luk Claes: + + * Build with g++-3.4 on arm, m68k and hppa; kdeutils triggers the same gcc 4.0 + ICE as arts does. + + * Update FSF's address + + -- Debian Qt/KDE Maintainers Sat, 10 Sep 2005 21:31:16 +0000 + +kdeutils (4:3.4.2-1) unstable; urgency=low + + * New upstream release. + + +++ Changes by Pierre Habouzit: + + * Change kdessh depends: ssh becomes (open)ssh-client. (Closes: #315045) + + +++ Changes by Christopher Martin: + + * Add a patch to disable klaptopdaemon's warning concerning + klaptop_acpi_helper's checksum when using the provided dialog to make + it SUID, since this warning always erroneously states that the + checksum has changed since installation. + (Closes: #247864). + + +++ Changes by Luk Claes: + + * Add me to uploaders. + + -- Debian Qt/KDE Maintainers Sun, 3 Jul 2005 21:25:30 +0200 + +kdeutils (4:3.4.3-0ubuntu2) dapper; urgency=low + + * Add missing build-depends + + -- LaMont Jones Tue, 1 Nov 2005 14:49:18 -0700 + +kdeutils (4:3.4.3-0ubuntu1) breezy; urgency=low + + * New upstream release + * Build with GCC 3.4 on hppa + + -- Jonathan Riddell Fri, 7 Oct 2005 19:57:56 +0000 + +kdeutils (4:3.4.2-0ubuntu3) breezy; urgency=low + + * Fix kubuntu_04_use_pmi.diff, call suspend on suspend not hibernate + + -- Jonathan Riddell Wed, 5 Oct 2005 01:31:31 +0100 + +kdeutils (4:3.4.2-0ubuntu2) breezy; urgency=low + + * Add kubuntu_03_klaptopdaemon_35.diff make klaptopdaemon use scripts + instead of /proc directly + * Add kubuntu_04_use_pmi.diff make klaptop_acpi_helper use /usr/sbin/pmi + * Add kubuntu_05_disable_nonsense_security_check.diff from SuSE, + stop broken warning that binary doesn't match checksum + * Install klaptop_acpi_helper setuid root so it can be used by default + * Add kubuntu_06_lock_on_hibernate.diff reduce options to only lock on hibernate + + -- Jonathan Riddell Thu, 29 Sep 2005 17:11:22 +0100 + +kdeutils (4:3.4.2-0ubuntu1) breezy; urgency=low + + * New upstream release + * Build using unsermake + + -- Jonathan Riddell Tue, 26 Jul 2005 16:26:03 +0000 + +kdeutils (4:3.4.1-0ubuntu1) breezy; urgency=low + + * Update version number following KDE 3.4.1 release + * Add all packages back to meta-package + + -- Jonathan Riddell Wed, 1 Jun 2005 01:00:54 +0000 + +kdeutils (4:3.4.1-0pre1ubuntu2) breezy; urgency=low + + * Remove powerpc kmilo module from kmilo.install.powerpc until + pbbuttonsd-dev is in main + + -- Jonathan Riddell Thu, 26 May 2005 18:18:31 +0000 + +kdeutils (4:3.4.1-0pre1ubuntu1) breezy; urgency=low + + * Sync with Debian, remove build-dep on pbbuttonsd-dev and tpctl + until they are in main + + -- Jonathan Riddell Thu, 26 May 2005 13:29:29 +0000 + +kdeutils (4:3.4.1-1) experimental; urgency=low + + * New upstream release. + + -- Debian Qt/KDE Maintainers Tue, 31 May 2005 15:43:52 -0400 + +kdeutils (4:3.4.0-0pre1) alioth; urgency=low + + * New upstream release. + + * Bugs reported in the Debian BTS fixed by this release: + + - klaptopdaemon won't trigger a suspend at startup. (Closes: #301362) + + * Converted packaging to CDBS. + + +++ Changes by Pierre Habouzit : + + * [ark.mime] add handlers for application/(g)zip (closes: #297263). + + * [debian/control] upgrade packages descriptions. + + * New kdeutils-doc-html package, containing doc-base registered HTML versions + of application handbooks, for users without Konqueror or KHelpCenter. + + +++ Changes by Adeodato Simó: + + * Created XPM icons for packages having a menu file. Install them in + /usr/share/pixmaps and update the menu entries to use them. + + -- Debian Qt/KDE Maintainers Mon, 4 Apr 2005 16:41:47 +0200 + +kdeutils (4:3.3.2-2) unstable; urgency=low + + +++ Changes by Christopher Martin: + + * Change kgpg's section to kde. (Closes: #292399) + + +++ Changes by Adeodato Simó: + + * Backport patch to make kgpg display the correct fingerprint for a key even + if '--fingerprint' is specified in the configuration file. Formerly, always + the last fingerprint was displayed. (Closes: #251342) + + -- Debian Qt/KDE Maintainers Thu, 03 Mar 2005 17:49:31 +0100 + +kdeutils (4:3.3.2-1) unstable; urgency=low + + +++ Changes by Christopher Martin: + + * KDE_3_3_BRANCH update. + + * Fix debian/copyright to refer to License rather than to Copyright + when discussing KDE's licenses. + + -- Debian Qt/KDE Maintainers Wed, 26 Jan 2005 17:23:10 +0100 + +kdeutils (4:3.3.2-0pre1) experimental; urgency=low + + * New upstream release: + - khexedit sorts numerically the 'Occurrence' and 'Percentage' columns in + the Statistics window. (Closes: #260929) + * KDE_3_3_BRANCH update. + * Remove build-dependency on automake1.9. + * Strengthen Suggests to Recommends on compression utilties found in + main. Also add Recommends on bzip2. + * Add patch fixing kfloppy + udev. (Closes: #273890) + * Add kcharselect manpage from Karolina Lindqvist. (Closes: #192570) + * Updated kmilo and ksim package descriptions. (Closes: #250094, #235347) + + -- Christopher Martin Thu, 16 Dec 2004 15:26:40 -0500 + +kdeutils (4:3.3.1-1) unstable; urgency=low + + * New upstream release. + * KDE_3_3_BRANCH update. + * Added kdessh Depends on ssh. (Closes: #271875) + * Added Build-Depends libxtst-dev. (Closes: #276835) + + -- Christopher L Cheney Mon, 8 Nov 2004 14:30:00 -0600 + +kdeutils (4:3.3.0-1) unstable; urgency=high + + * New upstream release. + + -- Christopher L Cheney Sat, 14 Aug 2004 23:00:00 -0500 + +kdeutils (4:3.2.3-1) unstable; urgency=high + + * New upstream release. + * Added kgpg Depends: gnupg. (Closes: #252132) + + -- Christopher L Cheney Wed, 4 Aug 2004 01:00:00 -0500 + +kdeutils (4:3.2.2-2) unstable; urgency=high + + * KDE_3_2_BRANCH pbuttonsd fix. (Closes: #245820) + + -- Christopher L Cheney Mon, 26 Apr 2004 21:00:00 -0500 + +kdeutils (4:3.2.2-1) unstable; urgency=low + + * New upstream release. + * Added Build-Depends: pbbuttonsd-dev [powerpc]. (Closes: #242291) + * debian/*.menu: remove the obsolete kderemove tag. + + -- Christopher L Cheney Fri, 16 Apr 2004 20:00:00 -0500 + +kdeutils (4:3.2.1-1) unstable; urgency=low + + * New upstream release. + * Added ark/kedit mime nametemplate support. (Closes: #235217) + + -- Christopher L Cheney Sat, 6 Mar 2004 18:00:00 -0600 + +kdeutils (4:3.2.0-0pre1v1) experimental; urgency=low + + * New upstream release. + + -- Christopher L Cheney Fri, 20 Feb 2004 04:00:00 -0600 + +kdeutils (4:3.1.95-1) unstable; urgency=low + + * New upstream release. + * Apple Powerbook buttons are not supported due to pbbuttons missing from sid. + + -- Christopher L Cheney Fri, 30 Jan 2004 14:00:00 -0600 + +kdeutils (4:3.1.5-1) unstable; urgency=low + + * New upstream release. + * Added libtool arm patch. + * libkregexpeditor renamed to kregexpeditor. (Closes: #210330) + + -- Christopher L Cheney Wed, 14 Jan 2004 03:00:00 -0600 + +kdeutils (4:3.1.4-1) unstable; urgency=low + + * New upstream release. + * Added patch to update autotools files. + * Added patch to remove pedantic-errors from KDE_CHECK_FUNC_EXT since it + causes configure checks to fail due to #line numbers being > 32767. + + -- Christopher L Cheney Sat, 18 Oct 2003 04:00:00 -0500 + +kdeutils (4:3.1.3-1) unstable; urgency=low + + * New upstream release. + + -- Christopher L Cheney Mon, 4 Aug 2003 00:00:00 -0500 + +kdeutils (4:3.1.2-1) unstable; urgency=low + + * New upstream release. + * Update ark Suggests to arj (Closes: #188409) + + -- Christopher L Cheney Sun, 25 May 2003 13:00:00 -0500 + +kdeutils (4:3.1.1-1) unstable; urgency=low + + * New upstream release. + * Add 'chmod +x configure' to rules. (Closes: #181358) + + -- Christopher L Cheney Wed, 12 Mar 2003 12:00:00 -0600 + +kdeutils (4:3.1.0-1) unstable; urgency=low + + * New upstream. + * Redo debian dir. + + -- Christopher L Cheney Tue, 04 Feb 2003 22:00:00 -0600 + +kdeutils (4:2.2.2-9.2) stable-security; urgency=high + + * Non-maintainer upload by the Security Team + * Added special detection routine for big/little endianess on MIPS since + the line "byteorder : {big|little} endian" from /proc/cpuinfo was + removed as of Linux 2.4.20, resulting in the mipsel buildd being + unable to build this package. + + -- Martin Schulze Sat, 18 Jan 2003 20:27:49 +0100 + +kdeutils (4:2.2.2-9.1) stable-security; urgency=high + + * Non-maintainer upload by the Security Team + * Applied upstream patches to fix several potential vulnerabilities. + http://www.kde.org/info/security/advisory-20021220-1.txt + + -- Martin Schulze Mon, 6 Jan 2003 21:04:20 +0100 + +kdeutils (4:2.2.2-9) unstable; urgency=low + + * Change Maintainer to Chris. + * Fix PowerPC problems. + + -- Daniel Stone Wed, 27 Feb 2002 22:22:08 +1100 + +kdeutils (4:2.2.2-8) unstable; urgency=low + + * Oh, I so desperately enjoy fixing these grave-severity s390 + char-isn't-always-signed-you-dickhead bugs. + * klaptopdaemon/portable.cpp: + - See above. (closes: #127003) + + -- Daniel Stone Sun, 30 Dec 2001 07:56:15 -0500 + +kdeutils (4:2.2.2-7) unstable; urgency=low + + * Build against a post-Stone Age version of libstdc++. (closes: #125868) + + -- Daniel Stone Thu, 20 Dec 2001 14:10:19 +1100 + +kdeutils (4:2.2.2-6) unstable; urgency=low + + * New maintainer. (closes: #114104) + * debian/{ark,kab,karm,kcalc,kcharselect,kdepasswd,kdf,kedit,kfind,kfloppy, + khexedit,kjots,kljettool,klpq,klprfax,knotes,kpm,kpmdocked,ktimer,kwikdisk} + .sgml, debian/*.manpages, debian/rules, debian/control: + - New manpages. I am _so_ over writing these now. + * Fix typos. (closes: #124417, #124839) + + -- Daniel Stone Fri, 30 Nov 2001 21:59:49 +1100 + +kdeutils (4:2.2.2-5) unstable; urgency=low + + * Fix autobuild + * This is why I should test it on alpha before uploading... + + -- Ivan E. Moore II Fri, 30 Nov 2001 01:12:00 -0700 + +kdeutils (4:2.2.2-4) unstable; urgency=low + + * Sync with upstream + * Update documentation for freeze + * cleanup build process even more + * Update build-deps/deps/etc... + + -- Ivan E. Moore II Thu, 29 Nov 2001 04:30:00 -0700 + +kdeutils (4:2.2.2-3) unstable; urgency=low + + * Fix Flags for alpha + + -- Ivan E. Moore II Wed, 28 Nov 2001 00:15:00 -0700 + +kdeutils (4:2.2.2-2) unstable; urgency=low + + * Autobuild fix for alpha + * Hey! let's put the headers in the right place! Can't believe I missed + this before..this must have been broken for quite some time. + + -- Ivan E. Moore II Tue, 27 Nov 2001 01:56:00 -0700 + +kdeutils (4:2.2.2-1) unstable; urgency=low + + * New upstream version + + -- Ivan E. Moore II Wed, 07 Nov 2001 23:05:00 -0700 + +kdeutils (4:2.2.1-1.4) unstable; urgency=low + + * This *should* fix the autobuild problems for alpha + * Cleanup overrides + + -- Ivan E. Moore II Fri, 12 Oct 2001 23:05:00 -0700 + +kdeutils (4:2.2.1-1.3) unstable; urgency=low + + * Don't search for auto* as it hoses things + + -- Ivan E. Moore II Mon, 08 Oct 2001 19:36:00 -0700 + +kdeutils (4:2.2.1-1.2) unstable; urgency=low + + * Fix configure (Closes: #114580) + + -- Ivan E. Moore II Fri, 05 Oct 2001 14:51:00 -0700 + +kdeutils (4:2.2.1-1.1) unstable; urgency=low + + * Don't use automake since it's hosed + + -- Ivan E. Moore II Wed, 03 Oct 2001 14:51:00 -0700 + +kdeutils (4:2.2.1-1) unstable; urgency=low + + * New upstream version 2.2.1 + * Change maintainer + * Lintian fixes + * Fix description (Closes: #109118) + + -- Ivan E. Moore II Fri, 07 Sep 2001 14:51:00 -0700 + +kdeutils (4:2.2.0-final-1) unstable; urgency=low + + * New upstream version 2.2 + + -- Ivan E. Moore II Mon, 30 Jul 2001 00:01:00 -0700 + +kdeutils (4:2.2.0-0.1beta1-1) unstable; urgency=low + + * Sync with upstream + * More gcc3 fixes + + -- Ivan E. Moore II Thu, 26 Jul 2001 20:22:00 -0700 + +kdeutils (4:2.2.0-0beta1-3) unstable; urgency=low + + * Sync with upstream + * More alpha fixes + + -- Ivan E. Moore II Sat, 07 Jul 2001 03:44:00 -0700 + +kdeutils (4:2.2.0-0beta1-2) unstable; urgency=low + + * Sync with upstream + * Autobuild for alpha now + + -- Ivan E. Moore II Tue, 03 Jul 2001 02:37:00 -0700 + +kdeutils (4:2.2.0-0beta1-1) unstable; urgency=low + + * Sync with upstream + * Fix ktimer description (Closes: #102939) + * Fix mips build + + -- Ivan E. Moore II Sat, 30 Jun 2001 20:30:00 -0700 + +kdeutils (4:2.2-cvs20010622-1) unstable; urgency=low + + * New upstream cvs pull + * 2.2 beta 1 + * Adding in Enhances + * New package: klprfax (Closes: #100507) + * Fixes these problems: + %CPU field problem (Closes: #85272) + bad translation in df causes kdf to crash (Closes: 94011) + + -- Ivan E. Moore II Fri, 22 Jun 2001 06:30:00 -0700 + +kdeutils (4:2.1.1-2) unstable; urgency=low + + * Update menu bits to include new kde menu remval tag + * More upstream fixes + + -- Ivan E. Moore II Sun, 08 Apr 2001 17:48:00 -0700 + +kdeutils (4:2.1.1-1.0.1) unstable; urgency=low + + * Rebuild with older libc + + -- Ivan E. Moore II Mon, 26 Mar 2001 15:13:00 -0700 + +kdeutils (4:2.1.1-1) unstable; urgency=low + + * New upstream version + + -- Ivan E. Moore II Mon, 19 Mar 2001 15:13:00 -0700 + +kdeutils (4:2.1.0-2) unstable; urgency=low + + * Fix kfloppy by switching from fdformat to superformat...it now at least + formats. + * Some other upstream updates as well + + -- Ivan E. Moore II Mon, 12 Mar 2001 15:13:00 -0700 + +kdeutils (4:2.1.0-1) unstable; urgency=low + + * New upstream CVS pull + + -- Ivan E. Moore II Thu, 08 Mar 2001 02:03:00 -0700 + +kdeutils (4:2.1-final-1) unstable; urgency=low + + * New upstream version + * Upping standards version + + -- Ivan E. Moore II Mon, 19 Feb 2001 02:31:00 -0700 + +kdeutils (4:2.1-beta2-0128-1) unstable; urgency=low + + * kdf re-added + * More upstream fixes + + -- Ivan E. Moore II Mon, 29 Jan 2001 10:46:00 -0700 + +kdeutils (4:2.1-beta2-1) unstable; urgency=low + + * New upstream beta + + -- Ivan E. Moore II Mon, 22 Jan 2001 06:00:00 -0700 + +kdeutils (4:2.1-20010115-1) unstable; urgency=low + + * More upstream fixes + + -- Ivan E. Moore II Mon, 15 Jan 2001 01:00:00 -0700 + +kdeutils (4:2.1-20010106-1) unstable; urgency=low + + * More upstream fixes + * Updating/fixing depends and build-depends + + -- Ivan E. Moore II Sat, 06 Jan 2001 23:30:00 -0700 + +kdeutils (4:2.1-20010101-1) unstable; urgency=low + + * More upstream fixes + + -- Ivan E. Moore II Mon, 01 Jan 2001 17:11:00 -0700 + +kdeutils (4:2.1-20001218-1) unstable; urgency=low + + * More upstream fixes + * Removing extra mime files (Closes: #79887) + * Adding in new menu hints (Closes: #80030, #80021, #80068)) + + -- Ivan E. Moore II Mon, 18 Dec 2000 09:55:00 -0700 + +kdeutils (4:2.1-20001216-1) unstable; urgency=low + + * More upstream fixes + * Adding in missing conflicts for kdeutils + + -- Ivan E. Moore II Sat, 16 Dec 2000 23:55:00 -0700 + +kdeutils (4:2.1-20001213-1) unstable; urgency=low + + * New upstream beta version + + -- Ivan E. Moore II Wed, 13 Dec 2000 18:00:00 -0700 + +kdeutils (4:2.0-final-7) unstable; urgency=low + + * Fixing package confliction (Closes: #77670) + + -- Ivan E. Moore II Tue, 21 Nov 2000 17:00:00 -0700 + +kdeutils (4:2.0-final-6) unstable; urgency=low + + * more upstream fixes + * build-depends cleanup + * adding in lintian overrides + + -- Ivan E. Moore II Tue, 21 Nov 2000 07:30:00 -0700 + +kdeutils (4:2.0-final-5) unstable; urgency=low + + * more upstream fixes + + -- Ivan E. Moore II Sat, 18 Nov 2000 06:30:00 -0700 + +kdeutils (4:2.0-final-4) unstable; urgency=low + + * more upstream fixes + * adding in menu hints + + -- Ivan E. Moore II Thu, 09 Nov 2000 22:45:00 -0700 + +kdeutils (4:2.0-final-3) unstable; urgency=low + + * more upstream fixes + * mime entry fixes (again) + * build against new xlibs + + -- Ivan E. Moore II Sat, 04 Nov 2000 23:00:00 -0700 + +kdeutils (4:2.0-final-2) unstable; urgency=low + + * more upstream fixes + * mime entry fixes + + -- Ivan E. Moore II Thu, 02 Nov 2000 18:00:00 -0700 + +kdeutils (4:2.0-final-0) unstable; urgency=low + + * KDE 2.0 + + -- Ivan E. Moore II Mon, 23 Oct 2000 00:00:00 -0700 + +kdeutils (4:2.0-20001016-0) unstable; urgency=low + + * more upstream fixes + + -- Ivan E. Moore II Mon, 16 Oct 2000 15:00:00 -0700 + +kdeutils (4:2.0-20001011-0) unstable; urgency=low + + * KDE 2.0 RC2 + + -- Ivan E. Moore II Thu, 12 Oct 2000 06:00:00 -0700 + +kdeutils (4:2.0-20001006-0) unstable; urgency=low + + * More upstream fixes + + -- Ivan E. Moore II Fri, 06 Oct 2000 15:00:00 -0700 + +kdeutils (4:2.0-20001005-0) unstable; urgency=low + + * More upstream fixes + * Compiling against non-versioned kdelibs again + + -- Ivan E. Moore II Thu, 05 Oct 2000 15:00:00 -0700 + +kdeutils (4:2.0-20001002-0) unstable; urgency=low + + * KDE 2.0 RC1 + + -- Ivan E. Moore II Mon, 02 Oct 2000 01:30:00 -0700 + +kdeutils (4:2.0-20000925-2) unstable; urgency=low + + * More upstream fixes + * Clean build against new libc + + -- Ivan E. Moore II Tue, 26 Sep 2000 23:30:00 -0700 + +kdeutils (4:2.0-20000925-0) unstable; urgency=low + + * More upstream fixes + * Build-Depends fixes + * Fixing kdf-kdessh file mixup (Closes: #72413) + + -- Ivan E. Moore II Mon, 25 Sep 2000 15:30:00 -0700 + +kdeutils (4:2.0-20000920-2) unstable; urgency=low + + * Removing kdessh and setting proper depends for ark + + -- Ivan E. Moore II Thu, 21 Sep 2000 17:30:00 -0700 + +kdeutils (4:2.0-20000920-0) unstable; urgency=low + + * More upstream fixes + + -- Ivan E. Moore II Wed, 20 Sep 2000 23:00:00 -0700 + +kdeutils (4:2.0-20000918-0) unstable; urgency=low + + * More upstream fixes + + -- Ivan E. Moore II Mon, 18 Sep 2000 23:00:00 -0700 + +kdeutils (4:2.0-20000912-0) unstable; urgency=low + + * More upstream fixes + * Fixing old confliction/dependency loop + * Breaking up packages + + -- Ivan E. Moore II Tue, 12 Sep 2000 23:00:00 -0700 + +kdeutils (4:2.0-20000909-0) unstable; urgency=low + + * More upstream fixes + + -- Ivan E. Moore II Sat, 09 Sep 2000 22:00:00 -0700 + +kdeutils (4:2.0-20000907-2) unstable; urgency=low + + * Removing -dev package since it's empty...arggg + + -- Ivan E. Moore II Fri, 08 Sep 2000 01:00:00 -0700 + +kdeutils (4:2.0-20000907-0) unstable; urgency=low + + * More upstream fixes + * More package work + * Merging package changes with upstream cvs + + -- Ivan E. Moore II Thu, 07 Sep 2000 04:30:00 -0700 + +kdeutils (4:2.0-20000825-0) experimental; urgency=low + + * KDE 2.0 beta 4 + + -- Ivan E. Moore II Fri, 25 Aug 2000 22:30:00 -0700 + +kdeutils (4:2.0-20000820-1.0) experimental; urgency=low + + * new beta version + + -- Ivan E. Moore II Sun, 20 Aug 2000 09:45:00 -0700 + +kdeutils-cvs (4:2.0-20000521-1.0) experimental; urgency=low + + * new CVS version + + -- Ivan E. Moore II Sun, 21 May 2000 18:15:00 -0700 + +kdeutils-cvs (4:2.0-20000512-1.1) experimental; urgency=low + + * new CVS version + + -- Ivan E. Moore II Fri, 12 May 2000 22:00:00 -0700 + +kdeutils-cvs (4:2.0-20000308-1.0) experimental; urgency=low + + * new CVS version + + -- Ivan E. Moore II Wed, 08 Mar 2000 22:00:00 -0700 + +kdeutils-cvs (4:2.0-20000306-1.0) experimental; urgency=low + + * new CVS version + * Adding in build-depends + + -- Ivan E. Moore II Mon, 06 Mar 2000 22:00:00 -0700 + +kdeutils-cvs (4:2.0-19991117-1.0) experimental; urgency=low + + * new CVS version + + -- Ivan E. Moore II Wed, 17 Nov 1999 10:45:00 -0400 + +kdeutils-cvs (4:2.0-19991008-1) experimental; urgency=low + + * new CVS version + * Fixing up dependencies + + -- Ivan E. Moore II Fri, 08 Oct 1999 12:45:00 -0400 + +kdeutils-cvs (4:2.0-19990825-1) experimental; urgency=low + + * new version + + -- Ivan E. Moore II Wed, 25 Aug 1999 08:00:48 -0400 + +kdeutils-cvs (4:2.0-19990626-1) experimental; urgency=low + + * new version + + -- Stephan Kulow Sat, 26 Jun 1999 20:39:48 +0200 + +kdeutils-cvs (4:2.0-19990524-1) experimental; urgency=low + + * migrating from /opt to / + + -- Ivan E. Moore II Mon, 24 May 1999 07:22:51 -0400 + +kdeutils (4:1.1-19990217-1) unstable; urgency=low + + * new upstream version + + -- Stephan Kulow Wed, 17 Feb 1999 19:09:43 +0100 + +kdeutils (4:1.1-19990207-2) unstable; urgency=low + + * fixed a bug with the wrong libjpeg version + + -- Stephan Kulow Tue, 9 Feb 1999 10:43:44 +0100 + +kdeutils (4:1.1-19990207-1) unstable; urgency=low + + * new upstream version 1.1 and new epoche + + -- Stephan Kulow Sun, 7 Feb 1999 12:12:59 +0100 + +kdeutils (2:980710-1.0-1) unstable; urgency=low + + * new upstream version 1.0 + + -- Stephan Kulow Sun, 12 Jul 1998 10:12:20 +0200 + +kdeutils (2:980419-b4-1) unstable; urgency=low + + * new upstream version Beta4 + + -- Stephan Kulow Sun, 19 Apr 1998 15:24:47 +0200 + +kdeutils (2:980312-6) frozen; urgency=low + + * new frozen compile with latest fixed kdelibs. This time from CVS + + -- Stephan Kulow Fri, 3 Apr 1998 15:10:54 +0200 + +kdeutils (2:980312-5) frozen; urgency=low + + * don't compile kcalc with long double + + -- Stephan Kulow Thu, 26 Mar 1998 14:35:59 +0100 + +kdeutils (2:980312-4) frozen; urgency=low + + * new compile cycle with qt-1.33 and libstdc++-2.8 + + -- Stephan Kulow Tue, 24 Mar 1998 20:49:33 +0100 + +kdeutils (2:980312-3) unstable; urgency=low + + * changed the maintainer field. I have missed this one ;( + + -- Stephan Kulow Sun, 15 Mar 1998 20:51:08 +0100 + +kdeutils (2:980312-2) unstable; urgency=low + + * fixed typo in the Description + + -- Stephan Kulow Sun, 15 Mar 1998 20:05:47 +0100 + +kdeutils (2:980312-1) experimental; urgency=low + + * New upstream release + + -- Stephan Kulow Thu, 12 Mar 1998 23:27:36 +0100 + +kdeutils (980227-1) experimental; urgency=low + + * New upstream release + + -- Stephan Kulow Fri, 27 Feb 1998 22:03:42 +0100 + +kdeutils (1:Beta2-2.1) experimental; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Fri, 5 Dec 1997 21:16:47 +0100 + +kdeutils (1:Beta2-2) unstable; urgency=low + + * removed virtual package names. + * fixed kcalc (compiling with long double breaks somewhere). + + -- Andreas Jellinghaus Sat, 29 Nov 1997 14:37:17 +0100 + +kdeutils (1:Beta2-1) unstable; urgency=low + + * new upstream version + + -- Andreas Jellinghaus Sun, 23 Nov 1997 16:02:18 +0100 + +kdeutils (1:Beta1.2-2) unstable; urgency=low + + * added /usr/bin/editor divertion + * now remove inst-apps file. + + -- Andreas Jellinghaus Sun, 9 Nov 1997 17:44:32 +0100 + +kdeutils (1:Beta1.2-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 27 Oct 1997 11:23:49 +0100 + +kdeutils (1:Beta1.1-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 20 Oct 1997 12:32:06 +0200 + +kdeutils (971019-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 13 Oct 1997 08:29:18 +0200 + +kdeutils (971013-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 13 Oct 1997 08:29:18 +0200 + +kdeutils (971009-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Thu, 9 Oct 1997 10:57:54 +0200 + +kdeutils (971008-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Wed, 8 Oct 1997 10:14:01 +0200 + +kdeutils (971006-2) unstable; urgency=low + + * daily recompile of everything. + + -- Andreas Jellinghaus Tue, 7 Oct 1997 12:51:04 +0200 + +kdeutils (971006-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 6 Oct 1997 09:30:04 +0200 + +kdeutils (971005-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Sun, 5 Oct 1997 17:38:07 +0200 + +kdeutils (971002-2) unstable; urgency=low + + * daily recompile of everything. + + -- Andreas Jellinghaus Fri, 3 Oct 1997 10:38:16 +0200 + +kdeutils (971002-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Thu, 2 Oct 1997 08:57:52 +0200 + +kdeutils (970930-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Tue, 30 Sep 1997 11:59:53 +0200 + +kdeutils (970929-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 29 Sep 1997 09:45:28 +0200 + +kdeutils (970926-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Fri, 26 Sep 1997 08:12:07 +0200 + +kdeutils (970925-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Thu, 25 Sep 1997 08:09:30 +0200 + +kdeutils (970922-3) unstable; urgency=low + + * daily recompile of everything. + + -- Andreas Jellinghaus Wed, 24 Sep 1997 11:46:00 +0200 + +kdeutils (970922-2) unstable; urgency=low + + * daily recompile of everything. + + -- Andreas Jellinghaus Tue, 23 Sep 1997 09:47:14 +0200 + +kdeutils (970922-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Mon, 22 Sep 1997 09:49:29 +0200 + +kdeutils (970921-1) unstable; urgency=low + + * New upstream release + + -- Andreas Jellinghaus Sun, 21 Sep 1997 13:58:12 +0200 + +kdeutils (970920-1) unstable; urgency=low + + * Initial Release. + + -- Andreas Jellinghaus Sat, 20 Sep 1997 17:48:42 +0200 diff -u kdeutils-4.2.2/debian/not-installed kdeutils-4.2.2/debian/not-installed --- kdeutils-4.2.2/debian/not-installed +++ kdeutils-4.2.2/debian/not-installed @@ -3,3 +2,0 @@ -./usr/lib/libkerfuffle.so -./usr/lib/libsuperkaramba.so - diff -u kdeutils-4.2.2/debian/kgpg.install kdeutils-4.2.2/debian/kgpg.install --- kdeutils-4.2.2/debian/kgpg.install +++ kdeutils-4.2.2/debian/kgpg.install @@ -2,17 +2,17 @@ usr/share/applications/kde4/kgpg.desktop usr/share/autostart/kgpg.desktop usr/share/dbus-1/interfaces/org.kde.kgpg.Key.xml -usr/share/doc/kde4/HTML/en/kgpg/common -usr/share/doc/kde4/HTML/en/kgpg/editor.png -usr/share/doc/kde4/HTML/en/kgpg/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kgpg/index.docbook -usr/share/doc/kde4/HTML/en/kgpg/keygen.png -usr/share/doc/kde4/HTML/en/kgpg/keymanage.png -usr/share/doc/kde4/HTML/en/kgpg/keyprop.png -usr/share/doc/kde4/HTML/en/kgpg/keys.png -usr/share/doc/kde4/HTML/en/kgpg/keyserver.png -usr/share/doc/kde4/HTML/en/kgpg/kicker.png -usr/share/doc/kde4/HTML/en/kgpg/options.png +usr/share/doc/kde/HTML/en/kgpg/common +usr/share/doc/kde/HTML/en/kgpg/editor.png +usr/share/doc/kde/HTML/en/kgpg/index.cache.bz2 +usr/share/doc/kde/HTML/en/kgpg/index.docbook +usr/share/doc/kde/HTML/en/kgpg/keygen.png +usr/share/doc/kde/HTML/en/kgpg/keymanage.png +usr/share/doc/kde/HTML/en/kgpg/keyprop.png +usr/share/doc/kde/HTML/en/kgpg/keyserver.png +usr/share/doc/kde/HTML/en/kgpg/keys.png +usr/share/doc/kde/HTML/en/kgpg/kicker.png +usr/share/doc/kde/HTML/en/kgpg/options.png usr/share/icons/hicolor/16x16/apps/kgpg.png usr/share/icons/hicolor/22x22/apps/kgpg.png usr/share/icons/hicolor/32x32/apps/kgpg.png diff -u kdeutils-4.2.2/debian/kfloppy.install kdeutils-4.2.2/debian/kfloppy.install --- kdeutils-4.2.2/debian/kfloppy.install +++ kdeutils-4.2.2/debian/kfloppy.install @@ -1,8 +1,8 @@ usr/bin/kfloppy usr/share/applications/kde4/KFloppy.desktop -usr/share/doc/kde4/HTML/en/kfloppy/common -usr/share/doc/kde4/HTML/en/kfloppy/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kfloppy/index.docbook +usr/share/doc/kde/HTML/en/kfloppy/common +usr/share/doc/kde/HTML/en/kfloppy/index.cache.bz2 +usr/share/doc/kde/HTML/en/kfloppy/index.docbook usr/share/icons/hicolor/128x128/apps/kfloppy.png usr/share/icons/hicolor/16x16/apps/kfloppy.png usr/share/icons/hicolor/22x22/apps/kfloppy.png diff -u kdeutils-4.2.2/debian/kwalletmanager.install kdeutils-4.2.2/debian/kwalletmanager.install --- kdeutils-4.2.2/debian/kwalletmanager.install +++ kdeutils-4.2.2/debian/kwalletmanager.install @@ -2,19 +2,19 @@ usr/lib/kde4/kcm_kwallet.so usr/share/applications/kde4/kwalletmanager.desktop usr/share/applications/kde4/kwalletmanager-kwalletd.desktop -usr/share/doc/kde4/HTML/en/kwallet/common -usr/share/doc/kde4/HTML/en/kwallet/edit1.png -usr/share/doc/kde4/HTML/en/kwallet/edit2.png -usr/share/doc/kde4/HTML/en/kwallet/first-open-request.png -usr/share/doc/kde4/HTML/en/kwallet/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kwallet/index.docbook -usr/share/doc/kde4/HTML/en/kwallet/kwalletmanager.png -usr/share/doc/kde4/HTML/en/kwallet/openwallet-request.png -usr/share/doc/kde4/HTML/en/kwallet/oxygen48-status-wallet-closed.png -usr/share/doc/kde4/HTML/en/kwallet/oxygen48-status-wallet-open.png -usr/share/doc/kde4/HTML/en/kwallet/password1.png -usr/share/doc/kde4/HTML/en/kwallet/password2.png -usr/share/doc/kde4/HTML/en/kwallet/save-login-information.png +usr/share/doc/kde/HTML/en/kwallet/common +usr/share/doc/kde/HTML/en/kwallet/edit1.png +usr/share/doc/kde/HTML/en/kwallet/edit2.png +usr/share/doc/kde/HTML/en/kwallet/first-open-request.png +usr/share/doc/kde/HTML/en/kwallet/index.cache.bz2 +usr/share/doc/kde/HTML/en/kwallet/index.docbook +usr/share/doc/kde/HTML/en/kwallet/kwalletmanager.png +usr/share/doc/kde/HTML/en/kwallet/openwallet-request.png +usr/share/doc/kde/HTML/en/kwallet/oxygen48-status-wallet-closed.png +usr/share/doc/kde/HTML/en/kwallet/oxygen48-status-wallet-open.png +usr/share/doc/kde/HTML/en/kwallet/password1.png +usr/share/doc/kde/HTML/en/kwallet/password2.png +usr/share/doc/kde/HTML/en/kwallet/save-login-information.png usr/share/icons/hicolor/128x128/apps/kwalletmanager2.png usr/share/icons/hicolor/128x128/apps/kwalletmanager.png usr/share/icons/hicolor/16x16/apps/kwalletmanager2.png reverted: --- kdeutils-4.2.2/debian/printer-applet.install +++ kdeutils-4.2.2.orig/debian/printer-applet.install @@ -1,6 +0,0 @@ -usr/bin/printer-applet -usr/share/autostart/printer-applet.desktop -usr/share/kde4/apps/printer-applet/printer-applet-printers.ui -usr/share/kde4/apps/printer-applet/printer-applet.py -usr/share/kde4/apps/printer-applet/printer-applet.ui -usr/share/kde4/apps/printer-applet/printer-appletui.rc diff -u kdeutils-4.2.2/debian/okteta.install kdeutils-4.2.2/debian/okteta.install --- kdeutils-4.2.2/debian/okteta.install +++ kdeutils-4.2.2/debian/okteta.install @@ -6,14 +6,14 @@ usr/lib/liboktetagui.so.4 usr/lib/liboktetagui.so.4.2.0 usr/share/applications/kde4/okteta.desktop -usr/share/doc/kde4/HTML/en/okteta/basics.docbook -usr/share/doc/kde4/HTML/en/okteta/common -usr/share/doc/kde4/HTML/en/okteta/credits.docbook -usr/share/doc/kde4/HTML/en/okteta/index.cache.bz2 -usr/share/doc/kde4/HTML/en/okteta/index.docbook -usr/share/doc/kde4/HTML/en/okteta/introduction.docbook -usr/share/doc/kde4/HTML/en/okteta/menu.docbook -usr/share/doc/kde4/HTML/en/okteta/tools.docbook +usr/share/doc/kde/HTML/en/okteta/basics.docbook +usr/share/doc/kde/HTML/en/okteta/common +usr/share/doc/kde/HTML/en/okteta/credits.docbook +usr/share/doc/kde/HTML/en/okteta/index.cache.bz2 +usr/share/doc/kde/HTML/en/okteta/index.docbook +usr/share/doc/kde/HTML/en/okteta/introduction.docbook +usr/share/doc/kde/HTML/en/okteta/menu.docbook +usr/share/doc/kde/HTML/en/okteta/tools.docbook usr/share/icons/hicolor/16x16/apps/okteta.png usr/share/icons/hicolor/32x32/apps/okteta.png usr/share/icons/hicolor/48x48/apps/okteta.png diff -u kdeutils-4.2.2/debian/control kdeutils-4.2.2/debian/control --- kdeutils-4.2.2/debian/control +++ kdeutils-4.2.2/debian/control @@ -1,16 +1,19 @@ Source: kdeutils Section: kde Priority: optional -Maintainer: Debian Qt/KDE Maintainers -Uploaders: Ana Beatriz Guerrero Lopez , Fathi Boudra , Matthew Rosewarne , Sune Vuorela -Build-Depends: cdbs (>= 0.4.51), debhelper (>= 7), quilt, pkg-kde-tools (>= 0.4.2), - kdelibs5-dev (>= 4:4.2.2), kdepimlibs5-dev (>= 4:4.2.2), - libgmp3-dev, libqimageblitz-dev (>= 1:0.0.4-2), libsnmp-dev, libzip-dev, - libarchive-dev, libx11-dev, libxrender-dev, python-support +Maintainer: Kubuntu Developers +XSBC-Original-Maintainer: Debian Qt/KDE Maintainers +Uploaders: Ana Beatriz Guerrero Lopez , Fathi Boudra , Matthew Rosewarne , Sune Vuorela , Matthew Rosewarne +Build-Depends: cdbs (>= 0.4.51), debhelper (>= 7), quilt, + pkg-kde-tools (>=0.4.2), kdepimlibs5-dev (>= 4:4.2.2), libgmp3-dev, + libqimageblitz-dev (>= 1:0.0.4-2), libsnmp-dev, libzip-dev, python-all-dev, + libarchive-dev, libx11-dev, libxrender-dev, python-qt4-dev, python-kde4-dev, + python-cups, hal-cups-utils, python-sip4-dev, python-kde4, zlib1g-dev, + system-config-printer-common Standards-Version: 3.8.0 Homepage: http://www.kde.org/ -Vcs-Browser: http://svn.debian.org/wsvn/pkg-kde/trunk/packages/kdeutils -Vcs-Svn: svn://svn.debian.org/pkg-kde/trunk/packages/kdeutils +Vcs-Browser: http://bazaar.launchpad.net/~kubuntu-members/kdeutils/ubuntu +Vcs-Bzr: https://code.launchpad.net/~kubuntu-members/kdeutils/ubuntu Package: kdeutils Architecture: all @@ -19,7 +22,10 @@ kdf (>= ${source:Version}), kfloppy (>= ${source:Version}), kgpg (>= ${source:Version}), ktimer (>= ${source:Version}), kwalletmanager (>= ${source:Version}), okteta (>= ${source:Version}), - plasma-scriptengine-superkaramba (>= ${source:Version}), sweeper (>= ${source:Version}) + plasma-scriptengine-superkaramba (>= ${source:Version}), + sweeper (>= ${source:Version}), kde-printer-applet (>= ${source:Version}) +Replaces: kdeutils-kde4 +Conflicts: kdeutils-kde4 Description: general-purpose utilities from the official KDE 4 release KDE is produced by an international technology team that creates free and open source software for desktop and portable computing. Among KDE's products are a @@ -35,18 +41,31 @@ Section: libdevel Architecture: any Priority: extra -Depends: kdebase-runtime-dbg -Suggests: kdeutils (= ${source:Version}) +Depends: kdebase-runtime-dbg, kdeutils (= ${source:Version}) +Replaces: kdeutils-dbg-kde4 +Conflicts: kdeutils-dbg-kde4 Description: debugging symbols for the KDE 4 utilities module This package contains debugging files used to investigate problems with binaries included in the KDE 4 utilities module. +Package: kdeutils-dev +Section: libdevel +Architecture: any +Depends: ark (= ${binary:Version}), + plasma-scriptengine-superkaramba (= ${binary:Version}) +Replaces: kdeutils-dev-kde4 +Conflicts: kdeutils-dev-kde4 +Description: development files for the KDE 4 utilities module + This package contains development files for building software that uses + libraries from the KDE 4 utilities module. Package: ark Section: utils Architecture: any -Recommends: ncompress, unzip, zip, zoo, bzip2, p7zip-full +Suggests: ncompress, unzip, zip, zoo, bzip2, p7zip-full Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: ark-kde4 +Conflicts: ark-kde4 Description: archive utility for KDE 4 Ark manages various archive formats, including tar, gzip, bzip2, and zip, as well as CD-ROM images. Ark can be used to browse, extract, create, and @@ -58,6 +77,8 @@ Section: math Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kcalc-kde4 +Conflicts: kcalc-kde4 Description: calculator for KDE 4 KCalc is a scientific calculator. . @@ -73,6 +94,8 @@ Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kcharselect-kde4 +Conflicts: kcharselect-kde4 Description: special character utility for KDE 4 KCharSelect is a utility for finding special characters which are not available on the keyboard. It can search for characters by Unicode number, @@ -85,6 +108,8 @@ Section: net Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kdessh-kde4 +Conflicts: kdessh-kde4 Description: Secure Shell utility for KDE 4 KDE SSH runs commands on remote systems using the Secure Shell protocol. It temporarily stores passwords, so users do not have to repeatedly re-enter @@ -96,6 +121,8 @@ Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kdf-kde4 +Conflicts: kdf-kde4 Description: disk information utility for KDE 4 KDiskFree displays information about hard disks and other storage devices, including the amount of free space available. It can also mount and unmount @@ -110,6 +137,8 @@ Section: admin Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kfloppy-kde4 +Conflicts: kfloppy-kde4 Description: floppy formatter for KDE 4 Kfloppy is a utility for formatting floppy disks. . @@ -119,6 +148,8 @@ Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kgpg-kde4 +Conflicts: kgpg-kde4 Description: encryption utility for KDE 4 Kgpg manages cryptographic keys for the GNU Privacy Guard, and can encrypt, decrypt, sign, and verify files. It features a simple editor for applying @@ -131,6 +162,8 @@ Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: ktimer-kde4 +Conflicts: ktimer-kde4 Description: countdown timer for KDE 4 KTimer is a countdown timer for running commands after a delay. The countdown can be paused or set to loop continuously. @@ -140,6 +173,8 @@ Package: kwalletmanager Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: kwalletmanager-kde4 +Conflicts: kwalletmanager-kde4 Description: secure password wallet manager for KDE 4 The KDE Wallet system provides a secure way to store passwords and other secret information, allowing the user to remember only a single KDE Wallet @@ -153,7 +188,9 @@ Package: okteta Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Description: hexeditor for binary files for KDE 4 +Replaces: okteta-kde4 +Conflicts: okteta-kde4 +Description: hexeditor for binary files for KDE 4 Okteta is a simple editor for the raw data of files. This type of program is also called hex editor or binary editor. The data is displayed in the traditional view with two columns: one with the @@ -171,19 +208,30 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Suggests: kdebase-workspace-bin -Replaces: superkaramba -Conflicts: superkaramba +Replaces: superkaramba-kde4, superkaramba +Conflicts: superkaramba-kde4, superkaramba Description: SuperKaramba theme support for the KDE 4 Plasma desktop - This package provides SuperKaramba scriptengine for Plasma. It brings - support for the SuperKaramba interactive desktop applets, called "themes", to - the Plasma desktop. + SuperKaramba was the KDE 3.5 utility for displaying interactive desktop + applets, called "themes". This package allows the Plasma desktop to use + SuperKaramba themes. . This package is part of the KDE 4 utilities module. +Package: superkaramba +Architecture: all +Priority: extra +Depends: plasma-scriptengine-superkaramba +Description: Transitional package + This dummy package is provided for a smooth transition from superkaramba to + the new package plasma-scriptengine-superkaramba + It may safely be removed after installation. + Package: sweeper Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: sweeper-kde4 +Conflicts: sweeper-kde4 Description: history and temporary file cleaner for KDE 4 Sweeper can quickly remove temporary information, such as web page cookies, browser history, or the list of recently-opened documents. It helps provide @@ -194,10 +242,14 @@ -Package: printer-applet +Package: kde-printer-applet Section: utils -Architecture: all -Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}, python-qt4-dbus, python-cups, python-kde4 (>= 4:4.1.82) -Recommends: hal-cups-utils, system-config-printer -Description: manages your printing jobs - Printer applet lets you easily manage your printing jobs. +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, + python-cups (>= 1.9.27), system-config-printer-common, hal-cups-utils, + python-kde4, python-qt4-dbus, python +Description: printer status applet + Printer-applet is a system tray utility. It shows current print jobs, + shows printer warnings and errors and shows when printers that have + been plugged in for the first time are being auto-configured by + hal-cups-utils. . This package is part of the KDE 4 utilities module. - + diff -u kdeutils-4.2.2/debian/kcharselect.install kdeutils-4.2.2/debian/kcharselect.install --- kdeutils-4.2.2/debian/kcharselect.install +++ kdeutils-4.2.2/debian/kcharselect.install @@ -1,7 +1,7 @@ usr/bin/kcharselect usr/share/applications/kde4/KCharSelect.desktop -usr/share/doc/kde4/HTML/en/kcharselect/common -usr/share/doc/kde4/HTML/en/kcharselect/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kcharselect/index.docbook +usr/share/doc/kde/HTML/en/kcharselect/common +usr/share/doc/kde/HTML/en/kcharselect/index.cache.bz2 +usr/share/doc/kde/HTML/en/kcharselect/index.docbook usr/share/kde4/apps/kcharselect/kcharselectui.rc usr/share/kde4/apps/kconf_update/kcharselect.upd diff -u kdeutils-4.2.2/debian/rules kdeutils-4.2.2/debian/rules --- kdeutils-4.2.2/debian/rules +++ kdeutils-4.2.2/debian/rules @@ -3,6 +3 @@ -DEB_CMAKE_CUSTOM_FLAGS += -DINSTALL_PRINTER_APPLET:BOOL=TRUE - include /usr/share/pkg-kde-tools/qt-kde-team/1/debian-qt-kde.mk - -binary-install/printer-applet:: - dh_pysupport -pprinter-applet diff -u kdeutils-4.2.2/debian/kdf.install kdeutils-4.2.2/debian/kdf.install --- kdeutils-4.2.2/debian/kdf.install +++ kdeutils-4.2.2/debian/kdf.install @@ -3,14 +3,14 @@ usr/lib/kde4/kcm_kdf.so usr/share/applications/kde4/kdf.desktop usr/share/applications/kde4/kwikdisk.desktop -usr/share/doc/kde4/HTML/en/kcontrol/blockdevices/common -usr/share/doc/kde4/HTML/en/kcontrol/blockdevices/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kcontrol/blockdevices/index.docbook -usr/share/doc/kde4/HTML/en/kdf/common -usr/share/doc/kde4/HTML/en/kdf/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kdf/index.docbook -usr/share/doc/kde4/HTML/en/kdf/kdf_config.png -usr/share/doc/kde4/HTML/en/kdf/kdf.png +usr/share/doc/kde/HTML/en/kcontrol/blockdevices/common +usr/share/doc/kde/HTML/en/kcontrol/blockdevices/index.cache.bz2 +usr/share/doc/kde/HTML/en/kcontrol/blockdevices/index.docbook +usr/share/doc/kde/HTML/en/kdf/common +usr/share/doc/kde/HTML/en/kdf/index.cache.bz2 +usr/share/doc/kde/HTML/en/kdf/index.docbook +usr/share/doc/kde/HTML/en/kdf/kdf_config.png +usr/share/doc/kde/HTML/en/kdf/kdf.png usr/share/icons/hicolor/128x128/apps/kdf.png usr/share/icons/hicolor/128x128/apps/kwikdisk.png usr/share/icons/hicolor/16x16/apps/kdf.png reverted: --- kdeutils-4.2.2/debian/installgen +++ kdeutils-4.2.2.orig/debian/installgen @@ -1,43 +0,0 @@ -[devel_virtual] -stop dst:usr/include -miss dst:usr/lib/lib[^/]+\.so$ link:usr/lib/lib[^/]+\.so\. - -[ark] -from:/ark/ - -[kcalc] -from:/kcalc/ - -[kcharselect] -from:/kcharselect/ - -[kdessh] -from:/kdessh/ - -[kdf] -from:/kdf/ -from:/doc/kcontrol/blockdevices/ - -[kfloppy] -from:/kfloppy/ - -[kgpg] -from:/kgpg/ - -[ktimer] -from:/ktimer/ - -[kwalletmanager] -from:/kwallet/ - -[okteta] -from:/okteta/ - -[plasma-scriptengine-superkaramba] -from:/superkaramba/ - -[sweeper] -from:/sweeper/ - -[printer-applet] -from:/printer-applet/ diff -u kdeutils-4.2.2/debian/kcalc.install kdeutils-4.2.2/debian/kcalc.install --- kdeutils-4.2.2/debian/kcalc.install +++ kdeutils-4.2.2/debian/kcalc.install @@ -1,10 +1,10 @@ usr/bin/kcalc usr/lib/libkdeinit4_kcalc.so usr/share/applications/kde4/kcalc.desktop -usr/share/doc/kde4/HTML/en/kcalc/commands.docbook -usr/share/doc/kde4/HTML/en/kcalc/common -usr/share/doc/kde4/HTML/en/kcalc/index.cache.bz2 -usr/share/doc/kde4/HTML/en/kcalc/index.docbook +usr/share/doc/kde/HTML/en/kcalc/commands.docbook +usr/share/doc/kde/HTML/en/kcalc/common +usr/share/doc/kde/HTML/en/kcalc/index.cache.bz2 +usr/share/doc/kde/HTML/en/kcalc/index.docbook usr/share/kde4/apps/kcalc/kcalcui.rc usr/share/kde4/apps/kcalc/scienceconstants.xml usr/share/kde4/apps/kconf_update/kcalcrc.upd only in patch2: unchanged: --- kdeutils-4.2.2.orig/debian/kde-printer-applet.install +++ kdeutils-4.2.2/debian/kde-printer-applet.install @@ -0,0 +1,11 @@ +usr/share/autostart/printer-applet.desktop +usr/share/kde4/apps/printer-applet/authconn.py +usr/share/kde4/apps/printer-applet/debug.py +usr/share/kde4/apps/printer-applet/monitor.py +usr/share/kde4/apps/printer-applet/printer-applet.notifyrc +usr/share/kde4/apps/printer-applet/printer-applet.py +usr/share/kde4/apps/printer-applet/printer-applet.ui +usr/share/kde4/apps/printer-applet/printer-appletui.rc +usr/share/kde4/apps/printer-applet/printer-applet-printers.ui +usr/share/kde4/apps/printer-applet/statereason.py +usr/bin/printer-applet only in patch2: unchanged: --- kdeutils-4.2.2.orig/debian/KUBUNTU-DEBIAN-DIFFERENCES +++ kdeutils-4.2.2/debian/KUBUNTU-DEBIAN-DIFFERENCES @@ -0,0 +1,9 @@ + * Add package for kde-printer-applet, needs build-deps on + python-kde4-dev, python-cups, hal-cups-utils, + system-config-printer-common + +ark Suggests not Recommends + + * Add okteta and kde-printer-applet to kdeutils metapackage + +* Add desktop/utilities-file-archiver.xpm icon (needed by Ark), (LP: #256466) only in patch2: unchanged: --- kdeutils-4.2.2.orig/debian/utilities-file-archiver.xpm +++ kdeutils-4.2.2/debian/utilities-file-archiver.xpm @@ -0,0 +1,429 @@ +/* XPM */ +static char * utilities_file_archiver_xpm[] = { +"32 32 394 2", +" c None", +". c #DDBB84", +"+ c #DCBA83", +"@ c #D1B17B", +"# c #C3A472", +"$ c #CDAB76", +"% c #DBBA82", +"& c #DBB982", +"* c #CCAC79", +"= c #C9A976", +"- c #CEAE78", +"; c #D3B079", +"> c #CFAD76", +", c #CCAA72", +"' c #C9A66F", +") c #C4A169", +"! c #BF9D64", +"~ c #CEAB73", +"{ c #D5B37B", +"] c #D3B27E", +"^ c #CCAC7A", +"/ c #CCAD7A", +"( c #D9B780", +"_ c #D6B47C", +": c #D2B079", +"< c #CFAD75", +"[ c #C5A36B", +"} c #C29F68", +"| c #BF9C64", +"1 c #BC9961", +"2 c #B8955D", +"3 c #B39058", +"4 c #AB884E", +"5 c #BA9B69", +"6 c #A0875E", +"7 c #D6B680", +"8 c #DAB882", +"9 c #CBAC79", +"0 c #D6B580", +"a c #D6B37C", +"b c #CCA972", +"c c #B5925A", +"d c #BD9F6F", +"e c #AF8F5A", +"f c #CEAA74", +"g c #CFAC74", +"h c #BD9D6D", +"i c #A28962", +"j c #C9AA78", +"k c #CFAF7C", +"l c #CEAF7B", +"m c #C8A66E", +"n c #BB9961", +"o c #BB9963", +"p c #C5A97D", +"q c #BEA171", +"r c #AE8B53", +"s c #A8854C", +"t c #B1976D", +"u c #A99C84", +"v c #CCAB74", +"w c #D1AF77", +"x c #CCAB75", +"y c #BDA988", +"z c #B79B6D", +"A c #CAAB79", +"B c #D8B781", +"C c #D9B77F", +"D c #D5B37C", +"E c #C5A26B", +"F c #C29F67", +"G c #C3A474", +"H c #CCB38A", +"I c #C2A678", +"J c #B18E56", +"K c #AB884F", +"L c #A58148", +"M c #AA936D", +"N c #9D8969", +"O c #B8AE9E", +"P c #C6A570", +"Q c #D0AE77", +"R c #D3B17A", +"S c #D6B47D", +"T c #B29769", +"U c #A68C63", +"V c #D9B67F", +"W c #D2B078", +"X c #CFAC75", +"Y c #CBA972", +"Z c #CBB084", +"` c #D2BA95", +" . c #C6AA7D", +".. c #A8844C", +"+. c #A27E45", +"@. c #C3A16A", +"#. c #B39563", +"$. c #9B8968", +"%. c #BDB4A2", +"&. c #C0A06E", +"*. c #D0AE76", +"=. c #D9B680", +"-. c #C5A675", +";. c #BBA98B", +">. c #D8B67F", +",. c #D4BB93", +"'. c #D7C2A0", +"). c #C9AD80", +"!. c #B59259", +"~. c #AB874F", +"{. c #A48148", +"]. c #9F7B42", +"^. c #C2A068", +"/. c #C19E66", +"(. c #B99964", +"_. c #A38C64", +":. c #BFB099", +"<. c #BB9E6E", +"[. c #D5B47C", +"}. c #D4B47F", +"|. c #D1C3AB", +"1. c #B39668", +"2. c #D0AD76", +"3. c #CBA971", +"4. c #C8A56E", +"5. c #DBC5A2", +"6. c #DBC8A7", +"7. c #CBAF82", +"8. c #BB9860", +"9. c #B49159", +"0. c #A7844C", +"a. c #A17D45", +"b. c #9C783F", +"c. c #C09D65", +"d. c #BE9B63", +"e. c #C09E66", +"f. c #B29462", +"g. c #998563", +"h. c #BAA27A", +"i. c #CAA871", +"j. c #D2AF78", +"k. c #D5B27B", +"l. c #D7B57E", +"m. c #DAB881", +"n. c #DEBB84", +"o. c #BEA275", +"p. c #E1CEAF", +"q. c #DFCBAC", +"r. c #CCB082", +"s. c #BE9B64", +"t. c #AE8B52", +"u. c #9D7A41", +"v. c #99753C", +"w. c #BD985F", +"x. c #BA975F", +"y. c #BD9A62", +"z. c #9F8760", +"A. c #998970", +"B. c #B39767", +"C. c #C7A671", +"D. c #B29E7F", +"E. c #B9A88D", +"F. c #B9A482", +"G. c #CCAF7F", +"H. c #C0AC8A", +"I. c #DDBD87", +"J. c #CDAF7F", +"K. c #C19F67", +"L. c #B7955D", +"M. c #AE8A52", +"N. c #AA874F", +"O. c #A7844B", +"P. c #A48048", +"Q. c #9A763E", +"R. c #967238", +"S. c #BA975D", +"T. c #B7945C", +"U. c #BC9A62", +"V. c #B99862", +"W. c #C0B7A4", +"X. c #E5DBCA", +"Y. c #AA9F8B", +"Z. c #A39175", +"`. c #B29975", +" + c #9E8F76", +".+ c #AF9872", +"++ c #B8A180", +"@+ c #ADA292", +"#+ c #DCBB86", +"$+ c #C4A36F", +"%+ c #A17D44", +"&+ c #97733A", +"*+ c #936F36", +"=+ c #B4925C", +"-+ c #B6935B", +";+ c #B9965E", +">+ c #BCB19F", +",+ c #DED5C3", +"'+ c #B1A797", +")+ c #A68C61", +"!+ c #BE9F69", +"~+ c #CBAA73", +"{+ c #CCAA73", +"]+ c #CAAA74", +"^+ c #A78F65", +"/+ c #DABB83", +"(+ c #C2A16C", +"_+ c #AD8A52", +":+ c #A07D44", +"<+ c #936F37", +"[+ c #906C32", +"}+ c #B29058", +"|+ c #B08D54", +"1+ c #B28F57", +"2+ c #B5925B", +"3+ c #B8955E", +"4+ c #B6A68E", +"5+ c #B7AB99", +"6+ c #BCB3A0", +"7+ c #C4A16A", +"8+ c #C7A46D", +"9+ c #CAA770", +"0+ c #CEAA73", +"a+ c #CFAE76", +"b+ c #D7B67F", +"c+ c #BF9F6B", +"d+ c #B18D55", +"e+ c #A7834B", +"f+ c #9D7941", +"g+ c #9A763D", +"h+ c #906C33", +"i+ c #8F6B31", +"j+ c #B08E56", +"k+ c #AC8A51", +"l+ c #AF8C54", +"m+ c #A8987F", +"n+ c #C5B9A3", +"o+ c #B1A490", +"p+ c #C3A169", +"q+ c #C6A46C", +"r+ c #C9A76F", +"s+ c #CEAD75", +"t+ c #D3B37D", +"u+ c #BC9C68", +"v+ c #AA874E", +"w+ c #96733A", +"x+ c #8F6B32", +"y+ c #AE8C4E", +"z+ c #A9854D", +"A+ c #AC8950", +"B+ c #AF8B53", +"C+ c #B28E56", +"D+ c #9A8B6E", +"E+ c #B7AA92", +"F+ c #A59980", +"G+ c #C3A069", +"H+ c #C5A36C", +"I+ c #CFAE7A", +"J+ c #BA9A67", +"K+ c #B08D55", +"L+ c #A38047", +"M+ c #96723A", +"N+ c #AD8A4C", +"O+ c #A5824A", +"P+ c #A8854D", +"Q+ c #AB8850", +"R+ c #AE8B54", +"S+ c #968462", +"T+ c #8E8065", +"U+ c #938266", +"V+ c #B9975F", +"W+ c #BF9D65", +"X+ c #CCA974", +"Y+ c #B79764", +"Z+ c #AA864E", +"`+ c #A07C44", +" @ c #9D7940", +".@ c #99763D", +"+@ c #A5824B", +"@@ c #A27E46", +"#@ c #A58149", +"$@ c #9F8863", +"%@ c #9D8766", +"&@ c #9C865F", +"*@ c #C5A26A", +"=@ c #C8A671", +"-@ c #B59561", +";@ c #A6834B", +">@ c #967239", +",@ c #A17F49", +"'@ c #A17E45", +")@ c #967A4C", +"!@ c #998467", +"~@ c #967D59", +"{@ c #B5935B", +"]@ c #C09E67", +"^@ c #C5A36D", +"/@ c #B2925F", +"(@ c #A6834A", +"_@ c #A17C44", +":@ c #9B773F", +"<@ c #9E7A42", +"[@ c #947C58", +"}@ c #9F8C67", +"|@ c #978362", +"1@ c #BF9B63", +"2@ c #AE8F5B", +"3@ c #A37F47", +"4@ c #9C7940", +"5@ c #99753D", +"6@ c #8F6C33", +"7@ c #977740", +"8@ c #926E38", +"9@ c #9F7C44", +"0@ c #97753B", +"a@ c #9B773D", +"b@ c #96825B", +"c@ c #9B8465", +"d@ c #A69069", +"e@ c #AF8C53", +"f@ c #B28F56", +"g@ c #BF9B67", +"h@ c #AB8B58", +"i@ c #A07C43", +"j@ c #926F37", +"k@ c #95733D", +"l@ c #97743E", +"m@ c #896833", +"n@ c #9E7B44", +"o@ c #9A763F", +"p@ c #9D7942", +"q@ c #99835B", +"r@ c #917C5B", +"s@ c #9B805A", +"t@ c #B7935C", +"u@ c #BB9862", +"v@ c #A78753", +"w@ c #926F36", +"x@ c #97743F", +"y@ c #9C7B49", +"z@ c #8C6B35", +"A@ c #82602C", +"B@ c #9E7943", +"C@ c #9D773E", +"D@ c #8B6D3D", +"E@ c #947F5D", +"F@ c #8A734B", +"G@ c #A58249", +"H@ c #B7955E", +"I@ c #A48350", +"J@ c #926E35", +"K@ c #94723F", +"L@ c #85632E", +"M@ c #8C6B36", +"N@ c #9B7942", +"O@ c #806840", +"P@ c #8B7757", +"Q@ c #A48149", +"R@ c #B4915B", +"S@ c #A17F4B", +"T@ c #957239", +"U@ c #8E6A31", +"V@ c #85632C", +"W@ c #8A6A35", +"X@ c #98783F", +"Y@ c #A17F45", +"Z@ c #AD8951", +"`@ c #B08C56", +" # c #9C7C47", +".# c #8F6A31", +"+# c #89662E", +"@# c #805E2C", +"## c #886934", +"$# c #9B773E", +"%# c #A9864C", +"&# c #AE8951", +"*# c #997742", +"=# c #8F6A32", +"-# c #8B6830", +";# c #805F2A", +"># c #886833", +",# c #A27D46", +"'# c #A7824A", +")# c #AB864E", +"!# c #8C6A30", +"~# c #84622B", +"{# c #866531", +"]# c #97753D", +"^# c #A38048", +"/# c #94713B", +"(# c #87652D", +"_# c #7D5D2A", +":# c #84632E", +"<# c #7F602B", +" ", +" . . . . . ", +" . . . . . . . . . + @ # $ ", +" % & . . . . . . . . . + * = - ; > , ' ) ! ", +" ~ { + . . . . . . . . . . ] ^ / ( _ : < , ' [ } | 1 2 3 4 ", +" 5 6 7 . . . . . . . . 8 9 9 0 + ( a : < b ' [ } | 1 2 c d e ", +" f g h i j . . . . k 9 l . . + ( a : < b m [ } | n o p q r s ", +" t u v w x y z j A B . . . + C D : < b m E F | G H I J r K L ", +" M N O P Q R S T U B . . + V D W X Y m E F Z ` .c J r K ..+. ", +" @.#.$.%.&.*.; _ =.-.;.9 >.D W X Y m E ,.'.).2 !.J r ~...{.]. ", +" ^./.(._.:.<.> : [.>.& }.|.1.2.3.4.5.6.7.8.2 9.J r ~.0.{.a.b. ", +" c.d.e.f.g.h.i.X j.k.l.m.n.. o.p.q.r.s.8.2 9.J t.~.0.{.a.u.v. ", +" w.x.y.c.z.A.B.C.D.z E.F.G.H.I.J.K.d.8.L.9.J M.N.O.P.a.u.Q.R. ", +" S.T.x.U.V.W.X.Y.Z.`. +.+++@+#+$+d.8.T.9.J M.N.O.P.%+u.Q.&+*+ ", +" =+3 -+;+1 >+,+'+)+!+~+{+]+^+/+(+8.T.9.J _+N.O.P.:+u.Q.&+<+[+ ", +" }+|+1+2+3+4+5+6+7+8+9+0+a+: b+c+T.9.d+_+N.e+P.:+f+g+&+<+h+i+ ", +" j+k+l+1+c m+n+o+e.p+q+r+, s+t+u+9.d+_+v+e+P.:+f+g+w+*+h+x+i+ ", +" y+z+A+B+C+D+E+F+y.c.G+H+' Y I+J+K+_+v+e+L+:+f+g+M+*+h+x+x+i+ ", +" N+O+P+Q+R+S+T+U+V+y.W+^.[ 4.X+Y+_+Z+e+L+`+ @.@M+*+h+x+x+x+i+ ", +" +@@@#@..~.$@%@&@-+;+1 s.F *@=@-@Z+;@L+`+ @.@>@*+h+x+x+x+x+i+ ", +" ,@].'@{.O.)@!@~@3 {@;+n | ]@^@/@(@L+`+ @.@>@*+h+x+x+x+x+x+[+ ", +" _@:@<@a.P.[@}@|@l+1+c 2 8.1@p+2@3@`+4@5@>@*+x+x+x+x+x+6@7@8@ ", +" 9@0@a@u.:+b@c@d@A+e@f@!.T.8.g@h@i@4@5@>@*+x+x+x+x+j@k@l@m@ ", +" n@o@Q.p@q@r@s@P+Q+r J 9.t@u@v@4@v.>@w@x+x+x+x+x@y@z@A@ ", +" B@C@D@E@F@G@s ~.M.d+3 H@I@v.>@J@x+x+x+x+x+K@L@ ", +" M@N@O@P@@@Q@0.N._+K+R@S@T@J@x+x+x+x+U@V@ ", +" W@X@<@Y@P.e+Z+Z@`@ #J@x+x+x+.#+#@# ", +" ##$#%+3@(@%#&#*#x+x+=#-#;# ", +" >#Q.,#'#)#k@x+!#~# ", +" {#]#^#/#(#_# ", +" :#<# ", +" "}; only in patch2: unchanged: --- kdeutils-4.2.2.orig/debian/patches/series +++ kdeutils-4.2.2/debian/patches/series @@ -0,0 +1 @@ +kubuntu_01_printer_applet_trunk.diff only in patch2: unchanged: --- kdeutils-4.2.2.orig/debian/patches/kubuntu_01_printer_applet_trunk.diff +++ kdeutils-4.2.2/debian/patches/kubuntu_01_printer_applet_trunk.diff @@ -0,0 +1,3259 @@ +diff -urN orig/kdeutils-4.2.2/printer-applet/authconn.py kdeutils-4.2.2/printer-applet/authconn.py +--- orig/kdeutils-4.2.2/printer-applet/authconn.py 1970-01-01 01:00:00.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/authconn.py 2009-04-09 23:00:07.000000000 +0100 +@@ -0,0 +1,262 @@ ++#!/usr/bin/env python ++# -*- coding: utf-8 -*- ++ ++## Copyright (C) 2007, 2008 Tim Waugh ++## Copyright (C) 2007, 2008 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++import cups ++from debug import * ++ ++class AuthDialog(): ++ def __init__(self): ++ pass ++""" ++class AuthDialog(gtk.Dialog): ++ AUTH_FIELD={'username': _("Username:"), ++ 'password': _("Password:"), ++ 'domain': _("Domain:")} ++ ++ def __init__ (self, title=_("Authentication"), parent=None, ++ flags=gtk.DIALOG_MODAL | gtk.DIALOG_NO_SEPARATOR, ++ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, ++ gtk.STOCK_OK, gtk.RESPONSE_OK), ++ auth_info_required=['username', 'password']): ++ gtk.Dialog.__init__ (self, title, parent, flags, buttons) ++ self.auth_info_required = auth_info_required ++ self.set_default_response (gtk.RESPONSE_OK) ++ self.set_border_width (6) ++ self.set_resizable (False) ++ hbox = gtk.HBox (False, 12) ++ hbox.set_border_width (6) ++ image = gtk.Image () ++ image.set_from_stock (gtk.STOCK_DIALOG_AUTHENTICATION, ++ gtk.ICON_SIZE_DIALOG) ++ image.set_alignment (0.0, 0.0) ++ hbox.pack_start (image, False, False, 0) ++ vbox = gtk.VBox (False, 12) ++ self.prompt_label = gtk.Label () ++ vbox.pack_start (self.prompt_label, False, False, 0) ++ ++ num_fields = len (auth_info_required) ++ table = gtk.Table (num_fields, 2) ++ table.set_row_spacings (6) ++ table.set_col_spacings (6) ++ ++ self.field_entry = [] ++ for i in range (num_fields): ++ field = auth_info_required[i] ++ label = gtk.Label (self.AUTH_FIELD.get (field, field)) ++ label.set_alignment (0, 0.5) ++ table.attach (label, 0, 1, i, i + 1) ++ entry = gtk.Entry () ++ entry.set_visibility (field != 'password') ++ table.attach (entry, 1, 2, i, i + 1, 0, 0) ++ self.field_entry.append (entry) ++ ++ self.field_entry[num_fields - 1].set_activates_default (True) ++ vbox.pack_start (table, False, False, 0) ++ hbox.pack_start (vbox, False, False, 0) ++ self.vbox.pack_start (hbox) ++ self.vbox.show_all () ++ ++ def set_prompt (self, prompt): ++ self.prompt_label.set_markup ('' + ++ prompt + '') ++ self.prompt_label.set_use_markup (True) ++ self.prompt_label.set_alignment (0, 0) ++ self.prompt_label.set_line_wrap (True) ++ ++ def set_auth_info (self, auth_info): ++ for i in range (len (self.field_entry)): ++ self.field_entry[i].set_text (auth_info[i]) ++ ++ def get_auth_info (self): ++ return map (lambda x: x.get_text (), self.field_entry) ++ ++ def field_grab_focus (self, field): ++ i = self.auth_info_required.index (field) ++ self.field_entry[i].grab_focus () ++""" ++ ++class Connection: ++ def __init__ (self, parent=None, try_as_root=True): ++ self._use_password = '' ++ self._parent = parent ++ self._try_as_root = try_as_root ++ self._use_user = cups.getUser () ++ self._server = cups.getServer () ++ self._port = cups.getPort() ++ self._connect () ++ self._prompt_allowed = True ++ ++ def _get_prompt_allowed (self, ): ++ return self._prompt_allowed ++ ++ def _set_prompt_allowed (self, allowed): ++ self._prompt_allowed = allowed ++ ++ def _connect (self): ++ cups.setUser (self._use_user) ++ cups.setServer (self._server) ++ cups.setPort (self._port) ++ self._connection = cups.Connection () ++ self._user = self._use_user ++ debugprint ("Connected as user %s" % self._user) ++ methodtype = type (self._connection.getPrinters) ++ for fname in dir (self._connection): ++ if fname[0] == '_': ++ continue ++ fn = getattr (self._connection, fname) ++ if type (fn) != methodtype: ++ continue ++ setattr (self, fname, self._make_binding (fname, fn)) ++ ++ def _make_binding (self, fname, fn): ++ return lambda *args, **kwds: self._authloop (fname, fn, *args, **kwds) ++ ++ def _authloop (self, fname, fn, *args, **kwds): ++ self._passes = 0 ++ c = self._connection ++ while self._perform_authentication () != 0: ++ if c != self._connection: ++ # We have reconnected. ++ fn = getattr (self._connection, fname) ++ c = self._connection ++ ++ try: ++ result = fn.__call__ (*args, **kwds) ++ ++ if fname == 'adminGetServerSettings': ++ # Special case for a rubbish bit of API. ++ if result == {}: ++ # Authentication failed, but we aren't told that. ++ raise cups.IPPError (cups.IPP_NOT_AUTHORIZED, '') ++ break ++ except cups.IPPError, (e, m): ++ if not self._cancel and e == cups.IPP_NOT_AUTHORIZED: ++ self._failed () ++ else: ++ raise ++ except cups.HTTPError, (s,): ++ if not self._cancel and (s == cups.HTTP_UNAUTHORIZED or ++ s == cups.HTTP_FORBIDDEN): ++ self._failed (s == cups.HTTP_FORBIDDEN) ++ else: ++ raise ++ ++ return result ++ ++ def _failed (self, forbidden=False): ++ self._has_failed = True ++ self._forbidden = forbidden ++ ++ def _password_callback (self, prompt): ++ debugprint ("Got password callback") ++ if self._cancel or self._auth_called: ++ return '' ++ ++ self._auth_called = True ++ self._prompt = prompt ++ return self._use_password ++ ++ def _perform_authentication (self): ++ self._passes += 1 ++ ++ debugprint ("Authentication pass: %d" % self._passes) ++ if self._passes == 1: ++ # Haven't yet tried the operation. Set the password ++ # callback and return > 0 so we try it for the first time. ++ self._has_failed = False ++ self._forbidden = False ++ self._auth_called = False ++ self._cancel = False ++ cups.setPasswordCB (self._password_callback) ++ debugprint ("Authentication: password callback set") ++ return 1 ++ ++ if not self._has_failed: ++ # Tried the operation and it worked. Return 0 to signal to ++ # break out of the loop. ++ debugprint ("Authentication: Operation successful") ++ return 0 ++ ++ # Reset failure flag. ++ self._has_failed = False ++ ++ if self._passes == 2: ++ # Tried the operation without a password and it failed. ++ if (self._try_as_root and ++ self._user != 'root' and ++ (self._server[0] == '/' or self._forbidden)): ++ # This is a UNIX domain socket connection so we should ++ # not have needed a password (or it is not a UDS but ++ # we got an HTTP_FORBIDDEN response), and so the ++ # operation must not be something that the current ++ # user is authorised to do. They need to try as root, ++ # and supply the password. However, to get the right ++ # prompt, we need to try as root but with no password ++ # first. ++ debugprint ("Authentication: Try as root") ++ self._use_user = 'root' ++ self._auth_called = False ++ self._connect () ++ return 1 ++ ++ if not self._prompt_allowed: ++ debugprint ("Authentication: prompting not allowed") ++ self._cancel = True ++ return 1 ++ ++ if not self._auth_called: ++ # We aren't even getting a chance to supply credentials. ++ debugprint ("Authentication: giving up") ++ self._cancel = True ++ return 1 ++ ++ # Reset the flag indicating whether we were given an auth callback. ++ self._auth_called = False ++ ++ # Prompt. ++ """FIXME port dialogue ++ d = AuthDialog (parent=self._parent) ++ d.set_prompt (self._prompt) ++ d.set_auth_info ([self._use_user, '']) ++ d.field_grab_focus ('password') ++ response = d.run () ++ d.hide () ++ """ ++ response = False ++ ++ #if response == gtk.RESPONSE_CANCEL: ++ if response: ++ self._cancel = True ++ return -1 ++ ++ (self._use_user, ++ self._use_password) = d.get_auth_info () ++ ++ cups.setUser (self._use_user) ++ debugprint ("Authentication: Reconnect") ++ self._connect () ++ ++ return 1 ++ ++if __name__ == '__main__': ++ # Test it out. ++ set_debugging (True) ++ c = Connection (None) ++ print c.getFile ('/admin/conf/cupsd.conf', '/dev/stdout') +diff -urN orig/kdeutils-4.2.2/printer-applet/CMakeLists.txt kdeutils-4.2.2/printer-applet/CMakeLists.txt +--- orig/kdeutils-4.2.2/printer-applet/CMakeLists.txt 2008-08-20 20:52:58.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/CMakeLists.txt 2009-04-09 23:00:24.000000000 +0100 +@@ -1,9 +1,6 @@ ++project(printer-applet) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules ) + +-MACRO(PYKDE4_ADD_EXECUTABLE _pyname _exename) +- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${DATA_INSTALL_DIR}/printer-applet/${_pyname} -DLINK_NAME=${BIN_INSTALL_DIR}/${_exename} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules/create_exe_symlink.cmake)" ) +-ENDMACRO(PYKDE4_ADD_EXECUTABLE) +- + macro_optional_find_package(PythonLibrary) + macro_optional_find_package(SIP) + +@@ -12,19 +9,19 @@ + macro_log_feature(PYQT4_FOUND "PyQt4" "PyQt4 was not found. It is needed by printer-applet to run. (Use -DINSTALL_PRINTER_APPLET=TRUE to install anyway)" "http://www.riverbankcomputing.co.uk/software/pyqt/intro" FALSE) + ENDIF(NOT PYQT4_FOUND) + +-find_package(PyKDE) +-IF(NOT PYKDE_FOUND) ++find_package(PyKDE4) ++IF(NOT PYKDE4_FOUND) + macro_log_feature(PYKDE_FOUND "PyKDE" "PyKDE was not found. It is needed by printer-applet to run. (Use -DINSTALL_PRINTER_APPLET=TRUE to install anyway)" "http://websvn.kde.org/trunk/KDE/kdebindings/python/pykde4/" FALSE) +-ENDIF(NOT PYKDE_FOUND) ++ENDIF(NOT PYKDE4_FOUND) + + find_package(PyCups) + IF(NOT PYCUPS_FOUND) + macro_log_feature(PYCUPS_FOUND "PyCups" "PyCups was not found. It is needed by printer-applet to run. (Use -DINSTALL_PRINTER_APPLET=TRUE to install anyway)" "http://cyberelk.net/tim/software/pycups/" FALSE) + ENDIF(NOT PYCUPS_FOUND) + +-IF(PYQT4_FOUND AND PYKDE_FOUND AND PYCUPS_FOUND) ++IF(PYQT4_FOUND AND PYKDE4_FOUND AND PYCUPS_FOUND) + SET(INSTALL_PRINTER_APPLET TRUE) +-ENDIF(PYQT4_FOUND AND PYKDE_FOUND AND PYCUPS_FOUND) ++ENDIF(PYQT4_FOUND AND PYKDE4_FOUND AND PYCUPS_FOUND) + + IF(INSTALL_PRINTER_APPLET) + install( FILES +@@ -32,6 +29,11 @@ + printer-applet.py + printer-applet.ui + printer-appletui.rc ++ printer-applet.notifyrc ++ statereason.py ++ monitor.py ++ authconn.py ++ debug.py + DESTINATION ${DATA_INSTALL_DIR}/printer-applet ) + PYKDE4_ADD_EXECUTABLE(printer-applet.py printer-applet) + install(FILES printer-applet.desktop DESTINATION ${AUTOSTART_INSTALL_DIR}) +@@ -39,5 +41,5 @@ + + find_package(SystemConfigPrinter) + IF(NOT SYSTEMCONFIGPRINTER_FOUND) +- macro_log_feature(SYSTEMCONFIGPRINTER_FOUND "system-config-printer" "system-config-printer was not found. Some of its modules (cupshelpers.py and ppds.py) are optionally used by printer-applet for auto configure of new printers. You should also install hal-cups-utils " "http://cyberelk.net/tim/software/system-config-printer/" FALSE) ++ macro_log_feature(SYSTEMCONFIGPRINTER_FOUND "system-config-printer" "system-config-printer was not found. Some of its modules (cupshelpers.py and ppds.py) are optionally used by printer-applet for auto configure of new printers. You should also install hal-cups-utils " "http://cyberelk.net/tim/software/system-config-printer/" FALSE) + ENDIF(NOT SYSTEMCONFIGPRINTER_FOUND) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/create_exe_symlink.cmake kdeutils-4.2.2/printer-applet/cmake-modules/create_exe_symlink.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/create_exe_symlink.cmake 2008-05-29 12:18:38.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/create_exe_symlink.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,16 +0,0 @@ +-# Create an executable symlink to a Python script. +-# This also sets the target script's permission bits. +- +-MESSAGE(STATUS "Symlinking $ENV{DESTDIR}${LINK_NAME} to ${TARGET}") +- +-GET_FILENAME_COMPONENT(abs_link_name $ENV{DESTDIR}/${LINK_NAME} ABSOLUTE) +-GET_FILENAME_COMPONENT(link_path $ENV{DESTDIR}/${LINK_NAME} PATH) +-GET_FILENAME_COMPONENT(abs_link_path ${link_path} ABSOLUTE) +-FILE(MAKE_DIRECTORY ${abs_link_path}) +- +-GET_FILENAME_COMPONENT(abs_target ${TARGET} ABSOLUTE) +-IF(UNIX) +- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${abs_target} ${abs_link_name}) +- EXECUTE_PROCESS(COMMAND chmod 755 $ENV{DESTDIR}/${abs_target}) +-ENDIF(UNIX) +-# FIXME: WIN32 support +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindLibPython.py kdeutils-4.2.2/printer-applet/cmake-modules/FindLibPython.py +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindLibPython.py 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindLibPython.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,11 +0,0 @@ +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-import sys +-import distutils.sysconfig +- +-print("exec_prefix:%s" % sys.exec_prefix) +-print("short_version:%s" % sys.version[:3]) +-print("long_version:%s" % sys.version.split()[0]) +-print("py_inc_dir:%s" % distutils.sysconfig.get_python_inc()) +-print("site_packages_dir:%s" % distutils.sysconfig.get_python_lib(plat_specific=1)) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.cmake kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,33 +0,0 @@ +-# Find PyKde +-# ~~~~~~~~~~ +-# Copyright (c) 2008, Jonathan Riddell +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# PyKde website: http://www.riverbankcomputing.co.uk/pykde/index.php +-# +-# Find the installed version of PyKDE. +- +-IF(PYKDE_FOUND) +- # Already in cache, be silent +- SET(PYKDE_FOUND TRUE) +-ELSE(PYKDE_FOUND) +- +- GET_FILENAME_COMPONENT(_cmake_module_path ${CMAKE_CURRENT_LIST_FILE} PATH) +- +- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_cmake_module_path}/FindPyKDE.py OUTPUT_VARIABLE pykde ERROR_QUIET) +- IF(pykde) +- SET(PYKDE_FOUND TRUE) +- ENDIF(pykde) +- +- IF(PYKDE_FOUND) +- IF(NOT PYKDE_FIND_QUIETLY) +- MESSAGE(STATUS "Found PyKde") +- ENDIF(NOT PYKDE_FIND_QUIETLY) +- ELSE(PYKDE_FOUND) +- IF(PYKDE_FIND_REQUIRED) +- MESSAGE(FATAL_ERROR "Could not find PyKDE") +- ENDIF(PYKDE_FIND_REQUIRED) +- ENDIF(PYKDE_FOUND) +- +-ENDIF(PYKDE_FOUND) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.py kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.py +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.py 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindPyKDE.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,9 +0,0 @@ +-# Copyright (c) 2008, Jonathan Riddell +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +- +-try: +- from PyKDE4.kdeui import KApplication +-except: +- exit(1) +-print "Groovy" +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt4.cmake kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt4.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt4.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt4.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,46 +0,0 @@ +-# Find PyQt4 +-# ~~~~~~~~~~ +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# PyQt4 website: http://www.riverbankcomputing.co.uk/pyqt/index.php +-# +-# Find the installed version of PyQt4. FindPyQt4 should only be called after +-# Python has been found. +-# +-# This file defines the following variables: +-# +-# PYQT4_VERSION - The version of PyQt4 found expressed as a 6 digit hex number +-# suitable for comparision as a string +-# +-# PYQT4_VERSION_STR - The version of PyQt4 as a human readable string. +-# +-# PYQT4_SIP_DIR - The directory holding the PyQt4 .sip files. +- +-IF(PYQT4_VERSION) +- # Already in cache, be silent +- SET(PYQT4_FOUND TRUE) +-ELSE(PYQT4_VERSION) +- +- GET_FILENAME_COMPONENT(_cmake_module_path ${CMAKE_CURRENT_LIST_FILE} PATH) +- +- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_cmake_module_path}/FindPyQt.py OUTPUT_VARIABLE pyqt_config ERROR_QUIET) +- IF(pyqt_config) +- STRING(REGEX REPLACE "^pyqt_version:([^\n]+).*$" "\\1" PYQT4_VERSION ${pyqt_config}) +- STRING(REGEX REPLACE ".*\npyqt_version_str:([^\n]+).*$" "\\1" PYQT4_VERSION_STR ${pyqt_config}) +- STRING(REGEX REPLACE ".*\npyqt_sip_dir:([^\n]+).*$" "\\1" PYQT4_SIP_DIR ${pyqt_config}) +- SET(PYQT4_FOUND TRUE) +- ENDIF(pyqt_config) +- +- IF(PYQT4_FOUND) +- IF(NOT PYQT4_FIND_QUIETLY) +- MESSAGE(STATUS "Found PyQt4 version: ${PYQT4_VERSION_STR}") +- ENDIF(NOT PYQT4_FIND_QUIETLY) +- ELSE(PYQT4_FOUND) +- IF(PYQT4_FIND_REQUIRED) +- MESSAGE(FATAL_ERROR "Could not find Python") +- ENDIF(PYQT4_FIND_REQUIRED) +- ENDIF(PYQT4_FOUND) +- +-ENDIF(PYQT4_VERSION) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt.py kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt.py +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt.py 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindPyQt.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,17 +0,0 @@ +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +- +-f=open('/tmp/workfile', 'w') +-f.write("finding Qt") +-f.close() +- +-try: +- import PyQt4.pyqtconfig +-except: +- exit(1) +- +-pyqtcfg = PyQt4.pyqtconfig.Configuration() +-print("pyqt_version:%06.0x" % pyqtcfg.pyqt_version) +-print("pyqt_version_str:%s" % pyqtcfg.pyqt_version_str) +-print("pyqt_sip_dir:%s" % pyqtcfg.pyqt_sip_dir) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPythonLibrary.cmake kdeutils-4.2.2/printer-applet/cmake-modules/FindPythonLibrary.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindPythonLibrary.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindPythonLibrary.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,82 +0,0 @@ +-# Find Python +-# ~~~~~~~~~~~ +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# Find the Python interpreter and related Python directories. +-# +-# This file defines the following variables: +-# +-# PYTHON_EXECUTABLE - The path and filename of the Python interpreter. +-# +-# PYTHON_SHORT_VERSION - The version of the Python interpreter found, +-# excluding the patch version number. (e.g. 2.5 and not 2.5.1)) +-# +-# PYTHON_LONG_VERSION - The version of the Python interpreter found as a human +-# readable string. +-# +-# PYTHON_SITE_PACKAGES_DIR - Location of the Python site-packages directory. +-# +-# PYTHON_INCLUDE_PATH - Directory holding the python.h include file. +-# +-# PYTHON_LIBRARY, PYTHON_LIBRARIES- Location of the Python library. +- +-INCLUDE(CMakeFindFrameworks) +- +-IF(EXISTS PYTHON_LIBRARY) +- # Already in cache, be silent +- SET(PYTHONLIBRARY_FOUND TRUE) +-ELSE(EXISTS PYTHON_LIBRARY) +- +- FIND_PACKAGE(PythonInterp) +- GET_FILENAME_COMPONENT(_cmake_module_path ${CMAKE_CURRENT_LIST_FILE} PATH) +- +- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_cmake_module_path}/FindLibPython.py OUTPUT_VARIABLE python_config) +- IF(python_config) +- STRING(REGEX REPLACE ".*exec_prefix:([^\n]+).*$" "\\1" PYTHON_PREFIX ${python_config}) +- STRING(REGEX REPLACE ".*\nshort_version:([^\n]+).*$" "\\1" PYTHON_SHORT_VERSION ${python_config}) +- STRING(REGEX REPLACE ".*\nlong_version:([^\n]+).*$" "\\1" PYTHON_LONG_VERSION ${python_config}) +- STRING(REGEX REPLACE ".*\npy_inc_dir:([^\n]+).*$" "\\1" PYTHON_INCLUDE_PATH ${python_config}) +- STRING(REGEX REPLACE ".*\nsite_packages_dir:([^\n]+).*$" "\\1" PYTHON_SITE_PACKAGES_DIR ${python_config}) +- STRING(REGEX REPLACE "([0-9]+).([0-9]+)" "\\1\\2" PYTHON_SHORT_VERSION_NO_DOT ${PYTHON_SHORT_VERSION}) +- set(PYTHON_LIBRARY_NAMES python${PYTHON_SHORT_VERSION} python${PYTHON_SHORT_VERSION_NO_DOT}) +- if(WIN32) +- STRING(REPLACE "\\" "/" PYTHON_SITE_PACKAGES_DIR ${PYTHON_SITE_PACKAGES_DIR}) +- endif(WIN32) +- FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES} PATHS ${PYTHON_PREFIX}/lib ${PYTHON_PREFIX}/libs NO_DEFAULT_PATH) +- SET(PYTHONLIBRARY_FOUND TRUE) +- ENDIF(python_config) +- +- # adapted from cmake's builtin FindPythonLibs +- if(APPLE) +- CMAKE_FIND_FRAMEWORKS(Python) +- SET(PYTHON_FRAMEWORK_INCLUDES) +- IF(Python_FRAMEWORKS) +- # If a framework has been selected for the include path, +- # make sure "-framework" is used to link it. +- IF("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") +- SET(PYTHON_LIBRARY "") +- SET(PYTHON_DEBUG_LIBRARY "") +- ENDIF("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") +- IF(NOT PYTHON_LIBRARY) +- SET (PYTHON_LIBRARY "-framework Python" CACHE FILEPATH "Python Framework" FORCE) +- ENDIF(NOT PYTHON_LIBRARY) +- SET(PYTHONLIBRARY_FOUND TRUE) +- ENDIF(Python_FRAMEWORKS) +- ENDIF(APPLE) +- +- IF(PYTHONLIBRARY_FOUND) +- SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY}) +- IF(NOT PYTHONLIBRARY_FIND_QUIETLY) +- MESSAGE(STATUS "Found Python executable: ${PYTHON_EXECUTABLE}") +- MESSAGE(STATUS "Found Python version: ${PYTHON_LONG_VERSION}") +- MESSAGE(STATUS "Found Python library: ${PYTHON_LIBRARY}") +- ENDIF(NOT PYTHONLIBRARY_FIND_QUIETLY) +- ELSE(PYTHONLIBRARY_FOUND) +- IF(PYTHONLIBRARY_FIND_REQUIRED) +- MESSAGE(FATAL_ERROR "Could not find Python") +- ENDIF(PYTHONLIBRARY_FIND_REQUIRED) +- ENDIF(PYTHONLIBRARY_FOUND) +- +-ENDIF (EXISTS PYTHON_LIBRARY) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.cmake kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,53 +0,0 @@ +-# Find SIP +-# ~~~~~~~~ +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php +-# +-# Find the installed version of SIP. FindSIP should be called after Python +-# has been found. +-# +-# This file defines the following variables: +-# +-# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number +-# suitable for comparision as a string. +-# +-# SIP_VERSION_STR - The version of SIP found as a human readable string. +-# +-# SIP_EXECUTABLE - Path and filename of the SIP command line executable. +-# +-# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file. +-# +-# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed +-# into. +- +-IF(SIP_VERSION) +- # Already in cache, be silent +- SET(SIP_FOUND TRUE) +-ELSE(SIP_VERSION) +- +- GET_FILENAME_COMPONENT(_cmake_module_path ${CMAKE_CURRENT_LIST_FILE} PATH) +- +- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_cmake_module_path}/FindSIP.py OUTPUT_VARIABLE sip_config) +- IF(sip_config) +- STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config}) +- STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config}) +- STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_EXECUTABLE ${sip_config}) +- STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config}) +- STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config}) +- SET(SIP_FOUND TRUE) +- ENDIF(sip_config) +- +- IF(SIP_FOUND) +- IF(NOT SIP_FIND_QUIETLY) +- MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}") +- ENDIF(NOT SIP_FIND_QUIETLY) +- ELSE(SIP_FOUND) +- IF(SIP_FIND_REQUIRED) +- MESSAGE(FATAL_ERROR "Could not find SIP") +- ENDIF(SIP_FIND_REQUIRED) +- ENDIF(SIP_FOUND) +- +-ENDIF(SIP_VERSION) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.py kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.py +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.py 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/FindSIP.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,14 +0,0 @@ +-# FindSIP.py +-# +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-import sys +-import sipconfig +- +-sipcfg = sipconfig.Configuration() +-print("sip_version:%06.0x" % sipcfg.sip_version) +-print("sip_version_str:%s" % sipcfg.sip_version_str) +-print("sip_bin:%s" % sipcfg.sip_bin) +-print("default_sip_dir:%s" % sipcfg.default_sip_dir) +-print("sip_inc_dir:%s" % sipcfg.sip_inc_dir) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/print_status.cmake kdeutils-4.2.2/printer-applet/cmake-modules/print_status.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/print_status.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/print_status.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,2 +0,0 @@ +-# Print a status message. Useful when you want to say something from a command in cmake. +-MESSAGE(STATUS ${MESSAGE}) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/PythonCompile.py kdeutils-4.2.2/printer-applet/cmake-modules/PythonCompile.py +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/PythonCompile.py 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/PythonCompile.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,4 +0,0 @@ +-# By Simon Edwards +-# This file is in the public domain. +-import py_compile +-py_compile.main() +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/PythonMacros.cmake kdeutils-4.2.2/printer-applet/cmake-modules/PythonMacros.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/PythonMacros.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/PythonMacros.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,54 +0,0 @@ +-# Python macros +-# ~~~~~~~~~~~~~ +-# Copyright (c) 2007, Simon Edwards +-# +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# This file defines the following macros: +-# +-# PYTHON_INSTALL (SOURCE_FILE DESINATION_DIR) +-# Install the SOURCE_FILE, which is a Python .py file, into the +-# destination directory during install. The file will be byte compiled +-# and both the .py file and .pyc file will be installed. +- +-GET_FILENAME_COMPONENT(PYTHON_MACROS_MODULE_PATH ${CMAKE_CURRENT_LIST_FILE} PATH) +- +-MACRO(PYTHON_INSTALL SOURCE_FILE DESINATION_DIR) +- ADD_CUSTOM_TARGET(compile_python_files ALL) +- +- # Install the source file. +- INSTALL(FILES ${SOURCE_FILE} DESTINATION ${DESINATION_DIR}) +- +- # Byte compile and install the .pyc file. +- GET_FILENAME_COMPONENT(_absfilename ${SOURCE_FILE} ABSOLUTE) +- GET_FILENAME_COMPONENT(_filename ${SOURCE_FILE} NAME) +- GET_FILENAME_COMPONENT(_filenamebase ${SOURCE_FILE} NAME_WE) +- GET_FILENAME_COMPONENT(_basepath ${SOURCE_FILE} PATH) +- SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename}) +- SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc) +- +- FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}) +- +- SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}") +- +- GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE) +- IF(_abs_bin_py STREQUAL ${_absfilename}) # Don't copy the file onto itself. +- ADD_CUSTOM_COMMAND( +- TARGET compile_python_files +- COMMAND ${CMAKE_COMMAND} ${_message} -P ${PYTHON_MACROS_MODULE_PATH}/print_status.cmake +- COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_MACROS_MODULE_PATH}/PythonCompile.py ${_bin_py} +- DEPENDS ${_absfilename} +- ) +- ELSE(_abs_bin_py STREQUAL ${_absfilename}) +- ADD_CUSTOM_COMMAND( +- TARGET compile_python_files +- COMMAND ${CMAKE_COMMAND} ${_message} -P ${PYTHON_MACROS_MODULE_PATH}/print_status.cmake +- COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py} +- COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_MACROS_MODULE_PATH}/PythonCompile.py ${_bin_py} +- DEPENDS ${_absfilename} +- ) +- ENDIF(_abs_bin_py STREQUAL ${_absfilename}) +- +- INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR}) +-ENDMACRO(PYTHON_INSTALL) +diff -urN orig/kdeutils-4.2.2/printer-applet/cmake-modules/SIPMacros.cmake kdeutils-4.2.2/printer-applet/cmake-modules/SIPMacros.cmake +--- orig/kdeutils-4.2.2/printer-applet/cmake-modules/SIPMacros.cmake 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/cmake-modules/SIPMacros.cmake 1970-01-01 01:00:00.000000000 +0100 +@@ -1,105 +0,0 @@ +-# Macros for SIP +-# ~~~~~~~~~~~~~~ +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +-# +-# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php +-# +-# This file defines the following macros: +-# +-# ADD_SIP_PYTHON_MODULE (MODULE_NAME MODULE_SIP [library1, libaray2, ...]) +-# Specifies a SIP file to be built into a Python module and installed. +-# MODULE_NAME is the name of Python module including any path name. (e.g. +-# os.sys, Foo.bar etc). MODULE_SIP the path and filename of the .sip file +-# to process and compile. libraryN are libraries that the Python module, +-# which is typically a shared library, should be linked to. The built +-# module will also be install into Python's site-packages directory. +-# +-# The behaviour of the ADD_SIP_PYTHON_MODULE macro can be controlled by a +-# number of variables: +-# +-# SIP_INCLUDES - List of directories which SIP will scan through when looking +-# for included .sip files. (Corresponds to the -I option for SIP.) +-# +-# SIP_TAGS - List of tags to define when running SIP. (Corresponds to the -t +-# option for SIP.) +-# +-# SIP_CONCAT_PARTS - An integer which defines the number of parts the C++ code +-# of each module should be split into. Defaults to 8. (Corresponds to the +-# -j option for SIP.) +-# +-# SIP_DISABLE_FEATURES - List of feature names which should be disabled +-# running SIP. (Corresponds to the -x option for SIP.) +-# +-# SIP_EXTRA_OPTIONS - Extra command line options which should be passed on to +-# SIP. +- +-SET(SIP_INCLUDES) +-SET(SIP_TAGS) +-SET(SIP_CONCAT_PARTS 8) +-SET(SIP_DISABLE_FEATURES) +-SET(SIP_EXTRA_OPTIONS) +- +-MACRO(ADD_SIP_PYTHON_MODULE MODULE_NAME MODULE_SIP) +- +- # FIXME this removes -fvisibility=hidden from the compiler flags and has global affect. +- STRING(REPLACE "-fvisibility=hidden" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +- +- SET(EXTRA_LINK_LIBRARIES ${ARGN}) +- +- STRING(REPLACE "." "/" _x ${MODULE_NAME}) +- GET_FILENAME_COMPONENT(_parent_module_path ${_x} PATH) +- GET_FILENAME_COMPONENT(_child_module_name ${_x} NAME) +- +- GET_FILENAME_COMPONENT(_module_path ${MODULE_SIP} PATH) +- GET_FILENAME_COMPONENT(_abs_module_sip ${MODULE_SIP} ABSOLUTE) +- +- # We give this target a long logical target name. +- # (This is to avoid having the library name clash with any already +- # install library names. If that happens then cmake dependancy +- # tracking get confused.) +- STRING(REPLACE "." "_" _logical_name ${MODULE_NAME}) +- SET(_logical_name "python_module_${_logical_name}") +- +- FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}) # Output goes in this dir. +- +- SET(_sip_includes) +- FOREACH (_inc ${SIP_INCLUDES}) +- GET_FILENAME_COMPONENT(_abs_inc ${_inc} ABSOLUTE) +- LIST(APPEND _sip_includes -I ${_abs_inc}) +- ENDFOREACH (_inc ) +- +- SET(_sip_tags) +- FOREACH (_tag ${SIP_TAGS}) +- LIST(APPEND _sip_tags -t ${_tag}) +- ENDFOREACH (_tag) +- +- SET(_sip_x) +- FOREACH (_x ${SIP_DISABLE_FEATURES}) +- LIST(APPEND _sip_x -x ${_x}) +- ENDFOREACH (_x ${SIP_DISABLE_FEATURES}) +- +- SET(_message "-DMESSAGE=Generating CPP code for module ${MODULE_NAME}") +- SET(_sip_output_files) +- FOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} ) +- IF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} ) +- SET(_sip_output_files ${_sip_output_files} ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/sip${_child_module_name}part${CONCAT_NUM}.cpp ) +- ENDIF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} ) +- ENDFOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} ) +- +- ADD_CUSTOM_COMMAND( +- OUTPUT ${_sip_output_files} +- COMMAND ${CMAKE_COMMAND} ${_message} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/print_status.cmake +- COMMAND touch ${_sip_output_files} +- COMMAND ${SIP_EXECUTABLE} ${_sip_tags} ${_sip_x} ${SIP_EXTRA_OPTIONS} -j ${SIP_CONCAT_PARTS} -c ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} ${_sip_includes} ${_abs_module_sip} +- DEPENDS ${_abs_module_sip} +- ) +- ADD_LIBRARY(${_logical_name} SHARED ${_sip_output_files} ) +- TARGET_LINK_LIBRARIES(${_logical_name} ${PYTHON_LIBRARY}) +- TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES}) +- SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES PREFIX "" OUTPUT_NAME ${_child_module_name}) +- +- INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/${_parent_module_path}") +- +-ENDMACRO(ADD_SIP_PYTHON_MODULE) +diff -urN orig/kdeutils-4.2.2/printer-applet/debug.py kdeutils-4.2.2/printer-applet/debug.py +--- orig/kdeutils-4.2.2/printer-applet/debug.py 1970-01-01 01:00:00.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/debug.py 2009-04-09 23:00:07.000000000 +0100 +@@ -0,0 +1,55 @@ ++#!/usr/bin/env python ++ ++## Copyright (C) 2008 Red Hat, Inc. ++## Copyright (C) 2008 Tim Waugh ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++import sys ++import traceback ++ ++_debug=False ++def debugprint (x): ++ if _debug: ++ try: ++ print x ++ except: ++ pass ++ ++def get_debugging (): ++ return _debug ++ ++def set_debugging (d): ++ global _debug ++ _debug = d ++ ++def fatalException (exitcode=1): ++ nonfatalException (type="fatal", end="Exiting") ++ sys.exit (exitcode) ++ ++def nonfatalException (type="non-fatal", end="Continuing anyway.."): ++ d = get_debugging () ++ set_debugging (True) ++ debugprint ("Caught %s exception. Traceback:" % type) ++ (type, value, tb) = sys.exc_info () ++ tblast = traceback.extract_tb (tb, limit=None) ++ if len (tblast): ++ tblast = tblast[:len (tblast) - 1] ++ extxt = traceback.format_exception_only (type, value) ++ for line in traceback.format_tb(tb): ++ debugprint (line.strip ()) ++ debugprint (extxt[0].strip ()) ++ debugprint (end) ++ set_debugging (d) +diff -urN orig/kdeutils-4.2.2/printer-applet/monitor.py kdeutils-4.2.2/printer-applet/monitor.py +--- orig/kdeutils-4.2.2/printer-applet/monitor.py 1970-01-01 01:00:00.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/monitor.py 2009-04-09 23:00:07.000000000 +0100 +@@ -0,0 +1,521 @@ ++#!/usr/bin/env python ++# -*- coding: utf-8 -*- ++ ++## Copyright (C) 2007, 2008 Tim Waugh ++## Copyright (C) 2007, 2008 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++import cups ++import dbus ++import time ++from debug import * ++import pprint ++from PyQt4.QtCore import * ++ ++#global _ ++#_ = lambda x: x ++#def set_gettext_function (x): ++# _ = x ++import statereason ++from statereason import StateReason ++#statereason.set_gettext_function (_) ++ ++CONNECTING_TIMEOUT = 60 # seconds ++MIN_REFRESH_INTERVAL = 1 # seconds ++ ++def state_reason_is_harmless (reason): ++ if (reason.startswith ("moving-to-paused") or ++ reason.startswith ("paused") or ++ reason.startswith ("shutdown") or ++ reason.startswith ("stopping") or ++ reason.startswith ("stopped-partly")): ++ return True ++ return False ++ ++def collect_printer_state_reasons (connection): ++ result = {} ++ try: ++ printers = connection.getPrinters () ++ except cups.IPPError: ++ return result ++ ++ for name, printer in printers.iteritems (): ++ reasons = printer["printer-state-reasons"] ++ if type (reasons) != list: ++ # Work around a bug that was fixed in pycups-1.9.20. ++ reasons = [reasons] ++ for reason in reasons: ++ if reason == "none": ++ break ++ if state_reason_is_harmless (reason): ++ continue ++ if not result.has_key (name): ++ result[name] = [] ++ result[name].append (StateReason (name, reason)) ++ return result ++ ++class Watcher: ++ # Interface definition ++ def monitor_exited (self, monitor): ++ debugprint (repr (monitor) + " exited") ++ ++ def state_reason_added (self, monitor, reason): ++ debugprint (repr (monitor) + ": +" + repr (reason)) ++ ++ def state_reason_removed (self, monitor, reason): ++ debugprint (repr (monitor) + ": -" + repr (reason)) ++ ++ def still_connecting (self, monitor, reason): ++ debugprint (repr (monitor) + ": `%s' still connecting" % ++ reason.get_printer ()) ++ ++ def now_connected (self, monitor, printer): ++ debugprint (repr (monitor) + ": `%s' now connected" % printer) ++ ++ def current_printers_and_jobs (self, monitor, printers, jobs): ++ debugprint (repr (monitor) + ": printers and jobs lists provided") ++ ++ def job_added (self, monitor, jobid, eventname, event, jobdata): ++ debugprint (repr (monitor) + ": job %d added" % jobid) ++ ++ def job_event (self, monitor, jobid, eventname, event, jobdata): ++ debugprint (repr (monitor) + ": job %d has event `%s'" % ++ (jobid, eventname)) ++ ++ def job_removed (self, monitor, jobid, eventname, event): ++ debugprint (repr (monitor) + ": job %d removed" % jobid) ++ ++ def printer_added (self, monitor, printer): ++ debugprint (repr (monitor) + ": printer `%s' added" % printer) ++ ++ def printer_event (self, monitor, printer, eventname, event): ++ debugprint (repr (monitor) + ": printer `%s' has event `%s'" % ++ (printer, eventname)) ++ ++ def printer_removed (self, monitor, printer): ++ debugprint (repr (monitor) + ": printer `%s' removed" % printer) ++ ++ def cups_connection_error (self, monitor): ++ debugprint (repr (monitor) + ": CUPS connection error") ++ ++ def cups_ipp_error (self, monitor, e, m): ++ debugprint (repr (monitor) + ": CUPS IPP error (%d, %s)" % ++ (e, repr (m))) ++ ++class Monitor: ++ # Monitor jobs and printers. ++ DBUS_PATH="/com/redhat/PrinterSpooler" ++ DBUS_IFACE="com.redhat.PrinterSpooler" ++ ++ def __init__(self, watcher, bus=None, my_jobs=True, specific_dests=None, ++ monitor_jobs=True): ++ self.watcher = watcher ++ self.my_jobs = my_jobs ++ self.specific_dests = specific_dests ++ self.monitor_jobs = monitor_jobs ++ self.jobs = {} ++ self.printer_state_reasons = {} ++ self.printers = set() ++ ++ self.which_jobs = "not-completed" ++ self.reasons_seen = {} ++ self.connecting_timers = {} ++ self.still_connecting = set() ++ self.connecting_to_device = {} ++ self.received_any_dbus_signals = False ++ ++ if bus == None: ++ bus = dbus.SystemBus () ++ ++ bus.add_signal_receiver (self.handle_dbus_signal, ++ path=self.DBUS_PATH, ++ dbus_interface=self.DBUS_IFACE) ++ self.bus = bus ++ ++ self.sub_id = -1 ++ self.refresh () ++ ++ def get_jobs (self): ++ return self.jobs.copy () ++ ++ def cleanup (self): ++ if self.sub_id != -1: ++ try: ++ c = cups.Connection () ++ c.cancelSubscription (self.sub_id) ++ debugprint ("Canceled subscription %d" % self.sub_id) ++ except: ++ pass ++ ++ self.bus.remove_signal_receiver (self.handle_dbus_signal, ++ path=self.DBUS_PATH, ++ dbus_interface=self.DBUS_IFACE) ++ ++ self.watcher.monitor_exited (self) ++ ++ def check_still_connecting(self): ++ """Timer callback to check on connecting-to-device reasons.""" ++ #del self.connecting_timers[printer] ++ #debugprint ("Still-connecting timer fired for `%s'" % printer) ++ (printer_jobs, my_printers) = self.sort_jobs_by_printer () ++ self.update_connecting_devices (printer_jobs) ++ ++ # Don't run this callback again. ++ return False ++ ++ def update_connecting_devices(self, printer_jobs={}): ++ """Updates connecting_to_device dict and still_connecting set.""" ++ time_now = time.time () ++ connecting_to_device = {} ++ trouble = False ++ for printer, reasons in self.printer_state_reasons.iteritems (): ++ connected = True ++ for reason in reasons: ++ if reason.get_reason () == "connecting-to-device": ++ have_processing_job = False ++ for job, data in \ ++ printer_jobs.get (printer, {}).iteritems (): ++ state = data.get ('job-state', ++ cups.IPP_JOB_CANCELED) ++ if state == cups.IPP_JOB_PROCESSING: ++ have_processing_job = True ++ break ++ ++ if not have_processing_job: ++ debugprint ("Ignoring stale connecting-to-device x") ++ continue ++ ++ # Build a new connecting_to_device dict. If our existing ++ # dict already has an entry for this printer, use that. ++ printer = reason.get_printer () ++ t = self.connecting_to_device.get (printer, time_now) ++ connecting_to_device[printer] = t ++ debugprint ("Connecting time: %d" % (time_now - t)) ++ if time_now - t >= CONNECTING_TIMEOUT: ++ if have_processing_job: ++ self.still_connecting.add (printer) ++ self.watcher.still_connecting (self, reason) ++ ++ connected = False ++ break ++ ++ # Clear any previously-notified errors that are now fine. ++ remove = set() ++ for printer in self.still_connecting: ++ if not connecting_to_device.has_key (printer): ++ remove.add (printer) ++ self.watcher.now_connected (self, printer) ++ ++ self.still_connecting = self.still_connecting.difference (remove) ++ self.connecting_to_device = connecting_to_device ++ ++ def check_state_reasons(self, my_printers=set(), printer_jobs={}): ++ # Look for any new reasons since we last checked. ++ old_reasons_seen_keys = self.reasons_seen.keys () ++ reasons_now = set() ++ for printer, reasons in self.printer_state_reasons.iteritems (): ++ for reason in reasons: ++ tuple = reason.get_tuple () ++ printer = reason.get_printer () ++ reasons_now.add (tuple) ++ if not self.reasons_seen.has_key (tuple): ++ # New reason. ++ self.watcher.state_reason_added (self, reason) ++ self.reasons_seen[tuple] = reason ++ ++ if (reason.get_reason () == "connecting-to-device" and ++ not self.connecting_to_device.has_key (printer)): ++ # First time we've seen this. ++ ++ have_processing_job = False ++ for job, data in \ ++ printer_jobs.get (printer, {}).iteritems (): ++ state = data.get ('job-state', ++ cups.IPP_JOB_CANCELED) ++ if state == cups.IPP_JOB_PROCESSING: ++ have_processing_job = True ++ break ++ ++ if have_processing_job: ++ QTimer.singleShot((1 + CONNECTING_TIMEOUT) * 1000, self.check_still_connecting) ++ debugprint ("Start connecting timer for `%s'" % ++ printer) ++ else: ++ # Don't notify about this, as it must be stale. ++ debugprint ("Ignoring stale connecting-to-device") ++ debugprint (pprint.pformat (printer_jobs)) ++ ++ self.update_connecting_devices (printer_jobs) ++ items = self.reasons_seen.keys () ++ for tuple in items: ++ if not tuple in reasons_now: ++ # Reason no longer present. ++ reason = self.reasons_seen[tuple] ++ del self.reasons_seen[tuple] ++ self.watcher.state_reason_removed (self, reason) ++ ++ def get_notifications(self): ++ debugprint ("get_notifications") ++ try: ++ c = cups.Connection () ++ ++ try: ++ try: ++ notifications = c.getNotifications ([self.sub_id], ++ [self.sub_seq + 1]) ++ except AttributeError: ++ notifications = c.getNotifications ([self.sub_id]) ++ except cups.IPPError, (e, m): ++ if e == cups.IPP_NOT_FOUND: ++ # Subscription lease has expired. ++ self.sub_id = -1 ++ self.refresh () ++ return False ++ ++ self.watcher.cups_ipp_error (self, e, m) ++ return True ++ except RuntimeError: ++ self.watcher.cups_connection_error (self) ++ return True ++ ++ deferred_calls = [] ++ jobs = self.jobs.copy () ++ for event in notifications['events']: ++ seq = event['notify-sequence-number'] ++ try: ++ if seq <= self.sub_seq: ++ # Work around a bug in pycups < 1.9.34 ++ continue ++ except AttributeError: ++ pass ++ self.sub_seq = seq ++ nse = event['notify-subscribed-event'] ++ debugprint ("%d %s %s" % (seq, nse, event['notify-text'])) ++ debugprint (pprint.pformat (event)) ++ if nse.startswith ('printer-'): ++ # Printer events ++ name = event['printer-name'] ++ if nse == 'printer-added' and name not in self.printers: ++ self.printers.add (name) ++ deferred_calls.append ((self.watcher.printer_added, ++ (self, name))) ++ ++ elif nse == 'printer-deleted' and name in self.printers: ++ self.printers.remove (name) ++ items = self.reasons_seen.keys () ++ for tuple in items: ++ if tuple[1] == name: ++ reason = self.reasons_seen[tuple] ++ del self.reasons_seen[tuple] ++ deferred_calls.append ((self.watcher.state_reason_removed, ++ (self, reason))) ++ ++ if self.printer_state_reasons.has_key (name): ++ del self.printer_state_reasons[name] ++ ++ deferred_calls.append ((self.watcher.printer_removed, ++ (self, name))) ++ elif name in self.printers: ++ printer_state_reasons = event['printer-state-reasons'] ++ if type (printer_state_reasons) != list: ++ # Work around a bug in pycups < 1.9.36 ++ printer_state_reasons = [printer_state_reasons] ++ ++ reasons = [] ++ for reason in printer_state_reasons: ++ if reason == "none": ++ break ++ if state_reason_is_harmless (reason): ++ continue ++ reasons.append (StateReason (name, reason)) ++ self.printer_state_reasons[name] = reasons ++ ++ deferred_calls.append ((self.watcher.printer_event, ++ (self, name, nse, event))) ++ continue ++ ++ # Job events ++ jobid = event['notify-job-id'] ++ if (nse == 'job-created' or ++ (nse == 'job-state-changed' and ++ not jobs.has_key (jobid) and ++ event['job-state'] == cups.IPP_JOB_PROCESSING)): ++ if (self.specific_dests != None and ++ event['printer-name'] not in self.specific_dests): ++ continue ++ ++ try: ++ attrs = c.getJobAttributes (jobid) ++ if (self.my_jobs and ++ attrs['job-originating-user-name'] != cups.getUser ()): ++ continue ++ ++ jobs[jobid] = attrs ++ except AttributeError: ++ jobs[jobid] = {'job-k-octets': 0} ++ except cups.IPPError, (e, m): ++ self.watcher.cups_ipp_error (self, e, m) ++ jobs[jobid] = {'job-k-octets': 0} ++ ++ deferred_calls.append ((self.watcher.job_added, ++ (self, jobid, nse, event, ++ jobs[jobid].copy ()))) ++ elif nse == 'job-completed': ++ try: ++ del jobs[jobid] ++ deferred_calls.append ((self.watcher.job_removed, ++ (self, jobid, nse, event))) ++ except KeyError: ++ pass ++ continue ++ ++ try: ++ job = jobs[jobid] ++ except KeyError: ++ continue ++ ++ for attribute in ['job-state', ++ 'job-name']: ++ job[attribute] = event[attribute] ++ if event.has_key ('notify-printer-uri'): ++ job['job-printer-uri'] = event['notify-printer-uri'] ++ ++ deferred_calls.append ((self.watcher.job_event, ++ (self, jobid, nse, event, job.copy ()))) ++ ++ self.update (jobs) ++ self.jobs = jobs ++ ++ for (fn, args) in deferred_calls: ++ fn (*args) ++ ++ # Update again when we're told to. If we're getting CUPS ++ # D-Bus signals, however, rely on those instead. ++ if not self.received_any_dbus_signals: ++ interval = 1000 * notifications['notify-get-interval'] ++ QTimer.singleShot(interval, self.get_notifications) ++ ++ return False ++ ++ def refresh(self): ++ debugprint ("refresh") ++ ++ try: ++ c = cups.Connection () ++ except RuntimeError: ++ self.watcher.cups_connection_error (self) ++ return ++ ++ if self.sub_id != -1: ++ try: ++ c.cancelSubscription (self.sub_id) ++ except cups.IPPError, (e, m): ++ self.watcher.cups_ipp_error (self, e, m) ++ ++ debugprint ("Canceled subscription %d" % self.sub_id) ++ ++ try: ++ del self.sub_seq ++ except AttributeError: ++ pass ++ ++ events = ["printer-added", ++ "printer-deleted", ++ "printer-state-changed"] ++ if self.monitor_jobs: ++ events.extend (["job-created", ++ "job-completed", ++ "job-stopped", ++ "job-progress", ++ "job-state-changed"]) ++ ++ try: ++ self.sub_id = c.createSubscription ("/", events=events) ++ except cups.IPPError, (e, m): ++ self.watcher.cups_ipp_error (self, e, m) ++ ++ QTimer.singleShot(MIN_REFRESH_INTERVAL * 1000, self.get_notifications) ++ debugprint ("Created subscription %d" % self.sub_id) ++ ++ try: ++ if self.monitor_jobs: ++ jobs = c.getJobs (which_jobs=self.which_jobs, ++ my_jobs=self.my_jobs) ++ else: ++ jobs = {} ++ self.printer_state_reasons = collect_printer_state_reasons (c) ++ dests = c.getDests () ++ printers = set() ++ for (printer, instance) in dests.keys (): ++ if printer == None: ++ continue ++ if instance != None: ++ continue ++ printers.add (printer) ++ self.printers = printers ++ except cups.IPPError, (e, m): ++ self.watcher.cups_ipp_error (self, e, m) ++ return ++ except RuntimeError: ++ self.watcher.cups_connection_error (self) ++ return ++ ++ if self.specific_dests != None: ++ for jobid in jobs.keys (): ++ uri = jobs[jobid].get('job-printer-uri', '/') ++ i = uri.rfind ('/') ++ printer = uri[i + 1:] ++ if printer not in self.specific_dests: ++ del jobs[jobid] ++ ++ self.watcher.current_printers_and_jobs (self, self.printers.copy (), ++ jobs.copy ()) ++ self.update (jobs) ++ ++ self.jobs = jobs ++ return False ++ ++ def sort_jobs_by_printer (self, jobs=None): ++ if jobs == None: ++ jobs = self.jobs ++ ++ my_printers = set() ++ printer_jobs = {} ++ for job, data in jobs.iteritems (): ++ state = data.get ('job-state', cups.IPP_JOB_CANCELED) ++ if state >= cups.IPP_JOB_CANCELED: ++ continue ++ uri = data.get ('job-printer-uri', '') ++ i = uri.rfind ('/') ++ if i == -1: ++ continue ++ printer = uri[i + 1:] ++ my_printers.add (printer) ++ if not printer_jobs.has_key (printer): ++ printer_jobs[printer] = {} ++ printer_jobs[printer][job] = data ++ ++ return (printer_jobs, my_printers) ++ ++ def update(self, jobs): ++ debugprint ("update") ++ (printer_jobs, my_printers) = self.sort_jobs_by_printer (jobs) ++ self.check_state_reasons (my_printers, printer_jobs) ++ ++ def handle_dbus_signal(self, *args): ++ QTimer.singleShot(200, self.get_notifications) ++ if not self.received_any_dbus_signals: ++ self.received_any_dbus_signals = True +diff -urN orig/kdeutils-4.2.2/printer-applet/printer-applet.desktop kdeutils-4.2.2/printer-applet/printer-applet.desktop +--- orig/kdeutils-4.2.2/printer-applet/printer-applet.desktop 2009-03-26 14:42:12.000000000 +0000 ++++ kdeutils-4.2.2/printer-applet/printer-applet.desktop 2009-04-09 23:00:07.000000000 +0100 +@@ -13,7 +13,6 @@ + Name[ga]=Feidhmchláirín Printéara + Name[gl]=Applet de impresora + Name[hne]=प्रिंटर ऐप्लेट +-Name[is]=Prentarasmáforrit + Name[it]=Applet di stampa + Name[ja]=プリンタアプレット + Name[km]=អាប់ភ្លេត​ម៉ាស៊ីន​បោះពុម្ព +@@ -41,7 +40,6 @@ + Comment=System tray icon for managing print jobs + Comment[ar]=الأيقونة المصغرة لرسائل عمل الطباعة + Comment[ca]=Icona de la safata del sistema per gestionar els treballs d'impressió +-Comment[cs]=Ikona v systémové části panelu pro správu úloh tisku + Comment[da]=statusikon til håndtering af udskriftsjob + Comment[de]=Symbol für die Druckerverwaltung, dargestellt im Systemabschnitt der Kontrollleiste + Comment[el]=Εικονίδιο πλαισίου συστήματος για διαχείριση εργασιών εκτύπωσης +@@ -51,7 +49,6 @@ + Comment[fr]=Miniature pour la gestion des travaux d'impression + Comment[ga]=Deilbhín i dtráidire an chórais a bhainistíonn jabanna priontála + Comment[gl]=Ícone na bandexa do sistema para xestionar as tarefas de impresión +-Comment[is]=Kerfisbakkatáknmynd til stýringar á prentun + Comment[it]=Icona del vassoio di sistema per gestire i lavori di stampa + Comment[ja]=印刷ジョブを管理するためのシステムトレイアイコン + Comment[km]=រូបតំណាង​ថាស​ប្រព័ន្ធ​សម្រាប់​គ្រប់គ្រង​ការងារ​បោះពុម្ព +diff -urN orig/kdeutils-4.2.2/printer-applet/printer-applet.notifyrc kdeutils-4.2.2/printer-applet/printer-applet.notifyrc +--- orig/kdeutils-4.2.2/printer-applet/printer-applet.notifyrc 1970-01-01 01:00:00.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/printer-applet.notifyrc 2009-04-09 23:00:07.000000000 +0100 +@@ -0,0 +1,214 @@ ++[Global] ++IconName=printer ++Name=Printer Applet ++Name[ar]=بريمج الطباعة ++Name[ca]=Miniaplicació d'impressió ++Name[cs]=Tiskový applet ++Name[da]=Printerapplet ++Name[de]=Drucker-Miniprogramm ++Name[el]=Μικροεφαρμογή εκτυπωτή ++Name[es]=Miniaplicación de impresora ++Name[et]=Trükkimisaplett ++Name[eu]=Inprimagailu appleta ++Name[fr]=Applet d'imprimante ++Name[ga]=Feidhmchláirín Printéara ++Name[gl]=Applet de impresora ++Name[hne]=प्रिंटर ऐप्लेट ++Name[it]=Applet di stampa ++Name[ja]=プリンタアプレット ++Name[km]=អាប់ភ្លេត​ម៉ាស៊ីន​បោះពុម្ព ++Name[ko]=프린터 애플릿 ++Name[lt]=Spausdintuvas ++Name[lv]=Drukas sīkrīks ++Name[nb]=Miniprogram for utskrift ++Name[nds]=Drucker-Lüttprogram ++Name[pa]=ਪਰਿੰਟਰ ਐਪਲਿਟ ++Name[pl]=Aplet drukarki ++Name[pt]='Applet' de Impressoras ++Name[pt_BR]=Miniaplicativo de impressora ++Name[ro]=Miniaplicație Imprimantă ++Name[ru]=Задания печати ++Name[sl]=Nadzorovalnik tiskanja ++Name[sr]=Аплет штампача ++Name[sr@latin]=Aplet štampača ++Name[sv]=Skrivarminiprogram ++Name[th]=แอพเพล็ตเครื่องพิมพ์ ++Name[tr]=Yazıcı Programcığı ++Name[uk]=Аплет принтера ++Name[x-test]=xxPrinter Appletxx ++Name[zh_CN]=打印机小程序 ++Name[zh_TW]=印表機小程式 ++Comment=Printer Applet ++Comment[es]=Miniaplicación de impresora ++Comment[et]=Trükkimisaplett ++Comment[eu]=Inprimagailu appleta ++Comment[ga]=Feidhmchláirín Printéara ++Comment[ja]=プリンタアプレット ++Comment[nb]=Miniprogram for skriver ++Comment[nds]=Drucker-Lüttprogram ++Comment[pt]='Applet' de Impressoras ++Comment[pt_BR]=Miniaplicativo de impressora ++Comment[ru]=Аплет «Задания печати» ++Comment[sr]=Аплет штампача ++Comment[sr@latin]=Aplet štampača ++Comment[sv]=Skrivarminiprogram ++Comment[tr]=Yazıcı Programcığı ++Comment[uk]=Аплет принтера ++Comment[x-test]=xxPrinter Appletxx ++Comment[zh_TW]=印表機小程式 ++ ++[Event/New Printer] ++Name=New Printer ++Name[es]=Nueva impresora ++Name[et]=Uus printer ++Name[eu]=Inprimagailu berria ++Name[ga]=Printéir Nua ++Name[ja]=新しいプリンタ ++Name[nb]=Ny skriver ++Name[nds]=Nieg Drucker ++Name[pt]=Nova Impressora ++Name[pt_BR]=Nova impressora ++Name[ru]=Новый принтер ++Name[sr]=Нови штампач ++Name[sr@latin]=Novi štampač ++Name[sv]=Ny skrivare ++Name[tr]=Yeni Yazıcı ++Name[uk]=Новий принтер ++Name[x-test]=xxNew Printerxx ++Name[zh_TW]=新增印表機 ++Comment=Configuring New Printer ++Comment[es]=Configuración de la nueva impresora ++Comment[et]=Uue printeri seadistamine ++Comment[eu]=Inprimagailu berria konfiguratzen ++Comment[ga]=Printéir Nua á Chumrú ++Comment[ja]=新しいプリンタの設定 ++Comment[nb]=Setter opp ny skriver ++Comment[nds]=Nieg Drucker inrichten ++Comment[pt]=A Configurar a Impressora Nova ++Comment[pt_BR]=Configurando nova impressora ++Comment[ru]=Настроить новый принтер ++Comment[sr]=Подешавање новог штампача ++Comment[sr@latin]=Podešavanje novog štampača ++Comment[sv]=Anpassar ny skrivare ++Comment[tr]=Yeni Yazıcı Yapılandırılıyor ++Comment[uk]=Налаштування нового принтера ++Comment[x-test]=xxConfiguring New Printerxx ++Comment[zh_TW]=設定新印表機 ++Action=Popup ++ ++[Event/Printer Added] ++Name=Printer Added ++Name[es]=Impresora añadida ++Name[et]=Printer on lisatud ++Name[eu]=Inprimagailua erantsita ++Name[ga]=Cuireadh Printéir Leis ++Name[ja]=プリンタが追加されました ++Name[nb]=Skriver lagt til ++Name[nds]=Drucker toföögt ++Name[pt]=Impressora Adicionada ++Name[pt_BR]=Impressora adicionada ++Name[ru]=Принтер добавлен ++Name[sr]=Штампач додат ++Name[sr@latin]=Štampač dodat ++Name[sv]=Skrivare tillagd ++Name[tr]=Yazıcı Eklendi ++Name[uk]=Додано принтер ++Name[x-test]=xxPrinter Addedxx ++Name[zh_TW]=已新增印表機 ++Comment=Printer Added ++Comment[es]=Impresora añadida ++Comment[et]=Printer on lisatud ++Comment[eu]=Inprimagailua erantsita ++Comment[ga]=Cuireadh Printéir Leis ++Comment[ja]=プリンタが追加されました ++Comment[nb]=Skriver lagt til ++Comment[nds]=Drucker toföögt ++Comment[pt]=Impressora Adicionada ++Comment[pt_BR]=Impressora adicionada ++Comment[ru]=Принтер добавлен ++Comment[sr]=Штампач додат ++Comment[sr@latin]=Štampač dodat ++Comment[sv]=Skrivare tillagd ++Comment[tr]=Yazıcı Eklendi ++Comment[uk]=Додано принтер ++Comment[x-test]=xxPrinter Addedxx ++Comment[zh_TW]=已新增印表機 ++Action=Popup ++ ++[Event/Missing Printer Driver] ++Name=Missing Printer Driver ++Name[es]=Falta el controlador de la impresora ++Name[et]=Printeri draiver puudub ++Name[eu]=Inprimagailuaren gidaria falta da ++Name[ga]=Tiománaí Printéara Ar Iarraidh ++Name[ja]=プリンタドライバがありません ++Name[nb]=Manglende skriverdriver ++Name[nds]=Druckerdriever fehlt ++Name[pt]=Falta o Controlador da Impressora ++Name[pt_BR]=Falta o driver da impressora ++Name[ru]=Отсутствует драйвер принтера ++Name[sr]=Недостаје драјвер штампача ++Name[sr@latin]=Nedostaje drajver štampača ++Name[sv]=Saknar drivrutin för skrivare ++Name[tr]=Yazıcı Sürücüsü Yok ++Name[uk]=Немає драйвера принтера ++Name[x-test]=xxMissing Printer Driverxx ++Name[zh_TW]=遺失印表機驅動程式 ++Comment=Missing Printer Driver ++Comment[es]=Falta el controlador de la impresora ++Comment[et]=Printeri draiver puudub ++Comment[eu]=Inprimagailuaren gidaria falta da ++Comment[ga]=Tiománaí Printéara Ar Iarraidh ++Comment[ja]=プリンタドライバがありません ++Comment[nb]=Manglende skriverdriver ++Comment[nds]=Druckerdriever fehlt ++Comment[pt]=Falta o Controlador da Impressora ++Comment[pt_BR]=Falta o driver da impressora ++Comment[ru]=Отсутствует драйвер принтера ++Comment[sr]=Недостаје драјвер штампача ++Comment[sr@latin]=Nedostaje drajver štampača ++Comment[sv]=Saknar drivrutin för skrivare ++Comment[tr]=Yazıcı Sürücüsü Yok ++Comment[uk]=Немає драйвера принтера ++Comment[x-test]=xxMissing Printer Driverxx ++Comment[zh_TW]=遺失印表機驅動程式 ++Action=Popup ++ ++[Event/Other] ++Name=Other ++Name[es]=Otros ++Name[et]=Muu ++Name[eu]=Beste bat ++Name[ga]=Eile ++Name[ja]=その他 ++Name[nb]=Andre ++Name[nds]=Anner ++Name[pt]=Outra ++Name[pt_BR]=Outros ++Name[ru]=Другое ++Name[sr]=Друго ++Name[sr@latin]=Drugo ++Name[sv]=Annan ++Name[tr]=Diğer ++Name[uk]=Інше ++Name[x-test]=xxOtherxx ++Name[zh_TW]=其他 ++Comment=Other ++Comment[es]=Otros ++Comment[et]=Muu ++Comment[eu]=Beste bat ++Comment[ga]=Eile ++Comment[ja]=その他 ++Comment[nb]=Andre ++Comment[nds]=Anner ++Comment[pt]=Outra ++Comment[pt_BR]=Outros ++Comment[ru]=Другое ++Comment[sr]=Друго ++Comment[sr@latin]=Drugo ++Comment[sv]=Annan ++Comment[tr]=Diğer ++Comment[uk]=Інше ++Comment[x-test]=xxOtherxx ++Comment[zh_TW]=其他 ++Action=Popup +diff -urN orig/kdeutils-4.2.2/printer-applet/printer-applet.py kdeutils-4.2.2/printer-applet/printer-applet.py +--- orig/kdeutils-4.2.2/printer-applet/printer-applet.py 2008-10-09 10:46:28.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/printer-applet.py 2009-04-09 23:00:07.000000000 +0100 +@@ -1,4 +1,5 @@ + #!/usr/bin/env python ++# -*- coding: utf-8 -*- + + ############################################################################# + ## +@@ -36,23 +37,13 @@ + import subprocess + import sys + +-SYSTEM_CONFIG_PRINTER_DIR = "/usr/share/system-config-printer" +- +-MIN_REFRESH_INTERVAL = 1 # seconds +-CONNECTING_TIMEOUT = 60 # seconds +- + import time + + from PyQt4.QtCore import * + from PyQt4.QtGui import * + from PyQt4 import uic + from PyKDE4.kdecore import i18n, i18nc, i18np, i18ncp, ki18n, KAboutData, KCmdLineArgs, KCmdLineOptions, KStandardDirs, KLocalizedString +-from PyKDE4.kdeui import KApplication, KXmlGuiWindow, KStandardAction, KIcon, KToggleAction +- +-if QFile.exists(SYSTEM_CONFIG_PRINTER_DIR + "/ppds.py"): +- AUTOCONFIGURE = True +-else: +- AUTOCONFIGURE = False ++from PyKDE4.kdeui import KApplication, KXmlGuiWindow, KStandardAction, KIcon, KToggleAction, KNotification, KMessageBox + + def translate(self, prop): + """reimplement method from uic to change it to use gettext""" +@@ -72,6 +63,95 @@ + import dbus.mainloop.qt + import dbus.service + ++from statereason import StateReason ++import monitor ++import authconn ++from debug import * ++ ++class PrinterURIIndex: ++ def __init__ (self, names=None): ++ self.printer = {} ++ self.names = names ++ ++ def update_from_attrs (self, printer, attrs): ++ uris = [] ++ if attrs.has_key ('printer-uri-supported'): ++ uri_supported = attrs['printer-uri-supported'] ++ if type (uri_supported) != list: ++ uri_supported = [uri_supported] ++ uris.extend (uri_supported) ++ if attrs.has_key ('notify-printer-uri'): ++ uris.append (attrs['notify-printer-uri']) ++ if attrs.has_key ('printer-more-info'): ++ uris.append (attrs['printer-more-info']) ++ ++ for uri in uris: ++ self.printer[uri] = printer ++ ++ def remove_printer (self, printer): ++ # Remove references to this printer in the URI map. ++ uris = self.printer.keys () ++ for uri in uris: ++ if self.printer[uri] == printer: ++ del self.printer[uri] ++ ++ def lookup (self, uri, connection=None): ++ try: ++ return self.printer[uri] ++ except KeyError: ++ if connection == None: ++ connection = cups.Connection () ++ ++ r = ['printer-name', 'printer-uri-supported', 'printer-more-info'] ++ try: ++ attrs = connection.getPrinterAttributes (uri=uri, ++ requested_attributes=r) ++ except TypeError: ++ # requested_attributes argument is new in pycups 1.9.40. ++ attrs = connection.getPrinterAttributes (uri=uri) ++ except TypeError: ++ # uri argument is new in pycups 1.9.32. We'll have to try ++ # each named printer. ++ debugprint ("PrinterURIIndex: using slow method") ++ if self.names == None: ++ dests = connection.getDests () ++ names = set() ++ for (printer, instance) in dests.keys (): ++ if printer == None: ++ continue ++ if instance != None: ++ continue ++ names.add (printer) ++ self.names = names ++ ++ r = ['printer-uri-supported', 'printer-more-info'] ++ for name in self.names: ++ try: ++ attrs = connection.getPrinterAttributes (name, ++ requested_attributes=r) ++ except TypeError: ++ # requested_attributes argument is new in pycups 1.9.40. ++ attrs = connection.getPrinterAttributes (name) ++ ++ self.update_from_attrs (name, attrs) ++ try: ++ return self.printer[uri] ++ except KeyError: ++ pass ++ raise KeyError ++ except cups.IPPError: ++ # URI not known. ++ raise KeyError ++ ++ name = attrs['printer-name'] ++ self.update_from_attrs (name, attrs) ++ self.printer[uri] = name ++ try: ++ return self.printer[uri] ++ except KeyError: ++ pass ++ raise KeyError ++ + class MainWindow(KXmlGuiWindow): + """Our main GUI dialogue, overridden so that closing it doesn't quit the app""" + +@@ -91,98 +171,6 @@ + self.applet.on_printer_status_delete_event() + self.hide() + +-class StateReason: +- REPORT=1 +- WARNING=2 +- ERROR=3 +- +- LEVEL_ICON={ +- REPORT: "dialog-info", +- WARNING: "dialog-warning", +- ERROR: "dialog-error" +- } +- +- def __init__(self, printer, reason): +- self.printer = printer +- self.reason = reason +- self.level = None +- self.canonical_reason = None +- +- def get_printer (self): +- return self.printer +- +- def get_level (self): +- if self.level != None: +- return self.level +- +- if (self.reason.endswith ("-report") or +- self.reason == "connecting-to-device"): +- self.level = self.REPORT +- elif self.reason.endswith ("-warning"): +- self.level = self.WARNING +- else: +- self.level = self.ERROR +- return self.level +- +- def get_reason (self): +- if self.canonical_reason: +- return self.canonical_reason +- +- level = self.get_level () +- reason = self.reason +- if level == self.WARNING and reason.endswith ("-warning"): +- reason = reason[:-8] +- elif level == self.ERROR and reason.endswith ("-error"): +- reason = reason[:-6] +- self.canonical_reason = reason +- return self.canonical_reason +- +- def get_description (self): +- messages = { +- 'toner-low': (i18n("Toner low"), +- ki18n("Printer '%1' is low on toner.")), +- 'toner-empty': (i18n("Toner empty"), +- ki18n("Printer '%1' has no toner left.")), +- 'cover-open': (i18n("Cover open"), +- ki18n("The cover is open on printer '%1'.")), +- 'door-open': (i18n("Door open"), +- ki18n("The door is open on printer '%1'.")), +- 'media-low': (i18n("Paper low"), +- ki18n("Printer '%1' is low on paper.")), +- 'media-empty': (i18n("Out of paper"), +- ki18n("Printer '%1' is out of paper.")), +- 'marker-supply-low': (i18n("Ink low"), +- ki18n("Printer '%1' is low on ink.")), +- 'marker-supply-empty': (i18n("Ink empty"), +- ki18n("Printer '%1' has no ink left.")), +- 'connecting-to-device': (i18n("Not connected?"), +- ki18n("Printer '%1' may not be connected.")), +- } +- try: +- (title, text) = messages[self.get_reason ()] +- text = text.subs (self.get_printer ()).toString () +- except KeyError: +- if self.get_level () == self.REPORT: +- title = i18n("Printer report") +- elif self.get_level () == self.WARNING: +- title = i18n("Printer warning") +- elif self.get_level () == self.ERROR: +- title = i18n("Printer error") +- text = i18n("Printer '%1': '%2'.", self.get_printer (), self.get_reason ()) +- return (title, text) +- +- def get_tuple (self): +- return (self.get_level (), self.get_printer (), self.get_reason ()) +- +- def __cmp__(self, other): +- if other == None: +- return 1 +- if other.get_level () != self.get_level (): +- return self.get_level () < other.get_level () +- if other.get_printer () != self.get_printer (): +- return other.get_printer () < self.get_printer () +- return other.get_reason () < self.get_reason () +- + def collect_printer_state_reasons (connection): + result = [] + printers = connection.getPrinters () +@@ -220,27 +208,26 @@ + return worst_reason + + +-class JobManager(QObject): ++class JobManager(QObject, monitor.Watcher): + """our main class creates the systray icon and the dialogues and refreshes the dialogues for new information""" + def __init__(self, parent = None): + QObject.__init__(self) + +- self.will_refresh = False # whether timeout is set +- self.last_refreshed = 0 + self.trayicon = True + self.suppress_icon_hide = False +- self.which_jobs = "not-completed" +- self.hidden = False ++ self.stopped_job_prompts = set() # of job IDs ++ self.printer_state_reasons = {} ++ self.num_jobs_when_hidden = 0 + self.jobs = {} + self.jobiters = {} +- self.will_update_job_creation_times = False # whether timeout is set ++ self.will_update_job_creation_times = False # whether timeout is set FIXME now job_creation_times_timer + self.update_job_creation_times_timer = QTimer(self) + self.connect(self.update_job_creation_times_timer, SIGNAL("timeout()"), self.update_job_creation_times) + self.statusbar_set = False +- self.reasons_seen = {} + self.connecting_to_device = {} # dict of printer->time first seen +- self.still_connecting = set() ++ self.state_reason_notifications = {} + self.special_status_icon = False ++ self.reasoniters = {} + + #Use local files if in current directory + if os.path.exists("printer-applet.ui"): +@@ -257,7 +244,7 @@ + + self.sysTray = QSystemTrayIcon(KIcon("printer"), self.mainWindow) + #self.sysTray.show() +- self.connect(self.sysTray, SIGNAL("activated( QSystemTrayIcon::ActivationReason )"), self.showMainWindow) ++ self.connect(self.sysTray, SIGNAL("activated( QSystemTrayIcon::ActivationReason )"), self.toggle_window_display) + + self.menu = QMenu() + self.menu.addAction(i18n("_Hide").replace("_", ""), self.on_icon_hide_activate) +@@ -265,7 +252,7 @@ + self.sysTray.setContextMenu(self.menu) + + self.mainWindow.treeWidget.setContextMenuPolicy(Qt.CustomContextMenu) +- self.connect(self.mainWindow.treeWidget, SIGNAL("customContextMenuRequested(const QPoint&)"), self.on_treeview_button_press_event) ++ self.connect(self.mainWindow.treeWidget, SIGNAL("customContextMenuRequested(const QPoint&)"), self.show_treeview_popup_menu) + #self.connect(self.mainWindow.treeWidget, SIGNAL("itemClicked(QTreeWidgetItem*, int)"), self.printItemClicked) + self.rightClickMenu = QMenu(self.mainWindow.treeWidget) + self.cancel = self.rightClickMenu.addAction(i18n("Cancel"), self.on_job_cancel_activate) +@@ -279,7 +266,7 @@ + refreshAction.setIcon( KIcon("view-refresh") ) + refreshAction.setText( i18n( "&Refresh" ) ) + refreshAction.setShortcut(QKeySequence(Qt.Key_F5)) +- self.connect(refreshAction, SIGNAL("triggered(bool)"), self.refresh); ++ self.connect(refreshAction, SIGNAL("triggered(bool)"), self.on_refresh_activate); + + showCompletedJobsAction = KToggleAction("Show Completed Jobs", self.mainWindow) + self.mainWindow.actionCollection().addAction("show_completed_jobs", showCompletedJobsAction) +@@ -288,11 +275,12 @@ + showPrinterStatusAction = KToggleAction("Show Printer Status", self.mainWindow) + self.mainWindow.actionCollection().addAction("show_printer_status", showPrinterStatusAction) + self.connect(showPrinterStatusAction, SIGNAL("triggered(bool)"), self.on_show_printer_status_activate); ++ ++ self.mainWindow.treeWidget.header().setResizeMode(QHeaderView.ResizeToContents) ++ self.printersWindow.treeWidget.header().setResizeMode(QHeaderView.ResizeToContents) + + self.mainWindow.createGUI(APPDIR + "/printer-appletui.rc") + +- cups.setPasswordCB(self.cupsPasswdCallback) +- + dbus.mainloop.qt.DBusQtMainLoop(set_as_default=True) + + try: +@@ -301,16 +289,21 @@ + print >> sys.stderr, "%s: printer-applet failed to connect to system D-Bus" + sys.exit (1) + +- if AUTOCONFIGURE: ++ self.monitor = monitor.Monitor (self, bus=bus, my_jobs=True, ++ specific_dests=None) ++ ++ try: ++ import cupshelpers.ppds + notification = NewPrinterNotification(bus, self) ++ except ImportError: ++ pass # cupshelpers not installed, no new printer notification will be shown + +- # D-Bus +- bus.add_signal_receiver (self.handle_dbus_signal, +- path="/com/redhat/PrinterSpooler", +- dbus_interface="com.redhat.PrinterSpooler") +- self.refresh() ++ def cleanup (self): ++ self.monitor.cleanup () ++ if self.exit_handler: ++ self.exit_handler (self) + +- """Used in gtk frontend to set magnifing glass icon when configuring printer, I don't have a suitable icon so using bubbles instead ++ """Used in gtk frontend to set magnifing glass icon when configuring printer, I don't have a suitable icon so using notifications instead + # Handle "special" status icon + def set_special_statusicon (self, iconname): + self.special_status_icon = True +@@ -323,19 +316,8 @@ + """ + + def notify_new_printer (self, printer, title, text): +- self.hidden = False +- self.showMessage(title, text) +- +- def showMessage(self, title, message): +- """show a message, delayed slightly to ensure the systray is visible else it appears in the wrong place +- Gtk uses libnotify, for Qt we just show the message directly""" + self.sysTray.show() +- self.sysTrayTitle = title +- self.sysTrayMessage = message +- QTimer.singleShot(1000, self.showSysTrayMessage) +- +- def showSysTrayMessage(self): +- self.sysTray.showMessage(self.sysTrayTitle, self.sysTrayMessage) ++ KNotification.event(title, text, KIcon("konqueror").pixmap(QSize(22,22))) + + """unused, see set_special_statusicon + def set_statusicon_from_pixbuf (self, pb): +@@ -358,13 +340,6 @@ + def on_printer_status_delete_event(self): + self.mainWindow.actionShow_Printer_Status.setChecked(False) + +- def cupsPasswdCallback(self, querystring): +- (text, ok) = QInputDialog.getText(self.mainWindow, i18n("Password required"), querystring, QLineEdit.Password) +- if ok: +- print "ok" +- return text +- return '' +- + def show_IPP_Error(self, exception, message): + if exception == cups.IPP_NOT_AUTHORIZED: + error_text = ('' + +@@ -378,29 +353,26 @@ + #fix Gtk's non-HTML for Qt + error_text = error_text.replace("\n", "
") + error_text = error_text.replace("span", "strong") +- QMessageBox.critical(self.mainWindow, i18n("Error"), error_text) ++ KMessageBox.error(self.mainWindow, error_text, i18n("Error")) + +- """ +- def toggle_window_display(self, icon): +- """ +- #FIXME, hide printer status window? +- def hideMainWindow(self): +- self.mainWindow.hide() +- +- def showMainWindow(self, activationReason): ++ def toggle_window_display(self, activationReason): + if activationReason == QSystemTrayIcon.Trigger: + if self.mainWindow.isVisible(): + self.mainWindow.hide() + else: + self.mainWindow.show() +- self.refresh() ++ self.monitor.refresh() ++ ++ #FIXME, hide printer status window? ++ def hideMainWindow(self): ++ self.mainWindow.hide() + + def on_show_completed_jobs_activate(self, activated): + if activated: +- self.which_jobs = "all" ++ self.monitor.which_jobs = "all" + else: +- self.which_jobs = "not-completed" +- self.refresh() ++ self.monitor.which_jobs = "not-completed" ++ self.monitor.refresh() + + def on_show_printer_status_activate(self, activated): + if activated: +@@ -408,113 +380,6 @@ + else: + self.printersWindow.hide() + +- def check_still_connecting(self): +- """Timer callback to check on connecting-to-device reasons.""" +- c = cups.Connection () +- printer_reasons = collect_printer_state_reasons (c) +- del c +- +- if self.update_connecting_devices (printer_reasons): +- self.refresh () +- +- # Don't run this callback again. +- return False +- +- def update_connecting_devices(self, printer_reasons=[]): +- """Updates connecting_to_device dict and still_connecting set. +- Returns True if a device has been connecting too long.""" +- time_now = time.time () +- connecting_to_device = {} +- trouble = False +- for reason in printer_reasons: +- if reason.get_reason () == "connecting-to-device": +- # Build a new connecting_to_device dict. If our existing +- # dict already has an entry for this printer, use that. +- printer = reason.get_printer () +- t = self.connecting_to_device.get (printer, time_now) +- connecting_to_device[printer] = t +- if time_now - t >= CONNECTING_TIMEOUT: +- trouble = True +- +- # Clear any previously-notified errors that are now fine. +- remove = set() +- for printer in self.still_connecting: +- if not self.connecting_to_device.has_key (printer): +- remove.add (printer) +- +- self.still_connecting = self.still_connecting.difference (remove) +- +- self.connecting_to_device = connecting_to_device +- return trouble +- +- def check_state_reasons(self, connection, my_printers=set()): +- printer_reasons = collect_printer_state_reasons (connection) +- +- # Look for any new reasons since we last checked. +- old_reasons_seen_keys = self.reasons_seen.keys () +- reasons_now = set() +- need_recheck = False +- for reason in printer_reasons: +- tuple = reason.get_tuple () +- printer = reason.get_printer () +- reasons_now.add (tuple) +- if not self.reasons_seen.has_key (tuple): +- # New reason. +- iter = QTreeWidgetItem(self.printersWindow.treeWidget) +- #iter.setText(0, reason.get_level ()) +- iter.setText(0, reason.get_printer ()) +- title, text = reason.get_description () +- iter.setText(1, text) +- self.printersWindow.treeWidget.addTopLevelItem(iter) +- +- self.reasons_seen[tuple] = iter +- if (reason.get_reason () == "connecting-to-device" and +- not self.connecting_to_device.has_key (printer)): +- # First time we've seen this. +- need_recheck = True +- +- if need_recheck: +- # Check on them again in a minute's time. +- QTimer.singleShot(CONNECTING_TIMEOUT * 1000, self.check_still_connecting) +- +- self.update_connecting_devices (printer_reasons) +- items = self.reasons_seen.keys () +- for tuple in items: +- if not tuple in reasons_now: +- # Reason no longer present. +- iter = self.reasons_seen[tuple] +- index = self.mainWindow.treeWidget.indexOfTopLevelItem(iter) +- self.mainWindow.treeWidget.takeTopLevelItem(index) +- del self.reasons_seen[tuple] +- # Update statusbar and icon with most severe printer reason +- # across all printers. +- self.icon_has_emblem = False +- reason = worst_printer_state_reason (connection, printer_reasons) +- if reason != None and reason.get_level () >= StateReason.WARNING: +- title, text = reason.get_description () +- #if self.statusbar_set: +- # self.statusbar.pop (0) +- self.mainWindow.statusBar().showMessage(text) +- #self.statusbar.push (0, text) +- self.worst_reason_text = text +- self.statusbar_set = True +- +- if self.trayicon: +- icon = StateReason.LEVEL_ICON[reason.get_level ()] +- emblem = QPixmap(KIcon(icon).pixmap(16, 16)) +- pixbuf = QPixmap(KIcon("printer").pixmap(22, 22)) +- painter = QPainter(pixbuf) +- painter.drawPixmap(pixbuf.width()-emblem.width(),pixbuf.height()-emblem.height(),emblem) +- painter.end() +- self.sysTray.setIcon(QIcon(pixbuf)) +- self.icon_has_emblem = True +- else: +- # No errors +- if self.statusbar_set: +- #self.statusbar.pop (0) +- self.mainWindow.statusBar().clearMessage() +- self.statusbar_set = False +- + """not using notifications in qt frontend + def on_notification_closed(self, notify): + """ +@@ -547,8 +412,7 @@ + mins = int(ago / 60) + t = i18np("a minute ago", "%1 minutes ago", mins) + +- #self.store.set_value (iter, 4, t) +- iter.setText(4, t) ++ iter.setText(5, t) + + if need_update and not self.will_update_job_creation_times: + self.update_job_creation_times_timer.setInterval(60 * 1000) +@@ -562,152 +426,121 @@ + # Return code controls whether the timeout will recur. + return self.will_update_job_creation_times + +- def refresh(self): +- """updates the print dialogue""" +- now = time.time () +- if (now - self.last_refreshed) < MIN_REFRESH_INTERVAL: +- if self.will_refresh: +- return +- +- #gobject.timeout_add (MIN_REFRESH_INTERVAL * 1000, +- # self.refresh) +- QTimer.singleShot(MIN_REFRESH_INTERVAL * 1000, self.update_job_creation_times) +- self.will_refresh = True +- return +- +- self.will_refresh = False +- self.last_refreshed = now +- +- try: +- c = cups.Connection () +- jobs = c.getJobs (which_jobs=self.which_jobs, my_jobs=True) +- except cups.IPPError, (e, m): +- self.show_IPP_Error (e, m) +- return +- except RuntimeError: +- return ++ def print_error_dialog_response(self, response, jobid): ++ self.stopped_job_prompts.remove (jobid) ++ if response == KMessageBox.No: ++ # Diagnose ++ if not self.__dict__.has_key ('troubleshooter'): ++ print "FIXME implement troubleshooter" ++ #import troubleshoot ++ #troubleshooter = troubleshoot.run (self.on_troubleshoot_quit) ++ #self.troubleshooter = troubleshooter ++ ++ def add_job (self, job, data): ++ iter = QTreeWidgetItem(self.mainWindow.treeWidget) ++ iter.setText(0, str(job)) ++ iter.setText(1, data.get('job-originating-user-name', i18nc("User who printed is not known", 'Unknown'))) ++ iter.setText(2, data.get('job-name', i18nc("Print job name is not known", 'Unknown'))) ++ self.mainWindow.treeWidget.addTopLevelItem(iter) ++ self.jobiters[job] = iter ++ self.update_job (job, data) ++ self.update_job_creation_times () + +- if self.which_jobs == "not-completed": +- num_jobs = len (jobs) +- else: ++ def update_job (self, job, data): ++ iter = self.jobiters[job] ++ self.jobs[job] = data ++ ++ printer = data['job-printer-name'] ++ iter.setText(3, printer) ++ ++ size = i18n("Unknown") ++ if data.has_key ('job-k-octets'): ++ size = str (data['job-k-octets']) + 'k' ++ iter.setText(4, size) ++ ++ state = None ++ job_requires_auth = False ++ if data.has_key ('job-state'): + try: +- num_jobs = len (c.getJobs (my_jobs=True)) +- except cups.IPPError, (e, m): +- self.show_IPP_Error (e, m) +- return +- except RuntimeError: +- return +- +- if self.trayicon: +- self.num_jobs = num_jobs +- if self.hidden and self.num_jobs != self.num_jobs_when_hidden: +- self.hidden = False +- if num_jobs == 0: +- tooltip = i18n("No documents queued") +- #FIXMEself.set_statusicon_from_pixbuf (self.icon_no_jobs) +- else: +- tooltip = i18np("1 document queued", "%1 documents queued", num_jobs) +- #self.set_statusicon_from_pixbuf (self.icon_jobs) +- +- my_printers = set() +- for job, data in jobs.iteritems (): +- state = data.get ('job-state', cups.IPP_JOB_CANCELED) +- if state >= cups.IPP_JOB_CANCELED: +- continue +- uri = data.get ('job-printer-uri', '/') +- i = uri.rfind ('/') +- my_printers.add (uri[i + 1:]) +- +- self.check_state_reasons (c, my_printers) +- del c +- +- if self.trayicon: +- # If there are no jobs but there is a printer +- # warning/error indicated by the icon, set the icon +- # tooltip to the reason description. +- if self.num_jobs == 0 and self.icon_has_emblem: +- tooltip = self.worst_reason_text +- +- self.sysTray.setToolTip (tooltip) +- self.set_statusicon_visibility () +- +- for job in self.jobs: +- if not jobs.has_key (job): +- #self.store.remove (self.jobiters[job]) +- index = self.mainWindow.treeWidget.indexOfTopLevelItem(self.jobiters[job]) +- self.mainWindow.treeWidget.takeTopLevelItem(index) +- del self.jobiters[job] +- +- for job, data in jobs.iteritems(): +- if self.jobs.has_key (job): +- iter = self.jobiters[job] +- else: +- iter = QTreeWidgetItem(self.mainWindow.treeWidget) +- iter.setText(0, str(job)) +- iter.setText(1, data.get('job-name', 'Unknown')) +- self.mainWindow.treeWidget.addTopLevelItem(iter) +- self.jobiters[job] = iter +- +- uri = data.get('job-printer-uri', '') +- i = uri.rfind ('/') +- if i != -1: +- printer = uri[i + 1:] +- iter.setText(2, printer) +- +- if data.has_key ('job-k-octets'): +- size = str (data['job-k-octets']) + 'k' +- else: +- size = 'Unknown' +- iter.setText(3, size) +- #self.store.set_value (iter, 3, size) +- +- state = None +- if data.has_key ('job-state'): +- try: +- jstate = data['job-state'] +- s = int (jstate) +- state = { cups.IPP_JOB_PENDING:i18nc("Job state", "Pending"), +- cups.IPP_JOB_HELD:i18nc("Job state", "Held"), ++ jstate = data['job-state'] ++ s = int (jstate) ++ job_requires_auth = (jstate == cups.IPP_JOB_HELD and ++ data.get ('job-hold-until', 'none') == ++ 'auth-info-required') ++ if job_requires_auth: ++ state = i18nc("Job state", "Held for authentication") ++ else: ++ state = { cups.IPP_JOB_PENDING: i18nc("Job state", "Pending"), ++ cups.IPP_JOB_HELD: i18nc("Job state", "Held"), + cups.IPP_JOB_PROCESSING: i18nc("Job state", "Processing"), + cups.IPP_JOB_STOPPED: i18nc("Job state", "Stopped"), + cups.IPP_JOB_CANCELED: i18nc("Job state", "Canceled"), + cups.IPP_JOB_ABORTED: i18nc("Job state", "Aborted"), + cups.IPP_JOB_COMPLETED: i18nc("Job state", "Completed") }[s] +- except ValueError: +- pass +- except IndexError: +- pass +- if state == None: +- state = i18nc("Job state", "Unknown") +- iter.setText(5, state) +- columns = self.mainWindow.treeWidget.columnCount() +- for i in range(columns): +- self.mainWindow.treeWidget.resizeColumnToContents(i) ++ except ValueError: ++ pass ++ except IndexError: ++ pass ++ ++ if state == None: ++ state = i18nc("Job state", "Unknown") ++ iter.setText(6, state) + +- self.jobs = jobs +- self.update_job_creation_times () ++ """FIXME TODO ++ # Check whether authentication is required. ++ if self.trayicon: ++ if (job_requires_auth and ++ not self.auth_notifications.has_key (job) and ++ not self.auth_info_dialogs.has_key (job)): ++ try: ++ cups.require ("1.9.37") ++ except: ++ debugprint ("Authentication required but " ++ "authenticateJob() not available") ++ return ++ ++ title = i18n("Authentication Required") ++ text = i18n("Job requires authentication to proceed.") ++ notification = pynotify.Notification (title, text, 'printer') ++ notification.set_data ('job-id', job) ++ notification.set_urgency (pynotify.URGENCY_NORMAL) ++ notification.set_timeout (pynotify.EXPIRES_NEVER) ++ notification.connect ('closed', ++ self.on_auth_notification_closed) ++ self.set_statusicon_visibility () ++ notification.attach_to_status_icon (self.statusicon) ++ notification.add_action ("authenticate", i18n("Authenticate"), ++ self.on_auth_notification_authenticate) ++ notification.show () ++ self.auth_notifications[job] = notification ++ elif (not job_requires_auth and ++ self.auth_notifications.has_key (job)): ++ self.auth_notifications[job].close () ++ """ + + def set_statusicon_visibility (self): +- if self.trayicon: +- if self.suppress_icon_hide: +- # Avoid hiding the icon if we've been woken up to notify +- # about a new printer. +- self.suppress_icon_hide = False +- return ++ if not self.trayicon: ++ return + +- if (not self.hidden) and (self.num_jobs > 0 or self.icon_has_emblem) or self.special_status_icon: +- self.sysTray.show() +- else: +- self.sysTray.hide() ++ if self.suppress_icon_hide: ++ # Avoid hiding the icon if we've been woken up to notify ++ # about a new printer. ++ self.suppress_icon_hide = False ++ return ++ ++ num_jobs = len (self.jobs.keys ()) ++ ++ debugprint ("num_jobs: %d" % num_jobs) ++ debugprint ("num_jobs_when_hidden: %d" % self.num_jobs_when_hidden) + +- def on_treeview_button_press_event(self, postition): ++ self.sysTray.setVisible(self.special_status_icon or ++ num_jobs > self.num_jobs_when_hidden) ++ ++ def show_treeview_popup_menu(self, postition): + # Right-clicked. + items = self.mainWindow.treeWidget.selectedItems () +- print "items" + str(items) +- print len(items) + if len(items) != 1: + return +- print "selected: " + str(items) + iter = items[0] + if iter == None: + return +@@ -720,15 +553,13 @@ + self.reprint.setEnabled (True) + if job.has_key ('job-state'): + s = job['job-state'] +- print s, "jobstate" + if s >= cups.IPP_JOB_CANCELED: + self.cancel.setEnabled (False) +- if s != cups.IPP_JOB_PENDING and s != cups.IPP_JOB_PROCESSING: ++ if s != cups.IPP_JOB_PENDING: + self.hold.setEnabled (False) + if s != cups.IPP_JOB_HELD: + self.release.setEnabled (False) +- if (s != cups.IPP_JOB_CANCELED or +- not job.get('job-preserved', False)): ++ if (not job.get('job-preserved', False)): + self.reprint.setEnabled (False) + self.rightClickMenu.popup(QCursor.pos()) + +@@ -736,8 +567,7 @@ + self.icon_popupmenu.popup (None, None, None, button, time) + + def on_icon_hide_activate(self): +- self.num_jobs_when_hidden = self.num_jobs +- self.hidden = True ++ self.num_jobs_when_hidden = len (self.jobs.keys ()) + self.set_statusicon_visibility () + + def on_icon_quit_activate(self): +@@ -745,83 +575,463 @@ + + def on_job_cancel_activate(self): + try: +- c = cups.Connection () ++ c = authconn.Connection (self.mainWindow) + c.cancelJob (self.jobid) + del c + except cups.IPPError, (e, m): +- self.show_IPP_Error (e, m) +- self.refresh() ++ if (e != cups.IPP_NOT_POSSIBLE and ++ e != cups.IPP_NOT_FOUND): ++ self.show_IPP_Error (e, m) ++ self.monitor.refresh () + return + except RuntimeError: + return +- self.refresh() ++ ++ self.monitor.refresh () + + def on_job_hold_activate(self): + try: +- c = cups.Connection () ++ c = authconn.Connection (self.mainWindow) + c.setJobHoldUntil (self.jobid, "indefinite") + del c + except cups.IPPError, (e, m): +- self.show_IPP_Error (e, m) +- self.refresh() ++ if (e != cups.IPP_NOT_POSSIBLE and ++ e != cups.IPP_NOT_FOUND): ++ self.show_IPP_Error (e, m) ++ self.monitor.refresh () + return + except RuntimeError: + return +- self.refresh() ++ ++ self.monitor.refresh () + + def on_job_release_activate(self): + try: +- c = cups.Connection () ++ c = authconn.Connection (self.mainWindow) + c.setJobHoldUntil (self.jobid, "no-hold") + del c + except cups.IPPError, (e, m): +- self.show_IPP_Error (e, m) +- self.refresh() ++ if (e != cups.IPP_NOT_POSSIBLE and ++ e != cups.IPP_NOT_FOUND): ++ self.show_IPP_Error (e, m) ++ self.monitor.refresh () + return + except RuntimeError: + return +- self.refresh() ++ ++ self.monitor.refresh () + + def on_job_reprint_activate(self): + try: +- c = cups.Connection () ++ c = authconn.Connection (self.mainWindow) + c.restartJob (self.jobid) + del c + except cups.IPPError, (e, m): + self.show_IPP_Error (e, m) +- self.refresh() ++ self.monitor.refresh () + return + except RuntimeError: + return + +- self.refresh () ++ self.monitor.refresh () + + def on_refresh_activate(self, menuitem): +- self.refresh () ++ self.monitor.refresh () + +- def handle_dbus_signal(self, *args): +- self.refresh () ++ def job_is_active (self, jobdata): ++ state = jobdata.get ('job-state', cups.IPP_JOB_CANCELED) ++ if state >= cups.IPP_JOB_CANCELED: ++ return False + +- ## Printer status window +- """FIXME +- def set_printer_status_icon (self, column, cell, model, iter, *user_data): +- level = model.get_value (iter, 0) +- icon = StateReason.LEVEL_ICON[level] +- theme = gtk.icon_theme_get_default () +- try: +- pixbuf = theme.load_icon (icon, 22, 0) +- cell.set_property("pixbuf", pixbuf) +- except gobject.GError, exc: +- pass # Couldn't load icon +- """ +- """FIXME +- def set_printer_status_name (self, column, cell, model, iter, *user_data): +- cell.set_property("text", model.get_value (iter, 1)) +- """ ++ return True ++ ++ def set_statusicon_tooltip (self, tooltip=None): ++ if not self.trayicon: ++ return ++ ++ if tooltip == None: ++ num_jobs = len (self.jobs) ++ if num_jobs == 0: ++ tooltip = i18n("No documents queued") ++ else: ++ tooltip = i18np("1 document queued", "%1 documents queued", num_jobs) ++ ++ self.sysTray.setToolTip(tooltip) ++ ++ def update_status (self, have_jobs=None): ++ # Found out which printer state reasons apply to our active jobs. ++ upset_printers = set() ++ for printer, reasons in self.printer_state_reasons.iteritems (): ++ if len (reasons) > 0: ++ upset_printers.add (printer) ++ debugprint ("Upset printers: %s" % upset_printers) ++ ++ my_upset_printers = set() ++ if len (upset_printers): ++ my_upset_printers = set() ++ for jobid in self.active_jobs: ++ # 'job-printer-name' is set by job_added/job_event ++ printer = self.jobs[jobid]['job-printer-name'] ++ if printer in upset_printers: ++ my_upset_printers.add (printer) ++ debugprint ("My upset printers: %s" % my_upset_printers) ++ ++ my_reasons = [] ++ for printer in my_upset_printers: ++ my_reasons.extend (self.printer_state_reasons[printer]) ++ ++ # Find out which is the most problematic. ++ self.worst_reason = None ++ if len (my_reasons) > 0: ++ worst_reason = my_reasons[0] ++ for reason in my_reasons: ++ if reason > worst_reason: ++ worst_reason = reason ++ self.worst_reason = worst_reason ++ debugprint ("Worst reason: %s" % worst_reason) ++ ++ if self.worst_reason != None: ++ (title, tooltip) = self.worst_reason.get_description () ++ self.mainWindow.statusBar().showMessage(tooltip) ++ self.statusbar_set = True ++ else: ++ tooltip = None ++ if self.statusbar_set: ++ self.mainWindow.statusBar().clearMessage() ++ self.statusbar_set = False ++ ++ if self.trayicon: ++ self.set_statusicon_visibility () ++ self.set_statusicon_tooltip (tooltip=tooltip) ++ ++ ## Notifications ++ def notify_printer_state_reason_if_important (self, reason): ++ level = reason.get_level () ++ if level < StateReason.WARNING: ++ # Not important enough to justify a notification. ++ return ++ ++ self.notify_printer_state_reason (reason) ++ ++ def notify_printer_state_reason (self, reason): ++ tuple = reason.get_tuple () ++ if self.state_reason_notifications.has_key (tuple): ++ debugprint ("Already sent notification for %s" % repr (reason)) ++ return ++ ++ """port? ++ level = reason.get_level () ++ if (level == StateReason.ERROR or ++ reason.get_reason () == "connecting-to-device"): ++ urgency = pynotify.URGENCY_NORMAL ++ else: ++ urgency = pynotify.URGENCY_LOW ++ """ ++ ++ (title, text) = reason.get_description () ++ KNotification.event("Other", text, KIcon("konqueror").pixmap(QSize(22,22))) ++ self.set_statusicon_visibility () ++ ++ ## monitor.Watcher interface ++ def current_printers_and_jobs (self, mon, printers, jobs): ++ self.mainWindow.treeWidget.clear() ++ self.jobs = {} ++ self.jobiters = {} ++ self.printer_uri_index = PrinterURIIndex (names=printers) ++ connection = None ++ for jobid, jobdata in jobs.iteritems (): ++ uri = jobdata.get ('job-printer-uri', '') ++ try: ++ printer = self.printer_uri_index.lookup (uri, ++ connection=connection) ++ except KeyError: ++ printer = uri ++ jobdata['job-printer-name'] = printer ++ ++ self.add_job (jobid, jobdata) ++ ++ # Fetch complete attributes for these jobs. ++ attrs = None ++ try: ++ if connection == None: ++ connection = cups.Connection () ++ attrs = connection.getJobAttributes (jobid) ++ except RuntimeError: ++ pass ++ except AttributeError: ++ pass ++ ++ if attrs: ++ jobdata.update (attrs) ++ self.update_job (jobid, jobdata) ++ ++ self.jobs = jobs ++ self.active_jobs = set() ++ for jobid, jobdata in jobs.iteritems (): ++ if self.job_is_active (jobdata): ++ self.active_jobs.add (jobid) ++ ++ self.update_status () ++ ++ def job_added (self, mon, jobid, eventname, event, jobdata): ++ monitor.Watcher.job_added (self, mon, jobid, eventname, event, jobdata) ++ ++ uri = jobdata.get ('job-printer-uri', '') ++ try: ++ printer = self.printer_uri_index.lookup (uri) ++ except KeyError: ++ printer = uri ++ jobdata['job-printer-name'] = printer ++ ++ # We may be showing this job already, perhaps because we are showing ++ # completed jobs and one was reprinted. ++ if not self.jobiters.has_key (jobid): ++ self.add_job (jobid, jobdata) ++ ++ self.active_jobs.add (jobid) ++ self.update_status (have_jobs=True) ++ if self.trayicon: ++ if not self.job_is_active (jobdata): ++ return ++ ++ for reason in self.printer_state_reasons.get (printer, []): ++ if not reason.user_notified: ++ self.notify_printer_state_reason_if_important (reason) ++ ++ ++ def job_event (self, mon, jobid, eventname, event, jobdata): ++ monitor.Watcher.job_event (self, mon, jobid, eventname, event, jobdata) ++ ++ uri = jobdata.get ('job-printer-uri', '') ++ try: ++ printer = self.printer_uri_index.lookup (uri) ++ except KeyError: ++ printer = uri ++ jobdata['job-printer-name'] = printer ++ ++ if self.job_is_active (jobdata): ++ self.active_jobs.add (jobid) ++ elif jobid in self.active_jobs: ++ self.active_jobs.remove (jobid) ++ ++ # Look out for stopped jobs. ++ if (self.trayicon and eventname == 'job-stopped' and ++ not jobid in self.stopped_job_prompts): ++ # Why has the job stopped? It might be due to a job error ++ # of some sort, or it might be that the backend requires ++ # authentication. If the latter, the job will be held not ++ # stopped, and the job-hold-until attribute will be ++ # 'auth-info-required'. This will be checked for in ++ # update_job. ++ if jobdata['job-state'] == cups.IPP_JOB_HELD: ++ try: ++ # Fetch the job-hold-until attribute, as this is ++ # not provided in the notification attributes. ++ c = cups.Connection () ++ attrs = c.getJobAttributes (jobid) ++ jobdata.update (attrs) ++ except cups.IPPError: ++ pass ++ except RuntimeError: ++ pass ++ ++ may_be_problem = True ++ if (jobdata['job-state'] == cups.IPP_JOB_HELD and ++ jobdata['job-hold-until'] == 'auth-info-required'): ++ # Leave this to update_job to deal with. ++ may_be_problem = False ++ else: ++ # Other than that, unfortunately the only ++ # clue we get is the notify-text, which is not ++ # translated into our native language. We'd better ++ # try parsing it. In CUPS-1.3.6 the possible strings ++ # are: ++ # ++ # "Job stopped due to filter errors; please consult ++ # the error_log file for details." ++ # ++ # "Job stopped due to backend errors; please consult ++ # the error_log file for details." ++ # ++ # "Job held due to backend errors; please consult the ++ # error_log file for details." ++ # ++ # "Authentication is required for job %d." ++ # [This case is handled in the update_job method.] ++ # ++ # "Job stopped due to printer being paused" ++ # [This should be ignored, as the job was doing just ++ # fine until the printer was stopped for other reasons.] ++ notify_text = event['notify-text'] ++ document = jobdata['job-name'] ++ if notify_text.find ("backend errors") != -1: ++ message = i18n("There was a problem sending document `%1' " ++ "(job %2) to the printer.", document, jobid) ++ elif notify_text.find ("filter errors") != -1: ++ message = i18n("There was a problem processing document `%1' " ++ "(job %2).", document, jobid) ++ elif notify_text.find ("being paused") != -1: ++ may_be_problem = False ++ else: ++ # Give up and use the provided message untranslated. ++ message = i18n("There was a problem printing document `%1' " ++ "(job %2): `%3'.", document, jobid, ++ notify_text) ++ ++ if may_be_problem: ++ ++ markup = ('' + ++ i18n("Print Error") + '

' + ++ message) ++ try: ++ if event['printer-state'] == cups.IPP_PRINTER_STOPPED: ++ name = event['printer-name'] ++ markup += ' ' ++ markup += i18n("The printer called `%1' has " ++ "been disabled.", name) ++ except KeyError: ++ pass ++ ++ self.stopped_job_prompts.add (jobid) ++ result = KMessageBox.warning(self.mainWindow, markup, i18n("Print Error")) ++ #FIXME GTK version asks a question here but we don't have troubleshooter anyway ++ #self.print_error_dialog_response(result, jobid) ++ ++ self.update_job (jobid, jobdata) ++ ++ def job_removed (self, mon, jobid, eventname, event): ++ monitor.Watcher.job_removed (self, mon, jobid, eventname, event) ++ if self.jobiters.has_key (jobid): ++ ++ index = self.mainWindow.treeWidget.indexOfTopLevelItem(self.jobiters[jobid]) ++ self.mainWindow.treeWidget.takeTopLevelItem(index) ++ del self.jobiters[jobid] ++ del self.jobs[jobid] ++ ++ if jobid in self.active_jobs: ++ self.active_jobs.remove (jobid) ++ ++ self.update_status () ++ ++ def state_reason_added (self, mon, reason): ++ monitor.Watcher.state_reason_added (self, mon, reason) ++ ++ (title, text) = reason.get_description () ++ printer = reason.get_printer () ++ ++ iter = QTreeWidgetItem(self.printersWindow.treeWidget) ++ iter.setText(0, reason.get_printer ()) ++ iter.setText(1, printer) ++ iter.setText(1, text) ++ self.printersWindow.treeWidget.addTopLevelItem(iter) ++ self.reasoniters[reason.get_tuple ()] = iter ++ ++ try: ++ l = self.printer_state_reasons[printer] ++ except KeyError: ++ l = [] ++ self.printer_state_reasons[printer] = l ++ ++ reason.user_notified = False ++ l.append (reason) ++ self.update_status () ++ ++ if not self.trayicon: ++ return ++ ++ # Find out if the user has jobs queued for that printer. ++ for job, data in self.jobs.iteritems (): ++ if not self.job_is_active (data): ++ continue ++ if data['job-printer-name'] == printer: ++ # Yes! Notify them of the state reason, if necessary. ++ self.notify_printer_state_reason_if_important (reason) ++ break ++ ++ def state_reason_removed (self, mon, reason): ++ monitor.Watcher.state_reason_removed (self, mon, reason) ++ ++ try: ++ iter = self.reasoniters[reason.get_tuple ()] ++ index = self.printersWindow.treeWidget.indexOfTopLevelItem(iter) ++ self.printersWindow.treeWidget.takeTopLevelItem(index) ++ except KeyError: ++ debugprint ("Reason iter not found") ++ ++ printer = reason.get_printer () ++ try: ++ reasons = self.printer_state_reasons[printer] ++ except KeyError: ++ debugprint ("Printer not found") ++ return ++ ++ try: ++ i = reasons.index (reason) ++ except IndexError: ++ debugprint ("Reason not found") ++ return ++ ++ del reasons[i] ++ ++ self.update_status () ++ ++ if not self.trayicon: ++ return ++ ++ def still_connecting (self, mon, reason): ++ monitor.Watcher.still_connecting (self, mon, reason) ++ if not self.trayicon: ++ return ++ ++ self.notify_printer_state_reason (reason) ++ ++ def now_connected (self, mon, printer): ++ monitor.Watcher.now_connected (self, mon, printer) ++ ++ if not self.trayicon: ++ return ++ ++ # Find the connecting-to-device state reason. ++ try: ++ reasons = self.printer_state_reasons[printer] ++ reason = None ++ for r in reasons: ++ if r.get_reason () == "connecting-to-device": ++ reason = r ++ break ++ except KeyError: ++ debugprint ("Couldn't find state reason (no reasons)!") ++ ++ if reason != None: ++ tuple = reason.get_tuple () ++ else: ++ debugprint ("Couldn't find state reason in list!") ++ for (level, ++ p, ++ r) in self.state_reason_notifications.keys (): ++ if p == printer and r == "connecting-to-device": ++ debugprint ("Found from notifications list") ++ tuple = (level, p, r) ++ break ++ ++ try: ++ notification = self.state_reason_notifications[tuple] ++ except KeyError: ++ debugprint ("Unexpected now_connected signal") ++ return ++ ++ notification.close () ++ ++ def printer_event (self, mon, printer, eventname, event): ++ monitor.Watcher.printer_event (self, mon, printer, eventname, event) ++ self.printer_uri_index.update_from_attrs (printer, event) ++ ++ def printer_removed (self, mon, printer): ++ monitor.Watcher.printer_removed (self, mon, printer) ++ self.printer_uri_index.remove_printer (printer) + + #### +-#### NewPrinterNotification DBus server (the 'new' way). Note: this interface +-#### is not final yet. ++#### NewPrinterNotification DBus server (the 'new' way). + #### + PDS_PATH="/com/redhat/NewPrinterNotification" + PDS_IFACE="com.redhat.NewPrinterNotification" +@@ -856,7 +1066,7 @@ + @dbus.service.method(PDS_IFACE, in_signature='', out_signature='') + def GetReady (self): + """hal-cups-utils is settings up a new printer""" +- self.jobmanager.notify_new_printer ("", i18n("New Printer"), i18n("Configuring New Printer")) ++ self.jobmanager.notify_new_printer ("", "New Printer", i18n("Configuring New Printer")) + """ + self.wake_up () + if self.getting_ready == 0: +@@ -901,14 +1111,13 @@ + return + del c + +- sys.path.append (SYSTEM_CONFIG_PRINTER_DIR) +- from ppds import ppdMakeModelSplit ++ from cupshelpers.ppds import ppdMakeModelSplit + (make, model) = ppdMakeModelSplit (printer['printer-make-and-model']) + driver = make + " " + model + if status < self.STATUS_GENERIC_DRIVER: +- title = i18n("Printer added") ++ title = "Printer Added" + else: +- title = i18n("Missing printer driver") ++ title = "Missing Printer Driver" + + if status == self.STATUS_SUCCESS: + text = i18n("'%1' is ready for printing.", name) +@@ -923,7 +1132,7 @@ + appName = "printer-applet" + catalogue = "printer-applet" + programName = ki18n("Printer Applet") +- version = "1.2" ++ version = "1.3" + description = ki18n("Applet to view current print jobs and configure new printers") + license = KAboutData.License_GPL + copyright = ki18n("2007-2008 Canonical Ltd") +diff -urN orig/kdeutils-4.2.2/printer-applet/printer-applet.ui kdeutils-4.2.2/printer-applet/printer-applet.ui +--- orig/kdeutils-4.2.2/printer-applet/printer-applet.ui 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/printer-applet.ui 2009-04-09 23:00:07.000000000 +0100 +@@ -13,20 +13,12 @@ + Document Print Status + + +- printer-128.png ++ ++ printer-128.pngprinter-128.png + + + +- +- 0 +- +- +- 0 +- +- +- 0 +- +- ++ + 0 + + +@@ -50,6 +42,11 @@ + + + ++ User ++ ++ ++ ++ + Document + + +@@ -83,7 +80,7 @@ + 0 + 0 + 894 +- 30 ++ 27 + + + +@@ -112,7 +109,8 @@ + + + +- view-refresh.png ++ ++ view-refresh.pngview-refresh.png + + + Refresh +@@ -128,7 +126,8 @@ + + + +- window-close.png ++ ++ window-close.pngwindow-close.png + + + Close +diff -urN orig/kdeutils-4.2.2/printer-applet/README kdeutils-4.2.2/printer-applet/README +--- orig/kdeutils-4.2.2/printer-applet/README 2008-05-07 10:05:17.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/README 2009-04-09 23:00:07.000000000 +0100 +@@ -5,7 +5,7 @@ + + It replaces kjobviewer in KDE 3. + +-It is a KDE port of system-config-printer by Tim Waugh from Red Hat. ++It is a KDE port of system-config-printer's applet.py by Tim Waugh from Red Hat. + + Dependencies are... + +@@ -15,17 +15,18 @@ + + python-cups: http://cyberelk.net/tim/software/pycups/ + +-hal-cups-utils: svn co http://svn.fedorahosted.org/svn/hal-cups-utils/trunk/ ++hal-cups-utils: https://fedorahosted.org/hal-cups-utils/ + +-hal-cups-utils needs the common parts of system-config-printer (cupshelpers.py, ppds.py, probe_printer.py): +-svn co http://svn.fedorahosted.org/svn/system-config-printer/trunk ++hal-cups-utils needs the common parts of system-config-printer (cupshelpers/*, ppds.py, probe_printer.py): ++http://cyberelk.net/tim/software/system-config-printer/ + +-hal-cups-utils and system-config-printer like to install to +-/usr/share/system-config-printer, if you put it elsewhere change the +-SYSTEM_CONFIG_PRINTER_DIR variable in printer-applet.py ++Note to packagers: system-config-printer is a Gnome app, please split ++out the parts needed by printer-applet (and kdeadmin's ++system-config-printer-kde) into a separate packages to stop KDE ++needing Gnome dependencies. See for example these Ubuntu packages: + +- +-Unfortunately it does not currently use PyKDE4 because KApplication loads QtDbus which freezes when we use python-dbus. ++http://packages.ubuntu.com/intrepid/all/python-cupshelpers/filelist ++http://packages.ubuntu.com/intrepid/all/system-config-printer-common/filelist + + + Jonathan Riddell , Canonical Ltd, March 2008 +diff -urN orig/kdeutils-4.2.2/printer-applet/statereason.py kdeutils-4.2.2/printer-applet/statereason.py +--- orig/kdeutils-4.2.2/printer-applet/statereason.py 1970-01-01 01:00:00.000000000 +0100 ++++ kdeutils-4.2.2/printer-applet/statereason.py 2009-04-09 23:00:07.000000000 +0100 +@@ -0,0 +1,126 @@ ++#!/usr/bin/env python ++# -*- coding: utf-8 -*- ++ ++############################################################################# ++## ++## Copyright 2007-2009 Canonical Ltd ++## Author: Jonathan Riddell ++## ++## Includes code from System Config Printer ++## Copyright 2007, 2008 Tim Waugh ++## Copyright 2007, 2008 Red Hat, Inc. ++## ++## This program is free software; you can redistribute it and/or ++## modify it under the terms of the GNU General Public License as ++## published by the Free Software Foundation; either version 2 of ++## the License, or (at your option) any later version. ++## ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program. If not, see . ++## ++############################################################################# ++ ++from PyKDE4.kdecore import i18n, ki18n ++ ++class StateReason: ++ """Holds problem information for a printer and can be ordered for priority ++ by comparing with another instance""" ++ REPORT=1 ++ WARNING=2 ++ ERROR=3 ++ ++ LEVEL_ICON={ ++ REPORT: "dialog-info", ++ WARNING: "dialog-warning", ++ ERROR: "dialog-error" ++ } ++ ++ def __init__(self, printer, reason): ++ self.printer = printer ++ self.reason = reason ++ self.level = None ++ self.canonical_reason = None ++ ++ def get_printer (self): ++ return self.printer ++ ++ def get_level (self): ++ if self.level != None: ++ return self.level ++ ++ if (self.reason.endswith ("-report") or ++ self.reason == "connecting-to-device"): ++ self.level = self.REPORT ++ elif self.reason.endswith ("-warning"): ++ self.level = self.WARNING ++ else: ++ self.level = self.ERROR ++ return self.level ++ ++ def get_reason (self): ++ if self.canonical_reason: ++ return self.canonical_reason ++ ++ level = self.get_level () ++ reason = self.reason ++ if level == self.WARNING and reason.endswith ("-warning"): ++ reason = reason[:-8] ++ elif level == self.ERROR and reason.endswith ("-error"): ++ reason = reason[:-6] ++ self.canonical_reason = reason ++ return self.canonical_reason ++ ++ def get_description (self): ++ messages = { ++ 'toner-low': (i18n("Toner low"), ++ ki18n("Printer '%1' is low on toner.")), ++ 'toner-empty': (i18n("Toner empty"), ++ ki18n("Printer '%1' has no toner left.")), ++ 'cover-open': (i18n("Cover open"), ++ ki18n("The cover is open on printer '%1'.")), ++ 'door-open': (i18n("Door open"), ++ ki18n("The door is open on printer '%1'.")), ++ 'media-low': (i18n("Paper low"), ++ ki18n("Printer '%1' is low on paper.")), ++ 'media-empty': (i18n("Out of paper"), ++ ki18n("Printer '%1' is out of paper.")), ++ 'marker-supply-low': (i18n("Ink low"), ++ ki18n("Printer '%1' is low on ink.")), ++ 'marker-supply-empty': (i18n("Ink empty"), ++ ki18n("Printer '%1' has no ink left.")), ++ 'offline': (i18n("Printer off-line"), ++ ki18n("Printer `%1' is currently offline.")), ++ 'connecting-to-device': (i18n("Not connected?"), ++ ki18n("Printer '%1' may not be connected.")), ++ 'other': (i18n("Printer error"), ++ ki18n("There is a problem on printer `%1'.")), ++ } ++ try: ++ (title, text) = messages[self.get_reason ()] ++ text = text.subs (self.get_printer ()).toString () ++ except KeyError: ++ if self.get_level () == self.REPORT: ++ title = i18n("Printer report") ++ elif self.get_level () == self.WARNING: ++ title = i18n("Printer warning") ++ elif self.get_level () == self.ERROR: ++ title = i18n("Printer error") ++ text = i18n("Printer '%1': '%2'.", self.get_printer (), self.get_reason ()) ++ return (title, text) ++ ++ def get_tuple (self): ++ return (self.get_level (), self.get_printer (), self.get_reason ()) ++ ++ def __cmp__(self, other): ++ if other == None: ++ return 1 ++ if other.get_level () != self.get_level (): ++ return cmp (self.get_level (), other.get_level ()) ++ if other.get_printer () != self.get_printer (): ++ return cmp (other.get_printer (), self.get_printer ()) ++ return cmp (other.get_reason (), self.get_reason ()) +Index: kdeutils-4.2.1/cmake/modules/create_exe_symlink.cmake +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kdeutils-4.2.1/cmake/modules/create_exe_symlink.cmake 2009-02-27 13:58:19.000000000 -0500 +@@ -0,0 +1,16 @@ ++# Create an executable symlink to a Python script. ++# This also sets the target script's permission bits. ++ ++MESSAGE(STATUS "Symlinking $ENV{DESTDIR}${LINK_NAME} to ${TARGET}") ++ ++GET_FILENAME_COMPONENT(abs_link_name $ENV{DESTDIR}/${LINK_NAME} ABSOLUTE) ++GET_FILENAME_COMPONENT(link_path $ENV{DESTDIR}/${LINK_NAME} PATH) ++GET_FILENAME_COMPONENT(abs_link_path ${link_path} ABSOLUTE) ++FILE(MAKE_DIRECTORY ${abs_link_path}) ++ ++GET_FILENAME_COMPONENT(abs_target ${TARGET} ABSOLUTE) ++IF(UNIX) ++ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${abs_target} ${abs_link_name}) ++ EXECUTE_PROCESS(COMMAND chmod 755 $ENV{DESTDIR}/${abs_target}) ++ENDIF(UNIX) ++# FIXME: WIN32 support