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" },

Reply via email to