From c86d6c1986f5f2f8b03e30d9600d0bcece8e985e Mon Sep 17 00:00:00 2001 From: 0FL01 Date: Mon, 14 Jul 2025 09:51:35 +0300 Subject: [PATCH] add guide how build flatpak package --- .../flatpak-files/com.ayugram.desktop.yml | 39 ++++ .../applications/com.ayugram.desktop.desktop | 22 +++ .../services/com.ayugram.desktop.service | 3 + .../128x128/apps/com.ayugram.desktop.png | Bin 0 -> 5199 bytes .../16x16/apps/com.ayugram.desktop.png | Bin 0 -> 738 bytes .../256x256/apps/com.ayugram.desktop.png | Bin 0 -> 9976 bytes .../32x32/apps/com.ayugram.desktop.png | Bin 0 -> 1454 bytes .../48x48/apps/com.ayugram.desktop.png | Bin 0 -> 2127 bytes .../512x512/apps/com.ayugram.desktop.png | Bin 0 -> 19941 bytes .../64x64/apps/com.ayugram.desktop.png | Bin 0 -> 2846 bytes ...com.ayugram.desktop-attention-symbolic.svg | 7 + .../com.ayugram.desktop-mute-symbolic.svg | 7 + .../apps/com.ayugram.desktop-symbolic.svg | 10 + .../metainfo/com.ayugram.desktop.metainfo.xml | 80 ++++++++ docs/building-flatpak.md | 177 ++++++++++++++++++ 15 files changed, 345 insertions(+) create mode 100644 docs/assets/flatpak-files/com.ayugram.desktop.yml create mode 100644 docs/assets/flatpak-files/usr/share/applications/com.ayugram.desktop.desktop create mode 100644 docs/assets/flatpak-files/usr/share/dbus-1/services/com.ayugram.desktop.service create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/128x128/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/16x16/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/256x256/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/32x32/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/48x48/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/512x512/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/64x64/apps/com.ayugram.desktop.png create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-attention-symbolic.svg create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-mute-symbolic.svg create mode 100644 docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-symbolic.svg create mode 100644 docs/assets/flatpak-files/usr/share/metainfo/com.ayugram.desktop.metainfo.xml create mode 100644 docs/building-flatpak.md diff --git a/docs/assets/flatpak-files/com.ayugram.desktop.yml b/docs/assets/flatpak-files/com.ayugram.desktop.yml new file mode 100644 index 0000000000..d122a54681 --- /dev/null +++ b/docs/assets/flatpak-files/com.ayugram.desktop.yml @@ -0,0 +1,39 @@ +app-id: com.ayugram.desktop + +runtime: org.gnome.Platform +runtime-version: '48' +sdk: org.gnome.Sdk + +command: ayugram-desktop + +finish-args: + - --share=ipc + - --socket=fallback-x11 + - --socket=wayland + - --socket=pulseaudio + - --device=dri + - --share=network + - --filesystem=xdg-download + - --talk-name=org.kde.StatusNotifierWatcher + - --talk-name=org.gnome.Mutter.IdleMonitor + - --talk-name=com.canonical.AppMenu.Registrar + - --talk-name=com.canonical.indicator.application + - --talk-name=org.freedesktop.Notifications + - --talk-name=org.freedesktop.portal.Desktop + - --talk-name=org.freedesktop.portal.OpenURI + - --talk-name=org.freedesktop.portal.FileChooser + - --talk-name=org.sigxcpu.Feedback + +modules: + - name: ayugram-repack + buildsystem: simple + build-commands: + - sed -i 's|^Exec=.*|Exec=ayugram-desktop -- %%u|' usr/share/applications/com.ayugram.desktop.desktop + - sed -i 's|^Exec=.*|Exec=/app/bin/ayugram-desktop|' usr/share/dbus-1/services/com.ayugram.desktop.service + - install -d /app/share/ + - install -Dm755 AyuGram /app/bin/ayugram-desktop + - cp -a usr/share/* /app/share/ + + sources: + - type: dir + path: . \ No newline at end of file diff --git a/docs/assets/flatpak-files/usr/share/applications/com.ayugram.desktop.desktop b/docs/assets/flatpak-files/usr/share/applications/com.ayugram.desktop.desktop new file mode 100644 index 0000000000..d9a12b7532 --- /dev/null +++ b/docs/assets/flatpak-files/usr/share/applications/com.ayugram.desktop.desktop @@ -0,0 +1,22 @@ +[Desktop Entry] +Name=AyuGram Desktop +Comment=Desktop version of AyuGram - ToS breaking Telegram client +TryExec=ayugram-desktop +Exec=env DESKTOPINTEGRATION=1 ayugram-desktop -- %u +Icon=com.ayugram.desktop +Terminal=false +StartupWMClass=AyuGram +Type=Application +Categories=Chat;Network;InstantMessaging;Qt; +MimeType=x-scheme-handler/tg;x-scheme-handler/tonsite; +Keywords=tg;chat;im;messaging;messenger;sms;telegram;tdesktop; +Actions=quit; +DBusActivatable=true +SingleMainWindow=true +X-GNOME-UsesNotifications=true +X-GNOME-SingleWindow=true + +[Desktop Action quit] +Exec=ayugram-desktop -quit +Name=Quit AyuGram +Icon=application-exit diff --git a/docs/assets/flatpak-files/usr/share/dbus-1/services/com.ayugram.desktop.service b/docs/assets/flatpak-files/usr/share/dbus-1/services/com.ayugram.desktop.service new file mode 100644 index 0000000000..9f08a471f6 --- /dev/null +++ b/docs/assets/flatpak-files/usr/share/dbus-1/services/com.ayugram.desktop.service @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=com.ayugram.desktop +Exec=/usr/bin/ayugram-desktop diff --git a/docs/assets/flatpak-files/usr/share/icons/hicolor/128x128/apps/com.ayugram.desktop.png b/docs/assets/flatpak-files/usr/share/icons/hicolor/128x128/apps/com.ayugram.desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..2da9ed972a7373152fa76859ac6c690c5eaabb3f GIT binary patch literal 5199 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 aACO?P7A`y{Z%dU1@Y&_;wxe=8E$Lsk*I1wc literal 0 HcmV?d00001 diff --git a/docs/assets/flatpak-files/usr/share/icons/hicolor/64x64/apps/com.ayugram.desktop.png b/docs/assets/flatpak-files/usr/share/icons/hicolor/64x64/apps/com.ayugram.desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..b57b6e3bb44bcf616863c5db2fd3d76beee9a66c GIT binary patch literal 2846 zcmV+(3*q#MP)K~#7Fy_Wl~H3*`{q0sZ_1| zYa)MC+NQM)-Lz?4OGD^JH)*T0N(BL1j0gn=fj4QSAz>r5iJipuySwMb&$+hWz37-!*{>)1t;yMNwh|pq&z;5~`~Jq?TP$i$pa5Izfq|0i_8_^b4UZ zBobO&g9<{R0&IwM#gbFW&TKZ*1*IKz2L(+bBp#}%K6ZZS-8ht)vMC@I>8hPo;4r21 zdG>GZC-**ua#B;h2#7*7Af#JSVBk!mPlGbxTLHx#$M>??EKE%%p`3(5)esB>jdMz1 zg8l6c1e6}XiU@!YHa^mII1BV0cDjwd!sh##bOth+ER+*MNL~SK)WQVF21=o8Swri@ zt=m^FfJZ!80P}H`5c)bhjagk!PNkRvGEhzeN&v#)8taRM#fbpf;>8*ia0!k&>--=H zI*;g7hjJrrlY*Mf(82X?TPDJg5Y-0e9ywlDj<&OS5y6&p&$miB} zzHTQZwI}BD-R$r@xS&%0k6?U}#erg&Sfr_bbuEhte-gh^@N+{EGF-+11LiQbtWL0u z2PFz%nmPa;XK>l9yZ}0Q=6^%I4m;o2R0n@QchT}XDgcSJeF0XjXcxAFfe>F_z`jM;zc5Qk=upW zp6dLLrJUc{CR%}cZYTiP@W98~oz6ytTGRmO_x$J&U;CG|osrR-keZ&#|Bu0NE3<@R zFbMil0$RcPwjD7%Hx!^K-hCgjN`Gkj_~N-Rcp2#XyW4pxe-6o3@h29(7BuLY4w zM#;n!7Eap12RIV^jqo|2=l1A${(Sc{o$R$U|Now+_rumLj~V9}1n*9am3-c+Ht_2P zRDlS4=t6v10B`=-F)PzYc>h0mXb-I7CPZ6f9niLRejG$rfVBbd3SMT0JcJSzT|fmN zm;n$?f6v~XLOIj_o0c^gL9&>2oC0o*-W0a8qhmf{>AF7!FvC@u3wW>okZjHji*tT4 zW(pLo2h`Oyz`~k2A0Lq@fUgbw212X{Fb%5U5u+esE?|}Od3f`WL|cV&Yjaj0QvhPt z27YFS1}qb}elWs=BOuE8Jbe0Fu~HSvt!Z6n95E2elz`b_e{S8tZ$acs0XX{RJYPnF zs{q?27NCB1J}`;`p$WPIzOp{!fG-8q)h{VXXCj8LX~wZVx<)G3+&r%UJ2ybEHV9W$ zgC9@<8hGTDU%q53Gy3s3s{!s9=POn=OJ!?n7QzD$%vqD21t3@(Z2$5z-s6C=`2z4+ zyL)y$wH@jkmfFe2BF?u6XP#o1tU-X2%a}{ zK~91N!9d*U2hjBQIW&EQp8>Wz@PCu$Tsm}W0Z4UtA?$wqIdDTp4_r`k+e$PiAK3Ne zHb;JJVx~XDE(P+K3J}citEbA$NCXeZVK!kOVKJ#WC#p9D3Jvq7!Tff?JbazOisZ| zFaO9miU>%)!*+>``F=XB^zd&LC;+X1J>z;&)`n;$7JUz6fQ;jBzQx?MSC*VP+28%%|wI8dCXSybpgH`L!FYzriuPV~RPw0BI@ zIDbQmQjwn@St1LB{8Bk3(0hKUUmDbHBiHG{{sZi*60%KDio*a{PGo`5D2ON|&Rsn5 z4Y0w{oqsrZBAQ8OkBP1a|BvQxBCiP3y=O1k?-WNI-}&gB>wWc~S&n%lR(vfK3OU}t zi*6(;rZAA&{T{#sT_Byd*q5xs(Tg|!@+>&S)zFPi+#IM|+j z<6k0FKS1X)hRR>_paA?ec^|9j`p#WE>1(vDsCe{3%TOTOt^f-Z~%r5B`CMpcYPTzW@LL07*qoM6N<$g7|SxE&u=k literal 0 HcmV?d00001 diff --git a/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-attention-symbolic.svg b/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-attention-symbolic.svg new file mode 100644 index 0000000000..95b8c2cfaf --- /dev/null +++ b/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-attention-symbolic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-mute-symbolic.svg b/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-mute-symbolic.svg new file mode 100644 index 0000000000..448f6990b2 --- /dev/null +++ b/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-mute-symbolic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-symbolic.svg b/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-symbolic.svg new file mode 100644 index 0000000000..f2b95fc226 --- /dev/null +++ b/docs/assets/flatpak-files/usr/share/icons/hicolor/symbolic/apps/com.ayugram.desktop-symbolic.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/assets/flatpak-files/usr/share/metainfo/com.ayugram.desktop.metainfo.xml b/docs/assets/flatpak-files/usr/share/metainfo/com.ayugram.desktop.metainfo.xml new file mode 100644 index 0000000000..f52f7b9691 --- /dev/null +++ b/docs/assets/flatpak-files/usr/share/metainfo/com.ayugram.desktop.metainfo.xml @@ -0,0 +1,80 @@ + + + com.ayugram.desktop + CC0-1.0 + GPL-3.0 + AyuGram Desktop + Desktop version of AyuGram - ToS breaking Telegram client + +

Telegram Desktop with Ghost Mode, Anti-Recall and cool design.

+
+ + Network + InstantMessaging + + helpdesk_at_radolyn.com + Radolyn Labs + https://ayugram.one/ + https://t.me/ayugramchat/1262 + https://crowdin.com/project/ayugram + https://github.com/AyuGram/AyuGramDesktop/blob/dev/.github/CONTRIBUTING.md + + + https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/docs/assets/preview.png + + + + tg + telegram + tdesktop + messaging + messenger + chat + sms + im + ayugram + + + medium + always + + + pointing + keyboard + touch + + + none + none + none + none + none + none + none + none + none + none + none + none + none + none + none + none + none + none + none + none + intense + none + intense + none + intense + intense + none + moderate + + com.ayugram.desktop.desktop + + ayugram-desktop + +
  • Fix stale birthday suggestions removing.
  • Fix notification click opening a new window.
  • Buy Rare Gifts in the Marketplace.
  • Sell Your Gifts for Stars.
  • Set Your Channel to Auto-Translate.
  • Fix launching on Windows 7.
  • Secure Group Calls Made Easy.
  • Automated Business Accounts.
  • New Gifts Settings.
  • Fix crash in group/channel stories.
  • Allow transferring my unique gifts from Send Gift section.
  • Edit type of gifts you accept in Settings > Privacy and Security.
  • Swipe navigation using swipe gesture on touchpads / touchscreens.
  • Choose chat list quick action for swipe or middle click.
  • Allow customizing chats list swipe left action.
  • Fix custom emoji in poll results view.
  • Fix crash in main menu swipe closing.
  • Support swipe navigation on touchscreens.
  • Close main menu by swipe navigation.
  • Touchpad swipe back to go back in navigation history.
  • Touchpad swipe between folders if they're horizontal.
  • Out-of-the-box monochrome tray icon on Linux.
  • Icons telegram{,{,-attention,-mute}-panel} are renamed
  • Snap package got icon theming support,
  • Fix a couple more crashes.
  • Fix gift disappearing on unpin.
  • Fix country emoji for Fragment numbers.
\ No newline at end of file diff --git a/docs/building-flatpak.md b/docs/building-flatpak.md new file mode 100644 index 0000000000..f40a248067 --- /dev/null +++ b/docs/building-flatpak.md @@ -0,0 +1,177 @@ +# Building the AyuGram Flatpak + +This guide describes the complete process for creating a Flatpak package for AyuGram. The process consists of two main stages: + +1. **Building the AyuGram binary** using the official Docker environment. +2. **Packaging the built binary** and necessary resources into a Flatpak package. + +## Prerequisites + +This guide was tested on **Fedora 42** (inside a Toolbx container) but should work on most modern Linux distributions. + +Before you begin, ensure that the following components are installed on your system: + +* `git` +* `docker` +* `flatpak` +* `flatpak-builder` + +Also, make sure your user is added to the `docker` group to run commands without `sudo`. + +```bash +# Example for Fedora/Ubuntu +sudo usermod -aG docker $USER +# You will need to log out and log back in for this change to take effect +``` + +## Step 1: Build the AyuGram Binary + +First, you need to build the application itself by following the official instructions. + +1. **Clone the AyuGram repository:** + Choose a directory for the build and run the command. Note that this will create a directory named `tdesktop`. + + ```bash + git clone --recursive https://github.com/AyuGram/AyuGramDesktop.git tdesktop + cd tdesktop + ``` + +2. **Prepare the libraries:** + Run the preparation script. You might need `poetry` for this. + + ```bash + # If poetry is not installed: pip install poetry + ./Telegram/build/prepare/linux.sh + ``` + +3. **Build the project using Docker:** + This command will run the build in an isolated CentOS environment. + + ```bash + docker run --rm -it \ + -u $(id -u) \ + -v "$PWD:/usr/src/tdesktop" \ + ghcr.io/telegramdesktop/tdesktop/centos_env:latest \ + /usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \ + -D TDESKTOP_API_ID=2040 \ + -D TDESKTOP_API_HASH=b18441a1ff607e10a989891a5462e627 + ``` + + After the build completes successfully, the resulting binary will be located at: + `tdesktop/out/Release/AyuGram`. + +## Step 2: Prepare for the Flatpak Build + +Now that we have the binary, we will prepare a dedicated directory for the Flatpak build. + +1. **Create a working directory:** + Return to your parent directory and create a folder for the Flatpak build. + + ```bash + # If you are inside the tdesktop directory, navigate out of it + cd .. + mkdir ayugram-flatpak-build + cd ayugram-flatpak-build + ``` + +2. **Copy the necessary files:** + We need to copy three items from the `tdesktop` repository into this new directory: + * The built `AyuGram` binary. + * The `com.ayugram.desktop.yml` manifest and its resources (icons, .desktop file, metadata), which are located in the same folder. + + Execute the following commands from the `ayugram-flatpak-build` directory: + + ```bash + # Copy the binary from the correct path + cp ../tdesktop/out/Release/AyuGram . + + # Copy the manifest and all resources from the flatpak-files directory + cp -r ../tdesktop/docs/assets/flatpak-files/* . + ``` + + After this, your `ayugram-flatpak-build` directory should have the following structure: + ``` + . + ├── AyuGram + ├── com.ayugram.desktop.yml + └── usr/ + └── share/ + ├── applications/ + ├── dbus-1/ + ├── icons/ + └── metainfo/ + ``` + +## Step 3: Build the Flatpak Package + +Everything is now ready for the final step. + +1. **Install the GNOME SDK:** + Our Flatpak uses the GNOME runtime. Ensure you have the corresponding SDK (Software Development Kit) installed. + + ```bash + flatpak install --user org.gnome.Sdk//48 + ``` + *Note: The manifest uses runtime version `48`. If `flatpak` cannot find this version, make sure you have the Flathub repository enabled.* + +You now have two build options. + +### Option A: Build and Install into the System (for testing) + +This method is ideal for quickly testing the application. + +1. **Run the build and installation:** + + ```bash + flatpak-builder --user --install --force-clean build-dir com.ayugram.desktop.yml + ``` + * `--user`: Install for the current user. + * `--install`: Automatically install after building. + * `--force-clean`: Start with a clean build. + * `build-dir`: A temporary directory for the build. + + *Problem and Solution:* If you see a `Permission denied` or `Failure spawning rofiles-fuse` error, add the `--disable-rofiles-fuse` flag: + ```bash + flatpak-builder --disable-rofiles-fuse --user --install --force-clean build-dir com.ayugram.desktop.yml + ``` + +2. **Run the installed application:** + + ```bash + flatpak run com.ayugram.desktop + ``` + +### Option B: Build a Portable `.flatpak` File (for distribution) + +This method creates a single file that can be distributed to other users for installation. + +1. **Clean up old artifacts (important!):** + If you have previously attempted to build a bundle, delete the old repository directory to avoid errors. + + ```bash + rm -rf repo + ``` + +2. **Build the application into a local repository:** + + ```bash + flatpak-builder --repo=repo --force-clean build-dir com.ayugram.desktop.yml + ``` + * `--repo=repo`: Tells `flatpak-builder` to export the result into a directory named `repo`, creating a repository there. + + *Problem and Solution:* As with Option A, add the `--disable-rofiles-fuse` flag if you encounter a `rofiles-fuse` error. + +3. **Create the `.flatpak` bundle:** + Now, let's package the contents of the `repo` repository into a single file. + + ```bash + flatpak build-bundle repo ayugram-desktop-5.16.3.flatpak com.ayugram.desktop + ``` + * `repo`: The source (our local repository). + * `ayugram-desktop-5.16.3.flatpak`: The name of the final file (remember to update the version if necessary). + * `com.ayugram.desktop`: The ID of the application to be packaged. + +As a result, the `ayugram-desktop-5.16.3.flatpak` file will appear in the current directory, ready for installation. It can be installed with the command: +```bash +flatpak install --user ayugram-desktop-5.16.3.flatpak +``` \ No newline at end of file