--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: lomiri-system-setti...@packages.debian.org
Control: affects -1 + src:lomiri-system-settings
User: release.debian....@packages.debian.org
Usertags: unblock
Please unblock package lomiri-system-settings
Provide system information and license information via Lomiri's system
settings applet.
[ Reason ]
This version of l-s-s has the about plugin activated and adds the system
settings section "System Information". This section is also referenced /
linked from the systray's session indicator in Lomiri via one of its menu
items (which does not do anything without this new version of l-s-s when
being clicked on).
Unfortunately, Lomiri upstream (aka Ubuntu Touch) has various Ubuntu
Touch or libhybris (API layer for Android based devices) specifities
included in the about plugin which forced us to disable the about plugin
at first. Thanks to Adam Havelka (who worked on this versions included
patch), we can not last-minute offer the about plugin and its
functionality (show hardware details of the used device, provide UI
access to /usr/share/doc/*/copyright, show free storage in $HOME,etc.) to
Debian Lomiri users.
[ Impact ]
Non-functional menu item in Lomiri's session indicator, no access to
system information via the Lomiri UI, no UI interface for showing license
information of the Debian system.
[ Tests ]
Manual tests on a Debian 13 machine with Lomiri installed.
[ Risks ]
lomiri-system-settings might need a regression fix, if problems occur
caused by the added patch.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
Relevant to Lomiri on Debian.
unblock lomiri-system-settings/1.3.1-3
diff -Nru lomiri-system-settings-1.3.1/debian/changelog
lomiri-system-settings-1.3.1/debian/changelog
--- lomiri-system-settings-1.3.1/debian/changelog 2025-05-04
08:40:32.000000000 +0200
+++ lomiri-system-settings-1.3.1/debian/changelog 2025-06-06
23:13:52.000000000 +0200
@@ -1,3 +1,14 @@
+lomiri-system-settings (1.3.1-3) unstable; urgency=medium
+
+ [ Adam Havelka ]
+ * debian/patches:
+ + Add 2014_removing-unnecessary-mobile-only-functionality.patch. Make
+ About plugin available on mainline Linux (i.e. Debian) by removing
+ mobile-only / Ubuntu Touch / libhybris / deviceinfo functionality and
+ information.
+
+ -- Mike Gabriel <sunwea...@debian.org> Fri, 06 Jun 2025 23:13:52 +0200
+
lomiri-system-settings (1.3.1-2) unstable; urgency=medium
* debian/patches:
diff -Nru
lomiri-system-settings-1.3.1/debian/patches/2014_removing-unnecessary-mobile-only-functionality.patch
lomiri-system-settings-1.3.1/debian/patches/2014_removing-unnecessary-mobile-only-functionality.patch
---
lomiri-system-settings-1.3.1/debian/patches/2014_removing-unnecessary-mobile-only-functionality.patch
1970-01-01 01:00:00.000000000 +0100
+++
lomiri-system-settings-1.3.1/debian/patches/2014_removing-unnecessary-mobile-only-functionality.patch
2025-06-06 23:08:14.000000000 +0200
@@ -0,0 +1,353 @@
+From 73b736bf6a24173fd6f6673f5116f285d3410330 Mon Sep 17 00:00:00 2001
+From: Adam Havelka <a...@uxes.cz>
+Date: Fri, 9 May 2025 09:48:35 +0200
+Subject: [PATCH] removing unnecessary mobile-only functionality
+
+---
+ plugins/CMakeLists.txt | 2 +-
+ plugins/about/CMakeLists.txt | 8 +--
+ plugins/about/PageComponent.qml | 95 ++-------------------------------
+ plugins/about/plugin.cpp | 11 ----
+ plugins/about/storageabout.cpp | 31 -----------
+ plugins/about/systeminfo.cpp | 21 +++-----
+ plugins/about/systeminfo.h | 2 +
+ 7 files changed, 15 insertions(+), 155 deletions(-)
+
+diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
+index 43a1ecaf..7452be92 100644
+--- a/plugins/CMakeLists.txt
++++ b/plugins/CMakeLists.txt
+@@ -1,8 +1,8 @@
+ if(ANDR_PROP_FOUND)
+- add_subdirectory(about)
+ add_subdirectory(brightness)
+ add_subdirectory(nfc)
+ endif()
++add_subdirectory(about)
+ add_subdirectory(background)
+ add_subdirectory(battery)
+ add_subdirectory(bluetooth)
+diff --git a/plugins/about/CMakeLists.txt b/plugins/about/CMakeLists.txt
+index f93190db..c3ad0304 100644
+--- a/plugins/about/CMakeLists.txt
++++ b/plugins/about/CMakeLists.txt
+@@ -1,15 +1,9 @@
+-include_directories(${ANDR_PROP_INCLUDE_DIRS})
+-include_directories(${DEVICEINFO_INCLUDE_DIRS})
+ include_directories(${GLIB_INCLUDE_DIRS})
+ include_directories(${GIO_INCLUDE_DIRS})
+ include_directories(${CLICK_INCLUDE_DIRS})
+ include_directories(${CLICK_INCLUDE_DIRS})
+ add_definitions(-DQT_NO_KEYWORDS)
+
+-if(DEVICEINFO_FOUND)
+- add_definitions(-DENABLE_DEVICEINFO)
+-endif()
+-
+ set(QML_SOURCES
+ EntryComponent.qml
+ License.qml
+@@ -36,7 +30,7 @@ add_library(LomiriStorageAboutPanel MODULE
+ )
+
+ target_link_libraries(LomiriStorageAboutPanel Qt5::Qml Qt5::Quick Qt5::DBus
+-${ANDR_PROP_LDFLAGS} ${DEVICEINFO_LDFLAGS} ${GLIB_LDFLAGS} ${GIO_LDFLAGS}
${CLICK_LDFLAGS} LomiriSystemSettingsPrivate)
++${GLIB_LDFLAGS} ${GIO_LDFLAGS} ${CLICK_LDFLAGS} LomiriSystemSettingsPrivate)
+
+ set(PLUG_DIR ${PLUGIN_PRIVATE_MODULE_DIR}/Lomiri/SystemSettings/StorageAbout)
+ install(TARGETS LomiriStorageAboutPanel DESTINATION ${PLUG_DIR})
+diff --git a/plugins/about/PageComponent.qml b/plugins/about/PageComponent.qml
+index 13673f79..db6eddd6 100644
+--- a/plugins/about/PageComponent.qml
++++ b/plugins/about/PageComponent.qml
+@@ -43,10 +43,6 @@ ItemPage {
+ id: bluetooth
+ }
+
+- DeviceInfo {
+- id: deviceInfos
+- }
+-
+ OfonoManager {
+ id: manager
+ onModemsChanged: root.modemsSorted = modems.slice(0).sort()
+@@ -100,37 +96,6 @@ ItemPage {
+ visible: backendInfos.serialNumber
+ }
+
+- SettingsListItems.SingleValue {
+- objectName: "imeiItem"
+- text: "IMEI"
+- value: i18n.tr("Press to show")
+- visible: !showImei
+- onClicked: showImei = true
+- }
+- SettingsListItems.SingleValue {
+- objectName: "imeiItem"
+- property string imeiNumber
+- imeiNumber: deviceInfos.imei(0)
+- text: "IMEI"
+- value: modemsSorted.length ? (imeiNumber || i18n.tr("None")) :
+- i18n.tr("None")
+- visible: modemsSorted.length == 1 && showImei
+- }
+-
+- SettingsListItems.Standard {
+- text: "IMEI"
+- objectName: "imeiItems"
+- layout.subtitle.text: {
+- var imeis = [];
+- modemsSorted.forEach(function (path, i) {
+- var imei = deviceInfos.imei(i);
+- imei ? imeis.push(imei) : imeis.push(i18n.tr("None"));
+- });
+- return imeis.join(", ");
+- }
+- visible: modemsSorted.length > 1 && showImei
+- }
+-
+ SettingsListItems.SingleValue {
+ property string address:
wlinfo.macAddress(NetworkInfo.WlanMode, 0)
+ text: i18n.tr("Wi-Fi address")
+@@ -149,13 +114,12 @@ ItemPage {
+
+ SettingsListItems.Divider {}
+
+- SettingsListItems.SingleValueProgression {
++ SettingsListItems.SingleValue {
+ id: storageItem
+ objectName: "storageItem"
+ text: i18n.tr("Storage")
+ /* TRANSLATORS: that's the free disk space, indicated in the
most appropriate storage unit */
+ value: i18n.tr("%1
free").arg(Utilities.formatSize(backendInfos.getFreeSpace("/home")))
+- onClicked: pageStack.addPageToNextColumn(root,
Qt.resolvedUrl("Storage.qml"))
+ }
+
+ SettingsItemTitle {
+@@ -164,64 +128,11 @@ ItemPage {
+ text: i18n.tr("Software:")
+ }
+
+- SettingsListItems.SingleValueProgression {
++ SettingsListItems.SingleValue {
+ visible: softwareItem.visible
+- property string versionIdentifier: {
+- var num = SystemImage.currentBuildNumber;
+- var ota = SystemImage.versionTag;
+- num = num ? "r%1".arg(num.toString()) : "";
+- return ota ? ota : num;
+- }
+ objectName: "osItem"
+ text: i18n.tr("OS")
+- value: "Ubuntu Touch %1%2"
+- .arg(deviceInfos.version(DeviceInfo.Os))
+- .arg(versionIdentifier ? " (%1)".arg(versionIdentifier) :
"")
+- onClicked: pageStack.addPageToNextColumn(root,
Qt.resolvedUrl("Version.qml"), {
+- version: versionIdentifier
+- })
+- }
+-
+- SettingsListItems.SingleValue {
+- objectName: "lastUpdatedItem"
+- visible: softwareItem.visible
+- text: i18n.tr("Last updated")
+- value: SystemImage.lastUpdateDate &&
!isNaN(SystemImage.lastUpdateDate) ?
+- Qt.formatDate(SystemImage.lastUpdateDate) :
i18n.tr("Never")
+- }
+-
+- SettingsListItems.SingleControl {
+- visible: softwareItem.visible
+-
+- Button {
+- objectName: "updateButton"
+- text: i18n.tr("Check for updates")
+- width: parent.width - units.gu(4)
+- onClicked: {
+- var upPlugin =
pluginManager.getByName("system-update")
+- if (upPlugin) {
+- var updatePage = upPlugin.pageComponent
+- var updatePageIncubator;
+- if (updatePage) {
+- updatePageIncubator =
pageStack.addPageToNextColumn(root, updatePage, {
+- plugin: upPlugin, pluginManager:
pluginManager
+- });
+- if (updatePageIncubator &&
updatePageIncubator.status == Component.Loading) {
+- updatePageIncubator.onStatusChanged =
function(status) {
+- if (status == Component.Ready) {
+-
updatePageIncubator.object.check(true);
+- }
+- }
+- }
+- } else {
+- console.warn("Failed to get system-update
pageComponent")
+- }
+- } else {
+- console.warn("Failed to get system-update plugin
instance")
+- }
+- }
+- }
+- showDivider: false
++ value: SystemInfo.distribution
+ }
+
+ SettingsItemTitle {
+diff --git a/plugins/about/plugin.cpp b/plugins/about/plugin.cpp
+index d6f70443..333b89d9 100644
+--- a/plugins/about/plugin.cpp
++++ b/plugins/about/plugin.cpp
+@@ -24,14 +24,6 @@
+ #include "click.h"
+ #include "storageabout.h"
+ #include "systeminfo.h"
+-#include "systemimage.h"
+-
+-static QObject *siSingletonProvider(QQmlEngine *engine, QJSEngine
*scriptEngine)
+-{
+- Q_UNUSED(engine)
+- Q_UNUSED(scriptEngine)
+- return new LomiriSystemSettings::QSystemImage;
+-}
+
+ static QObject *sinfoSingletonProvider(QQmlEngine *engine, QJSEngine
*scriptEngine)
+ {
+@@ -47,9 +39,6 @@ void BackendPlugin::registerTypes(const char *uri)
+ qRegisterMetaType<ClickModel::Roles>();
+ qmlRegisterType<ClickModel>(uri, 1, 0, "ClickRoles");
+ qmlRegisterType<StorageAbout>(uri, 1, 0, "LomiriStorageAboutPanel");
+- qmlRegisterSingletonType<LomiriSystemSettings::QSystemImage>(
+- uri, 1, 0, "SystemImage", siSingletonProvider
+- );
+ qmlRegisterSingletonType<SystemInfo>(
+ uri, 1, 0, "SystemInfo", sinfoSingletonProvider
+ );
+diff --git a/plugins/about/storageabout.cpp b/plugins/about/storageabout.cpp
+index 49778dc7..49ce21a0 100644
+--- a/plugins/about/storageabout.cpp
++++ b/plugins/about/storageabout.cpp
+@@ -43,7 +43,6 @@
+ #include <QtGlobal>
+ #include <QProcess>
+ #include <QVariant>
+-#include <hybris/properties/properties.h>
+ #include <QDBusReply>
+
+ namespace {
+@@ -164,47 +163,17 @@ StorageAbout::StorageAbout(QObject *parent) :
+ QString StorageAbout::serialNumber()
+ {
+
+- if (m_serialNumber.isEmpty() || m_serialNumber.isNull())
+- {
+- char serialBuffer[PROP_VALUE_MAX];
+- property_get("ro.serialno", serialBuffer, "");
+- m_serialNumber = QString(serialBuffer);
+- }
+-
+ return m_serialNumber;
+ }
+
+ QString StorageAbout::vendorString()
+ {
+- if (m_vendorString.isEmpty() || m_vendorString.isNull())
+- {
+- char manufacturerBuffer[PROP_VALUE_MAX];
+- char modelBuffer[PROP_VALUE_MAX];
+- property_get("ro.product.manufacturer", manufacturerBuffer, "");
+- property_get("ro.product.model", modelBuffer, "");
+-
+- // Special case for devices using generic Halium system.img
+- if (QString(manufacturerBuffer).startsWith("halium",
Qt::CaseInsensitive))
+- {
+- property_get("ro.product.vendor.manufacturer",
manufacturerBuffer, "");
+- property_get("ro.product.vendor.model", modelBuffer, "");
+- }
+-
+- m_vendorString = QString("%1
%2").arg(manufacturerBuffer).arg(modelBuffer);
+- }
+-
+ return m_vendorString;
+ }
+
+ QString StorageAbout::deviceBuildDisplayID()
+ {
+
+- if (m_deviceBuildDisplayID.isEmpty() || m_deviceBuildDisplayID.isNull())
+- {
+- char serialBuffer[PROP_VALUE_MAX];
+- property_get("ro.build.display.id", serialBuffer, "");
+- m_deviceBuildDisplayID = QString(serialBuffer);
+- }
+
+ return m_deviceBuildDisplayID;
+ }
+diff --git a/plugins/about/systeminfo.cpp b/plugins/about/systeminfo.cpp
+index 1579516e..b08c2236 100644
+--- a/plugins/about/systeminfo.cpp
++++ b/plugins/about/systeminfo.cpp
+@@ -20,12 +20,9 @@
+ #include <sstream>
+ #include <unistd.h>
+
+-#ifdef ENABLE_DEVICEINFO
+-#include <deviceinfo.h>
+-#endif
+-
++#include <QCoreApplication>
++#include <QSysInfo>
+ #include "systeminfo.h"
+-#include "storageabout.h"
+
+ SystemInfo::SystemInfo(QObject *parent) : QObject(parent)
+ {
+@@ -74,19 +71,12 @@ static std::string devicetree_devicename()
+ QString SystemInfo::prettyName()
+ {
+ QString str = "unknown";
+- auto storageAbout = new StorageAbout();
+-#ifdef ENABLE_DEVICEINFO
+- DeviceInfo info;
+- str = QString::fromStdString(info.prettyName());
+-#endif
+ if (str.toStdString() == "unknown"
+ || str.toStdString() == "Generic device"
+ || str.toStdString() == "Generic Halium device"
+ || str.toStdString() == "Generic linux device") {
+ // Fallback if we happen to stumble onto default values.
+- if (!storageAbout->vendorString().isEmpty()) {
+- return storageAbout->vendorString();
+- } else if (access("/sys/devices/virtual/dmi", F_OK) != -1) {
++ if (access("/sys/devices/virtual/dmi", F_OK) != -1) {
+ return QString::fromStdString(dmi_devicename());
+ } else {
+ return QString::fromStdString(devicetree_devicename());
+@@ -94,3 +84,8 @@ QString SystemInfo::prettyName()
+ }
+ return str;
+ }
++
++QString SystemInfo::distribution()
++{
++ return QSysInfo::prettyProductName();
++}
+\ No newline at end of file
+diff --git a/plugins/about/systeminfo.h b/plugins/about/systeminfo.h
+index 9e75f23e..2a37398e 100644
+--- a/plugins/about/systeminfo.h
++++ b/plugins/about/systeminfo.h
+@@ -27,6 +27,7 @@ class SystemInfo : public QObject
+ Q_PROPERTY(QString cpuArch READ cpuArch CONSTANT)
+ Q_PROPERTY(QString kernelVersion READ kernelVersion CONSTANT)
+ Q_PROPERTY(QString prettyName READ prettyName CONSTANT)
++ Q_PROPERTY(QString distribution READ distribution CONSTANT)
+
+ public:
+ SystemInfo(QObject *parent = 0);
+@@ -35,4 +36,5 @@ public:
+ QString cpuArch();
+ QString kernelVersion();
+ QString prettyName();
++ QString distribution();
+ };
+--
+2.49.0
+
diff -Nru lomiri-system-settings-1.3.1/debian/patches/series
lomiri-system-settings-1.3.1/debian/patches/series
--- lomiri-system-settings-1.3.1/debian/patches/series 2025-05-02
10:51:57.000000000 +0200
+++ lomiri-system-settings-1.3.1/debian/patches/series 2025-06-06
23:08:14.000000000 +0200
@@ -1,3 +1,4 @@
2002_use-Noto-font-instead-of-Ubuntu-font.patch
2011_build-without-trust-store.patch
2013_show-hotspot-on-desktop.patch
+2014_removing-unnecessary-mobile-only-functionality.patch
--- End Message ---