diff mbox series

[bug#45721] Telegram Desktop (v25)

Message ID 4d40dc9c-1e76-7831-d648-7e472252de13@raghavgururajan.name
State Accepted
Headers show
Series [bug#45721] Telegram Desktop (v25) | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Raghav Gururajan Jan. 30, 2021, 5:04 p.m. UTC

Comments

Leo Prikler Jan. 30, 2021, 6:24 p.m. UTC | #1
Am Samstag, den 30.01.2021, 12:46 -0500 schrieb Raghav Gururajan:
> Hi Leo!
> 
> > > +  (let ((commit "cbd43984ebdf783e94c8303c41385bf82aa36d5b")
> > > +        (revision "12"))
> > > +    (hidden-package
> > > +     (package
> > > +       (inherit rlottie)
> > > +       (version
> > > +        (git-version "0.2" revision commit))
> > According to Github, Telegram's rlottie is 19 commits ahead and 193
> > commits behind Samsung's rlottie, whereas Samsung has had 34
> > commits to
> > master since the release of 0.2.  In other words, this should still
> > be
> > 0.1, and I'm not too sure about revision 12.
> 
> The desktop-app/rlottie forked samsung/rlottie at a commit
> corresponding 
> to v0.2. After forking, desktop-app/rlottie made 19 commits. The
> 12th 
> commit is what the package is what this package is building from.
> Hence 
> the revision number 12.
That timeline makes little sense.  The v0.2 release was on August 19th
2020, but the two libraries diverge on August 7th -- again according to
Github.  The files also indicate 0.1.

> > > +    (name "telegram-desktop")
> > > +    (version "2.5.8")
> > Any news w.r.t. tdesktop#10182 in this build?
> 
> Nope! :-(
> 
> But build fails w.r.t updated version of tg_owt. I'll have to send
> v26.
I don't think building static libraries is very guixy.  If 2.5.8 is no
significant improvement over 2.5.1 in that regard, let's stay with the
latter while we can still build shared libraries.

Regards,
Leo
Raghav Gururajan Jan. 30, 2021, 7:30 p.m. UTC | #2
Hi Leo!

>>>> +  (let ((commit "cbd43984ebdf783e94c8303c41385bf82aa36d5b")
>>>> +        (revision "12"))
>>>> +    (hidden-package
>>>> +     (package
>>>> +       (inherit rlottie)
>>>> +       (version
>>>> +        (git-version "0.2" revision commit))
>>> According to Github, Telegram's rlottie is 19 commits ahead and 193
>>> commits behind Samsung's rlottie, whereas Samsung has had 34
>>> commits to
>>> master since the release of 0.2.  In other words, this should still
>>> be
>>> 0.1, and I'm not too sure about revision 12.
>>
>> The desktop-app/rlottie forked samsung/rlottie at a commit
>> corresponding
>> to v0.2. After forking, desktop-app/rlottie made 19 commits. The
>> 12th
>> commit is what the package is what this package is building from.
>> Hence
>> the revision number 12.
> That timeline makes little sense.  The v0.2 release was on August 19th
> 2020, but the two libraries diverge on August 7th -- again according to
> Github.  The files also indicate 0.1.
> 
>>>> +    (name "telegram-desktop")
>>>> +    (version "2.5.8")
>>> Any news w.r.t. tdesktop#10182 in this build?
>>
>> Nope! :-(
>>
>> But build fails w.r.t updated version of tg_owt. I'll have to send
>> v26.
> I don't think building static libraries is very guixy.  If 2.5.8 is no
> significant improvement over 2.5.1 in that regard, let's stay with the
> latter while we can still build shared libraries.

Agreed. I have sent v27.

Regards,
RG.
diff mbox series

Patch

From 80ef6c171be7b9d1271617d1babb49fbe1510311 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Wed, 27 Jan 2021 19:21:23 -0500
Subject: [PATCH 16/19] gnu: Add telegram-desktop.

* gnu/packages/telegram.scm (telegram-desktop): New variable.
---
 gnu/packages/telegram.scm | 332 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 331 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index a2da79a08e..4aa9fdbb6f 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -18,26 +18,47 @@ 
 
 (define-module (gnu packages telegram)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages animation)
   #:use-module (gnu packages assembly)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
+  #:use-module (gnu packages digest)
+  #:use-module (gnu packages fcitx)
+  #:use-module (gnu packages fcitx5)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages language)
+  #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lxqt)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xorg)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system meson))
+  #:use-module (guix build-system meson)
+  #:use-module (guix build-system qt))
 
 (define-public webrtc-for-telegram-desktop
   (let ((commit "be23804afce3bb2e80a1d57a7c1318c71b82b7de")
@@ -226,3 +247,312 @@  Telegram project, for its use in telegram desktop client.")
           ("automake" ,automake)
           ("libtool" ,libtool)
           ("pkg-config" ,pkg-config)))))))
+
+(define-public telegram-desktop
+  (package
+    (name "telegram-desktop")
+    (version "2.5.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/telegramdesktop/tdesktop.git")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1kdizvzvzip1x902b8hm2np55qgbdfbd7xwkapkc98h22b2v3qip"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-1)))
+       (snippet
+        `(begin
+           (let ((keep
+                  '( ;; Not available in Guix.
+                    "SPMediaKeyTap" "statusnotifieritem" "tgcalls")))
+             (with-directory-excursion "Telegram/ThirdParty"
+               (for-each delete-file-recursively
+                         (lset-difference string=?
+                                          (scandir ".")
+                                          (cons* "." ".." keep))))
+             #t)))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:imported-modules
+       (,@%qt-build-system-modules
+        (guix build glib-or-gtk-build-system))
+       #:modules
+       ((guix build qt-build-system)
+        ((guix build glib-or-gtk-build-system)
+         #:prefix glib-or-gtk:)
+        (guix build utils)
+        (ice-9 match))
+       #:configure-flags
+       (list
+        ;; Client applications must provide their own API-ID and API-HASH,
+        ;; see also <https://core.telegram.org/api/obtaining_api_id>.
+        ;; In case, that the credentials below fail to work, contact
+        ;;   Raghav Gururajan <rg@raghavgururajan.name>
+        "-DTDESKTOP_API_ID=2791056"
+        "-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2"
+        ;; Use bundled fonts as fallback.
+        "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (add-after 'make-writable 'copy-inputs
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (for-each
+              (match-lambda
+                ((dst src)
+                 (copy-recursively src dst)
+                 (for-each make-file-writable (find-files dst))))
+              `(("cmake" ,(assoc-ref inputs "cmake-helpers"))
+                ("Telegram/codegen" ,(assoc-ref inputs "codegen-source"))
+                ("Telegram/lib_base" ,(assoc-ref inputs "lib-base-source"))
+                ("Telegram/lib_crl" ,(assoc-ref inputs "lib-crl-source"))
+                ("Telegram/lib_lottie"
+                 ,(assoc-ref inputs "lib-lottie-source"))
+                ("Telegram/lib_qr" ,(assoc-ref inputs "lib-qr-source"))
+                ("Telegram/lib_rlottie"
+                 ,(assoc-ref inputs "lib-rlottie-source"))
+                ("Telegram/lib_rpl" ,(assoc-ref inputs "lib-rpl-source"))
+                ("Telegram/lib_spellcheck"
+                 ,(assoc-ref inputs "lib-spellcheck-source"))
+                ("Telegram/lib_storage"
+                 ,(assoc-ref inputs "lib-storage-source"))
+                ("Telegram/lib_tl" ,(assoc-ref inputs "lib-tl-source"))
+                ("Telegram/lib_ui" ,(assoc-ref inputs "lib-ui-source"))
+                ("Telegram/lib_webrtc" ,(assoc-ref inputs "lib-webrtc-source"))
+                ("Telegram/ThirdParty/tgcalls"
+                 ,(assoc-ref inputs "tgcalls-source"))))
+             #t))
+         (add-before 'configure 'patch-cxx-flags
+           (lambda _
+             (substitute* "cmake/options_linux.cmake"
+               (("class-memaccess") "all"))
+             #t))
+         (add-after 'install 'glib-or-gtk-compile-schemas
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+         (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+    (native-inputs
+     `(("cmake-helpers"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/cmake_helpers.git")
+             (commit "561273a2f88306072750283b28d763959cd58652")))
+           (file-name
+            (git-file-name "cmake-helpers-for-telegram-desktop" version))
+           (sha256
+            (base32 "0cvv713ajqp5b4l8pbpcd391hlkc7vkm2frnbg6qsai8wj0mdjvc"))))
+       ("cmake-shared" ,cmake-shared)
+       ("extra-cmake-modules" ,extra-cmake-modules)
+       ("gcc" ,gcc-9)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("c++-gsl" ,c++-gsl)
+       ("catch" ,catch-framework2)
+       ("codegen-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/codegen.git")
+             (commit "127968de8129e8ccfa6ac50721c70415a5a087c3")))
+           (file-name
+            (git-file-name "codegen" version))
+           (sha256
+            (base32 "036hzjrsk134ky62192nra43rsln5kh5gz20q1920s922661zky2"))))
+       ("expected" ,libexpected)
+       ("fcitx-qt5" ,fcitx-qt5)
+       ("fcitx5-qt" ,fcitx5-qt)
+       ("ffmpeg" ,ffmpeg)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("hime" ,hime)
+       ("hunspell" ,hunspell)
+       ("iconv" ,libiconv)
+       ("kwayland" ,kwayland)
+       ("lib-base-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_base.git")
+             (commit "2bf29ab1a5458003c8ed250886e08c61cce5ff72")))
+           (file-name
+            (git-file-name "lib-base-for-telegram-desktop" version))
+           (sha256
+            (base32 "1i92pj6wjgl78sv7l9f6xas0ar7313a4wx95p49hshpf5bc820ca"))))
+       ("lib-crl-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_crl.git")
+             (commit "16150bf71d79382738114b913f137ec1a1a7630c")))
+           (file-name
+            (git-file-name "lib-crl-for-telegram-desktop" version))
+           (sha256
+            (base32 "0qhagdr26aqb9w7wnchcmk1j7ln28x3wbkkkm06b8h0mybksbj7q"))))
+       ("lib-lottie-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_lottie.git")
+             (commit "fb40f379d82ffa1fc7506e9a8dddcf48847715ae")))
+           (file-name
+            (git-file-name "lib-lottie-for-telegram-desktop" version))
+           (sha256
+            (base32 "1vq0mqxcrrv7akcqk9cl4mm61zw6dcfmy8adl0pcp49kynm64saw"))))
+       ("lib-qr-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_qr.git")
+             (commit "92ce41a690a463eb462089a4eb1e51e019308018")))
+           (file-name
+            (git-file-name "lib-qr-for-telegram-desktop" version))
+           (sha256
+            (base32 "182939nv7xs9b3bgah3gl5y9hx5r59mabd2jw3z6717vc96qi2pj"))))
+       ("lib-rlottie-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_rlottie.git")
+             (commit "0671bf70547381effcf442ec9618e04502a8adbc")))
+           (file-name
+            (git-file-name "lib-rlottie-for-telegram-desktop" version))
+           (sha256
+            (base32 "05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv"))))
+       ("lib-rpl-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_rpl.git")
+             (commit "e1b96399d9031c4ef0354631e6bb375029d29d9f")))
+           (file-name
+            (git-file-name "lib-rpl-for-telegram-desktop" version))
+           (sha256
+            (base32 "1wvqazljd2kq1fxlj250jhjrig529499bym9p81dx33kh1l9dgss"))))
+       ("lib-spellcheck-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_spellcheck.git")
+             (commit "1b540b38ed78e9a3cba93e9ba4ce4525ab692277")))
+           (file-name
+            (git-file-name "lib-spellcheck-for-telegram-desktop" version))
+           (sha256
+            (base32 "0a7042h5zrdvgs7v153ral2dh1zj84di5yjcmgcry5k4s1im9di7"))))
+       ("lib-storage-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_storage.git")
+             (commit "cbe51722b73cfa9ff27bd59294b08aa5ee33c936")))
+           (file-name
+            (git-file-name "lib-storage-for-telegram-desktop" version))
+           (sha256
+            (base32 "045l5xsyagyz17gbhmmvl2miss4nb92p0dmza7yfs9pkg9gs0f87"))))
+       ("lib-tl-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_tl.git")
+             (commit "404c83d77e5edb8a39f8e9f56a6340960fe5070e")))
+           (file-name
+            (git-file-name "lib-tl-for-telegram-desktop" version))
+           (sha256
+            (base32 "1k34nkvvcjqw5q81n1qmklid60cvzjk4lmn9qjimk437m6wbii7f"))))
+       ("lib-ui-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_ui.git")
+             (commit "d94cb34219e5795efc0efe24d980c54e40eb42e3")))
+           (file-name
+            (git-file-name "lib-ui-for-telegram-desktop" version))
+           (sha256
+            (base32 "1l3h4hxpmvx7m5x354h4mxz2nfk1hc95i86rnyj2r3lzwq2dqdpy"))))
+       ("lib-webrtc-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_webrtc.git")
+             (commit "af7269454c371b7e1045429d60cd728f7580ee4a")))
+           (file-name
+            (git-file-name "lib-webrtc-for-telegram-desktop" version))
+           (sha256
+            (base32 "087005hjw5rw5s8q54x991xkbc1g4q5dgy6gxhhlfr47x4n8k1xx"))))
+       ("libdbusmenu-qt" ,libdbusmenu-qt)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libtgvoip" ,libtgvoip-for-telegram-desktop)
+       ("lz4" ,lz4)
+       ("materialdecoration" ,materialdecoration)
+       ("minizip" ,minizip)
+       ("nimf" ,nimf)
+       ("openal" ,openal)
+       ("openssl" ,openssl)
+       ("opus" ,opus)
+       ("pulseaudio" ,pulseaudio)
+       ("qrcodegen" ,qrcodegen-cpp)
+       ("qt" ,qtbase)
+       ("qt5ct" ,qt5ct)
+       ("qtimageformats" ,qtimageformats)
+       ("qtwayland" ,qtwayland)
+       ("range-v3" ,range-v3)
+       ("rlottie" ,rlottie-for-telegram-desktop)
+       ("tgcalls-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/TelegramMessenger/tgcalls.git")
+             (commit "bea2e218959244590fa57b62803bf2a7a5e15bc7")))
+           (file-name
+            (git-file-name "tgcalls-for-telegram-desktop" version))
+           (sha256
+            (base32 "0y1k7i0vpzmv3sf32a8gk67ljjy7g6qb1p0lx1z1a9ig3gpv824i"))))
+       ("webrtc" ,webrtc-for-telegram-desktop)
+       ("x11" ,libx11)
+       ("xcb" ,libxcb)
+       ("xcb-keysyms" ,xcb-util-keysyms)
+       ("xxhash" ,xxhash)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (synopsis "Telegram Desktop")
+    (description "Telegram desktop is the official desktop version of the
+Telegram instant messager.")
+    (home-page "https://desktop.telegram.org/")
+    (license
+     (list
+      ;; ThirdParty
+      license:lgpl2.1+
+      ;; Others
+      license:gpl3+))))
-- 
2.30.0