summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2012-01-19 21:31:51 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2012-01-19 21:31:51 +0000
commit84c018503859be28aded86677c9dbc54c7067e11 (patch)
tree44896c72bb5eaddc3b9ebc5e4701f40560774ff0
parent3980444b2b918ef74ac7b9f1128f399767d06fa1 (diff)
parentb94fef3cbad6b3b830f8f7c4a987c65c81c9e93d (diff)
svn merge ^/nixpkgs/trunk, one simple conflict in jruby
svn path=/nixpkgs/branches/stdenv-updates/; revision=31721
-rw-r--r--pkgs/applications/editors/emacs-modes/org/default.nix4
-rw-r--r--pkgs/applications/editors/zile/default.nix4
-rw-r--r--pkgs/applications/graphics/digikam/default.nix24
-rw-r--r--pkgs/applications/graphics/digikam/ftbfs-libkipi.patch68
-rw-r--r--pkgs/applications/graphics/digikam/libkvkontakte-not-topdir.patch33
-rw-r--r--pkgs/applications/networking/p2p/gnunet/default.nix15
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch175
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/find-workspace.diff17
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix13
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde-purity.patch40
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde4-hardcode-lib-python.patch18
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde4.nix7
-rw-r--r--pkgs/desktops/kde-4.8/kdenetwork/log-feature.diff60
-rw-r--r--pkgs/desktops/kde-4.8/kdesdk/optional-docs.diff39
-rw-r--r--pkgs/development/compilers/gwt/2.4.0.nix21
-rw-r--r--pkgs/development/compilers/uhc/default.nix4
-rw-r--r--pkgs/development/interpreters/jruby/default.nix24
-rw-r--r--pkgs/development/libraries/gnutls/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/aeson-native/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual-native/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/control-monad-attempt/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/convertible-text/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/data-object/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-enumerator/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/jsonEnumerator/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/neither/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-css/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/vault/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/web-routes-quasi/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/web-routes/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/xml-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/libassuan/default.nix4
-rw-r--r--pkgs/development/libraries/libidn/default.nix4
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix14
-rw-r--r--pkgs/development/libraries/ucommon/default.nix6
-rw-r--r--pkgs/development/libraries/v8/default.nix35
-rw-r--r--pkgs/development/tools/build-managers/leiningen/builder.sh20
-rw-r--r--pkgs/development/tools/build-managers/leiningen/default.nix36
-rw-r--r--pkgs/development/tools/build-managers/leiningen/lein.patch36
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.11.x.nix6
-rw-r--r--pkgs/development/tools/misc/automake/more-robust-silent-tests.patch45
-rw-r--r--pkgs/development/web/nodejs/default.nix7
-rw-r--r--pkgs/lib/customisation.nix2
-rw-r--r--pkgs/lib/maintainers.nix1
-rw-r--r--pkgs/lib/platforms.nix2
-rw-r--r--pkgs/os-specific/linux/udisks/default.nix9
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix10
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix44
-rw-r--r--pkgs/servers/sip/sipwitch/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix6
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.6.list2
-rw-r--r--pkgs/tools/X11/xnee/default.nix4
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix2
-rw-r--r--pkgs/tools/misc/expect/default.nix12
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/recutils/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix31
-rw-r--r--pkgs/tools/networking/openvpn/default.nix9
-rw-r--r--pkgs/tools/networking/wicd/default.nix11
-rw-r--r--pkgs/tools/package-management/nix/custom.nix2
-rw-r--r--pkgs/tools/system/ddrescue/default.nix4
-rw-r--r--pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--pkgs/tools/text/source-highlight/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix20
-rw-r--r--pkgs/top-level/haskell-packages.nix4
-rw-r--r--pkgs/top-level/perl-packages.nix8
69 files changed, 763 insertions, 352 deletions
diff --git a/pkgs/applications/editors/emacs-modes/org/default.nix b/pkgs/applications/editors/emacs-modes/org/default.nix
index f0a519879370..07ea125afd83 100644
--- a/pkgs/applications/editors/emacs-modes/org/default.nix
+++ b/pkgs/applications/editors/emacs-modes/org/default.nix
@@ -1,11 +1,11 @@
{ fetchurl, stdenv, emacs, texinfo, which }:
stdenv.mkDerivation rec {
- name = "org-7.5";
+ name = "org-7.8";
src = fetchurl {
url = "http://orgmode.org/${name}.tar.gz";
- sha256 = "978822bc4c5f9f67450fbaa8572f1d4217406b7e28551278c9f23f7e9515cd4b";
+ sha256 = "0idxsxdr5p0bvnjmhvpdkfwhlpkxmihnaljf43k0311g9z3k22qz";
};
buildInputs = [ emacs texinfo ];
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index 0d588e537bb5..47d5aab04eeb 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -1,11 +1,11 @@
{ fetchurl, stdenv, ncurses, boehmgc, perl, help2man }:
stdenv.mkDerivation rec {
- name = "zile-2.4.2";
+ name = "zile-2.4.3";
src = fetchurl {
url = "mirror://gnu/zile/${name}.tar.gz";
- sha256 = "0ia91c18fyssnhabfb22npmidjkx32rqfkjgxxjibvdwfja25d3k";
+ sha256 = "0rygkc3i9bngzn49kq9fnrbz80d8pa2yjy8iz7vjlc4ayc2akvc3";
};
buildInputs = [ ncurses boehmgc ];
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index 895453aae446..4467ae338e49 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -1,28 +1,26 @@
{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2, eigen,
-kdegraphics, lcms, jasper, libgphoto2, kdepimlibs, gettext, soprano, kdeedu,
+lcms, jasper, libgphoto2, kdepimlibs, gettext, soprano, libjpeg, libtiff,
liblqr1, lensfun, pkgconfig, qjson, libkdcraw, opencv, libkexiv2, libkipi, boost,
-shared_desktop_ontologies, marble }:
+shared_desktop_ontologies, marble, clapack, mysql }:
stdenv.mkDerivation rec {
- name = "digikam-2.4.1";
+ name = "digikam-2.5.0";
src = fetchurl {
url = "mirror://sourceforge/digikam/${name}.tar.bz2";
- sha256 = "0fyyhc26syd1d1m8jqyg2i66hwd523mh419ln8y944jkrjj6gadc";
+ sha256 = "06l52j8i45vyfj3b81ivifqsqdjlcj4g68d8w06c5lhzniwjqaam";
};
- buildInputs = [ cmake qt4 kdelibs kdegraphics automoc4 phonon qimageblitz qca2 eigen
- lcms jasper libgphoto2 kdepimlibs gettext soprano kdeedu liblqr1 lensfun
- pkgconfig qjson libkdcraw opencv libkexiv2 libkipi boost shared_desktop_ontologies
- marble ];
+ buildNativeInputs = [ cmake automoc4 pkgconfig ];
- KDEDIRS=kdeedu;
+ buildInputs = [ qt4 kdelibs phonon qimageblitz qca2 eigen lcms libjpeg libtiff
+ jasper libgphoto2 kdepimlibs gettext soprano liblqr1 lensfun qjson libkdcraw
+ opencv libkexiv2 libkipi boost shared_desktop_ontologies marble mysql ];
# Make digikam find some FindXXXX.cmake
- preConfigure = ''
- cp ${qjson}/share/apps/cmake/modules/FindQJSON.cmake cmake/modules;
- cp ${marble}/share/apps/cmake/modules/FindMarble.cmake cmake/modules;
- '';
+ KDEDIRS="${marble}:${qjson}";
+
+ patches = [ ./libkvkontakte-not-topdir.patch ./ftbfs-libkipi.patch ];
meta = {
description = "Photo Management Program";
diff --git a/pkgs/applications/graphics/digikam/ftbfs-libkipi.patch b/pkgs/applications/graphics/digikam/ftbfs-libkipi.patch
new file mode 100644
index 000000000000..cf7e77f7ef8a
--- /dev/null
+++ b/pkgs/applications/graphics/digikam/ftbfs-libkipi.patch
@@ -0,0 +1,68 @@
+commit 25cc9c9876a5233bd630105d0110319892d4e18c
+Author: Gilles Caulier <caulier.gilles@gmail.com>
+Date: Tue Jan 3 15:16:37 2012 +0100
+
+ enable checkall and clearall buttons only with libkipi version 1.4.0
+ BUGS: 290496
+
+diff --git a/core/utilities/setup/setupplugins.cpp b/utilities/setup/setupplugins.cpp
+index 0f4030a..b8efb35 100644
+--- a/core/utilities/setup/setupplugins.cpp
++++ b/core/utilities/setup/setupplugins.cpp
+@@ -6,8 +6,8 @@
+ * Date : 2004-01-02
+ * Description : setup Kipi plugins tab.
+ *
+- * Copyright (C) 2004-2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
+- * Copyright (C) 2011 by Andi Clemens <andi dot clemens at googlemail dot com>
++ * Copyright (C) 2004-2012 by Gilles Caulier <caulier dot gilles at gmail dot com>
++ * Copyright (C) 2011-2012 by Andi Clemens <andi dot clemens at googlemail dot com>
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+@@ -100,6 +100,11 @@ SetupPlugins::SetupPlugins(QWidget* parent)
+
+ panel->setLayout(mainLayout);
+
++#if KIPI_VERSION < 0x010400
++ d->checkAllBtn->setVisible(false);
++ d->clearBtn->setVisible(false);
++#endif
++
+ initPlugins();
+
+ // --------------------------------------------------------
+@@ -158,14 +163,18 @@ void SetupPlugins::applyPlugins()
+ void SetupPlugins::slotCheckAll()
+ {
+ QApplication::setOverrideCursor(Qt::WaitCursor);
++#if KIPI_VERSION >= 0x010400
+ d->kipiConfig->slotCheckAll();
++#endif
+ QApplication::restoreOverrideCursor();
+ }
+
+ void SetupPlugins::slotClear()
+ {
+ QApplication::setOverrideCursor(Qt::WaitCursor);
++#if KIPI_VERSION >= 0x010400
+ d->kipiConfig->slotClear();
++#endif
+ QApplication::restoreOverrideCursor();
+ }
+
+diff --git a/core/utilities/setup/setupplugins.h b/utilities/setup/setupplugins.h
+index 271a569..114e0fa 100644
+--- a/core/utilities/setup/setupplugins.h
++++ b/core/utilities/setup/setupplugins.h
+@@ -6,8 +6,8 @@
+ * Date : 2004-01-02
+ * Description : setup Kipi plugins tab.
+ *
+- * Copyright (C) 2004-2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
+- * Copyright (C) 2011 by Andi Clemens <andi dot clemens at googlemail dot com>
++ * Copyright (C) 2004-2012 by Gilles Caulier <caulier dot gilles at gmail dot com>
++ * Copyright (C) 2011-2012 by Andi Clemens <andi dot clemens at googlemail dot com>
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
diff --git a/pkgs/applications/graphics/digikam/libkvkontakte-not-topdir.patch b/pkgs/applications/graphics/digikam/libkvkontakte-not-topdir.patch
new file mode 100644
index 000000000000..ee92a886c79d
--- /dev/null
+++ b/pkgs/applications/graphics/digikam/libkvkontakte-not-topdir.patch
@@ -0,0 +1,33 @@
+commit 0f0cfa14805519cfd9e0b97ee9668dc4f86379de
+Author: Yury G. Kudryashov <urkud.urkud@gmail.com>
+Date: Wed Jan 18 05:07:13 2012 +0400
+
+ Use CMAKE_CURRENT_{SOURCE,BINARY}_DIR
+
+ Some projects (e.g., digikam) include snapshots of this library into their
+ release tarballs, so the libkvkontakte_SOURCE_DIR != CMAKE_SOURCE_DIR.
+
+diff --git a/extra/libkvkontakte/CMakeLists.txt b/extra/libkvkontakte/CMakeLists.txt
+index f19b28b..4310a74 100644
+--- a/extra/libkvkontakte/CMakeLists.txt
++++ b/extra/libkvkontakte/CMakeLists.txt
+@@ -21,7 +21,7 @@ set(INCLUDE_INSTALL_DIR include )
+
+
+ # === Closer to the code, close to the body ===
+-set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
++set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
+ find_package(KDE4 REQUIRED)
+ include(KDE4Defaults)
+ include(MacroLibrary)
+@@ -35,8 +35,8 @@ macro_log_feature(QJSON_FOUND "QJSON" "Qt library for handling JSON data" "http:
+ add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
+
+ include_directories(
+- ${CMAKE_SOURCE_DIR}
+- ${CMAKE_BINARY_DIR}
++ ${CMAKE_CURRENT_SOURCE_DIR}
++ ${CMAKE_CURRENT_BINARY_DIR}
+ ${KDE4_INCLUDES}
+ ${QJSON_INCLUDE_DIR}
+ )
diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix
index 1219c1763549..5d5d6128bb42 100644
--- a/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -7,11 +7,11 @@
assert gtkSupport -> (gtk != null) && (libglade != null);
stdenv.mkDerivation rec {
- name = "gnunet-0.9.0";
+ name = "gnunet-0.9.1";
src = fetchurl {
url = "mirror://gnu/gnunet/${name}.tar.gz";
- sha256 = "1a0faq2j20dxhpdq0lpi8mjhddwmscbaa1bsxk460p5mj8n55i3p";
+ sha256 = "0ipx027lzcgdv70adfk8f4h0zrzm9mlhy3vj9cgc0ck8x52llfpq";
};
buildInputs = [
@@ -41,9 +41,18 @@ stdenv.mkDerivation rec {
done
'';
- # XXX: There are several test failures, forwarded to bug-gnunet@gnu.org.
doCheck = false;
+ /* FIXME: Tests must be run this way, but there are still a couple of
+ failures.
+
+ postInstall =
+ '' export GNUNET_PREFIX="$out"
+ export PATH="$out/bin:$PATH"
+ make -k check
+ '';
+ */
+
meta = {
description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework";
diff --git a/pkgs/applications/networking/p2p/ktorrent/default.nix b/pkgs/applications/networking/p2p/ktorrent/default.nix
index e4cb4e9089ab..5f15cbc495f0 100644
--- a/pkgs/applications/networking/p2p/ktorrent/default.nix
+++ b/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -5,14 +5,14 @@ stdenv.mkDerivation rec {
name = pname + "-" + version;
pname = "ktorrent";
- version = "4.1.1";
+ version = "4.1.3";
src = fetchurl {
url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2";
- sha256 = "1h0fqh344sfwfbvnwhn00k8czb14568flapjf4754zss6bxpw4g4";
+ sha256 = "0ih68bml6ic3mxk5l4ypgmxwyg9mglp57gw5igrnm5yszm7jz19g";
};
- patches = [ ./find-workspace.diff ];
+ patches = [ ./find-workspace.diff ./drop-taskmanager-dependency.patch ];
KDEDIRS = libktorrent;
diff --git a/pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch b/pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch
new file mode 100644
index 000000000000..2998b3926798
--- /dev/null
+++ b/pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch
@@ -0,0 +1,175 @@
+commit 6d4a6ae51692966862ccb20d17cb217717519d40
+Author: Joris Guisson <joris.guisson@gmail.com>
+Date: Wed Nov 23 20:17:08 2011 +0100
+
+ Use dbus to show ktorrent window from plasma applet. This removes the dependency on libtaskmanager.
+
+ BUG: 287309
+Changelog removed by Yury G. Kudryashov
+
+diff --git a/plasma/applet/CMakeLists.txt b/plasma/applet/CMakeLists.txt
+index 3a72241..4307cf2 100644
+--- a/plasma/applet/CMakeLists.txt
++++ b/plasma/applet/CMakeLists.txt
+@@ -5,25 +5,15 @@ if(NOT QT_VERSION_OK)
+
+ else(NOT QT_VERSION_OK)
+
+- set(TASKMANAGER_FOUND FALSE)
+- FIND_PATH(TASKMANAGER_INCLUDE_DIR NAMES taskmanager.h PATHS ${KDE4_INCLUDE_DIR}/taskmanager ${INCLUDE_INSTALL_DIR}/taskmanager.h)
+- FIND_LIBRARY(TASKMANAGER_LIBRARY NAMES taskmanager PATHS ${KDE4_LIB_DIR} ${LIB_INSTALL_DIR})
+-
+- if(TASKMANAGER_INCLUDE_DIR AND TASKMANAGER_LIBRARY)
+- set(TASKMANAGER_FOUND TRUE)
+- message(STATUS "Found libtaskmanager: ${TASKMANAGER_LIBRARY} ")
+- include_directories(${TASKMANAGER_INCLUDE_DIR})
+- set(ktapplet_SRCS applet.cpp chunkbar.cpp fadingitem.cpp fadingnavigationwidget.cpp)
+-
+- kde4_add_ui_files(ktapplet_SRCS appletconfig.ui)
+-
+- kde4_add_plugin(plasma_applet_ktorrent ${ktapplet_SRCS})
+- target_link_libraries(plasma_applet_ktorrent ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${TASKMANAGER_LIBRARY} ${LIBKTORRENT_LIBRARIES} ktcore)
+-
+- install(TARGETS plasma_applet_ktorrent DESTINATION ${PLUGIN_INSTALL_DIR})
+- install(FILES plasma-applet-ktorrent.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+- endif(TASKMANAGER_INCLUDE_DIR AND TASKMANAGER_LIBRARY)
+-
+- macro_log_feature(TASKMANAGER_FOUND "libtaskmanager" "libtaskmanager library and header files" "http://www.kde.org/" FALSE "" "libtaskmanager is needed for KTorrent Plasmoid")
++
++ set(ktapplet_SRCS applet.cpp chunkbar.cpp fadingitem.cpp fadingnavigationwidget.cpp)
++
++ kde4_add_ui_files(ktapplet_SRCS appletconfig.ui)
++
++ kde4_add_plugin(plasma_applet_ktorrent ${ktapplet_SRCS})
++ target_link_libraries(plasma_applet_ktorrent ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${LIBKTORRENT_LIBRARIES} ktcore)
++
++ install(TARGETS plasma_applet_ktorrent DESTINATION ${PLUGIN_INSTALL_DIR})
++ install(FILES plasma-applet-ktorrent.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+
+ endif(NOT QT_VERSION_OK)
+diff --git a/plasma/applet/applet.cpp b/plasma/applet/applet.cpp
+index 59e7191..bf09479 100644
+--- a/plasma/applet/applet.cpp
++++ b/plasma/applet/applet.cpp
+@@ -21,6 +21,9 @@
+ #include "applet.h"
+ #include <QFile>
+ #include <QGraphicsLinearLayout>
++#include <QDBusConnection>
++#include <QDBusConnectionInterface>
++#include <QDBusMessage>
+ #include <KConfigDialog>
+ #include <KLocale>
+ #include <KRun>
+@@ -31,12 +34,11 @@
+ #include <Plasma/IconWidget>
+ #endif
+ #include <Plasma/Label>
+-#include <taskmanager/taskmanager.h>
+-#include <taskmanager/task.h>
+ #include <util/functions.h>
+ #include "chunkbar.h"
+ #include "fadingnavigationwidget.h"
+
++
+ using namespace bt;
+
+ namespace ktplasma
+@@ -174,7 +176,8 @@ namespace ktplasma
+ }
+ }
+
+- void Applet::updateNavigation() {
++ void Applet::updateNavigation()
++ {
+ navigation->setEnabled(connected_to_app && !sources.empty()
+ && (sources.count() > 1 || !sources.contains(current_source)));
+ }
+@@ -193,12 +196,14 @@ namespace ktplasma
+ }
+ }
+
+- void Applet::updateSources() {
++ void Applet::updateSources()
++ {
+ sources = engine->sources();
+ sources.removeOne("core");
+ }
+
+- void Applet::setSource(QString source) {
++ void Applet::setSource(QString source)
++ {
+ if (!current_source.isEmpty())
+ engine->disconnectSource(current_source,this);
+ clearData();
+@@ -340,20 +345,39 @@ namespace ktplasma
+
+ void Applet::iconClicked()
+ {
+- TaskManager::TaskDict tasks = TaskManager::TaskManager::self()->tasks();
+- for (TaskManager::TaskDict::iterator i = tasks.begin();i != tasks.end();i ++)
++ QDBusConnection session_bus = QDBusConnection::sessionBus();
++ QDBusConnectionInterface* dbus_service = session_bus.interface();
++ if (!session_bus.isConnected() || !dbus_service || !dbus_service->isServiceRegistered("org.ktorrent.ktorrent"))
+ {
+- if (i.value()->className() == "ktorrent")
+- {
+- KWindowSystem::activateWindow(i.key());
+- return;
+- }
++ // can't find the window, try launching it
++ KUrl::List empty;
++ KRun::run("ktorrent", empty, 0);
++ }
++ else
++ {
++ QDBusMessage msg = QDBusMessage::createMethodCall("org.ktorrent.ktorrent", "/ktorrent/MainWindow_1", "org.kde.KMainWindow", "winId");
++ QDBusPendingCall call = session_bus.asyncCall(msg, 5000);
++ QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(call ,this);
++ connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(dbusCallFinished(QDBusPendingCallWatcher*)));
+ }
+-
+- // can't find the window, try launching it
+- KUrl::List empty;
+- KRun::run("ktorrent", empty, 0);
+ }
++
++ void Applet::dbusCallFinished(QDBusPendingCallWatcher* self)
++ {
++ if (self->isError())
++ {
++ // call failed, try launching it
++ KUrl::List empty;
++ KRun::run("ktorrent", empty, 0);
++ }
++ else
++ {
++ QDBusPendingReply<qlonglong> reply = *self;
++ KWindowSystem::activateWindow(reply.value());
++ }
++ self->de