Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kpublictransport for
openSUSE:Factory checked in at 2026-07-02 22:11:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kpublictransport (Old)
and /work/SRC/openSUSE:Factory/.kpublictransport.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kpublictransport"
Thu Jul 2 22:11:21 2026 rev:67 rq:1363311 version:26.04.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kpublictransport/kpublictransport.changes
2026-06-08 14:18:53.485063471 +0200
+++
/work/SRC/openSUSE:Factory/.kpublictransport.new.1982/kpublictransport.changes
2026-07-02 22:16:13.386834036 +0200
@@ -1,0 +2,11 @@
+Tue Jun 30 18:19:54 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 26.04.3
+ * New bugfix release
+ * For more details please see:
+ * https://kde.org/announcements/gear/26.04.3/
+- Changes since 26.04.2:
+ * Add Amtrak onboard SSID
+ * Optimize computing GeoJSON bounding boxes
+
+-------------------------------------------------------------------
Old:
----
kpublictransport-26.04.2.tar.xz
kpublictransport-26.04.2.tar.xz.sig
New:
----
kpublictransport-26.04.3.tar.xz
kpublictransport-26.04.3.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kpublictransport.spec ++++++
--- /var/tmp/diff_new_pack.02AEpM/_old 2026-07-02 22:16:14.022855879 +0200
+++ /var/tmp/diff_new_pack.02AEpM/_new 2026-07-02 22:16:14.030856153 +0200
@@ -21,7 +21,7 @@
%bcond_without released
Name: kpublictransport
-Version: 26.04.2
+Version: 26.04.3
Release: 0
Summary: QML imports for querying public transport data
License: LGPL-2.0-or-later
++++++ kpublictransport-26.04.2.tar.xz -> kpublictransport-26.04.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/CMakeLists.txt
new/kpublictransport-26.04.3/CMakeLists.txt
--- old/kpublictransport-26.04.2/CMakeLists.txt 2026-06-01 05:17:55.000000000
+0200
+++ new/kpublictransport-26.04.3/CMakeLists.txt 2026-06-29 17:37:26.000000000
+0200
@@ -6,7 +6,7 @@
# KDE Application Version, managed by release script
set (RELEASE_SERVICE_VERSION_MAJOR "26")
set (RELEASE_SERVICE_VERSION_MINOR "04")
-set (RELEASE_SERVICE_VERSION_MICRO "2")
+set (RELEASE_SERVICE_VERSION_MICRO "3")
set (RELEASE_SERVICE_VERSION
"${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(KPublicTransport VERSION ${RELEASE_SERVICE_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/po/cs/kpublictransport.po
new/kpublictransport-26.04.3/po/cs/kpublictransport.po
--- old/kpublictransport-26.04.2/po/cs/kpublictransport.po 2026-06-01
05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/po/cs/kpublictransport.po 2026-06-29
17:37:26.000000000 +0200
@@ -16,7 +16,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 26.04.1\n"
+"X-Generator: Lokalize 26.04.2\n"
#: lib/datatypes/classutil.cpp:29
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/po/it/kpublictransport.po
new/kpublictransport-26.04.3/po/it/kpublictransport.po
--- old/kpublictransport-26.04.2/po/it/kpublictransport.po 2026-06-01
05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/po/it/kpublictransport.po 2026-06-29
17:37:26.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright (C) 2024 This file is copyright:
# This file is distributed under the same license as the kpublictransport
package.
-# SPDX-FileCopyrightText: 2024, 2025, 2026 Vincenzo Reale
<[email protected]>
+# SPDX-FileCopyrightText: 2024-2026 Vincenzo Reale <[email protected]>
#
msgid ""
msgstr ""
@@ -15,7 +15,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 25.12.3\n"
+"X-Generator: Lokalize 26.04.2\n"
#: lib/datatypes/classutil.cpp:29
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/po/ko/kpublictransport.po
new/kpublictransport-26.04.3/po/ko/kpublictransport.po
--- old/kpublictransport-26.04.2/po/ko/kpublictransport.po 2026-06-01
05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/po/ko/kpublictransport.po 2026-06-29
17:37:26.000000000 +0200
@@ -15,7 +15,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 25.08.1\n"
+"X-Generator: Lokalize 25.12.3\n"
#: lib/datatypes/classutil.cpp:29
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/src/lib/gbfs/gbfsjob.cpp
new/kpublictransport-26.04.3/src/lib/gbfs/gbfsjob.cpp
--- old/kpublictransport-26.04.2/src/lib/gbfs/gbfsjob.cpp 2026-06-01
05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/src/lib/gbfs/gbfsjob.cpp 2026-06-29
17:37:26.000000000 +0200
@@ -20,6 +20,7 @@
#include <cassert>
#include <cmath>
+using namespace Qt::Literals;
using namespace KPublicTransport;
GBFSJob::GBFSJob(QNetworkAccessManager *nam, QObject *parent)
@@ -391,11 +392,10 @@
void GBFSJob::parseGeofencingZones(const QJsonDocument &doc)
{
- const auto features = GBFSReader::dataValue(doc,
QLatin1String("geofencing_zones")).toObject()
- .value(QLatin1String("features")).toArray();
+ const auto features = GBFSReader::dataValue(doc,
"geofencing_zones"_L1).toObject().value("features"_L1).toArray();
for (const auto &featureVal : features) {
- const auto geo =
featureVal.toObject().value(QLatin1String("geometry")).toObject();
- const auto rect = GeoJson::readOuterPolygon(geo).boundingRect();
+ const auto geo = featureVal.toObject().value("geometry"_L1).toObject();
+ const auto rect = GeoJson::boundingRect(geo);
if (rect.isNull() || rect.left() < -180.0 || rect.right() > 180.0 ||
rect.top() < -90.0 || rect.bottom() > 90.0) {
qDebug() << "invalid geofence box:" << rect;
continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/src/lib/geo/geojson.cpp
new/kpublictransport-26.04.3/src/lib/geo/geojson.cpp
--- old/kpublictransport-26.04.2/src/lib/geo/geojson.cpp 2026-06-01
05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/src/lib/geo/geojson.cpp 2026-06-29
17:37:26.000000000 +0200
@@ -10,7 +10,9 @@
#include <QJsonObject>
#include <QPointF>
#include <QPolygonF>
+#include <QRectF>
+using namespace Qt::Literals;
using namespace KPublicTransport;
static QPointF readPointCoordinates(const QJsonArray &coords)
@@ -99,6 +101,22 @@
return {};
}
+QRectF GeoJson::boundingRect(const QJsonObject &geometry)
+{
+ // this could be made even fast by not allocating the polygons in full,
+ // but the main point here is avoiding the expensive polygon unite
operation
+ const auto polys = GeoJson::readOuterPolygons(geometry);
+ QRectF bbox;
+ for (const auto &poly : polys) {
+ if (bbox.isNull()) {
+ bbox = poly.boundingRect();
+ } else {
+ bbox |= poly.boundingRect();
+ }
+ }
+ return bbox;
+}
+
static QJsonArray writePoint(const QPointF &p)
{
return QJsonArray({ p.x(), p.y() });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kpublictransport-26.04.2/src/lib/geo/geojson_p.h
new/kpublictransport-26.04.3/src/lib/geo/geojson_p.h
--- old/kpublictransport-26.04.2/src/lib/geo/geojson_p.h 2026-06-01
05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/src/lib/geo/geojson_p.h 2026-06-29
17:37:26.000000000 +0200
@@ -12,6 +12,7 @@
class QJsonObject;
class QPointF;
class QPolygonF;
+class QRectF;
namespace KPublicTransport {
@@ -31,6 +32,12 @@
/** Outer paths of a polygon or multi-polygon geometry object. */
std::vector<QPolygonF> readOuterPolygons(const QJsonObject &obj);
+ /** Compute bounding rect for the given geometry.
+ * This is vastly more efficient than reading the actual out geometry
+ * and determining the bounding rect from that.
+ */
+ [[nodiscard]] QRectF boundingRect(const QJsonObject &geometry);
+
/** Creates a line string object. */
QJsonObject writeLineString(const QPolygonF &lineString);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kpublictransport-26.04.2/src/onboard/data/accesspoints.json
new/kpublictransport-26.04.3/src/onboard/data/accesspoints.json
--- old/kpublictransport-26.04.2/src/onboard/data/accesspoints.json
2026-06-01 05:17:55.000000000 +0200
+++ new/kpublictransport-26.04.3/src/onboard/data/accesspoints.json
2026-06-29 17:37:26.000000000 +0200
@@ -3,6 +3,7 @@
{ "ssid": "_SNCF_WIFI_INTERCITES", "id": "sncf-ic" },
{ "ssid": "_WIFI_LYRIA", "id": "sncf-tgv" },
{ "ssid": "AegeanWiFi", "id": "aegean" },
+ { "ssid": "Amtrak_WiFi", "id": "icomera-omboard" },
{ "ssid": "Cathay Pacific", "id": "panasonic-inflight-v2" },
{ "ssid": "CDWiFi", "id": "ceskedrahy" },
{ "ssid": "EurostarTrainsWiFi", "id": "icomera-omboard" },