diff mbox

[bug#52371,0/2] Update tdlib and emacs-telega.

Message ID 875yrzh2ee.fsf@trop.in
State Accepted
Headers show

Commit Message

Andrew Tropin Dec. 8, 2021, 9:27 a.m. UTC
tdlib version 1.7.0 is deprecated and doesn't work anymore, there is no
1.7.9 tag in upstream repo, but the version is present in source code.
https://github.com/tdlib/td/blob/858078d89fcd2ad1d9860547e3f87c49d0f9abe9/CMakeLists.txt#L9

emacs-telega 0.7.031 is inteded for tdlib 1.7.0, but because this tdlib
version doesn't work anymore, Evgeny (author of telega.el) suggest to
use telega version from master branch.  I used 0.7.15 tag (closest tag
to the version in master branch I found) + revision + commit hash.

Without those updates tdlib and all clients based on it doesn't work,
it's quite unfortunate behavior from Telegram developers, IMHO of
course, but it's necessary to update to non-tagged versions to get it
work again.

Andrew Tropin (2):
  gnu: tdlib: Update to 1.7.9-1.858078d.
  gnu: emacs-telega: Update to 0.7.15-1.acf2d99.

 gnu/packages/emacs-xyz.scm                    | 100 +++++++++---------
 gnu/packages/messaging.scm                    |  80 +++++++-------
 .../emacs-telega-path-placeholder.patch       |  49 ++++-----
 .../patches/emacs-telega-test-env.patch       |  30 ++++--
 4 files changed, 134 insertions(+), 125 deletions(-)

Comments

Nicolas Goaziou Dec. 9, 2021, 8:27 a.m. UTC | #1
Hello,

Andrew Tropin <andrew@trop.in> writes:

> tdlib version 1.7.0 is deprecated and doesn't work anymore, there is no
> 1.7.9 tag in upstream repo, but the version is present in source code.
> https://github.com/tdlib/td/blob/858078d89fcd2ad1d9860547e3f87c49d0f9abe9/CMakeLists.txt#L9
>
> emacs-telega 0.7.031 is inteded for tdlib 1.7.0, but because this tdlib
> version doesn't work anymore, Evgeny (author of telega.el) suggest to
> use telega version from master branch.  I used 0.7.15 tag (closest tag
> to the version in master branch I found) + revision + commit hash.
>
> Without those updates tdlib and all clients based on it doesn't work,
> it's quite unfortunate behavior from Telegram developers, IMHO of
> course, but it's necessary to update to non-tagged versions to get it
> work again.

Thank you.

Could you use commit a53cb30e99f937cfd64e0266fa558785a184a553 for tdlib.
It corresponds to release 0.7.10 so you don't have to use revision and
commit binding.

Also, could you send this in two separate patches, and provide a proper
commit message, specifying new patch files and registering them in
local.mk?

Also, you can remove trailing #t from phases.

Could you send an updated patch?

Regards,
Evgeny Zajcev Dec. 9, 2021, 8:43 a.m. UTC | #2
чт, 9 дек. 2021 г. в 11:27, Nicolas Goaziou <mail@nicolasgoaziou.fr>:

> Hello,
>
> Andrew Tropin <andrew@trop.in> writes:
>
> > tdlib version 1.7.0 is deprecated and doesn't work anymore, there is no
> > 1.7.9 tag in upstream repo, but the version is present in source code.
> >
> https://github.com/tdlib/td/blob/858078d89fcd2ad1d9860547e3f87c49d0f9abe9/CMakeLists.txt#L9
> >
> > emacs-telega 0.7.031 is inteded for tdlib 1.7.0, but because this tdlib
> > version doesn't work anymore, Evgeny (author of telega.el) suggest to
> > use telega version from master branch.  I used 0.7.15 tag (closest tag
> > to the version in master branch I found) + revision + commit hash.
> >
> > Without those updates tdlib and all clients based on it doesn't work,
> > it's quite unfortunate behavior from Telegram developers, IMHO of
> > course, but it's necessary to update to non-tagged versions to get it
> > work again.
>
> Thank you.
>
> Could you use commit a53cb30e99f937cfd64e0266fa558785a184a553 for tdlib.
> It corresponds to release 0.7.10 so you don't have to use revision and
> commit binding.
>

If TDLib 1.7.10 will be used, then use 3dfa0f0 for telega.el, this commit
adds initial support for TDLib 1.7.10

TDLib 1.7.10 is not compatible with TDLib 1.7.9, and it won't work with
telega without TDLib 1.7.10 support.
Andrew Tropin Dec. 9, 2021, 11:43 a.m. UTC | #3
On 2021-12-09 09:27, Nicolas Goaziou wrote:

> Hello,
>
> Andrew Tropin <andrew@trop.in> writes:
>
>> tdlib version 1.7.0 is deprecated and doesn't work anymore, there is no
>> 1.7.9 tag in upstream repo, but the version is present in source code.
>> https://github.com/tdlib/td/blob/858078d89fcd2ad1d9860547e3f87c49d0f9abe9/CMakeLists.txt#L9
>>
>> emacs-telega 0.7.031 is inteded for tdlib 1.7.0, but because this tdlib
>> version doesn't work anymore, Evgeny (author of telega.el) suggest to
>> use telega version from master branch.  I used 0.7.15 tag (closest tag
>> to the version in master branch I found) + revision + commit hash.
>>
>> Without those updates tdlib and all clients based on it doesn't work,
>> it's quite unfortunate behavior from Telegram developers, IMHO of
>> course, but it's necessary to update to non-tagged versions to get it
>> work again.
>
> Thank you.
>
> Could you use commit a53cb30e99f937cfd64e0266fa558785a184a553 for tdlib.
> It corresponds to release 1.7.10 so you don't have to use revision and
> commit binding.

Will do.

>
> Also, could you send this in two separate patches, and provide a proper
> commit message, specifying new patch files and registering them in
> local.mk?

Not sure what you mean, there are already two inline patches with proper
commit messages (at least I hope it's proper :).

The patches for telegram.el are not new, so they already registered in
local.mk, I just updated the content to match current source code.

>
> Also, you can remove trailing #t from phases.
>
> Could you send an updated patch?
>
> Regards,

Yep.
diff mbox

Patch

From 1e9d59573f7c6c76fb4f2e524d70a043b185a682 Mon Sep 17 00:00:00 2001
From: Andrew Tropin <andrew@trop.in>
Date: Tue, 7 Dec 2021 16:05:22 +0300
Subject: [PATCH 2/2] gnu: emacs-telega: Update to 0.7.15-1.acf2d99.

* gnu/packages/emacs-xyz.scm (emacs-telega-server): Update to
0.7.15-1.acf2d99.
* gnu/packages/patches/emacs-telega-path-placeholder.patch: Match patch with
newer source code.
* gnu/packages/patches/emacs-telega-test-env.patch: Match patch with newer
source code.
---
 gnu/packages/emacs-xyz.scm                    | 100 +++++++++---------
 .../emacs-telega-path-placeholder.patch       |  49 ++++-----
 .../patches/emacs-telega-test-env.patch       |  30 ++++--
 3 files changed, 93 insertions(+), 86 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index e542da0c26..599790bc6e 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -27144,55 +27144,57 @@  (define-public emacs-helm-switch-to-repl
     (license license:gpl3+)))
 
 (define-public emacs-telega-server
-  (package
-    (name "emacs-telega-server")
-    (version "0.7.031")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/zevlg/telega.el")
-             (commit (string-append "v" version))))
-       (sha256
-        (base32 "05j82796s4k3yr0igl6hir3p8qj0cw66vvhbpbcy28d6q9v9vjjz"))
-       (file-name (git-file-name "emacs-telega" version))
-       (patches
-        (search-patches "emacs-telega-path-placeholder.patch"
-                        "emacs-telega-test-env.patch"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:make-flags
-       (list (string-append "CC=" ,(cc-for-target))
-             (string-append "INSTALL_PREFIX="
-                            (assoc-ref %outputs "out") "/bin"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'enter-subdirectory
-           (lambda _ (chdir "server") #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "run_tests.py"
-                 (("^(TELEGA_SERVER = ).*$" _all prefix)
-                  (string-append prefix
-                                 "\"" out "/bin/telega-server\"\n"))))))
-         (delete 'check)
-         (add-after 'install 'check
-           (assoc-ref %standard-phases 'check))
-         (add-before 'install-license-files 'leave-subdirectory
-           (lambda _ (chdir "..") #t)))
-       #:test-target "test"))
-    (inputs
-     `(("tdlib" ,tdlib)
-       ("libappindicator" ,libappindicator)))
-    (native-inputs
-     `(("python" ,python)
-       ("pkg-config" ,pkg-config)))
-    (home-page "https://zevlg.github.io/telega.el/")
-    (synopsis "Server process of Telega")
-    (description "Telega-server is helper program to interact with Telegram
+  (let ((commit "acf2d99df25f15c104cd13d5bbdcb17078a353f9")
+        (revision "1"))
+    (package
+      (name "emacs-telega-server")
+      (version (git-version  "0.7.15" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/zevlg/telega.el")
+               (commit commit)))
+         (sha256
+          (base32 "1wxx77whwl5fw2fbq6k7082gqn6srvy8vckhdn0qd75xqm4axf93"))
+         (file-name (git-file-name "emacs-telega" version))
+         (patches
+          (search-patches "emacs-telega-path-placeholder.patch"
+                          "emacs-telega-test-env.patch"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags
+         (list (string-append "CC=" ,(cc-for-target))
+               (string-append "INSTALL_PREFIX="
+                              (assoc-ref %outputs "out") "/bin"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'enter-subdirectory
+             (lambda _ (chdir "server") #t))
+           (replace 'configure
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (substitute* "run_tests.py"
+                   (("^(TELEGA_SERVER = ).*$" _all prefix)
+                    (string-append prefix
+                                   "\"" out "/bin/telega-server\"\n"))))))
+           (delete 'check)
+           (add-after 'install 'check
+             (assoc-ref %standard-phases 'check))
+           (add-before 'install-license-files 'leave-subdirectory
+             (lambda _ (chdir "..") #t)))
+         #:test-target "test"))
+      (inputs
+       `(("tdlib" ,tdlib)
+         ("libappindicator" ,libappindicator)))
+      (native-inputs
+       `(("python" ,python)
+         ("pkg-config" ,pkg-config)))
+      (home-page "https://zevlg.github.io/telega.el/")
+      (synopsis "Server process of Telega")
+      (description "Telega-server is helper program to interact with Telegram
 service, and connect it with Emacs via inter-process communication.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-telega
   (package
@@ -27226,7 +27228,7 @@  (define-public emacs-telega
                                  "\"" ffmpeg-bin "\")"))))))
          (add-after 'unpack 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "telega-server.el"
+             (substitute* "telega-customize.el"
                (("@TELEGA_SERVER_BIN@")
                 (string-append (assoc-ref inputs "emacs-telega-server")
                                "/bin/telega-server")))
diff --git a/gnu/packages/patches/emacs-telega-path-placeholder.patch b/gnu/packages/patches/emacs-telega-path-placeholder.patch
index c20be36712..5829edd22a 100644
--- a/gnu/packages/patches/emacs-telega-path-placeholder.patch
+++ b/gnu/packages/patches/emacs-telega-path-placeholder.patch
@@ -1,36 +1,31 @@ 
-From 865b8c553722a971c68742c2e849e41eb0e2360c Mon Sep 17 00:00:00 2001
-From: Zhu Zihao <all_but_last@163.com>
-Date: Thu, 24 Jun 2021 23:43:50 +0800
-Subject: [PATCH] Replace code that search path with placeholder for
- configuration.
+From bf95de21faa623e48bca00d6a2c9b33ab2c5d812 Mon Sep 17 00:00:00 2001
+From: Andrew Tropin <andrew@trop.in>
+Date: Wed, 8 Dec 2021 11:01:31 +0300
+Subject: [PATCH] Use absolute path for telega-server-command.
 
 ---
- telega-server.el | 6 +-----
- telega-util.el   | 2 +-
- 2 files changed, 2 insertions(+), 6 deletions(-)
+ telega-customize.el | 2 +-
+ telega-util.el      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/telega-server.el b/telega-server.el
-index 999125d..0fa0817 100644
---- a/telega-server.el
-+++ b/telega-server.el
-@@ -142,11 +142,7 @@ Otherwise query user about building flags."
- (defun telega-server--find-bin ()
-   "Find telega-server executable.
- Raise error if not found."
--  (let ((exec-path (cons telega-directory exec-path)))
--    (or (executable-find "telega-server")
--        (progn (telega-server-build)
--               (executable-find "telega-server"))
--        (error "`telega-server' not found in exec-path"))))
-+  "@TELEGA_SERVER_BIN@")
+diff --git a/telega-customize.el b/telega-customize.el
+index 0af343f..cc2938c 100644
+--- a/telega-customize.el
++++ b/telega-customize.el
+@@ -591,7 +591,7 @@ In range [1..3].  Use 1."
+   :prefix "telega-server-"
+   :group 'telega)
  
- (defun telega-server-version ()
-   "Return telega-server version."
+-(defcustom telega-server-command "telega-server"
++(defcustom telega-server-command "@TELEGA_SERVER_BIN@"
+   "Command to run as telega server.
+ It should be absolute path or binary file searchable in `exec-path'."
+   :type 'string
 diff --git a/telega-util.el b/telega-util.el
-index 73a46b1..f53e20a 100644
+index 6340c27..01e3cb7 100644
 --- a/telega-util.el
 +++ b/telega-util.el
-@@ -464,7 +464,7 @@ N can't be 0."
+@@ -587,7 +587,7 @@ N can't be 0."
  
  (defun telega-etc-file (filename)
    "Return absolute path to FILENAME from etc/ directory in telega."
@@ -40,5 +35,5 @@  index 73a46b1..f53e20a 100644
  (defun telega-link-props (link-type link-to &optional face)
    "Generate props for link button openable with `telega-link--button-action'."
 -- 
-2.32.0
+2.34.0
 
diff --git a/gnu/packages/patches/emacs-telega-test-env.patch b/gnu/packages/patches/emacs-telega-test-env.patch
index 75fe2e12fc..c6b02be6ff 100644
--- a/gnu/packages/patches/emacs-telega-test-env.patch
+++ b/gnu/packages/patches/emacs-telega-test-env.patch
@@ -1,14 +1,24 @@ 
-Test Emacs environment on startup.
+From 237ea2471bb6521390bbac174ac2a8a5e9683e4d Mon Sep 17 00:00:00 2001
+From: Andrew Tropin <andrew@trop.in>
+Date: Tue, 7 Dec 2021 16:20:38 +0300
+Subject: [PATCH] Test Emacs environment on startup.
 
-Patch by Diego N. Barbato
+---
+ telega.el | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/telega.el	2020-02-07 17:07:18.549970090 +0100
-+++ b/telega.el	2020-02-07 17:10:08.383499765 +0100
-@@ -82,6 +82,7 @@
-   "Start telegramming.
- If prefix ARG is given, then will not pop to telega root buffer."
+diff --git a/telega.el b/telega.el
+index d6b28b5..40854ec 100644
+--- a/telega.el
++++ b/telega.el
+@@ -181,7 +181,7 @@ can't write to `telega-server-logfile'" logfile-dir)))
+ Pop to root buffer.
+ If `\\[universal-argument]' is specified, then do not pop to root buffer."
    (interactive "P")
+-
 +  (telega-test-env t)
-   (telega--create-hier)
- 
-   (unless (telega-server-live-p)
+   ;; For multiple accounts setup possibly select (if there is no
+   ;; default account declared) an account to use
+   (if (and telega-accounts (not (telega-account-current)))
+-- 
+2.34.0
-- 
2.34.0