diff mbox

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

Message ID 87k0gdg5b9.fsf@trop.in
State Accepted
Headers show

Commit Message

Andrew Tropin Dec. 9, 2021, 3:34 p.m. UTC
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 0.7.10 so you don't have to use revision and
> commit binding.

Updated tdlib and telega.

>
> 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.

Removed.

>
> Could you send an updated patch?
>
> Regards,

Attaching two patches.

Comments

Liliana Marie Prikler Dec. 9, 2021, 7:39 p.m. UTC | #1
Hi,

note to self: I'm not trying to build tdlib again.  Last build was not
finished after almost a day and power went out so I don't even know
whether it succeeded after I went to work or not.

Anyway,

> +-(defcustom telega-server-command "telega-server"
> ++(defcustom telega-server-command "@TELEGA_SERVER_BIN@"
[...]
> -             (substitute* "telega-server.el"
> +             (substitute* "telega-customize.el"
>                 (("@TELEGA_SERVER_BIN@")
>                  (string-append (assoc-ref inputs "emacs-telega-
> server")
>                                 "/bin/telega-server")))
> 
I know this has existed before your patch, but I'm pretty sure we have
emacs-based routines that could make this substitution in one go.  If
you're interested in further janitor work, you could do this either on
master, or you could do something in terms of (search-input-file) on c-
u-f.

Other than that LGTM on a quick glance.
Cheers
Andrew Tropin Dec. 10, 2021, 7:40 a.m. UTC | #2
On 2021-12-09 20:39, Liliana Marie Prikler wrote:

> Hi,
>
> note to self: I'm not trying to build tdlib again.  Last build was not
> finished after almost a day and power went out so I don't even know
> whether it succeeded after I went to work or not.

Ouch, IIRC it took a few dozens of minutes for my laptop.  Do you use
underpowered hardware or something was wrong with compilation process?

>
> Anyway,
>
>> +-(defcustom telega-server-command "telega-server"
>> ++(defcustom telega-server-command "@TELEGA_SERVER_BIN@"
> [...]
>> -             (substitute* "telega-server.el"
>> +             (substitute* "telega-customize.el"
>>                 (("@TELEGA_SERVER_BIN@")
>>                  (string-append (assoc-ref inputs "emacs-telega-
>> server")
>>                                 "/bin/telega-server")))
>> 
> I know this has existed before your patch, but I'm pretty sure we have
> emacs-based routines that could make this substitution in one go.

Do you mean emacs-substitute-sexps from (guix build emacs-utils) ?

> If you're interested in further janitor work, you could do this either
> on master, or you could do something in terms of (search-input-file)
> on c- u-f.
>
> Other than that LGTM on a quick glance.
> Cheers
>

Let's keep it as it is right now, probably I'll be updating this package
later again and will refactor it.

Also, I'll need to update emacs-telega package to include add-pkg-file
phase if the patch will be merged, so I'll cleanup the other stuff
around it.
Liliana Marie Prikler Dec. 10, 2021, 7:31 p.m. UTC | #3
Am Freitag, den 10.12.2021, 10:40 +0300 schrieb Andrew Tropin:
> On 2021-12-09 20:39, Liliana Marie Prikler wrote:
> 
> > Hi,
> > 
> > note to self: I'm not trying to build tdlib again.  Last build was
> > not finished after almost a day and power went out so I don't even
> > know whether it succeeded after I went to work or not.
> 
> Ouch, IIRC it took a few dozens of minutes for my laptop.  Do you use
> underpowered hardware or something was wrong with compilation
> process?
It's the check phase that's killing me, but that doesn't really rule
out weak hardware.  I'm not touching staging or core-updates for that
very reason.

> > Anyway,
> > 
> > > +-(defcustom telega-server-command "telega-server"
> > > ++(defcustom telega-server-command "@TELEGA_SERVER_BIN@"
> > [...]
> > > -             (substitute* "telega-server.el"
> > > +             (substitute* "telega-customize.el"
> > >                 (("@TELEGA_SERVER_BIN@")
> > >                  (string-append (assoc-ref inputs "emacs-telega-
> > > server")
> > >                                 "/bin/telega-server")))
> > > 
> > I know this has existed before your patch, but I'm pretty sure we
> > have
> > emacs-based routines that could make this substitution in one go.
> 
> Do you mean emacs-substitute-sexps from (guix build emacs-utils) ?
I think emacs-substitute-variables is the "correcter" option here, but
both are fine.

> > If you're interested in further janitor work, you could do this
> > either on master, or you could do something in terms of (search-
> > input-file) on c-u-f.
> > 
> > Other than that LGTM on a quick glance.
> > Cheers
> > 
> 
> Let's keep it as it is right now, probably I'll be updating this
> package later again and will refactor it.
> 
> Also, I'll need to update emacs-telega package to include add-pkg-
> file phase if the patch will be merged, so I'll cleanup the other
> stuff around it.
Very well, you do you.  I'll leave the final call to Nicolas then.

Thanks for your work and happy hacking :)
Nicolas Goaziou Dec. 11, 2021, 3:13 p.m. UTC | #4
Hello,

Andrew Tropin <andrew@trop.in> writes:

> Let's keep it as it is right now, probably I'll be updating this package
> later again and will refactor it.
>
> Also, I'll need to update emacs-telega package to include add-pkg-file
> phase if the patch will be merged, so I'll cleanup the other stuff
> around it.

OK. Applied. Thank you.

Regards,
diff mbox

Patch

From 83d78a5f70351eeef7b7deb1edb96ed5cf2458cc 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.b4a5e20.

* gnu/packages/emacs-xyz.scm (emacs-telega-server): Update to
0.7.15-1.b4a5e20.
* 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..52537b754e 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 "b4a5e206bd259f3d7f7633a725b2990704d6a1e8")
+        (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 "0gr4nmpk175hxmj357bpzaqywbjc6dmmvfxnyzkh884vyzbwdxlc"))
+         (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")))
+           (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 ".."))))
+         #: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