Hello community,

here is the log from the commit of package bluedevil for openSUSE:Factory 
checked in at 2014-12-21 12:00:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bluedevil (Old)
 and      /work/SRC/openSUSE:Factory/.bluedevil.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bluedevil"

Changes:
--------
--- /work/SRC/openSUSE:Factory/bluedevil/bluedevil.changes      2014-11-19 
20:26:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.bluedevil.new/bluedevil.changes 2014-12-21 
12:00:36.000000000 +0100
@@ -1,0 +2,14 @@
+Fri Dec  5 21:45:33 UTC 2014 - [email protected]
+
+- Update to 2.0 Final:
+  * Full Bluez5 support
+- Removed checks for ancient openSUSE versions
+- Added patches from upstream:
+  0001-KCM-Adapters-Adapt-to-changes-in-libbluedevil.patch
+  0002-Bluedevil-daemon-Save-and-restore-adapters-state.patch
+  0003-daemon-Use-new-functions-for-restoring-adapters-stat.patch
+  0004-Monolithic-Don-t-go-online-on-startup-when-there-is-.patch
+  0005-daemon-Fix-killing-monolithic-when-there-are-no-adap.patch
+  0006-wizard-Fix-accepting-PIN-in-SSP-pairing.patch
+
+-------------------------------------------------------------------

Old:
----
  bluedevil-2.0-rc1.tar.xz

New:
----
  0001-KCM-Adapters-Adapt-to-changes-in-libbluedevil.patch
  0002-Bluedevil-daemon-Save-and-restore-adapters-state.patch
  0003-daemon-Use-new-functions-for-restoring-adapters-stat.patch
  0004-Monolithic-Don-t-go-online-on-startup-when-there-is-.patch
  0005-daemon-Fix-killing-monolithic-when-there-are-no-adap.patch
  0006-wizard-Fix-accepting-PIN-in-SSP-pairing.patch
  bluedevil-2.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bluedevil.spec ++++++
--- /var/tmp/diff_new_pack.rQQJX1/_old  2014-12-21 12:00:38.000000000 +0100
+++ /var/tmp/diff_new_pack.rQQJX1/_new  2014-12-21 12:00:38.000000000 +0100
@@ -20,17 +20,21 @@
 %define with_lang 1
 
 Name:           bluedevil
-Version:        2.0~rc1
+Version:        2.0
 Release:        0
-%define rversion 2.0-rc1
 Summary:        Bluetooth Manager for KDE
 License:        GPL-2.0+
 Group:          Hardware/Other
 Url:            http://www.kde.org/
-#Source0:        
http://download.kde.org/stable/libbluedevil/%{name}-v%{version}.tar.xz
-Source0:        %{name}-%{rversion}.tar.xz
+Source:         
http://download.kde.org/stable/%{name}/%{version}/src/%{name}-%{version}.tar.xz
 Source1:        preferences-system-bluetooth.png
 Patch0:         typo2.diff
+Patch1:         0001-KCM-Adapters-Adapt-to-changes-in-libbluedevil.patch
+Patch2:         0002-Bluedevil-daemon-Save-and-restore-adapters-state.patch
+Patch3:         0003-daemon-Use-new-functions-for-restoring-adapters-stat.patch
+Patch4:         0004-Monolithic-Don-t-go-online-on-startup-when-there-is-.patch
+Patch5:         0005-daemon-Fix-killing-monolithic-when-there-are-no-adap.patch
+Patch6:         0006-wizard-Fix-accepting-PIN-in-SSP-pairing.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 BuildRequires:  libbluedevil-devel >= 2.0~rc1
@@ -39,11 +43,10 @@
 %if 0%{?suse_version}
 BuildRequires:  update-desktop-files
 %endif
-%if %suse_version > 1130
-Requires:       obexd-client
-%else
-Requires:       obexd
-%endif
+# atop of the bluez itself, we also need bluez-obexd for kio_obexftp and both 
send/receive
+Requires:       bluez
+# for connecting A2DP profile
+Recommends:     pulseaudio-module-bluetooth
 %if %with_lang
 Recommends:     %{name}-lang = %{version}
 %endif
@@ -58,8 +61,14 @@
 
 %lang_package
 %prep
-%setup -q -n %{name}-%{rversion}
+%setup -q -n %{name}-%{version}
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
 
 %build
 %cmake_kde4 -d build
@@ -74,10 +83,6 @@
 %suse_update_desktop_file -r bluedevil-monolithic Qt KDE Utility DesktopUtility
 %endif
 
-%if %suse_version < 1130
-rm -rf %{buildroot}/usr/share/locale/sr\@*
-%endif
-
 %if %with_lang
 %find_lang %{name}
 %endif

++++++ 0001-KCM-Adapters-Adapt-to-changes-in-libbluedevil.patch ++++++
>From 3048121108629a4fc0ac49d290f4f829cab4a16f Mon Sep 17 00:00:00 2001
From: David Rosca <[email protected]>
Date: Sat, 13 Dec 2014 12:59:53 +0100
Subject: [PATCH 1/6] KCM Adapters: Adapt to changes in libbluedevil

Adapter::alias() was renamed to Adapter::name() in
libbluedevil.

Also show system name in title of groupbox.
---
 src/kcmodule/bluedeviladapters.cpp | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/kcmodule/bluedeviladapters.cpp 
b/src/kcmodule/bluedeviladapters.cpp
index 
600b1ee7327ce5d8b96bcb7c28033740eff51113..d1e276f2418a929fb5fa9c0ce696dc7626456c2c
 100644
--- a/src/kcmodule/bluedeviladapters.cpp
+++ b/src/kcmodule/bluedeviladapters.cpp
@@ -61,8 +61,8 @@ AdapterSettings::AdapterSettings(Adapter *adapter, KCModule 
*parent)
     buttonGroup->addButton(m_alwaysVisible);
     buttonGroup->addButton(m_temporaryVisible);
 
-    m_name->setText(adapter->alias());
-    m_nameOrig = adapter->alias();
+    m_name->setText(adapter->name());
+    m_nameOrig = adapter->name();
     m_hiddenOrig = false;
     m_alwaysVisibleOrig = false;
     m_temporaryVisibleOrig = false;
@@ -118,9 +118,9 @@ AdapterSettings::AdapterSettings(Adapter *adapter, KCModule 
*parent)
     connect(m_powered, SIGNAL(stateChanged(int)), this, 
SLOT(slotSettingsChanged()));
 
     if (BlueDevil::Manager::self()->usableAdapter() == adapter) {
-        setTitle(i18n("Default adapter: %1 (%2)", adapter->alias(), 
adapter->address()));
+        setTitle(i18n("Default adapter: %1 (%2)", adapter->systemName(), 
adapter->address()));
     } else {
-        setTitle(i18n("Adapter: %1 (%2)", adapter->alias(), 
adapter->address()));
+        setTitle(i18n("Adapter: %1 (%2)", adapter->systemName(), 
adapter->address()));
     }
 }
 
@@ -135,13 +135,12 @@ bool AdapterSettings::isModified() const
            m_temporaryVisible->isChecked() != m_temporaryVisibleOrig ||
            m_discoverTime->value() != m_discoverTimeOrig || 
m_powered->isChecked() != m_poweredOrig;
 }
-#include <QDebug>
+
 void AdapterSettings::applyChanges()
 {
     if (m_name->text() != m_nameOrig) {
-        qDebug() << "Setting alias";
-         m_adapter->setAlias(m_name->text());
-     }
+        m_adapter->setName(m_name->text());
+    }
 
     if (m_hidden->isChecked()) {
         m_adapter->setDiscoverable(false);
@@ -188,7 +187,7 @@ void AdapterSettings::readChanges()
 {
     blockSignals(true);
 
-    m_nameOrig = m_adapter->alias();
+    m_nameOrig = m_adapter->name();
     m_hiddenOrig = !m_adapter->isDiscoverable();
     m_alwaysVisibleOrig = m_adapter->isDiscoverable() && 
!m_adapter->discoverableTimeout();
     m_temporaryVisibleOrig = m_adapter->isDiscoverable() && 
m_adapter->discoverableTimeout();
@@ -204,9 +203,9 @@ void AdapterSettings::readChanges()
 
     m_discoverTimeLabel->setText(i18np("1 minute", "%1 minutes", 
m_discoverTime->value()));
     if (BlueDevil::Manager::self()->usableAdapter() == m_adapter) {
-        setTitle(i18n("Default adapter: %1 (%2)", m_adapter->alias(), 
m_adapter->address()));
+        setTitle(i18n("Default adapter: %1 (%2)", m_adapter->systemName(), 
m_adapter->address()));
     } else {
-        setTitle(i18n("Adapter: %1 (%2)", m_adapter->alias(), 
m_adapter->address()));
+        setTitle(i18n("Adapter: %1 (%2)", m_adapter->systemName(), 
m_adapter->address()));
     }
 
     blockSignals(false);
-- 
2.2.0

++++++ 0002-Bluedevil-daemon-Save-and-restore-adapters-state.patch ++++++
>From ff6ae6022286e118e98efd69ba1833f2be2e4842 Mon Sep 17 00:00:00 2001
From: David Rosca <[email protected]>
Date: Sat, 13 Dec 2014 13:20:24 +0100
Subject: [PATCH 2/6] Bluedevil daemon: Save and restore adapters state

Fixes issue that some adapters were always powered off
on startup.

BUG: 337193
---
 src/daemon/kded/BlueDevilDaemon.cpp | 55 +++++++++++++++++++++++++++++++++++++
 src/daemon/kded/BlueDevilDaemon.h   |  6 ++++
 2 files changed, 61 insertions(+)

diff --git a/src/daemon/kded/BlueDevilDaemon.cpp 
b/src/daemon/kded/BlueDevilDaemon.cpp
index 
3e87d1b525ee8b5a3c05f6a441efcb43b9aad460..4d5fc086916dceb987745e9f940c8c3d61354ec3
 100644
--- a/src/daemon/kded/BlueDevilDaemon.cpp
+++ b/src/daemon/kded/BlueDevilDaemon.cpp
@@ -36,6 +36,7 @@
 #include <KPluginFactory>
 #include <kfileplacesmodel.h>
 #include <kdirnotify.h>
+#include <ksharedconfig.h>
 
 #include <bluedevil/bluedevilmanager.h>
 #include <bluedevil/bluedeviladapter.h>
@@ -66,6 +67,7 @@ struct BlueDevilDaemon::Private
     QTimer                           m_timer;
     KComponentData                  m_componentData;
     QHash<QString, bool>            m_adapterPoweredHash;
+    KSharedConfig::Ptr              m_config;
 };
 
 BlueDevilDaemon::BlueDevilDaemon(QObject *parent, const QList<QVariant>&)
@@ -83,6 +85,7 @@ BlueDevilDaemon::BlueDevilDaemon(QObject *parent, const 
QList<QVariant>&)
             , QDBusConnection::sessionBus(), 
QDBusServiceWatcher::WatchForUnregistration, this);
     d->m_timer.setInterval(20000);
     d->m_timer.setSingleShot(true);
+    d->m_config = KSharedConfig::openConfig("bluedevilglobalrc");
 
     KAboutData aboutData(
         "bluedevildaemon",
@@ -106,6 +109,8 @@ BlueDevilDaemon::BlueDevilDaemon(QObject *parent, const 
QList<QVariant>&)
 
     connect(Manager::self(), SIGNAL(usableAdapterChanged(Adapter*)),
             this, SLOT(usableAdapterChanged(Adapter*)));
+    connect(Manager::self(), SIGNAL(adapterAdded(Adapter*)),
+            this, SLOT(adapterAdded(Adapter*)));
 
     // Catch suspend/resume events
     QDBusConnection::systemBus().connect("org.freedesktop.login1",
@@ -117,6 +122,8 @@ BlueDevilDaemon::BlueDevilDaemon(QObject *parent, const 
QList<QVariant>&)
                                          );
 
     d->m_status = Private::Offline;
+
+    restoreAdaptersState();
     usableAdapterChanged(Manager::self()->usableAdapter());
 
     if (!Manager::self()->adapters().isEmpty()) {
@@ -126,6 +133,8 @@ BlueDevilDaemon::BlueDevilDaemon(QObject *parent, const 
QList<QVariant>&)
 
 BlueDevilDaemon::~BlueDevilDaemon()
 {
+    saveAdaptersState();
+
     if (d->m_status == Private::Online) {
         offlineMode();
     }
@@ -344,6 +353,11 @@ void BlueDevilDaemon::usableAdapterChanged(Adapter 
*adapter)
     }
 }
 
+void BlueDevilDaemon::adapterAdded(Adapter *adapter)
+{
+    restoreAdapterState(adapter);
+}
+
 void BlueDevilDaemon::deviceFound(Device *device)
 {
     kDebug(dblue()) << "DeviceFound: " << device->name();
@@ -361,6 +375,47 @@ void 
BlueDevilDaemon::monolithicQuit(QDBusPendingCallWatcher* watcher)
     }
 }
 
+void BlueDevilDaemon::saveAdaptersState()
+{
+    Manager *manager = Manager::self();
+    if (!manager) {
+        return;
+    }
+
+    KConfigGroup adaptersGroup = d->m_config->group("Adapters");
+
+    Q_FOREACH (Adapter *adapter, manager->adapters()) {
+        const QString key = QString("%1_powered").arg(adapter->address());
+        adaptersGroup.writeEntry<bool>(key, adapter->isPowered());
+    }
+
+    d->m_config->sync();
+}
+
+// New adapters are automatically powered on
+void BlueDevilDaemon::restoreAdaptersState()
+{
+    Manager *manager = Manager::self();
+    if (!manager) {
+        return;
+    }
+
+    KConfigGroup adaptersGroup = d->m_config->group("Adapters");
+
+    Q_FOREACH (Adapter *adapter, manager->adapters()) {
+        const QString key = QString("%1_powered").arg(adapter->address());
+        adapter->setPowered(adaptersGroup.readEntry<bool>(key, true));
+    }
+}
+
+void BlueDevilDaemon::restoreAdapterState(Adapter *adapter)
+{
+    KConfigGroup adaptersGroup = d->m_config->group("Adapters");
+
+    const QString key = QString("%1_powered").arg(adapter->address());
+    adapter->setPowered(adaptersGroup.readEntry<bool>(key, true));
+}
+
 DeviceInfo BlueDevilDaemon::deviceToInfo(Device *const device) const
 {
     DeviceInfo info;
diff --git a/src/daemon/kded/BlueDevilDaemon.h 
b/src/daemon/kded/BlueDevilDaemon.h
index 
0e55997c83ea395211e7f040b12af780434babd1..e0f7d432852205e60e6c5757a29d0dde571125d6
 100644
--- a/src/daemon/kded/BlueDevilDaemon.h
+++ b/src/daemon/kded/BlueDevilDaemon.h
@@ -82,6 +82,8 @@ private Q_SLOTS:
      */
     void usableAdapterChanged(Adapter *adapter);
 
+    void adapterAdded(Adapter *adapter);
+
     /**
      * When the agent is released this is called to unload it
      */
@@ -97,6 +99,10 @@ private:
     void executeMonolithic();
     void killMonolithic();
 
+    void saveAdaptersState();
+    void restoreAdaptersState();
+    void restoreAdapterState(Adapter *adapter);
+
     DeviceInfo deviceToInfo (Device *const device) const;
 
 private:
-- 
2.2.0

++++++ 0003-daemon-Use-new-functions-for-restoring-adapters-stat.patch ++++++
>From 9bd8cd6fa1fb5a1ee1324948ca1be9caab1c893d Mon Sep 17 00:00:00 2001
From: David Rosca <[email protected]>
Date: Sat, 13 Dec 2014 13:27:53 +0100
Subject: [PATCH 3/6] daemon: Use new functions for restoring adapters state on
 suspend.

Instead of storing state in QHash, use restoreAdaptersState() and
saveAdaptersState() introduced in previous commit.
---
 src/daemon/kded/BlueDevilDaemon.cpp | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/src/daemon/kded/BlueDevilDaemon.cpp 
b/src/daemon/kded/BlueDevilDaemon.cpp
index 
4d5fc086916dceb987745e9f940c8c3d61354ec3..7b1e6e4b89ad6845ad5794e51d9724975e907454
 100644
--- a/src/daemon/kded/BlueDevilDaemon.cpp
+++ b/src/daemon/kded/BlueDevilDaemon.cpp
@@ -66,7 +66,6 @@ struct BlueDevilDaemon::Private
     QList <DeviceInfo>                m_discovered;
     QTimer                           m_timer;
     KComponentData                  m_componentData;
-    QHash<QString, bool>            m_adapterPoweredHash;
     KSharedConfig::Ptr              m_config;
 };
 
@@ -156,23 +155,10 @@ void BlueDevilDaemon::login1PrepareForSleep(bool active)
 {
     if (active) {
         kDebug(dblue()) << "About to suspend";
-        d->m_adapterPoweredHash.clear();
-        Q_FOREACH (Adapter *adapter, Manager::self()->adapters()) {
-            kDebug(dblue()) << "Saving" << adapter->address() << 
adapter->isPowered();
-            d->m_adapterPoweredHash.insert(adapter->address(), 
adapter->isPowered());
-        }
+        saveAdaptersState();
     } else {
         kDebug(dblue()) << "About to resume";
-        QHashIterator<QString, bool> it(d->m_adapterPoweredHash);
-        while (it.hasNext()) {
-            it.next();
-            Adapter *adapter = adapterForAddress(it.key());
-            if (adapter) {
-                kDebug(dblue()) << "Restoring" << adapter->address() << 
it.value();
-                adapter->setPowered(it.value());
-            }
-        }
-        d->m_adapterPoweredHash.clear();
+        restoreAdaptersState();
     }
 }
 
-- 
2.2.0

++++++ 0004-Monolithic-Don-t-go-online-on-startup-when-there-is-.patch ++++++
>From eedc8f34edbe6d02f6587532b40c352bded08259 Mon Sep 17 00:00:00 2001
From: David Rosca <[email protected]>
Date: Sun, 14 Dec 2014 11:03:09 +0100
Subject: [PATCH 4/6] Monolithic: Don't go online on startup when there is no
 usable adapter

Fix issue with Bluetooth icon visible in systray when Bluetooth is
offline (no usable adapter).

BUG: 341768
---
 src/monolithic/monolithic.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/monolithic/monolithic.cpp b/src/monolithic/monolithic.cpp
index 
86bb9d4aec1c330df86972056b0397a28f0c00d2..3ce46ac2c862dce5ad6f113107bc83950e6aa9fd
 100644
--- a/src/monolithic/monolithic.cpp
+++ b/src/monolithic/monolithic.cpp
@@ -44,7 +44,7 @@ Monolithic::Monolithic(QObject* parent)
 
     offlineMode();
 
-    if (!Manager::self()->adapters().isEmpty()) {
+    if (Manager::self()->usableAdapter()) {
         onlineMode();
     }
 
@@ -55,7 +55,6 @@ Monolithic::Monolithic(QObject* parent)
     setStandardActionsEnabled(false);
     setAssociatedWidget(contextMenu());
 
-    setStatus(KStatusNotifierItem::Active);
     poweredChanged();
 }
 
-- 
2.2.0

++++++ 0005-daemon-Fix-killing-monolithic-when-there-are-no-adap.patch ++++++
>From 406651bd51a2f8db7a7b5b2985469e1ef0cf4e1c Mon Sep 17 00:00:00 2001
From: David Rosca <[email protected]>
Date: Tue, 16 Dec 2014 14:37:01 +0100
Subject: [PATCH 5/6] daemon: Fix killing monolithic when there are no adapters

---
 src/daemon/kded/BlueDevilDaemon.cpp | 14 +++++++++++---
 src/daemon/kded/BlueDevilDaemon.h   |  1 +
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/daemon/kded/BlueDevilDaemon.cpp 
b/src/daemon/kded/BlueDevilDaemon.cpp
index 
7b1e6e4b89ad6845ad5794e51d9724975e907454..59e0b1d67c84c70f1209efbb8f0e66583bfe82b9
 100644
--- a/src/daemon/kded/BlueDevilDaemon.cpp
+++ b/src/daemon/kded/BlueDevilDaemon.cpp
@@ -110,6 +110,8 @@ BlueDevilDaemon::BlueDevilDaemon(QObject *parent, const 
QList<QVariant>&)
             this, SLOT(usableAdapterChanged(Adapter*)));
     connect(Manager::self(), SIGNAL(adapterAdded(Adapter*)),
             this, SLOT(adapterAdded(Adapter*)));
+    connect(Manager::self(), SIGNAL(adapterRemoved(Adapter*)),
+            this, SLOT(adapterRemoved(Adapter*)));
 
     // Catch suspend/resume events
     QDBusConnection::systemBus().connect("org.freedesktop.login1",
@@ -309,9 +311,6 @@ void BlueDevilDaemon::offlineMode()
         d->m_placesModel->removePlace(index);
     }
 
-    if (BlueDevil::Manager::self()->adapters().isEmpty()) {
-        killMonolithic();
-    }
     d->m_status = Private::Offline;
 }
 
@@ -344,6 +343,15 @@ void BlueDevilDaemon::adapterAdded(Adapter *adapter)
     restoreAdapterState(adapter);
 }
 
+void BlueDevilDaemon::adapterRemoved(Adapter *adapter)
+{
+    Q_UNUSED(adapter)
+
+    if (BlueDevil::Manager::self()->adapters().isEmpty()) {
+        killMonolithic();
+    }
+}
+
 void BlueDevilDaemon::deviceFound(Device *device)
 {
     kDebug(dblue()) << "DeviceFound: " << device->name();
diff --git a/src/daemon/kded/BlueDevilDaemon.h 
b/src/daemon/kded/BlueDevilDaemon.h
index 
e0f7d432852205e60e6c5757a29d0dde571125d6..4d0c6c17b14150edb376408567bc5df9e758e309
 100644
--- a/src/daemon/kded/BlueDevilDaemon.h
+++ b/src/daemon/kded/BlueDevilDaemon.h
@@ -83,6 +83,7 @@ private Q_SLOTS:
     void usableAdapterChanged(Adapter *adapter);
 
     void adapterAdded(Adapter *adapter);
+    void adapterRemoved(Adapter *adapter);
 
     /**
      * When the agent is released this is called to unload it
-- 
2.2.0

++++++ 0006-wizard-Fix-accepting-PIN-in-SSP-pairing.patch ++++++
>From 924da472ae1a6a74c2d81dd9842c102d6b689c2c Mon Sep 17 00:00:00 2001
From: David Rosca <[email protected]>
Date: Tue, 16 Dec 2014 15:02:18 +0100
Subject: [PATCH 6/6] wizard: Fix accepting PIN in SSP pairing

The PIN was always accepted, even if user clicked "Does not match"
---
 src/wizard/pages/ssppairing.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/wizard/pages/ssppairing.cpp b/src/wizard/pages/ssppairing.cpp
index 
3962e147f7fb5c26b062ba2392120022a1f037ec..d69d45c90a319f9bd809001f245d45155bab3182
 100644
--- a/src/wizard/pages/ssppairing.cpp
+++ b/src/wizard/pages/ssppairing.cpp
@@ -70,6 +70,7 @@ void SSPPairingPage::initializePage()
 void SSPPairingPage::confirmationRequested(quint32 passkey, const 
QDBusMessage& msg)
 {
     m_msg = msg;
+    m_msg.setDelayedReply(true);
 
     KPushButton *matches = new KPushButton(KStandardGuiItem::apply());
     matches->setText(i18n("Matches"));
@@ -119,6 +120,7 @@ void SSPPairingPage::matchesClicked()
 void SSPPairingPage::notMatchClicked()
 {
     m_buttonClicked = QWizard::CustomButton2;
+    
QDBusConnection::systemBus().send(m_msg.createErrorReply("org.bluez.Rejected", 
"Rejected"));
 
     wizard()->next();
 }
-- 
2.2.0

++++++ bluedevil-2.0-rc1.tar.xz -> bluedevil-2.0.tar.xz ++++++
++++ 38976 lines of diff (skipped)


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to