Subject: [PATCH WIP 3/3] gnu: telegram-desktop: Update to 3.2.5.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 4 Dec 2021 18:05:36 +0100

* gnu/packages/telegram.scm (telegram-desktop): Update to 3.2.5.
[#:configure-flags]: Add "-DDESKTOP_APP_QT6=OFF".
[#:phases]: Copy lib_waylandshells and lib_webview.  Add a phase to fix
the compilation of functions coming from fenv.h.
[native-inputs]: Bump cmake_helpers to a bespoke commit.
Bump GCC to version 10.
[inputs]: Add glibc, glibmm, jemalloc, qtsvg, rnnoise.
Add sources for lib_waylandshells and lib_webview.
Bump lib_base, lib_crl, lib_lottie, lib_qr, lib_rpl, lib_spellcheck,
lib_storage, lib_tl and lib_webrtc to bespoke commits, that would otherwise
be used by recursive checkout.
---
 gnu/packages/telegram.scm | 106 +++++++++++++++++++++++++++-----------
 1 file changed, 76 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 86ee5efb74..0292ca1814 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -37,6 +37,7 @@ (define-module (gnu packages telegram)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libevent)
@@ -274,7 +275,7 @@ (define-public libtgvoip-for-telegram-desktop
 (define-public telegram-desktop
   (package
     (name "telegram-desktop")
-    (version "2.5.9")
+    (version "3.2.5")
     (source
      (origin
        (method git-fetch)
@@ -286,7 +287,7 @@ (define-public telegram-desktop
        (file-name
         (git-file-name name version))
        (sha256
-        (base32 "1lqs06scqvzg37a2py8jk7nnlvk42jjifcpnhdd5rgd5biw70nyx"))
+        (base32 "0ll40plc3c26iqr13lhz6x0y2k7dppwzlixvcriw6blyv38pgydc"))
        (modules '((guix build utils)
                   (ice-9 ftw)
                   (srfi srfi-1)))
@@ -321,6 +322,8 @@ (define-public telegram-desktop
         ;;   Raghav Gururajan <[email-masked]>
         "-DTDESKTOP_API_ID=2791056"
         "-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2"
+        ;; Use Qt5.
+        "-DDESKTOP_APP_QT6=OFF"
         ;; Use bundled fonts as fallback.
         "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF")
        #:phases
@@ -352,7 +355,9 @@ (define-public telegram-desktop
                  ,(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_waylandshells" ,(assoc-ref inputs "lib-waylandshells-source"))
                 ("Telegram/lib_webrtc" ,(assoc-ref inputs "lib-webrtc-source"))
+                ("Telegram/lib_webview" ,(assoc-ref inputs "lib-webview-source"))
                 ("Telegram/ThirdParty/tgcalls"
                  ,(assoc-ref inputs "tgcalls-source"))))
              #t))
@@ -361,6 +366,20 @@ (define-public telegram-desktop
              (substitute* "cmake/options_linux.cmake"
                (("class-memaccess") "all"))
              #t))
+         (add-after 'copy-inputs 'fix-fenv
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-file (string-append (assoc-ref inputs "glibc")
+                                       "/include/fenv.h")
+                        "Telegram/lib_base/base/glibc-fenv.h")
+             (substitute* "Telegram/lib_base/base/algorithm.cpp"
+               (("#include <cfenv>")
+                "#include \"glibc-fenv.h\"
+
+namespace std {
+  using ::fetestexcept;
+  using ::feclearexcept;
+}
+"))))
          (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
@@ -372,14 +391,14 @@ (define-public telegram-desktop
            (uri
             (git-reference
              (url "https://github.com/desktop-app/cmake_helpers.git")
-             (commit "695fabda6830b58bdc02d09db70531d5dececcd0")))
+             (commit "c2b070275eecb546b9899495090d27ce55384917")))
            (file-name
             (git-file-name "cmake-helpers-for-telegram-desktop" version))
            (sha256
-            (base32 "1j3ppgfmihcjl22w5jk8jhwif10i9wbycq5zqnssn6pnhnj7di5i"))))
+            (base32 "13b8bjhba4fd6q35r8vz5n0n738wf3b8k4mg97jg8y7cghpw0xms"))))
        ("cmake-shared" ,cmake-shared)
        ("extra-cmake-modules" ,extra-cmake-modules)
-       ("gcc" ,gcc-9)
+       ("gcc" ,gcc-10)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk+:bin" ,gtk+ "bin")
@@ -387,7 +406,8 @@ (define-public telegram-desktop
        ("python" ,python-wrapper)
        ("qttools" ,qttools)))
     (inputs
-     `(("alsa" ,alsa-lib)
+     `(("glibc" ,glibc) ; for fixing fenv
+       ("alsa" ,alsa-lib)
        ("c++-gsl" ,c++-gsl)
        ("catch" ,catch-framework2)
        ("codegen-source"
@@ -396,20 +416,22 @@ (define-public telegram-desktop
            (uri
             (git-reference
              (url "https://github.com/desktop-app/codegen.git")
-             (commit "127968de8129e8ccfa6ac50721c70415a5a087c3")))
+             (commit "a60edf917419407cfe5c6095a56ccf363417ebd8")))
            (file-name
             (git-file-name "codegen" version))
            (sha256
-            (base32 "036hzjrsk134ky62192nra43rsln5kh5gz20q1920s922661zky2"))))
+            (base32 "0wamcibjgr6mja04cavj1jx1plk9d242ashvzyqdc0c9ljwmvyim"))))
        ("expected" ,libexpected)
        ("fcitx-qt5" ,fcitx-qt5)
        ("fcitx5-qt" ,fcitx5-qt)
        ("ffmpeg" ,ffmpeg)
        ("glib" ,glib)
+       ("glibmm" ,glibmm)
        ("gtk+" ,gtk+)
        ("hime" ,hime)
        ("hunspell" ,hunspell)
        ("iconv" ,libiconv)
+       ("jemalloc" ,jemalloc)
        ("kwayland" ,kwayland)
        ("lib-base-source"
         ,(origin
@@ -417,44 +439,44 @@ (define-public telegram-desktop
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_base.git")
-             (commit "f1e4168081428fa451d2f50eee7b1c448268c43a")))
+             (commit "e77f08a91a736b479e292092aca7a1ba56516076")))
            (file-name
             (git-file-name "lib-base-for-telegram-desktop" version))
            (sha256
-            (base32 "0piqp7llwi7sfy4c15g0p8ihr90rz1qps6q5fkl1iasrf5ysw8qc"))))
+            (base32 "1cdy5h9zvw29l53211v41k1p20330gyvs74lb9hpzrz4v8fdxwqc"))))
        ("lib-crl-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_crl.git")
-             (commit "16150bf71d79382738114b913f137ec1a1a7630c")))
+             (commit "ec103d6bccaa59b56537c8658c9e41415bb9ccaf")))
            (file-name
             (git-file-name "lib-crl-for-telegram-desktop" version))
            (sha256
-            (base32 "0qhagdr26aqb9w7wnchcmk1j7ln28x3wbkkkm06b8h0mybksbj7q"))))
+            (base32 "1fhmdm514jysbwaj7bdc97v8l8rkxam2w1snkgiv059w57gi0c54"))))
        ("lib-lottie-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_lottie.git")
-             (commit "fb40f379d82ffa1fc7506e9a8dddcf48847715ae")))
+             (commit "c75d91f75ef87077f07ea6f7087343274b3eb5ff")))
            (file-name
             (git-file-name "lib-lottie-for-telegram-desktop" version))
            (sha256
-            (base32 "1vq0mqxcrrv7akcqk9cl4mm61zw6dcfmy8adl0pcp49kynm64saw"))))
+            (base32 "0rgyffy5y2ljl1vfzanaacqv5fs1vf7wmc9fzmz3666zx51gjwzm"))))
        ("lib-qr-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_qr.git")
-             (commit "92ce41a690a463eb462089a4eb1e51e019308018")))
+             (commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189")))
            (file-name
             (git-file-name "lib-qr-for-telegram-desktop" version))
            (sha256
-            (base32 "182939nv7xs9b3bgah3gl5y9hx5r59mabd2jw3z6717vc96qi2pj"))))
+            (base32 "05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0"))))
        ("lib-rlottie-source"
         ,(origin
            (method git-fetch)
@@ -472,66 +494,88 @@ (define-public telegram-desktop
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_rpl.git")
-             (commit "e1b96399d9031c4ef0354631e6bb375029d29d9f")))
+             (commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617")))
            (file-name
             (git-file-name "lib-rpl-for-telegram-desktop" version))
            (sha256
-            (base32 "1wvqazljd2kq1fxlj250jhjrig529499bym9p81dx33kh1l9dgss"))))
+            (base32 "15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn"))))
        ("lib-spellcheck-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_spellcheck.git")
-             (commit "1b540b38ed78e9a3cba93e9ba4ce4525ab692277")))
+             (commit "b1b295fee18e44534d9a96ec9858baa4c932f7d2")))
            (file-name
             (git-file-name "lib-spellcheck-for-telegram-desktop" version))
            (sha256
-            (base32 "0a7042h5zrdvgs7v153ral2dh1zj84di5yjcmgcry5k4s1im9di7"))))
+            (base32 "0g3z1lw22fpcpq3wqxsq3gynaxm5nnl75w80bd3j36y3pqvcb476"))))
        ("lib-storage-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_storage.git")
-             (commit "cbe51722b73cfa9ff27bd59294b08aa5ee33c936")))
+             (commit "73d57840ac603107381e0e6b22d5b3bdcae492c6")))
            (file-name
             (git-file-name "lib-storage-for-telegram-desktop" version))
            (sha256
-            (base32 "045l5xsyagyz17gbhmmvl2miss4nb92p0dmza7yfs9pkg9gs0f87"))))
+            (base32 "1jnc5mcsbpaxknlva67j8dnq1b3nf6kfgrh0md9v4px60qq28dkq"))))
        ("lib-tl-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_tl.git")
-             (commit "404c83d77e5edb8a39f8e9f56a6340960fe5070e")))
+             (commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb")))
            (file-name
             (git-file-name "lib-tl-for-telegram-desktop" version))
            (sha256
-            (base32 "1k34nkvvcjqw5q81n1qmklid60cvzjk4lmn9qjimk437m6wbii7f"))))
+            (base32 "0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m"))))
        ("lib-ui-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_ui.git")
-             (commit "e14bc4681d69c1b538b8c5af51501077ae5a8a86")))
+             (commit "abfd5788516b5e96075c7b7982112d904be43ab6")))
            (file-name
             (git-file-name "lib-ui-for-telegram-desktop" version))
            (sha256
-            (base32 "04b1x4bswk3bxqrwpv5g7w4frkprrwf0px6aibh6z4drinv08wsv"))))
+            (base32 "1vdp4508qk816yjmqqp12ak74l3r1nxg4r2hm0f04fh6i80rnwcp"))))
+       ("lib-waylandshells-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_waylandshells.git")
+             (commit "928501605f02fd7ddc4ab267fdbfa40f65ddd6d8")))
+           (file-name
+            (git-file-name "lib-waylandshells-for-telegram-desktop" version))
+           (sha256
+            (base32 "0h8llxndq3y14dhyszvgyixs3gwrmgs9ys7k0jlhw8bmqqjc62q7"))))
        ("lib-webrtc-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/desktop-app/lib_webrtc.git")
-             (commit "60d5c43daf882a6c03944a3e6198b5f35b654a0e")))
+             (commit "9d617f17463d07ff45515800c8fd865939144413")))
            (file-name
             (git-file-name "lib-webrtc-for-telegram-desktop" version))
            (sha256
-            (base32 "0mxmbw8i37axllg9h976p6np2gcfyci6xwwl9hc9mhs49vwwsw5s"))))
+            (base32 "1zq4s6f12wbb5h525a6m5lybcf65mijq5nha4rzyh5yyd55mxpi4"))))
+       ("lib-webview-source"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/desktop-app/lib_webview.git")
+             (commit "d533a9c404c45b350bd056ee86f4efab72f02ff7")))
+           (file-name
+            (git-file-name "lib-webview-for-telegram-desktop" version))
+           (sha256
+            (base32 "0sd2wjs8p86smvkzw9c6x0lj00l6s77xv3al8qadmxj7zcm9z3z5"))))
        ("libdbusmenu-qt" ,libdbusmenu-qt)
        ("libjpeg" ,libjpeg-turbo)
        ("libtgvoip" ,libtgvoip-for-telegram-desktop)
@@ -545,22 +589,24 @@ (define-public telegram-desktop
        ("pulseaudio" ,pulseaudio)
        ("qrcodegen" ,qrcodegen-cpp)
        ("qt" ,qtbase-5)
+       ("qtsvg" ,qtsvg)
        ("qt5ct" ,qt5ct)
        ("qtimageformats" ,qtimageformats)
        ("qtwayland" ,qtwayland)
        ("range-v3" ,range-v3)
        ("rlottie" ,rlottie-for-telegram-desktop)
+       ("rnnoise" ,xiph-rnnoise)
        ("tgcalls-source"
         ,(origin
            (method git-fetch)
            (uri
             (git-reference
              (url "https://github.com/TelegramMessenger/tgcalls.git")
-             (commit "71addf5b41cb6bb6844f75e977edae0020938930")))
+             (commit "f76a9290fa502a8df473dd872aedf9a553b089cc")))
            (file-name
             (git-file-name "tgcalls-for-telegram-desktop" version))
            (sha256
-            (base32 "1zrjxf03n3ad8b95gwjarmq4gj5i5cwhlg93qcjv2232kksh29iy"))))
+            (base32 "0acpmxin6rh6j84qfz8lxxg0l99d5mkmz2ncsk3q7m72dfdsj26m"))))
        ("webrtc" ,webrtc-for-telegram-desktop)
        ("x11" ,libx11)
        ("xcb" ,libxcb)
-- 
2.34.0