Hello community, here is the log from the commit of package NetworkManager-kde4 for openSUSE:Factory checked in at Fri Nov 27 15:59:17 CET 2009. -------- --- KDE/NetworkManager-kde4/NetworkManager-kde4.changes 2009-11-02 16:29:15.000000000 +0100 +++ /mounts/work_src_done/STABLE/NetworkManager-kde4/NetworkManager-kde4.changes 2009-11-20 10:01:04.000000000 +0100 @@ -1,0 +2,22 @@ +Fri Nov 20 07:40:03 UTC 2009 - wstephenson@novell.com + +- Add novellvpn plugin (bnc#438310, bnc#400710) +- Build on openSUSE 11.1 and SLE11 + +------------------------------------------------------------------- +Thu Nov 19 22:53:23 CET 2009 - llunak@novell.com + +- sync 11.2 KDE packages with SLE (fate#305847) + +------------------------------------------------------------------- +Wed Nov 18 17:03:50 UTC 2009 - wstephenson@novell.com + +- Fix bnc#553908 - no routing set with DHCP connections +- Notify NetworkManager correctly when connections are edited +- Fix broken doubleclick in Other Networks dialog +- Don't show Enable wireless when no wireless hardware present +- Prompt for missing VPN secrets on connect +- Fix openVPN with X509 certificates only +- Fix sorting of newly added connections + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- add-novellvpn-plugin.diff code11_networkmanager_no_neverdefault.diff r1047285-doubleclick-other-networks-dialog.diff r1047562-invalid-timestamps.diff r1047612-hide-wireless-no-hardware.diff r1047763-update-settings-signal.diff r1048007-routing-not-accepted.diff r1048697-const-iterators.diff r1049067-vpn-secrets-prompt.diff r1050511-openvpn-x509-no-password.diff r1050784-activatable-sorting.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ NetworkManager-kde4.spec ++++++ --- /var/tmp/diff_new_pack.UWzOWs/_old 2009-11-27 15:57:45.000000000 +0100 +++ /var/tmp/diff_new_pack.UWzOWs/_new 2009-11-27 15:57:45.000000000 +0100 @@ -21,14 +21,25 @@ Name: NetworkManager-kde4 BuildRequires: NetworkManager-devel kdebase4-workspace-devel libknotificationitem-devel Version: 0.9.svn1043876 -Release: 1 -License: GPL v2 or later +Release: 2 +License: GPLv2+ BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/GUI/KDE Summary: NetworkManager client for KDE 4 Source0: networkmanager.tar.bz2 Source1: networkmanager-po.tar.bz2 Source2: knetworkmanager.default.sh +Patch0: r1047285-doubleclick-other-networks-dialog.diff +Patch1: r1047562-invalid-timestamps.diff +Patch2: r1047612-hide-wireless-no-hardware.diff +Patch3: r1047763-update-settings-signal.diff +Patch4: r1048007-routing-not-accepted.diff +Patch5: r1048697-const-iterators.diff +Patch6: r1049067-vpn-secrets-prompt.diff +Patch7: r1050511-openvpn-x509-no-password.diff +Patch8: r1050784-activatable-sorting.diff +Patch9: code11_networkmanager_no_neverdefault.diff +Patch10: add-novellvpn-plugin.diff Requires: %{name}-lang = %{version} Requires: %{name}-libs = %{version}-%{release} Provides: NetworkManager-client @@ -62,7 +73,7 @@ network connections on systems that use the NetworkManager servicce %package -n plasmoid-networkmanagement -License: GPL v2 or later +License: GPLv2+ Summary: NetworkManager client for KDE 4 Group: System/GUI/KDE Provides: NetworkManager-client @@ -74,7 +85,7 @@ on systems that use the NetworkManager service. %package -n NetworkManager-openvpn-kde4 -License: GPL v2 or later +License: GPLv2+ Summary: NetworkManager client for KDE 4 Group: System/GUI/KDE Provides: NetworkManager-openvpn-frontend @@ -91,7 +102,7 @@ Will Stephenson <wstephenson@novell.com> %package -n NetworkManager-pptp-kde4 -License: GPL v2 or later +License: GPLv2+ Summary: NetworkManager client for KDE 4 Group: System/GUI/KDE Provides: NetworkManager-pptp-frontend @@ -107,7 +118,7 @@ Will Stephenson <wstephenson@novell.com> %package -n NetworkManager-vpnc-kde4 -License: GPL v2 or later +License: GPLv2+ Summary: NetworkManager client for KDE 4 Group: System/GUI/KDE Provides: NetworkManager-vpnc-frontend @@ -122,9 +133,39 @@ -------- Will Stephenson <wstephenson@novell.com> +%package -n NetworkManager-novellvpn-kde4 +License: GPLv2+ +Summary: NovellVPN NetworkManager plugin for KDE 4 +Group: System/GUI/KDE +Provides: NetworkManager-novellvpn-frontend +Requires: %{name}-libs = %{version}-%{release} +Requires: NetworkManager-novellvpn + +%description -n NetworkManager-novellvpn-kde4 +NovellVPN VPN plugin for KDE Network Management components. + + + +Authors: +-------- + Will Stephenson <wstephenson@novell.com> + %lang_package %prep %setup -q -n networkmanager -a 1 +%patch0 +%patch1 +%patch2 +%patch3 +%patch4 +%patch5 +%patch6 +%patch7 +%patch8 +%if %suse_version < 1120 +%patch9 +%endif +%patch10 echo "find_package(Msgfmt REQUIRED)" >> CMakeLists.txt echo "find_package(Gettext REQUIRED)" >> CMakeLists.txt echo "add_subdirectory(po)" >> CMakeLists.txt @@ -214,4 +255,9 @@ %{_libdir}/kde4/networkmanagement_pptpui.so %{_datadir}/kde4/services/networkmanagement_pptpui.desktop +%files -n NetworkManager-novellvpn-kde4 +%defattr(-,root,root) +%{_libdir}/kde4/networkmanagement_novellvpnui.so +%{_datadir}/kde4/services/networkmanagement_novellvpnui.desktop + %changelog ++++++ add-novellvpn-plugin.diff ++++++ ++++ 870 lines (skipped) ++++++ code11_networkmanager_no_neverdefault.diff ++++++ Index: libs/ui/ipv4widget.cpp =================================================================== --- libs/ui/ipv4widget.cpp (revision 1051776) +++ libs/ui/ipv4widget.cpp (working copy) @@ -54,6 +54,8 @@ Q_D(IpV4Widget); d->ui.setupUi(this); + // Not present in NM 0.7.1 as shipped with CODE11 + d->ui.cbNeverDefault->hide(); QString str_auto; QString str_auto_only; Knm::Connection::Type connType = connection->type(); Index: backends/NetworkManager/settings/ipv4dbus.cpp =================================================================== --- backends/NetworkManager/settings/ipv4dbus.cpp (revision 1051776) +++ backends/NetworkManager/settings/ipv4dbus.cpp (working copy) @@ -35,9 +35,9 @@ if (map.contains(QLatin1String(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES))) { setting->setIgnoreautoroute(map.value(QLatin1String(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES)).value<bool>()); } - if (map.contains(QLatin1String(NM_SETTING_IP4_CONFIG_NEVER_DEFAULT))) { - setting->setNeverdefault(map.value(QLatin1String(NM_SETTING_IP4_CONFIG_NEVER_DEFAULT)).value<bool>()); - } +//X if (map.contains(QLatin1String(NM_SETTING_IP4_CONFIG_NEVER_DEFAULT))) { +//X setting->setNeverdefault(map.value(QLatin1String(NM_SETTING_IP4_CONFIG_NEVER_DEFAULT)).value<bool>()); +//X } if (map.contains(QLatin1String(NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID))) { setting->setDhcpclientid(map.value(QLatin1String(NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID)).value<QString>()); } @@ -104,7 +104,7 @@ //map.insert(QLatin1String(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS), setting->ignoredhcpdns()); insertIfTrue(map, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, setting->ignoreautoroute()); - insertIfTrue(map, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, setting->neverdefault()); + //insertIfTrue(map, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, setting->neverdefault()); insertIfNonEmpty(map, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, setting->dhcpclientid()); insertIfNonEmpty(map, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, setting->dhcphostname()); return map; ++++++ r1047285-doubleclick-other-networks-dialog.diff ++++++ Index: monolithic/otherwirelessnetworkdialog.cpp =================================================================== --- monolithic/otherwirelessnetworkdialog.cpp (revision 1047284) +++ monolithic/otherwirelessnetworkdialog.cpp (revision 1047285) @@ -60,7 +60,7 @@ m_ui.twNetworks->setFirstItemColumnSpanned(m_newAdhocItem, true); m_newAdhocItem->setIcon(0, SmallIcon("document-new")); - connect(m_ui.twNetworks, SIGNAL(itemDoubleClicked(QTreeWidgetItem*)), this, SLOT(itemDoubleClicked(QTreeWidgetItem*))); + connect(m_ui.twNetworks, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(itemDoubleClicked(QTreeWidgetItem*))); connect(m_ui.twNetworks, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelectionChanged())); } ++++++ r1047562-invalid-timestamps.diff ++++++ Index: libs/internals/connectionpersistence.cpp =================================================================== --- libs/internals/connectionpersistence.cpp (revision 1047561) +++ libs/internals/connectionpersistence.cpp (revision 1047562) @@ -144,7 +144,8 @@ cg.writeEntry("uuid", m_connection->uuid().toString()); cg.writeEntry("type", Connection::typeAsString(m_connection->type())); cg.writeEntry("autoconnect", m_connection->autoConnect()); - cg.writeEntry("timestamp", m_connection->timestamp()); + if (m_connection->timestamp().isValid()) + cg.writeEntry("timestamp", m_connection->timestamp()); cg.writeEntry("icon", m_connection->iconName()); // save each setting ++++++ r1047612-hide-wireless-no-hardware.diff ++++++ Index: monolithic/knetworkmanagertrayicon.cpp =================================================================== --- monolithic/knetworkmanagertrayicon.cpp (revision 1047611) +++ monolithic/knetworkmanagertrayicon.cpp (revision 1047612) @@ -310,7 +310,8 @@ // add the housekeeping actions contextMenu()->addSeparator(); - if (d->interfaceTypes.testFlag(Solid::Control::NetworkInterface::Ieee80211)) { + + if (!wirelessDeviceUnis.isEmpty() /*TODO Bluetooth too */ && d->interfaceTypes.testFlag(Solid::Control::NetworkInterface::Ieee80211)) { contextMenu()->addAction(d->flightModeAction); } contextMenu()->addAction(d->prefsAction); ++++++ r1047763-update-settings-signal.diff ++++++ Index: backends/NetworkManager/busconnection.h =================================================================== --- backends/NetworkManager/busconnection.h (revision 1047762) +++ backends/NetworkManager/busconnection.h (revision 1047763) @@ -69,7 +69,7 @@ QString uuid() const; Knm::Connection * connection() const; Q_SIGNALS: - Q_SCRIPTABLE void Updated(QMap<QString, QMap<QString, QVariant> >); + Q_SCRIPTABLE void Updated(const QVariantMapMap &settings); Q_SCRIPTABLE void Removed(); public Q_SLOTS: ++++++ r1048007-routing-not-accepted.diff ++++++ Index: libs/internals/settings/ipv4.cpp =================================================================== --- libs/internals/settings/ipv4.cpp (revision 1048006) +++ libs/internals/settings/ipv4.cpp (revision 1048007) @@ -7,7 +7,9 @@ Ipv4Setting::Ipv4Setting() : Setting(Setting::Ipv4), mMethod(Ipv4Setting::EnumMethod::Automatic), - mIgnoredhcpdns(false) + mIgnoredhcpdns(false), + mIgnoreautoroute(false), + mNeverdefault(false) { } ++++++ r1048697-const-iterators.diff ++++++ Index: libs/service/networkinterfaceactivatableprovider.cpp =================================================================== --- libs/service/networkinterfaceactivatableprovider.cpp (revision 1048696) +++ libs/service/networkinterfaceactivatableprovider.cpp (revision 1048697) @@ -178,8 +178,8 @@ void NetworkInterfaceActivatableProvider::handleUpdate(Knm::Connection * updatedConnection) { Q_D(NetworkInterfaceActivatableProvider); - QMultiHash<QString, Knm::InterfaceConnection*>::const_iterator i = d->activatables.find(updatedConnection->uuid()); - while (i != d->activatables.end() && i.key() == updatedConnection->uuid()) { + QMultiHash<QString, Knm::InterfaceConnection*>::const_iterator i = d->activatables.constFind(updatedConnection->uuid()); + while (i != d->activatables.constEnd() && i.key() == updatedConnection->uuid()) { Knm::InterfaceConnection * ifaceConnection = dynamic_cast<Knm::InterfaceConnection *>(i.value()); if (ifaceConnection) { Knm::InterfaceConnectionHelpers::syncInterfaceConnection(ifaceConnection, updatedConnection); Index: libs/ui/editlistdialog.cpp =================================================================== --- libs/ui/editlistdialog.cpp (revision 1048696) +++ libs/ui/editlistdialog.cpp (revision 1048697) @@ -64,7 +64,7 @@ void removeEmptyItems(QStringList &list) { QStringList::iterator it = list.begin(); - QStringList::const_iterator end = list.constEnd(); + const QStringList::iterator end = list.end(); while (it != end) { if ((*it).trimmed().isEmpty()) { it = list.erase(it); ++++++ r1049067-vpn-secrets-prompt.diff ++++++ Index: libs/internals/connectionpersistence.cpp =================================================================== --- libs/internals/connectionpersistence.cpp (revision 1049066) +++ libs/internals/connectionpersistence.cpp (revision 1049067) @@ -252,6 +252,7 @@ kDebug() << "Reading all entries for connection"; QMap<QString,QMap<QString,QString> > entries; QString key = m_connection->uuid() + QLatin1String("*"); + bool missingEntry = false; if (wallet->readMapList(key, entries) == 0) { foreach (Setting * setting, m_connection->settings()) { @@ -259,14 +260,23 @@ if (entries.contains(settingKey)) { QMap<QString,QString> settingSecrets = entries.value(settingKey); + if (settingSecrets.isEmpty()) { + kDebug() << "no secrets found for" << settingKey; + missingEntry = true; + break; + } kDebug() << settingSecrets; persistenceFor(setting)->restoreSecrets(settingSecrets); + } else if (setting->hasSecrets()) { + missingEntry = true; } } kDebug() << "Check connection:"; kDebug() << "secretsAvailable:" << m_connection->secretsAvailable(); - - emit loadSecretsResult(EnumError::NoError); + if (missingEntry) + emit loadSecretsResult(EnumError::MissingContents); + else + emit loadSecretsResult(EnumError::NoError); } else { kDebug() << "Wallet::readEntryList for :" << key << " failed"; emit loadSecretsResult(EnumError::MissingContents); Index: libs/ui/connectionsecretsjob.cpp =================================================================== --- libs/ui/connectionsecretsjob.cpp (revision 1049066) +++ libs/ui/connectionsecretsjob.cpp (revision 1049067) @@ -39,6 +39,7 @@ #include <KDialog> #include <KLocale> +#include <KServiceTypeTrader> #include <KStandardDirs> #include "802_11_wirelesswidget.h" @@ -53,8 +54,11 @@ #include "security/securitywidget.h" #include "security/securitywired8021x.h" +#include "settings/vpn.h" + #include "knmserviceprefs.h" #include "connection.h" +#include "vpnuiplugin.h" ConnectionSecretsJob::ConnectionSecretsJob(Knm::Connection* connection, const QString &settingName, const QStringList& secrets, bool requestNew, const QDBusMessage& request) @@ -131,7 +135,20 @@ } else if ( mSettingName == QLatin1String(NM_SETTING_SERIAL_SETTING_NAME)) { m_settingWidget = new PppWidget(m_connection, 0); } else if ( mSettingName == QLatin1String(NM_SETTING_VPN_SETTING_NAME)) { - // not supported yet, figure out the type of the vpn plugin, load it and its m_settingWidgetget + // get the type of vpn service + QString configFile = KStandardDirs::locate("data", + Knm::ConnectionPersistence::CONNECTION_PERSISTENCE_PATH + m_connection->uuid()); + m_connectionPersistence = new Knm::ConnectionPersistence(m_connection, + KSharedConfig::openConfig(configFile, KConfig::NoGlobals), + (Knm::ConnectionPersistence::SecretStorageMode)KNetworkManagerServicePrefs::self()->secretStorageMode()); + m_connectionPersistence->load(); + Knm::VpnSetting * vpnSetting = static_cast<Knm::VpnSetting*>(m_connection->setting(Knm::Setting::Vpn)); + // load the plugin and get its setting widget + QString error; + VpnUiPlugin * uiPlugin = KServiceTypeTrader::createInstanceFromQuery<VpnUiPlugin>( QString::fromLatin1( "NetworkManagement/VpnUiPlugin" ), QString::fromLatin1( "[X-KDE-PluginInfo-Name]=='%1'" ).arg(vpnSetting->pluginName() ), this, QVariantList(), &error ); + if (uiPlugin && error.isEmpty()) { + m_settingWidget= uiPlugin->widget(m_connection, 0); + } } else if ( mSettingName == QLatin1String(NM_SETTING_WIRED_SETTING_NAME)) { m_settingWidget = new WiredWidget(m_connection, 0); } else if ( mSettingName == QLatin1String(NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) { ++++++ r1050511-openvpn-x509-no-password.diff ++++++ Index: vpnplugins/openvpn/openvpnwidget.cpp =================================================================== --- vpnplugins/openvpn/openvpnwidget.cpp (revision 1050510) +++ vpnplugins/openvpn/openvpnwidget.cpp (revision 1050511) @@ -219,6 +219,9 @@ data.insert( NM_OPENVPN_KEY_CA, d->ui.x509CaFile->url().path().toUtf8()); data.insert( NM_OPENVPN_KEY_CERT, d->ui.x509Cert->url().path().toUtf8()); data.insert( NM_OPENVPN_KEY_KEY, d->ui.x509Key->url().path().toUtf8()); + // The OpenVPM NetworkManager plugin requires that the secrets map be + // nonempty, even if there's no real password, + secretData.insert(NM_OPENVPN_KEY_NOSECRET, ""); break; case 1: contype = NM_OPENVPN_CONTYPE_STATIC_KEY; ++++++ r1050784-activatable-sorting.diff ++++++ Index: libs/service/activatablelist.cpp =================================================================== --- libs/service/activatablelist.cpp (revision 1050783) +++ libs/service/activatablelist.cpp (revision 1050784) @@ -80,16 +80,21 @@ Q_D(ActivatableList); if (!d->activatables.contains(activatable)) { addActivatableInternal(activatable); + notifyOnAddActivatable(activatable); } } - void ActivatableList::addActivatableInternal(Knm::Activatable * activatable) { Q_D(ActivatableList); d->activatables.append(activatable); + connect(activatable, SIGNAL(changed()), this, SLOT(activatableChanged())); +} - connect(activatable, SIGNAL(changed()), this, SLOT(activatableChanged())); +void ActivatableList::notifyOnAddActivatable(Knm::Activatable * activatable) +{ + Q_D(ActivatableList); + foreach (ActivatableObserver * observer, d->observers) { observer->handleAdd(activatable); } Index: libs/service/activatablelist.h =================================================================== --- libs/service/activatablelist.h (revision 1050783) +++ libs/service/activatablelist.h (revision 1050784) @@ -61,6 +61,7 @@ void activatableChanged(); protected: void addActivatableInternal(Knm::Activatable * activatable); + void notifyOnAddActivatable(Knm::Activatable * activatable); ActivatableListPrivate * d_ptr; }; Index: libs/service/sortedactivatablelist.cpp =================================================================== --- libs/service/sortedactivatablelist.cpp (revision 1050783) +++ libs/service/sortedactivatablelist.cpp (revision 1050784) @@ -92,12 +92,11 @@ // add all vpn connections if ((iface && (d->types.testFlag(iface->type()))) || (activatable->activatableType() == Knm::Activatable::VpnInterfaceConnection)) { - addActivatableInternal(activatable); - + qSort(d->activatables.begin(), d->activatables.end(), activatableLessThan); + notifyOnAddActivatable(activatable); } } - qSort(d->activatables.begin(), d->activatables.end(), activatableLessThan); } void SortedActivatableList::handleUpdate(Knm::Activatable *) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org