1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-20 17:55:15 +03:00
aports/testing/nemo-qml-plugin-systemsettings/0001-Remove-developer-mode.patch
2020-05-04 10:32:10 +00:00

736 lines
30 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Developer mode is really SailfishOS specific and doesn't make sense to have on other platforms.
Besides, it depends on PackageKit which is not available on Alpine.
diff --git a/src/developermodesettings.cpp b/src/developermodesettings.cpp
deleted file mode 100644
index 5767eb7..0000000
--- a/src/developermodesettings.cpp
+++ /dev/null
@@ -1,524 +0,0 @@
-/*
- * Copyright (c) 2013 2019 Jolla Ltd.
- * Copyright (c) 2019 Open Mobile Platform LLC.
- * Contact: Thomas Perl <thomas.perl@jollamobile.com>
- * Contact: Raine Makelainen <raine.makelainen@jolla.com>
- *
- * You may use this file under the terms of the BSD license as follows:
- *
- * "Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Nemo Mobile nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
- */
-
-#include "developermodesettings.h"
-#include "logging_p.h"
-
-#include <QFile>
-#include <QDir>
-#include <QDBusReply>
-#include <QNetworkInterface>
-#include <transaction.h>
-
-/* Symbolic constants */
-#define PROGRESS_INDETERMINATE (-1)
-
-/* Interfaces for IP addresses */
-#define USB_NETWORK_FALLBACK_INTERFACE "usb0"
-#define USB_NETWORK_FALLBACK_IP "192.168.2.15"
-#define WLAN_NETWORK_INTERFACE "wlan0"
-#define WLAN_NETWORK_FALLBACK_INTERFACE "tether"
-
-/* A file that is provided by the developer mode package */
-#define DEVELOPER_MODE_PROVIDED_FILE "/usr/bin/devel-su"
-#define DEVELOPER_MODE_PACKAGE "jolla-developer-mode"
-#define DEVELOPER_MODE_PACKAGE_PRELOAD_DIR "/var/lib/jolla-developer-mode/preloaded/"
-
-/* D-Bus service */
-#define USB_MODED_SERVICE "com.meego.usb_moded"
-#define USB_MODED_PATH "/com/meego/usb_moded"
-#define USB_MODED_INTERFACE "com.meego.usb_moded"
-
-/* D-Bus method names */
-#define USB_MODED_GET_NET_CONFIG "get_net_config"
-#define USB_MODED_SET_NET_CONFIG "net_config"
-
-/* USB Mode Daemon network configuration properties */
-#define USB_MODED_CONFIG_IP "ip"
-#define USB_MODED_CONFIG_INTERFACE "interface"
-
-static QMap<QString,QString> enumerate_network_interfaces()
-{
- QMap<QString,QString> result;
-
- for (const QNetworkInterface &intf : QNetworkInterface::allInterfaces()) {
- for (const QNetworkAddressEntry &entry : intf.addressEntries()) {
- if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) {
- result[intf.name()] = entry.ip().toString();
- }
- }
- }
-
- return result;
-}
-
-static QString get_cached_package(const QString &version)
-{
- QDir dir(DEVELOPER_MODE_PACKAGE_PRELOAD_DIR);
- QStringList filters;
- filters << QStringLiteral("%1-%2.*.rpm").arg(DEVELOPER_MODE_PACKAGE).arg(version);
- auto preloaded = dir.entryList(filters, QDir::Files, QDir::Name);
- if (preloaded.empty())
- return QString();
- return dir.absoluteFilePath(preloaded.last());
-}
-
-DeveloperModeSettings::DeveloperModeSettings(QObject *parent)
- : QObject(parent)
- , m_usbModeDaemon(USB_MODED_SERVICE, USB_MODED_PATH, USB_MODED_INTERFACE, QDBusConnection::systemBus())
- , m_wlanIpAddress("-")
- , m_usbInterface(USB_NETWORK_FALLBACK_INTERFACE)
- , m_usbIpAddress(USB_NETWORK_FALLBACK_IP)
- , m_username(qgetenv("USER"))
- , m_developerModeEnabled(QFile::exists(DEVELOPER_MODE_PROVIDED_FILE))
- , m_workStatus(Idle)
- , m_workProgress(PROGRESS_INDETERMINATE)
- , m_transactionRole(PackageKit::Transaction::RoleUnknown)
- , m_transactionStatus(PackageKit::Transaction::StatusUnknown)
- , m_refreshedForInstall(false)
- , m_localInstallFailed(false)
- , m_localDeveloperModePackagePath(get_cached_package(QStringLiteral("*"))) // Initialized to possibly incompatible package
-{
- // Resolve and update local package path
- if (!m_localDeveloperModePackagePath.isEmpty()) {
- PackageKit::Transaction *resolvePackage = PackageKit::Daemon::resolve(DEVELOPER_MODE_PACKAGE"-preload", PackageKit::Transaction::FilterInstalled);
- connect(resolvePackage, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
- connect(resolvePackage, &PackageKit::Transaction::package,
- this, [this](PackageKit::Transaction::Info info, const QString &packageID, const QString &summary) {
- Q_UNUSED(summary)
- Q_ASSERT(info == PackageKit::Transaction::InfoInstalled);
- const QString version = PackageKit::Transaction::packageVersion(packageID);
- m_localDeveloperModePackagePath = get_cached_package(version);
- if (m_localDeveloperModePackagePath.isEmpty()) {
- emit repositoryAccessRequiredChanged();
- }
- qCDebug(lcDeveloperModeLog) << "Preload package version: " << version << ", local package path: " << m_localDeveloperModePackagePath;
- });
- }
-
- refresh();
-
- // TODO: Watch WLAN / USB IP addresses for changes
- // TODO: Watch package manager for changes to developer mode
-}
-
-DeveloperModeSettings::~DeveloperModeSettings()
-{
-}
-
-QString DeveloperModeSettings::wlanIpAddress() const
-{
- return m_wlanIpAddress;
-}
-
-QString DeveloperModeSettings::usbIpAddress() const
-{
- return m_usbIpAddress;
-}
-
-QString DeveloperModeSettings::username() const
-{
- return m_username;
-}
-
-bool DeveloperModeSettings::developerModeEnabled() const
-{
- return m_developerModeEnabled;
-}
-
-enum DeveloperModeSettings::Status DeveloperModeSettings::workStatus() const
-{
- return m_workStatus;
-}
-
-int DeveloperModeSettings::workProgress() const
-{
- return m_workProgress;
-}
-
-bool DeveloperModeSettings::repositoryAccessRequired() const
-{
- // Aka local-install-of-developer-mode-package-is-not-possible
- return m_localInstallFailed || m_localDeveloperModePackagePath.isEmpty();
-}
-
-void DeveloperModeSettings::setDeveloperMode(bool enabled)
-{
- if (m_developerModeEnabled != enabled) {
- if (m_workStatus != Idle) {
- qCWarning(lcDeveloperModeLog) << "DeveloperMode state change requested during activity, ignored.";
- return;
- }
-
- m_refreshedForInstall = false;
- if (enabled) {
- resolveAndExecute(InstallCommand);
- } else {
- resolveAndExecute(RemoveCommand);
- }
- }
-}
-
-void DeveloperModeSettings::setUsbIpAddress(const QString &usbIpAddress)
-{
- if (m_usbIpAddress != usbIpAddress) {
- usbModedSetConfig(USB_MODED_CONFIG_IP, usbIpAddress);
- m_usbIpAddress = usbIpAddress;
- emit usbIpAddressChanged();
- }
-}
-
-void DeveloperModeSettings::refresh()
-{
- /* Retrieve network configuration from usb_moded */
- m_usbInterface = usbModedGetConfig(USB_MODED_CONFIG_INTERFACE, USB_NETWORK_FALLBACK_INTERFACE);
- QString usbIp = usbModedGetConfig(USB_MODED_CONFIG_IP, USB_NETWORK_FALLBACK_IP);
-
- if (usbIp != m_usbIpAddress) {
- m_usbIpAddress = usbIp;
- emit usbIpAddressChanged();
- }
-
- /* Retrieve network configuration from interfaces */
- QMap<QString,QString> entries = enumerate_network_interfaces();
-
- if (entries.contains(m_usbInterface)) {
- QString ip = entries[m_usbInterface];
- if (m_usbIpAddress != ip) {
- m_usbIpAddress = ip;
- emit usbIpAddressChanged();
- }
- }
-
- if (entries.contains(WLAN_NETWORK_INTERFACE)) {
- QString ip = entries[WLAN_NETWORK_INTERFACE];
- if (m_wlanIpAddress != ip) {
- m_wlanIpAddress = ip;
- emit wlanIpAddressChanged();
- }
- } else if (entries.contains(WLAN_NETWORK_FALLBACK_INTERFACE)) {
- // If the WLAN network interface does not have an IP address,
- // but there is a "tether" interface that does have an IP, assume
- // it is the WLAN interface in tethering mode, and use its IP.
- QString ip = entries[WLAN_NETWORK_FALLBACK_INTERFACE];
- if (m_wlanIpAddress != ip) {
- m_wlanIpAddress = ip;
- emit wlanIpAddressChanged();
- }
- }
-
- for (const QString &device : entries.keys()) {
- qCDebug(lcDeveloperModeLog) << "Device:" << device << "IP:" << entries[device];
- }
-}
-
-void DeveloperModeSettings::refreshPackageCacheAndInstall()
-{
- m_refreshedForInstall = true;
-
- // Soft refresh, do not clear & reload valid cache.
- PackageKit::Transaction *refreshCache = PackageKit::Daemon::refreshCache(false);
- connect(refreshCache, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
- connect(refreshCache, &PackageKit::Transaction::finished,
- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
- qCDebug(lcDeveloperModeLog) << "Package cache updated:" << status << runtime;
- resolveAndExecute(InstallCommand); // trying again regardless of success, some repositories might be updated
- });
-}
-
-void DeveloperModeSettings::resolveAndExecute(Command command)
-{
- setWorkStatus(Preparing);
- m_workProgress = 0;
- m_developerModePackageId.clear(); // might differ between installed/available
-
- if (command == InstallCommand && !m_localInstallFailed && !m_localDeveloperModePackagePath.isEmpty()) {
- // Resolve which version of developer mode package is expected
- PackageKit::Transaction *resolvePackage = PackageKit::Daemon::resolve(DEVELOPER_MODE_PACKAGE"-preload", PackageKit::Transaction::FilterInstalled);
- connect(resolvePackage, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
- connect(resolvePackage, &PackageKit::Transaction::package,
- this, [this](PackageKit::Transaction::Info info, const QString &packageID, const QString &summary) {
- Q_UNUSED(summary)
- Q_ASSERT(info == PackageKit::Transaction::InfoInstalled);
- const QString version = PackageKit::Transaction::packageVersion(packageID);
- m_localDeveloperModePackagePath = get_cached_package(version);
- emit repositoryAccessRequiredChanged();
- qCDebug(lcDeveloperModeLog) << "Preload package version: " << version << ", local package path: " << m_localDeveloperModePackagePath;
- });
-
- connect(resolvePackage, &PackageKit::Transaction::finished,
- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
- Q_UNUSED(runtime)
- if (status != PackageKit::Transaction::ExitSuccess || m_localDeveloperModePackagePath.isEmpty()) {
- qCDebug(lcDeveloperModeLog) << "Preloaded package not found, must use remote package";
- // No cached package => install from repos
- resolveAndExecute(InstallCommand);
- } else {
- PackageKit::Transaction *tx = PackageKit::Daemon::installFiles(QStringList() << m_localDeveloperModePackagePath);
- connectCommandSignals(tx);
- connect(tx, &PackageKit::Transaction::finished,
- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
- if (status == PackageKit::Transaction::ExitSuccess) {
- qCDebug(lcDeveloperModeLog) << "Developer mode installation from local package transaction done:" << status << runtime;
- resetState();
- } else if (status == PackageKit::Transaction::ExitFailed) {
- qCWarning(lcDeveloperModeLog) << "Developer mode installation from local package failed, trying from repos";
- m_localInstallFailed = true;
- emit repositoryAccessRequiredChanged();
- resolveAndExecute(InstallCommand); // TODO: If repo access is not available this can not bail out
- } // else ExitUnknown (ignored)
- });
- }
- });
-
- } else {
- PackageKit::Transaction::Filters filters;
- if (command == RemoveCommand) {
- filters = PackageKit::Transaction::FilterInstalled;
- } else {
- filters = PackageKit::Transaction::FilterNewest;
- }
- PackageKit::Transaction *resolvePackage = PackageKit::Daemon::resolve(DEVELOPER_MODE_PACKAGE, filters);
-
- connect(resolvePackage, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
- connect(resolvePackage, &PackageKit::Transaction::package,
- this, [this](PackageKit::Transaction::Info info, const QString &packageId, const QString &summary) {
- qCDebug(lcDeveloperModeLog) << "Package transaction:" << info << packageId << "summary:" << summary;
- m_developerModePackageId = packageId;
- });
-
- connect(resolvePackage, &PackageKit::Transaction::finished,
- this, [this, command](PackageKit::Transaction::Exit status, uint runtime) {
- Q_UNUSED(runtime)
-
- if (status != PackageKit::Transaction::ExitSuccess || m_developerModePackageId.isEmpty()) {
- if (command == InstallCommand) {
- if (m_refreshedForInstall) {
- qCWarning(lcDeveloperModeLog) << "Failed to install developer mode, package didn't resolve.";
- resetState();
- } else {
- refreshPackageCacheAndInstall(); // try once if it helps
- }
- } else if (command == RemoveCommand) {
- qCWarning(lcDeveloperModeLog) << "Removing developer mode but package didn't resolve into anything. Shouldn't happen.";
- resetState();
- }
-
- } else if (command == InstallCommand) {
- PackageKit::Transaction *tx = PackageKit::Daemon::installPackage(m_developerModePackageId);
- connectCommandSignals(tx);
-
- if (m_refreshedForInstall) {
- connect(tx, &PackageKit::Transaction::finished,
- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
- qCDebug(lcDeveloperModeLog) << "Developer mode installation transaction done (with refresh):" << status << runtime;
- resetState();
- });
- } else {
- connect(tx, &PackageKit::Transaction::finished,
- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
- if (status == PackageKit::Transaction::ExitSuccess) {
- qCDebug(lcDeveloperModeLog) << "Developer mode installation transaction done:" << status << runtime;
- resetState();
- } else {
- qCDebug(lcDeveloperModeLog) << "Developer mode installation failed, trying again after refresh";
- refreshPackageCacheAndInstall();
- }
- });
- }
- } else {
- PackageKit::Transaction *tx = PackageKit::Daemon::removePackage(m_developerModePackageId, true, true);
- connectCommandSignals(tx);
- connect(tx, &PackageKit::Transaction::finished,
- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
- qCDebug(lcDeveloperModeLog) << "Developer mode removal transaction done:" << status << runtime;
- resetState();
- });
- }
- });
- }
-}
-
-void DeveloperModeSettings::connectCommandSignals(PackageKit::Transaction *transaction)
-{
- connect(transaction, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
- connect(transaction, &PackageKit::Transaction::percentageChanged, this, [this, transaction]() {
- updateState(transaction->percentage(), m_transactionStatus, m_transactionRole);
- });
-
- connect(transaction, &PackageKit::Transaction::statusChanged, this, [this, transaction]() {
- updateState(m_workProgress, transaction->status(), m_transactionRole);
- });
-
- connect(transaction, &PackageKit::Transaction::roleChanged, this, [this, transaction]() {
- updateState(m_workProgress, m_transactionStatus, transaction->role());
- });
-}
-
-void DeveloperModeSettings::updateState(int percentage, PackageKit::Transaction::Status status, PackageKit::Transaction::Role role)
-{
- // Expected changes from PackageKit when installing packages:
- // 1. Change to 'install packages' role or 'install files' if installing from local package file
- // 2. Status changes:
- // setup -> refresh cache -> query -> resolve deps -> install (refer to as 'Preparing' status)
- // -> download ('DownloadingPackages' status)
- // -> install ('InstallingPackages' status)
- // -> finished
- //
- // If installing from local package fails, it starts over!
- //
- // Expected changes from PackageKit when removing packages:
- // 1. Change to 'remove packages' role
- // 2. Status changes:
- // setup -> remove -> resolve deps (refer to as 'Preparing' status)
- // -> remove ('RemovingPackages' status)
- // -> finished
- //
- // Notice the 'install' and 'remove' packagekit status changes occur twice.
-
- int progress = m_workProgress;
- DeveloperModeSettings::Status workStatus = m_workStatus;
-
- m_transactionRole = role;
- m_transactionStatus = status;
-
- // Do not update progress when finished or role is unknown.
- if (m_transactionStatus == PackageKit::Transaction::StatusFinished
- || m_transactionRole == PackageKit::Transaction::RoleUnknown) {
- return;
- }
-
- if (percentage >= 0 && percentage <= 100) {
- int rangeStart = 0;
- int rangeEnd = 0;
- if (m_transactionRole == PackageKit::Transaction::RoleInstallPackages
- || m_transactionRole == PackageKit::Transaction::RoleInstallFiles) {
- switch (m_transactionStatus) {
- case PackageKit::Transaction::StatusRefreshCache: // 0-10 %
- rangeStart = 0;
- rangeEnd = 10;
- break;
- case PackageKit::Transaction::StatusQuery: // fall through; packagekit progress changes 0-100 over query->resolve stages
- case PackageKit::Transaction::StatusDepResolve: // 10-20 %
- rangeStart = 10;
- rangeEnd = 20;
- break;
- case PackageKit::Transaction::StatusDownload: // 20-60 %
- // Skip downloading when installing from local file
- if (m_transactionRole != PackageKit::Transaction::RoleInstallFiles) {
- workStatus = DownloadingPackages;
- }
- rangeStart = 20;
- rangeEnd = 60;
- break;
- case PackageKit::Transaction::StatusInstall: // 60-100 %
- workStatus = InstallingPackages;
- rangeStart = 60;
- rangeEnd = 100;
- break;
- default:
- break;
- }
- } else if (m_transactionRole == PackageKit::Transaction::RoleRemovePackages) {
- if (m_transactionStatus == PackageKit::Transaction::StatusSetup) {
- // Let the setup to be bound between 0-20 %
- rangeStart = 0;
- rangeEnd = 20;
- } else { // 20-100 %
- workStatus = RemovingPackages;
- rangeStart = 20;
- rangeEnd = 100;
- }
- }
- if (rangeEnd > 0 && rangeEnd > rangeStart) {
- progress = rangeStart + ((rangeEnd - rangeStart) * (percentage / 100.0));
- }
- }
-
- progress = qBound(0, qMax(progress, m_workProgress), 100); // Ensure the emitted progress value never decreases.
-
- setWorkStatus(workStatus);
-
- if (m_workProgress != progress) {
- m_workProgress = progress;
- emit workProgressChanged();
- }
-}
-
-void DeveloperModeSettings::resetState()
-{
- bool enabled = QFile::exists(DEVELOPER_MODE_PROVIDED_FILE);
- if (m_developerModeEnabled != enabled) {
- m_developerModeEnabled = enabled;
- emit developerModeEnabledChanged();
- }
-
- setWorkStatus(Idle);
-
- if (m_workProgress != PROGRESS_INDETERMINATE) {
- m_workProgress = PROGRESS_INDETERMINATE;
- emit workProgressChanged();
- }
-}
-
-void DeveloperModeSettings::setWorkStatus(DeveloperModeSettings::Status status)
-{
- if (m_workStatus != status) {
- m_workStatus = status;
- emit workStatusChanged();
- }
-}
-
-void DeveloperModeSettings::reportTransactionErrorCode(PackageKit::Transaction::Error code, const QString &details)
-{
- qCWarning(lcDeveloperModeLog) << "Transaction error:" << code << details;
-}
-
-QString DeveloperModeSettings::usbModedGetConfig(const QString &key, const QString &fallback)
-{
- QString value = fallback;
-
- QDBusMessage msg = m_usbModeDaemon.call(USB_MODED_GET_NET_CONFIG, key);
- QList<QVariant> result = msg.arguments();
- if (result[0].toString() == key && result.size() == 2) {
- value = result[1].toString();
- }
-
- return value;
-}
-
-void DeveloperModeSettings::usbModedSetConfig(const QString &key, const QString &value)
-{
- m_usbModeDaemon.call(USB_MODED_SET_NET_CONFIG, key, value);
-}
diff --git a/src/developermodesettings.h b/src/developermodesettings.h
deleted file mode 100644
index d5473f7..0000000
--- a/src/developermodesettings.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2013 2019 Jolla Ltd.
- * Copyright (c) 2019 Open Mobile Platform LLC.
- * Contact: Thomas Perl <thomas.perl@jollamobile.com>
- *
- * You may use this file under the terms of the BSD license as follows:
- *
- * "Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Nemo Mobile nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
- */
-
-#ifndef DEVELOPERMODESETTINGS_H
-#define DEVELOPERMODESETTINGS_H
-
-#include <QObject>
-#include <QDBusInterface>
-
-#include <systemsettingsglobal.h>
-#include <daemon.h>
-
-
-QT_BEGIN_NAMESPACE
-class QDBusPendingCallWatcher;
-QT_END_NAMESPACE
-
-class SYSTEMSETTINGS_EXPORT DeveloperModeSettings : public QObject
-{
- Q_OBJECT
- Q_ENUMS(Status)
-
- Q_PROPERTY(QString wlanIpAddress READ wlanIpAddress NOTIFY wlanIpAddressChanged)
- Q_PROPERTY(QString usbIpAddress READ usbIpAddress NOTIFY usbIpAddressChanged)
- Q_PROPERTY(QString username READ username CONSTANT)
- Q_PROPERTY(bool developerModeEnabled READ developerModeEnabled NOTIFY developerModeEnabledChanged)
- Q_PROPERTY(enum DeveloperModeSettings::Status workStatus READ workStatus NOTIFY workStatusChanged)
- Q_PROPERTY(int workProgress READ workProgress NOTIFY workProgressChanged)
- Q_PROPERTY(bool repositoryAccessRequired READ repositoryAccessRequired NOTIFY repositoryAccessRequiredChanged)
-
-public:
- explicit DeveloperModeSettings(QObject *parent = NULL);
- virtual ~DeveloperModeSettings();
-
- enum Status {
- Idle = 0,
- Preparing,
- DownloadingPackages,
- InstallingPackages,
- RemovingPackages
- };
-
- QString wlanIpAddress() const;
- QString usbIpAddress() const;
- QString username() const;
- bool developerModeEnabled() const;
- enum DeveloperModeSettings::Status workStatus() const;
- int workProgress() const;
- bool repositoryAccessRequired() const;
-
- Q_INVOKABLE void setDeveloperMode(bool enabled);
- Q_INVOKABLE void setUsbIpAddress(const QString &usbIpAddress);
- Q_INVOKABLE void refresh();
-
-signals:
- void wlanIpAddressChanged();
- void usbIpAddressChanged();
- void developerModeEnabledChanged();
- void workStatusChanged();
- void workProgressChanged();
- void repositoryAccessRequiredChanged();
-
-private slots:
- void reportTransactionErrorCode(PackageKit::Transaction::Error code, const QString &details);
- void updateState(int percentage, PackageKit::Transaction::Status status, PackageKit::Transaction::Role role);
-
-private:
- enum Command {
- InstallCommand,
- RemoveCommand
- };
-
- void resetState();
- void setWorkStatus(Status status);
- void refreshPackageCacheAndInstall();
- void resolveAndExecute(Command command);
- void connectCommandSignals(PackageKit::Transaction *transaction);
-
- QString usbModedGetConfig(const QString &key, const QString &fallback);
- void usbModedSetConfig(const QString &key, const QString &value);
-
- QDBusInterface m_usbModeDaemon;
- QString m_wlanIpAddress;
- QString m_usbInterface;
- QString m_usbIpAddress;
- QString m_username;
- QString m_developerModePackageId;
- bool m_developerModeEnabled;
- DeveloperModeSettings::Status m_workStatus;
- int m_workProgress;
- PackageKit::Transaction::Role m_transactionRole;
- PackageKit::Transaction::Status m_transactionStatus;
- bool m_refreshedForInstall;
- bool m_localInstallFailed;
- QString m_localDeveloperModePackagePath;
-};
-
-Q_DECLARE_METATYPE(DeveloperModeSettings::Status)
-
-#endif /* DEVELOPERMODESETTINGS_H */
diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp
index 8174c09..b7db9ae 100644
--- a/src/plugin/plugin.cpp
+++ b/src/plugin/plugin.cpp
@@ -43,7 +43,6 @@
#include "alarmtonemodel.h"
#include "displaysettings.h"
#include "aboutsettings.h"
-#include "developermodesettings.h"
#include "batterystatus.h"
#include "diskusage.h"
#include "partitionmodel.h"
@@ -104,10 +103,8 @@ public:
qmlRegisterType<AboutSettings>(uri, 1, 0, "AboutSettings");
qmlRegisterType<PartitionModel>(uri, 1, 0, "PartitionModel");
qRegisterMetaType<Partition>("Partition");
- qmlRegisterType<DeveloperModeSettings>(uri, 1, 0, "DeveloperModeSettings");
qmlRegisterType<CertificateModel>(uri, 1, 0, "CertificateModel");
qmlRegisterSingletonType<SettingsVpnModel>(uri, 1, 0, "SettingsVpnModel", api_factory<SettingsVpnModel>);
- qRegisterMetaType<DeveloperModeSettings::Status>("DeveloperModeSettings::Status");
qmlRegisterType<BatteryStatus>(uri, 1, 0, "BatteryStatus");
qmlRegisterType<DiskUsage>(uri, 1, 0, "DiskUsage");
qmlRegisterType<LocationSettings>(uri, 1, 0, "LocationSettings");
diff --git a/src/plugin/plugin.pro b/src/plugin/plugin.pro
index 9a05fa9..cfd58e7 100644
--- a/src/plugin/plugin.pro
+++ b/src/plugin/plugin.pro
@@ -6,7 +6,7 @@ CONFIG += qt plugin c++11 hide_symbols link_pkgconfig
QT += qml dbus network
QT -= gui
-PKGCONFIG += profile usb-moded-qt5 nemomodels-qt5 libsailfishkeyprovider connman-qt5 packagekitqt5
+PKGCONFIG += profile usb-moded-qt5 nemomodels-qt5 libsailfishkeyprovider connman-qt5
target.path = $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH
INSTALLS += target
diff --git a/src/src.pro b/src/src.pro
index 791a3f7..57f59b4 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -7,7 +7,7 @@ QT -= gui
CONFIG += c++11 hide_symbols link_pkgconfig
PKGCONFIG += profile mlite5 mce timed-qt5 blkid libcrypto nemomodels-qt5 libsailfishkeyprovider connman-qt5 glib-2.0
-PKGCONFIG += ssu-sysinfo nemodbus packagekitqt5 libsystemd sailfishusermanager sailfishaccesscontrol
+PKGCONFIG += ssu-sysinfo nemodbus libsystemd sailfishusermanager sailfishaccesscontrol
system(qdbusxml2cpp -p mceiface.h:mceiface.cpp mce.xml)
@@ -22,8 +22,7 @@ SOURCES += \
mceiface.cpp \
displaysettings.cpp \
aboutsettings.cpp \
- certificatemodel.cpp \
- developermodesettings.cpp \
+ certificatemodel.cpp \
batterystatus.cpp \
diskusage.cpp \
diskusage_impl.cpp \
@@ -51,7 +50,6 @@ PUBLIC_HEADERS = \
aboutsettings.h \
certificatemodel.h \
settingsvpnmodel.h \
- developermodesettings.h \
batterystatus.h \
udisks2block_p.h \
udisks2defines.h \