Package: telegram-desktop
Version: 4.6.5+ds-2+b1
Severity: wishlist
Tags: patch
X-Debbugs-Cc: [email protected]


Telegram allows sharing links with location. Telegram-desktop currently
invokes Google Maps on those coordinates when clicked.

To better protect user privacy, it is better to use OpenStreetMap (like e.g.
Telegram-FOSS mobile app already does)

The attached patch changes telegram-desktop so. Tested on Debian Stable
(Bookworm) telegram-desktop 4.6.5+ds-2+b1, but applies to Sid version
telegram-desktop_4.14.9+ds-1.1 too.

-- Package-specific info:

-- System Information:
Debian Release: 12.11
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-37-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_USER
Locale: LANG=hr_HR.UTF-8, LC_CTYPE=hr_HR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Versions of packages telegram-desktop depends on:
ii  libabsl20220623                   20220623.1-1+deb12u2
ii  libavcodec59                      7:5.1.6-0+deb12u1
ii  libavformat59                     7:5.1.6-0+deb12u1
ii  libavutil57                       7:5.1.6-0+deb12u1
ii  libc6                             2.36-9+deb12u10
ii  libgcc-s1                         12.2.0-14+deb12u1
ii  libglib2.0-0                      2.74.6-2+deb12u6
ii  libglibmm-2.68-1                  2.74.0-2
ii  libhunspell-1.7-0                 1.7.1-1
ii  libjpeg62-turbo                   1:2.1.5-2
ii  libkf5coreaddons5                 5.103.0-1
ii  liblz4-1                          1.9.4-1
ii  libminizip1                       1.1-8+deb12u1
ii  libopenal1                        1:1.19.1-2
ii  libopus0                          1.3.1-3
ii  libqrcodegencpp1                  1.8.0-1.1
ii  libqt5core5a [qtbase-abi-5-15-8]  5.15.8+dfsg-11+deb12u3
ii  libqt5gui5                        5.15.8+dfsg-11+deb12u3
ii  libqt5network5                    5.15.8+dfsg-11+deb12u3
ii  libqt5qml5                        5.15.8+dfsg-3
ii  libqt5quickwidgets5               5.15.8+dfsg-3
ii  libqt5svg5                        5.15.8-3
ii  libqt5waylandcompositor5          5.15.8-2
ii  libqt5widgets5                    5.15.8+dfsg-11+deb12u3
ii  librlottie0-1                     0.1+dfsg-4
ii  libsigc++-3.0-0                   3.4.0-1
ii  libsrtp2-1                        2.5.0-3
ii  libssl3                           3.0.17-1~deb12u1
ii  libstdc++6                        12.2.0-14+deb12u1
ii  libswresample4                    7:5.1.6-0+deb12u1
ii  libswscale6                       7:5.1.6-0+deb12u1
ii  libvpx7                           1.12.0-1+deb12u4
ii  libwayland-client0                1.21.0-1
ii  libx11-6                          2:1.8.4-2+deb12u2
ii  libxcb-keysyms1                   0.4.0-1+b2
ii  libxcb-record0                    1.15-1
ii  libxcb-screensaver0               1.15-1
ii  libxcb1                           1.15-1
ii  libxcomposite1                    1:0.4.5-1
ii  libxdamage1                       1:1.1.6-1
ii  libxext6                          2:1.3.4-1+b1
ii  libxfixes3                        1:6.0.0-2
ii  libxrandr2                        2:1.5.2-2+b1
ii  libxtst6                          2:1.2.3-1.1
ii  libxxhash0                        0.8.1-1
ii  qt5-image-formats-plugins         5.15.8-2
ii  zlib1g                            1:1.2.13.dfsg-1

Versions of packages telegram-desktop recommends:
ii  fonts-open-sans       1.11-2
ii  libwebkit2gtk-4.0-37  2.48.3-1~deb12u1
ii  libwebkit2gtk-4.1-0   2.48.3-1~deb12u1

telegram-desktop suggests no packages.

Versions of packages telegram-desktop is related to:
pn  xdg-desktop-portal          <none>
pn  xdg-desktop-portal-backend  <none>

-- no debconf information
[2025.08.05 21:39:38] Launched version: 4006005, install beta: [FALSE], alpha: 
0, debug mode: [FALSE]
[2025.08.05 21:39:38] Executable dir: /usr/bin/, name: telegram-desktop
[2025.08.05 21:39:38] Initial working dir: /home/mnalis/
[2025.08.05 21:39:38] Working dir: /home/mnalis/.local/share/TelegramDesktop/
[2025.08.05 21:39:38] Command line: telegram-desktop
[2025.08.05 21:39:38] Executable path before check: /usr/bin/telegram-desktop
[2025.08.05 21:39:38] Logs started
[2025.08.05 21:39:38] Launcher filename: org.telegram.desktop.desktop
[2025.08.05 21:39:38] We use allocator from /lib/x86_64-linux-gnu/libc.so.6
[2025.08.05 21:39:38] Connecting local socket to 
/tmp/3fa1c7460146110cf75b1878c93448c7-{87A94AB0-E370-4cde-98D3-ACC110C5967D}...
[2025.08.05 21:39:38] This is the only instance of Telegram, starting server 
and app...
[2025.08.05 21:39:38] Moved logging from 
'/home/mnalis/.local/share/TelegramDesktop/log_start0.txt' to 
'/home/mnalis/.local/share/TelegramDesktop/log.txt'!
[2025.08.05 21:39:38] Global devicePixelRatio: 2
[2025.08.05 21:39:38] QT_DPI_ADJUSTMENT_POLICY: AdjustDpi
[2025.08.05 21:39:38] Primary screen DPI: 90.3111, Base: 96.
[2025.08.05 21:39:38] Computed screen scale: 95
[2025.08.05 21:39:38] DevicePixelRatio: 2
[2025.08.05 21:39:38] ScreenScale: 95
[2025.08.05 21:39:38] System tray available: [TRUE]
[2025.08.05 21:39:38] Icon theme: hicolor
[2025.08.05 21:39:38] Fallback icon theme: hicolor
[2025.08.05 21:39:38] App Info: reading settings...
[2025.08.05 21:39:38] App Info: reading encrypted settings...
[2025.08.05 21:39:38] Lang Info: Loaded cached, keys: 9073
[2025.08.05 21:39:38] OpenAL Logging Level: (not set)
[2025.08.05 21:39:38] Audio Playback Devices: ALSA Default;HDA Intel PCH, 
ALC3204 Analog (CARD=PCH,DEV=0);HDA Intel PCH, HDMI 0 (CARD=PCH,DEV=3);HDA 
Intel PCH, HDMI 1 (CARD=PCH,DEV=7);HDA Intel PCH, HDMI 2 (CARD=PCH,DEV=8);HDA 
Intel PCH, HDMI 3 (CARD=PCH,DEV=9)
[2025.08.05 21:39:38] Audio Playback Default Device: ALSA Default
[2025.08.05 21:39:38] Audio Capture Devices: ALSA Default;HDA Intel PCH, 
ALC3204 Analog (CARD=PCH,DEV=0)
[2025.08.05 21:39:38] Audio Capture Default Device: ALSA Default
[2025.08.05 21:39:38] App Info: reading accounts info...
[2025.08.05 21:39:38] App Info: reading encrypted info...
[2025.08.05 21:39:38] App Info: reading map...
[2025.08.05 21:39:38] App Info: reading encrypted map...
[2025.08.05 21:39:38] App Info: reading encrypted user settings...
[2025.08.05 21:39:38] App Info: encrypted user settings read.
[2025.08.05 21:39:38] App Info: reading encrypted mtp data...
[2025.08.05 21:39:38] MTP Info: read keys, current: 5, to destroy: 0
[2025.08.05 21:39:38] Map read time: 2
[2025.08.05 21:39:38] App Info: reading encrypted mtp config...
[2025.08.05 21:39:38] Export Info: Destroy top bar by controller removal.
[2025.08.05 21:39:38] OpenGL: Force-disabled.
[2025.08.05 21:39:38] OpenGL: [FALSE] (Window)
commit 1c3474f2dad92a2b8ee1a388a46363d6d210ea1b
Author: Matija Nalis <[email protected]>
Date:   Wed Jul 9 03:04:50 2025 +0200

    convert GoogleMaps links to OpenStreetMap links

diff --git a/Telegram/SourceFiles/export/output/export_output_html.cpp 
b/Telegram/SourceFiles/export/output/export_output_html.cpp
index 23ec0ae..25245a5 100644
--- a/Telegram/SourceFiles/export/output/export_output_html.cpp
+++ b/Telegram/SourceFiles/export/output/export_output_html.cpp
@@ -1805,13 +1805,10 @@ MediaData HtmlWriter::Wrap::prepareMediaData(
                if (data.valid) {
                        const auto latitude = NumberToString(data.latitude);
                        const auto longitude = NumberToString(data.longitude);
-                       const auto coords = latitude + ',' + longitude;
+                       const auto coords = latitude + '/' + longitude;
                        result.status = latitude + ", " + longitude;
-                       result.link = "https://maps.google.com/maps?q=";
-                               + coords
-                               + "&ll="
-                               + coords
-                               + "&z=16";
+                       result.link = "https://www.openstreetmap.org/#map=16/";
+                               + coords;
                }
        }, [&](const Venue &data) {
                result.classes = "media_venue";
@@ -1821,11 +1818,8 @@ MediaData HtmlWriter::Wrap::prepareMediaData(
                        const auto latitude = 
NumberToString(data.point.latitude);
                        const auto longitude = 
NumberToString(data.point.longitude);
                        const auto coords = latitude + ',' + longitude;
-                       result.link = "https://maps.google.com/maps?q=";
-                               + coords
-                               + "&ll="
-                               + coords
-                               + "&z=16";
+                       result.link = "https://www.openstreetmap.org/#map=16/";
+                               + coords;
                }
        }, [&](const Game &data) {
                result.classes = "media_game";
diff --git a/Telegram/SourceFiles/history/history_location_manager.cpp 
b/Telegram/SourceFiles/history/history_location_manager.cpp
index 7810460..54eb1a3 100644
--- a/Telegram/SourceFiles/history/history_location_manager.cpp
+++ b/Telegram/SourceFiles/history/history_location_manager.cpp
@@ -33,10 +33,7 @@ void LocationClickHandler::setup() {
 }
 
 QString LocationClickHandler::Url(const Data::LocationPoint &point) {
-       const auto latlon = point.latAsString() + ',' + point.lonAsString();
-       return u"https://maps.google.com/maps?q="_q
-               + latlon
-               + u"&ll="_q
-               + latlon
-               + u"&z=16"_q;
+       const auto latlon = point.latAsString() + '/' + point.lonAsString();
+       return u"https://www.openstreetmap.org/#map=16/"_q
+               + latlon;
 }

Reply via email to