GNU bug report logs - #49219
[PATCH]: Update emacs-telega.

Previous Next

Package: guix-patches;

Reported by: Zhu Zihao <all_but_last <at> 163.com>

Date: Fri, 25 Jun 2021 05:49:01 UTC

Severity: normal

Tags: patch

Done: Leo Prikler <leo.prikler <at> student.tugraz.at>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 49219 in the body.
You can then email your comments to 49219 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 25 Jun 2021 05:49:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Zhu Zihao <all_but_last <at> 163.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 25 Jun 2021 05:49:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: guix-patches <at> gnu.org
Subject: [PATCH]: Update emacs-telega.
Date: Fri, 25 Jun 2021 13:48:20 +0800
[Message part 1 (text/plain, inline)]

[signature.asc (application/pgp-signature, inline)]
[0001-gnu-Add-emacs-telega-server.patch (text/x-patch, inline)]
From 32278ed29a5624efedab694c7c465a75f29c6725 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:25:05 +0800
Subject: [PATCH 1/3] gnu: Add emacs-telega-server.

* gnu/packages/emacs-xyz.scm(emacs-telega-server): New variable.
* gnu/packages/patches/emacs-telega-path-placeholder.patch: New file.
* gnu/package/patches/emacs-telega-patch-server-functions.patch: Remove stale patch.
* gnu/local.mk(dist_patch_DATA): Update corresponding entries.
---
 gnu/local.mk                                  |  2 +-
 gnu/packages/emacs-xyz.scm                    | 54 ++++++++++++++++++-
 .../emacs-telega-patch-server-functions.patch | 31 -----------
 .../emacs-telega-path-placeholder.patch       | 44 +++++++++++++++
 4 files changed, 98 insertions(+), 33 deletions(-)
 delete mode 100644 gnu/packages/patches/emacs-telega-patch-server-functions.patch
 create mode 100644 gnu/packages/patches/emacs-telega-path-placeholder.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 509970f044..8f432ed326 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -989,7 +989,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch	\
   %D%/packages/patches/emacs-libgit-use-system-libgit2.patch    \
   %D%/packages/patches/emacs-source-date-epoch.patch		\
-  %D%/packages/patches/emacs-telega-patch-server-functions.patch	\
+  %D%/packages/patches/emacs-telega-path-placeholder.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
   %D%/packages/patches/enjarify-setup-py.patch			\
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index b84c0d6622..c722ff62fe 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -81,7 +81,7 @@
 ;;; Copyright © 2020, 2021 Niklas Eklund <niklas.eklund <at> posteo.net>
 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98 <at> protonmail.com>
 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin <at> mailbox.org>
-;;; Copyright © 2020 Zhu Zihao <all_but_last <at> 163.com>
+;;; Copyright © 2020, 2021 Zhu Zihao <all_but_last <at> 163.com>
 ;;; Copyright © 2020 Adam Kandur <rndd <at> tuta.io>
 ;;; Copyright © 2020 Tim Howes <timhowes <at> lavabit.com>
 ;;; Copyright © 2020 Noah Landis <noahlandis <at> posteo.net>
@@ -26011,6 +26011,58 @@ fish-completion.  It can be used in both Eshell and M-x shell.")
 other @code{helm-type-file} sources such as @code{helm-locate}.")
     (license license:gpl3+)))
 
+(define-public emacs-telega-server
+  (package
+    (name "emacs-telega-server")
+    (version "0.7.024")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zevlg/telega.el")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1ra04cp49zzx8vy8aswd00l46ixyc44sxh1s3nw880b4ywzxmc6j"))
+       (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
+     `(#: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* "Makefile"
+                 (("CC=cc") ,(string-append "CC=" (cc-for-target)))
+                 (("^(INSTALL_PREFIX=).*$" _all prefix)
+                  (string-append prefix out "/bin\n")))
+
+               (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+)))
+
 (define-public emacs-telega
   ;; This package has versions newer than indicated on MELPA.
   ;; Get the current version from `telega-version` in telega.el.
diff --git a/gnu/packages/patches/emacs-telega-patch-server-functions.patch b/gnu/packages/patches/emacs-telega-patch-server-functions.patch
deleted file mode 100644
index e3d49278d0..0000000000
--- a/gnu/packages/patches/emacs-telega-patch-server-functions.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Remove interactive build for telega-server, as it fails on Guix.
-Modify the `telega-server--find-bin' function to only use the version
-of telega-server installed by Guix.
-
-Created by Brett Gilio <brettg <at> gnu.org>
-
---- a/telega-server.el
-+++ b/telega-server.el
-@@ -113,7 +113,6 @@ If already deferring, then just executes the BODY."
- If BUILD-FLAGS is specified, then rebuild server without any
- queries using this flags for building, could be empty string.
- Otherwise query user about building flags."
--  (interactive)
-   (telega-test-env 'quiet)
-   (when (or build-flags
-             (y-or-n-p "Build `telega-server'? "))
-@@ -137,11 +136,8 @@ 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"))))
-+  (or (executable-find "telega-server")
-+      (error "`telega-server' not found in exec-path")))
- 
- (defun telega-server-version ()
-   "Return telega-server version."
-
diff --git a/gnu/packages/patches/emacs-telega-path-placeholder.patch b/gnu/packages/patches/emacs-telega-path-placeholder.patch
new file mode 100644
index 0000000000..c20be36712
--- /dev/null
+++ b/gnu/packages/patches/emacs-telega-path-placeholder.patch
@@ -0,0 +1,44 @@
+From 865b8c553722a971c68742c2e849e41eb0e2360c Mon Sep 17 00:00:00 2001
+From: Zhu Zihao <all_but_last <at> 163.com>
+Date: Thu, 24 Jun 2021 23:43:50 +0800
+Subject: [PATCH] Replace code that search path with placeholder for
+ configuration.
+
+---
+ telega-server.el | 6 +-----
+ telega-util.el   | 2 +-
+ 2 files changed, 2 insertions(+), 6 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@")
+ 
+ (defun telega-server-version ()
+   "Return telega-server version."
+diff --git a/telega-util.el b/telega-util.el
+index 73a46b1..f53e20a 100644
+--- a/telega-util.el
++++ b/telega-util.el
+@@ -464,7 +464,7 @@ N can't be 0."
+ 
+ (defun telega-etc-file (filename)
+   "Return absolute path to FILENAME from etc/ directory in telega."
+-  (expand-file-name (concat "etc/" filename) telega--lib-directory))
++  (concat "@TELEGA_SHARE@" "/" filename))
+ 
+ (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.32.0

[0002-gnu-emacs-telega-Update-to-0.7.024.patch (text/x-patch, inline)]
From 5157c45126650f1439d7fdf15b2a7c8ba19d6bdc Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:26:51 +0800
Subject: [PATCH 2/3] gnu: emacs-telega: Update to 0.7.024.

* gnu/packages/emacs-xyz.scm(emacs-telega): Update to 0.7.024.

Rewrite build recipe.
---
 gnu/packages/emacs-xyz.scm | 169 +++++++++++--------------------------
 1 file changed, 50 insertions(+), 119 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c722ff62fe..c8540bbead 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26064,125 +26064,56 @@ service, and connect it with Emacs via inter-process communication.")
     (license license:gpl3+)))
 
 (define-public emacs-telega
-  ;; This package has versions newer than indicated on MELPA.
-  ;; Get the current version from `telega-version` in telega.el.
-  ;; or by running M-x telega-version.
-  (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
-	(revision "1")
-	(version "0.7.1"))
-    (package
-      (name "emacs-telega")
-      (version (git-version version revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/zevlg/telega.el")
-               (commit commit)))
-         (sha256
-          (base32
-           "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
-         (patches (search-patches
-                   "emacs-telega-patch-server-functions.patch"
-                   "emacs-telega-test-env.patch"))
-         (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:modules ((guix build gnu-build-system)
-                    ((guix build emacs-build-system) #:prefix emacs:)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%gnu-build-system-modules
-                             (guix build emacs-build-system)
-                             (guix build emacs-utils))
-         #:test-target "test"
-         ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
-         ;; temporarily.
-         ;; #:make-flags (list "WITH_VOIP=t")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'prefix-patch
-             (lambda _
-               (substitute* "server/Makefile"
-                 (("CC=cc")
-                  ,(string-append "CC=" (cc-for-target)))
-                 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
-                  (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
-                                 "/bin"))
-                 ;; Manually invoke `run_tests.py` after install phase.
-                 (("python3 run_tests.py")
-                  ""))
-               #t))
-           (add-after 'unpack 'expand-load-path
-             (assoc-ref emacs:%standard-phases 'expand-load-path))
-           (add-after 'unpack 'patch-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Hard-code paths to `ffplay` and `ffmpeg`.
-               (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
-                                                "/bin/ffplay"))
-                     (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
-                                                "/bin/ffmpeg")))
-                 (substitute* "telega-ffplay.el"
-                   (("\\(executable-find \"ffplay\"\\)")
-                    (string-append
-                     "(and (file-executable-p \"" ffplay-bin "\")"
-                     "\"" ffplay-bin "\")"))
-                   (("\\(executable-find \"ffmpeg\"\\)")
-                    (string-append
-                     "(and (file-executable-p \"" ffmpeg-bin "\")"
-                     "\"" ffmpeg-bin "\")"))))
-               ;; This would push the "contrib" sources to the load path,
-               ;; but as contrib is not installed alongside telega, it does
-               ;; nothing.
-               (substitute* "telega.el"
-                 (("\\(push .* load-path\\)") ""))
-               #t))
-           ;; The server test suite has a hardcoded path.
-           ;; Reset this behavior to use the proper path.
-           (add-after 'unpack 'patch-test-suite
-             (lambda _
-               (substitute* "server/run_tests.py"
-                 (("~/.telega/telega-server")
-                  (string-append (assoc-ref %outputs "out")
-                                 "/bin/telega-server")))
-               #t))
-           (add-after 'install 'run-server-suite
-             (lambda _
-               (invoke "python3" "server/run_tests.py")
-               #t))
-           (delete 'configure)
-           (add-after 'expand-load-path 'emacs-install
-             (lambda args
-               (apply (assoc-ref emacs:%standard-phases 'install)
-                      #:include `("etc" ,@emacs:%default-include)
-                      args)))
-           (add-after 'emacs-install 'emacs-build
-             (assoc-ref emacs:%standard-phases 'build))
-           (add-after 'emacs-install 'emacs-make-autoloads
-             (assoc-ref emacs:%standard-phases 'make-autoloads)))))
-      (inputs
-       `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
-      (propagated-inputs
-       `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
-         ("emacs-company" ,emacs-company)
-         ("emacs-rainbow-identifiers"
-          ,emacs-rainbow-identifiers)
-         ("libwebp" ,libwebp))) ; sticker support.
-      (native-inputs
-       `(("tdlib" ,tdlib)
-         ;; Use Emacs with wide ints on 32-bit architectures.
-         ("emacs" ,(match (%current-system)
-                     ((or "i686-linux" "armhf-linux")
-                      emacs-wide-int)
-                     (_
-                      emacs)))
-         ("python" ,python)))
-      (synopsis "GNU Emacs client for the Telegram messenger")
-      (description
-       "Telega is a full-featured, unofficial GNU Emacs-based client for the
-Telegram messaging platform.")
-      (home-page "https://zevlg.github.io/telega.el/")
-      (license license:gpl3+))))
+  (package
+    (inherit emacs-telega-server)
+    (name "emacs-telega")
+    (build-system emacs-build-system)
+    (arguments
+     `(#:emacs ,(if (target-64bit?)
+                    emacs-minimal
+                    ;; Require wide-int support for 32-bit platform.
+                    emacs-wide-int)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "telega-server.el"
+               (("@TELEGA_SERVER_BIN@")
+                (string-append (assoc-ref inputs "emacs-telega-server")
+                               "/bin/telega-server")))
+             (substitute* "telega-util.el"
+               (("@TELEGA_SHARE@")
+                (string-append (assoc-ref outputs "out")
+                               "/share/emacs-telega")))))
+         (add-after 'install 'install-share-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (define install-plan
+               '("langs" "sounds" "emojis.alist"
+                 "verified.svg" "telega-logo.svg"))
+
+             (define prefix (string-append (assoc-ref outputs "out")
+                                                "/share/emacs-telega"))
+             (with-directory-excursion "etc"
+               (for-each (lambda (file)
+                           (if (file-is-directory? file)
+                               (let ((dest (string-append prefix "/" file)))
+                                 (copy-recursively file dest))
+                               (install-file file prefix)))
+                         install-plan))
+             #t)))))
+    (inputs `(("emacs-telega-server" ,emacs-telega-server)))
+    (native-inputs '())
+    (propagated-inputs
+     `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
+       ("emacs-company" ,emacs-company)
+       ("emacs-rainbow-identifiers" ,emacs-rainbow-identifiers)
+       ;; TODO: embbed references of following package into source file.
+       ("ffmpeg" ,ffmpeg)               ; GIF, video support.
+       ("libwebp" ,libwebp)             ; sticker support.
+       ))
+    (synopsis "GNU Emacs client for the Telegram messenger")
+    (description "Telega is a full-featured, unofficial GNU Emacs-based client
+for the Telegram messaging platform.")))
 
 (define-public emacs-telega-contrib
   (package/inherit emacs-telega
-- 
2.32.0

[0003-gnu-emacs-telega-contrib-Update-to-0.7.024.patch (text/x-patch, inline)]
From 84963cfc29a53cb6d31850bd3fc85de3d5a4c893 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:29:30 +0800
Subject: [PATCH 3/3] gnu: emacs-telega-contrib: Update to 0.7.024.

* gnu/packages/emacs-xyz.scm(emacs-telega-contrib): Update to 0.7.024.

[arguments]<phases>: Back to root directory of build before phase
'install-license-files' to properly install licenses.
[propagated-inputs]: Add emacs-dashboard, emacs-transient.
---
 gnu/packages/emacs-xyz.scm | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c8540bbead..872f2253a0 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26116,19 +26116,28 @@ service, and connect it with Emacs via inter-process communication.")
 for the Telegram messaging platform.")))
 
 (define-public emacs-telega-contrib
-  (package/inherit emacs-telega
+  (package
+    (inherit emacs-telega)
     (name "emacs-telega-contrib")
-    (build-system emacs-build-system)
     (arguments
      `(#:exclude '("telega-live-location.el")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'chdir
-           (lambda _ (chdir "contrib") #t)))))
+         (add-after 'unpack 'enter-subdirectory
+           (lambda _ (chdir "contrib") #t))
+         (add-before 'install-license-files 'leave-subdirectory
+           (lambda _ (chdir "..") #t)))))
+    (inputs '())
+    (native-inputs '())
     (propagated-inputs
-     `(("emacs-telega" ,emacs-telega)
-       ("emacs-alert" ,emacs-alert)
-       ("emacs-all-the-icons" ,emacs-all-the-icons)))))
+     `(("emacs-alert" ,emacs-alert)
+       ("emacs-all-the-icons" ,emacs-all-the-icons)
+       ("emacs-dashboard" ,emacs-dashboard)
+       ("emacs-telega" ,emacs-telega)
+       ("emacs-transient" ,emacs-transient)))
+    (synopsis "Contributed packages to Telega")
+    (description "Telega-contrib is a collection of third-party
+contributed packages to Telega.")))
 
 (define-public emacs-doom-modeline
   (package
-- 
2.32.0

[Message part 6 (text/plain, inline)]
Some questions that Guix maintainer may have interest in:

1. Why separate telega-server to a dedicated package?

emacs-build-system is quite cumbersome due to the different install step
than gnu-build-system, if we try to mix the build code of server into it
via 'modify-phases', it'll be very hard to read and understand the logic
of package code.

Move telega-server to a dedicated package can also help us separate
package, if there's a program uses telega-server, it doesn't have to add
emacs-telega as input, they just add emacs-telega-server.

2. Why propagated ffmpeg.

I check the source and found that telega use binaries from ffmpeg many
different place in telega-ffplay.el and telega-vvnote.el. So it's better
to propagated it because it's not easy to fix them all.

3. Why install resources to '<prefix>/share/emacs-telega'?

I think it is closer to the flavor of FHS, and it's not hard to achieve it.
-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 25 Jun 2021 06:03:02 GMT) Full text and rfc822 format available.

Message #8 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 25 Jun 2021 14:02:02 +0800
[Message part 1 (text/plain, inline)]
Update patches:

[signature.asc (application/pgp-signature, inline)]
[0001-gnu-Add-emacs-telega-server.patch (text/x-patch, inline)]
From ffcd346a5d2a7b6fccfc56d16156b833bbd6c8bb Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:25:05 +0800
Subject: [PATCH 1/3] gnu: Add emacs-telega-server.

* gnu/packages/emacs-xyz.scm(emacs-telega-server): New variable.
* gnu/packages/patches/emacs-telega-path-placeholder.patch: New file.
* gnu/package/patches/emacs-telega-patch-server-functions.patch: Remove stale patch.
* gnu/local.mk(dist_patch_DATA): Update corresponding entries.
---
 gnu/local.mk                                  |  2 +-
 gnu/packages/emacs-xyz.scm                    | 55 ++++++++++++++++++-
 .../emacs-telega-patch-server-functions.patch | 31 -----------
 .../emacs-telega-path-placeholder.patch       | 44 +++++++++++++++
 4 files changed, 99 insertions(+), 33 deletions(-)
 delete mode 100644 gnu/packages/patches/emacs-telega-patch-server-functions.patch
 create mode 100644 gnu/packages/patches/emacs-telega-path-placeholder.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 509970f044..8f432ed326 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -989,7 +989,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch	\
   %D%/packages/patches/emacs-libgit-use-system-libgit2.patch    \
   %D%/packages/patches/emacs-source-date-epoch.patch		\
-  %D%/packages/patches/emacs-telega-patch-server-functions.patch	\
+  %D%/packages/patches/emacs-telega-path-placeholder.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
   %D%/packages/patches/enjarify-setup-py.patch			\
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index b84c0d6622..ab5d0ed061 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -81,7 +81,7 @@
 ;;; Copyright © 2020, 2021 Niklas Eklund <niklas.eklund <at> posteo.net>
 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98 <at> protonmail.com>
 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin <at> mailbox.org>
-;;; Copyright © 2020 Zhu Zihao <all_but_last <at> 163.com>
+;;; Copyright © 2020, 2021 Zhu Zihao <all_but_last <at> 163.com>
 ;;; Copyright © 2020 Adam Kandur <rndd <at> tuta.io>
 ;;; Copyright © 2020 Tim Howes <timhowes <at> lavabit.com>
 ;;; Copyright © 2020 Noah Landis <noahlandis <at> posteo.net>
@@ -144,6 +144,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages ebook)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
@@ -26011,6 +26012,58 @@ fish-completion.  It can be used in both Eshell and M-x shell.")
 other @code{helm-type-file} sources such as @code{helm-locate}.")
     (license license:gpl3+)))
 
+(define-public emacs-telega-server
+  (package
+    (name "emacs-telega-server")
+    (version "0.7.024")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zevlg/telega.el")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1ra04cp49zzx8vy8aswd00l46ixyc44sxh1s3nw880b4ywzxmc6j"))
+       (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
+     `(#: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* "Makefile"
+                 (("CC=cc") ,(string-append "CC=" (cc-for-target)))
+                 (("^(INSTALL_PREFIX=).*$" _all prefix)
+                  (string-append prefix out "/bin\n")))
+
+               (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+)))
+
 (define-public emacs-telega
   ;; This package has versions newer than indicated on MELPA.
   ;; Get the current version from `telega-version` in telega.el.
diff --git a/gnu/packages/patches/emacs-telega-patch-server-functions.patch b/gnu/packages/patches/emacs-telega-patch-server-functions.patch
deleted file mode 100644
index e3d49278d0..0000000000
--- a/gnu/packages/patches/emacs-telega-patch-server-functions.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Remove interactive build for telega-server, as it fails on Guix.
-Modify the `telega-server--find-bin' function to only use the version
-of telega-server installed by Guix.
-
-Created by Brett Gilio <brettg <at> gnu.org>
-
---- a/telega-server.el
-+++ b/telega-server.el
-@@ -113,7 +113,6 @@ If already deferring, then just executes the BODY."
- If BUILD-FLAGS is specified, then rebuild server without any
- queries using this flags for building, could be empty string.
- Otherwise query user about building flags."
--  (interactive)
-   (telega-test-env 'quiet)
-   (when (or build-flags
-             (y-or-n-p "Build `telega-server'? "))
-@@ -137,11 +136,8 @@ 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"))))
-+  (or (executable-find "telega-server")
-+      (error "`telega-server' not found in exec-path")))
- 
- (defun telega-server-version ()
-   "Return telega-server version."
-
diff --git a/gnu/packages/patches/emacs-telega-path-placeholder.patch b/gnu/packages/patches/emacs-telega-path-placeholder.patch
new file mode 100644
index 0000000000..c20be36712
--- /dev/null
+++ b/gnu/packages/patches/emacs-telega-path-placeholder.patch
@@ -0,0 +1,44 @@
+From 865b8c553722a971c68742c2e849e41eb0e2360c Mon Sep 17 00:00:00 2001
+From: Zhu Zihao <all_but_last <at> 163.com>
+Date: Thu, 24 Jun 2021 23:43:50 +0800
+Subject: [PATCH] Replace code that search path with placeholder for
+ configuration.
+
+---
+ telega-server.el | 6 +-----
+ telega-util.el   | 2 +-
+ 2 files changed, 2 insertions(+), 6 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@")
+ 
+ (defun telega-server-version ()
+   "Return telega-server version."
+diff --git a/telega-util.el b/telega-util.el
+index 73a46b1..f53e20a 100644
+--- a/telega-util.el
++++ b/telega-util.el
+@@ -464,7 +464,7 @@ N can't be 0."
+ 
+ (defun telega-etc-file (filename)
+   "Return absolute path to FILENAME from etc/ directory in telega."
+-  (expand-file-name (concat "etc/" filename) telega--lib-directory))
++  (concat "@TELEGA_SHARE@" "/" filename))
+ 
+ (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.32.0

[0002-gnu-emacs-telega-Update-to-0.7.024.patch (text/x-patch, inline)]
From f0767bee6883a5b5f6e7b3956fb0a1f5003a5182 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:26:51 +0800
Subject: [PATCH 2/3] gnu: emacs-telega: Update to 0.7.024.

* gnu/packages/emacs-xyz.scm(emacs-telega): Update to 0.7.024.

Rewrite build recipe.
---
 gnu/packages/emacs-xyz.scm | 169 +++++++++++--------------------------
 1 file changed, 50 insertions(+), 119 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index ab5d0ed061..0535840293 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26065,125 +26065,56 @@ service, and connect it with Emacs via inter-process communication.")
     (license license:gpl3+)))
 
 (define-public emacs-telega
-  ;; This package has versions newer than indicated on MELPA.
-  ;; Get the current version from `telega-version` in telega.el.
-  ;; or by running M-x telega-version.
-  (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
-	(revision "1")
-	(version "0.7.1"))
-    (package
-      (name "emacs-telega")
-      (version (git-version version revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/zevlg/telega.el")
-               (commit commit)))
-         (sha256
-          (base32
-           "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
-         (patches (search-patches
-                   "emacs-telega-patch-server-functions.patch"
-                   "emacs-telega-test-env.patch"))
-         (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:modules ((guix build gnu-build-system)
-                    ((guix build emacs-build-system) #:prefix emacs:)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%gnu-build-system-modules
-                             (guix build emacs-build-system)
-                             (guix build emacs-utils))
-         #:test-target "test"
-         ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
-         ;; temporarily.
-         ;; #:make-flags (list "WITH_VOIP=t")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'prefix-patch
-             (lambda _
-               (substitute* "server/Makefile"
-                 (("CC=cc")
-                  ,(string-append "CC=" (cc-for-target)))
-                 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
-                  (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
-                                 "/bin"))
-                 ;; Manually invoke `run_tests.py` after install phase.
-                 (("python3 run_tests.py")
-                  ""))
-               #t))
-           (add-after 'unpack 'expand-load-path
-             (assoc-ref emacs:%standard-phases 'expand-load-path))
-           (add-after 'unpack 'patch-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Hard-code paths to `ffplay` and `ffmpeg`.
-               (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
-                                                "/bin/ffplay"))
-                     (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
-                                                "/bin/ffmpeg")))
-                 (substitute* "telega-ffplay.el"
-                   (("\\(executable-find \"ffplay\"\\)")
-                    (string-append
-                     "(and (file-executable-p \"" ffplay-bin "\")"
-                     "\"" ffplay-bin "\")"))
-                   (("\\(executable-find \"ffmpeg\"\\)")
-                    (string-append
-                     "(and (file-executable-p \"" ffmpeg-bin "\")"
-                     "\"" ffmpeg-bin "\")"))))
-               ;; This would push the "contrib" sources to the load path,
-               ;; but as contrib is not installed alongside telega, it does
-               ;; nothing.
-               (substitute* "telega.el"
-                 (("\\(push .* load-path\\)") ""))
-               #t))
-           ;; The server test suite has a hardcoded path.
-           ;; Reset this behavior to use the proper path.
-           (add-after 'unpack 'patch-test-suite
-             (lambda _
-               (substitute* "server/run_tests.py"
-                 (("~/.telega/telega-server")
-                  (string-append (assoc-ref %outputs "out")
-                                 "/bin/telega-server")))
-               #t))
-           (add-after 'install 'run-server-suite
-             (lambda _
-               (invoke "python3" "server/run_tests.py")
-               #t))
-           (delete 'configure)
-           (add-after 'expand-load-path 'emacs-install
-             (lambda args
-               (apply (assoc-ref emacs:%standard-phases 'install)
-                      #:include `("etc" ,@emacs:%default-include)
-                      args)))
-           (add-after 'emacs-install 'emacs-build
-             (assoc-ref emacs:%standard-phases 'build))
-           (add-after 'emacs-install 'emacs-make-autoloads
-             (assoc-ref emacs:%standard-phases 'make-autoloads)))))
-      (inputs
-       `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
-      (propagated-inputs
-       `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
-         ("emacs-company" ,emacs-company)
-         ("emacs-rainbow-identifiers"
-          ,emacs-rainbow-identifiers)
-         ("libwebp" ,libwebp))) ; sticker support.
-      (native-inputs
-       `(("tdlib" ,tdlib)
-         ;; Use Emacs with wide ints on 32-bit architectures.
-         ("emacs" ,(match (%current-system)
-                     ((or "i686-linux" "armhf-linux")
-                      emacs-wide-int)
-                     (_
-                      emacs)))
-         ("python" ,python)))
-      (synopsis "GNU Emacs client for the Telegram messenger")
-      (description
-       "Telega is a full-featured, unofficial GNU Emacs-based client for the
-Telegram messaging platform.")
-      (home-page "https://zevlg.github.io/telega.el/")
-      (license license:gpl3+))))
+  (package
+    (inherit emacs-telega-server)
+    (name "emacs-telega")
+    (build-system emacs-build-system)
+    (arguments
+     `(#:emacs ,(if (target-64bit?)
+                    emacs-minimal
+                    ;; Require wide-int support for 32-bit platform.
+                    emacs-wide-int)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "telega-server.el"
+               (("@TELEGA_SERVER_BIN@")
+                (string-append (assoc-ref inputs "emacs-telega-server")
+                               "/bin/telega-server")))
+             (substitute* "telega-util.el"
+               (("@TELEGA_SHARE@")
+                (string-append (assoc-ref outputs "out")
+                               "/share/emacs-telega")))))
+         (add-after 'install 'install-share-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (define install-plan
+               '("langs" "sounds" "emojis.alist"
+                 "verified.svg" "telega-logo.svg"))
+
+             (define prefix (string-append (assoc-ref outputs "out")
+                                                "/share/emacs-telega"))
+             (with-directory-excursion "etc"
+               (for-each (lambda (file)
+                           (if (file-is-directory? file)
+                               (let ((dest (string-append prefix "/" file)))
+                                 (copy-recursively file dest))
+                               (install-file file prefix)))
+                         install-plan))
+             #t)))))
+    (inputs `(("emacs-telega-server" ,emacs-telega-server)))
+    (native-inputs '())
+    (propagated-inputs
+     `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
+       ("emacs-company" ,emacs-company)
+       ("emacs-rainbow-identifiers" ,emacs-rainbow-identifiers)
+       ;; TODO: embbed references of following package into source file.
+       ("ffmpeg" ,ffmpeg)               ; GIF, video support.
+       ("libwebp" ,libwebp)             ; sticker support.
+       ))
+    (synopsis "GNU Emacs client for the Telegram messenger")
+    (description "Telega is a full-featured, unofficial GNU Emacs-based client
+for the Telegram messaging platform.")))
 
 (define-public emacs-telega-contrib
   (package/inherit emacs-telega
-- 
2.32.0

[0003-gnu-emacs-telega-contrib-Update-to-0.7.024.patch (text/x-patch, inline)]
From aad569dfce7a3223192cd34be30ff083a6962e55 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:29:30 +0800
Subject: [PATCH 3/3] gnu: emacs-telega-contrib: Update to 0.7.024.

* gnu/packages/emacs-xyz.scm(emacs-telega-contrib): Update to 0.7.024.

[arguments]<phases>: Back to root directory of build before phase
'install-license-files' to properly install licenses.
[propagated-inputs]: Add emacs-dashboard, emacs-transient.
---
 gnu/packages/emacs-xyz.scm | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0535840293..5fa0a7d60e 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26117,19 +26117,28 @@ service, and connect it with Emacs via inter-process communication.")
 for the Telegram messaging platform.")))
 
 (define-public emacs-telega-contrib
-  (package/inherit emacs-telega
+  (package
+    (inherit emacs-telega)
     (name "emacs-telega-contrib")
-    (build-system emacs-build-system)
     (arguments
      `(#:exclude '("telega-live-location.el")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'chdir
-           (lambda _ (chdir "contrib") #t)))))
+         (add-after 'unpack 'enter-subdirectory
+           (lambda _ (chdir "contrib") #t))
+         (add-before 'install-license-files 'leave-subdirectory
+           (lambda _ (chdir "..") #t)))))
+    (inputs '())
+    (native-inputs '())
     (propagated-inputs
-     `(("emacs-telega" ,emacs-telega)
-       ("emacs-alert" ,emacs-alert)
-       ("emacs-all-the-icons" ,emacs-all-the-icons)))))
+     `(("emacs-alert" ,emacs-alert)
+       ("emacs-all-the-icons" ,emacs-all-the-icons)
+       ("emacs-dashboard" ,emacs-dashboard)
+       ("emacs-telega" ,emacs-telega)
+       ("emacs-transient" ,emacs-transient)))
+    (synopsis "Contributed packages to Telega")
+    (description "Telega-contrib is a collection of third-party
+contributed packages to Telega.")))
 
 (define-public emacs-doom-modeline
   (package
-- 
2.32.0

[Message part 6 (text/plain, inline)]

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 25 Jun 2021 06:25:01 GMT) Full text and rfc822 format available.

Message #11 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Zhu Zihao <all_but_last <at> 163.com>, 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 25 Jun 2021 08:23:54 +0200
Am Freitag, den 25.06.2021, 14:02 +0800 schrieb Zhu Zihao:
> Update patches:
W.r.t. the propagation of ffmpeg and libwebp I don't think we'd want to
force either onto the user (particularly ffmpeg might collide with a
different version they've already installed).  If finding and replacing
all instances of "ffmpeg" with its full path is too broad, perhaps you
could add procedures that find it or replace instances of ffmpeg as a
binary with @ffmpeg@.  I think a variable or procedure called telega-
ffmpeg-command might even be acceptable by upstream and broader Emacs
standards.
If on the other hand you want the user's versions of those packages to
be the one that's used, simply don't propagate it.

Regards,
Leo





Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 25 Jun 2021 09:33:02 GMT) Full text and rfc822 format available.

Message #14 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>
Cc: 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 25 Jun 2021 17:31:55 +0800
[Message part 1 (text/plain, inline)]
Leo Prikler writes:

> Am Freitag, den 25.06.2021, 14:02 +0800 schrieb Zhu Zihao:
>> Update patches:
> W.r.t. the propagation of ffmpeg and libwebp I don't think we'd want to
> force either onto the user (particularly ffmpeg might collide with a
> different version they've already installed).  If finding and replacing
> all instances of "ffmpeg" with its full path is too broad, perhaps you
> could add procedures that find it or replace instances of ffmpeg as a
> binary with @ffmpeg@.  I think a variable or procedure called telega-
> ffmpeg-command might even be acceptable by upstream and broader Emacs
> standards.
> If on the other hand you want the user's versions of those packages to
> be the one that's used, simply don't propagate it.
>
> Regards,
> Leo

Good, I think I can just remove ffmpeg and libwebp, leave the choice to
user.

Another question is, the new version is 0.7.024, which is lesser than
0.7.1. could you give me some suggestions on the version number?
-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 25 Jun 2021 10:47:01 GMT) Full text and rfc822 format available.

Message #17 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Zhu Zihao <all_but_last <at> 163.com>
Cc: 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 25 Jun 2021 12:46:51 +0200
Am Freitag, den 25.06.2021, 17:31 +0800 schrieb Zhu Zihao:
> Leo Prikler writes:
> 
> > Am Freitag, den 25.06.2021, 14:02 +0800 schrieb Zhu Zihao:
> > > Update patches:
> > W.r.t. the propagation of ffmpeg and libwebp I don't think we'd
> > want to
> > force either onto the user (particularly ffmpeg might collide with
> > a
> > different version they've already installed).  If finding and
> > replacing
> > all instances of "ffmpeg" with its full path is too broad, perhaps
> > you
> > could add procedures that find it or replace instances of ffmpeg as
> > a
> > binary with @ffmpeg@.  I think a variable or procedure called
> > telega-
> > ffmpeg-command might even be acceptable by upstream and broader
> > Emacs
> > standards.
> > If on the other hand you want the user's versions of those packages
> > to
> > be the one that's used, simply don't propagate it.
> > 
> > Regards,
> > Leo
> 
> Good, I think I can just remove ffmpeg and libwebp, leave the choice
> to
> user.
> 
> Another question is, the new version is 0.7.024, which is lesser than
> 0.7.1. could you give me some suggestions on the version number?
Tough questions, you might want to ask upstream what their rationale is
on the leading 0 and whether they plan to use a version 24 that
supersedes it.  Given that the switch happened between 0.7.15 and
0.7.016, you might look there for indicators, but I'm also somewhat
tempted to just drop that 0.

Regards,
Leo





Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Sat, 26 Jun 2021 13:17:02 GMT) Full text and rfc822 format available.

Message #20 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>
Cc: 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Sat, 26 Jun 2021 21:16:34 +0800
[Message part 1 (text/plain, inline)]
Leo Prikler writes:

https://github.com/zevlg/telega.el/issues/297

Just ask developer of telega.

Seems that we'd better to let it downgrade :thinking:

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Mon, 28 Jun 2021 02:54:01 GMT) Full text and rfc822 format available.

Message #23 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>
Cc: 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Mon, 28 Jun 2021 10:53:00 +0800
[Message part 1 (text/plain, inline)]

[signature.asc (application/pgp-signature, inline)]
[0001-gnu-Add-emacs-telega-server.patch (text/x-patch, inline)]
From ffcd346a5d2a7b6fccfc56d16156b833bbd6c8bb Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:25:05 +0800
Subject: [PATCH 1/3] gnu: Add emacs-telega-server.

* gnu/packages/emacs-xyz.scm(emacs-telega-server): New variable.
* gnu/packages/patches/emacs-telega-path-placeholder.patch: New file.
* gnu/package/patches/emacs-telega-patch-server-functions.patch: Remove stale patch.
* gnu/local.mk(dist_patch_DATA): Update corresponding entries.
---
 gnu/local.mk                                  |  2 +-
 gnu/packages/emacs-xyz.scm                    | 55 ++++++++++++++++++-
 .../emacs-telega-patch-server-functions.patch | 31 -----------
 .../emacs-telega-path-placeholder.patch       | 44 +++++++++++++++
 4 files changed, 99 insertions(+), 33 deletions(-)
 delete mode 100644 gnu/packages/patches/emacs-telega-patch-server-functions.patch
 create mode 100644 gnu/packages/patches/emacs-telega-path-placeholder.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 509970f044..8f432ed326 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -989,7 +989,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch	\
   %D%/packages/patches/emacs-libgit-use-system-libgit2.patch    \
   %D%/packages/patches/emacs-source-date-epoch.patch		\
-  %D%/packages/patches/emacs-telega-patch-server-functions.patch	\
+  %D%/packages/patches/emacs-telega-path-placeholder.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
   %D%/packages/patches/enjarify-setup-py.patch			\
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index b84c0d6622..ab5d0ed061 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -81,7 +81,7 @@
 ;;; Copyright © 2020, 2021 Niklas Eklund <niklas.eklund <at> posteo.net>
 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98 <at> protonmail.com>
 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin <at> mailbox.org>
-;;; Copyright © 2020 Zhu Zihao <all_but_last <at> 163.com>
+;;; Copyright © 2020, 2021 Zhu Zihao <all_but_last <at> 163.com>
 ;;; Copyright © 2020 Adam Kandur <rndd <at> tuta.io>
 ;;; Copyright © 2020 Tim Howes <timhowes <at> lavabit.com>
 ;;; Copyright © 2020 Noah Landis <noahlandis <at> posteo.net>
@@ -144,6 +144,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages ebook)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
@@ -26011,6 +26012,58 @@ fish-completion.  It can be used in both Eshell and M-x shell.")
 other @code{helm-type-file} sources such as @code{helm-locate}.")
     (license license:gpl3+)))
 
+(define-public emacs-telega-server
+  (package
+    (name "emacs-telega-server")
+    (version "0.7.024")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zevlg/telega.el")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1ra04cp49zzx8vy8aswd00l46ixyc44sxh1s3nw880b4ywzxmc6j"))
+       (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
+     `(#: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* "Makefile"
+                 (("CC=cc") ,(string-append "CC=" (cc-for-target)))
+                 (("^(INSTALL_PREFIX=).*$" _all prefix)
+                  (string-append prefix out "/bin\n")))
+
+               (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+)))
+
 (define-public emacs-telega
   ;; This package has versions newer than indicated on MELPA.
   ;; Get the current version from `telega-version` in telega.el.
diff --git a/gnu/packages/patches/emacs-telega-patch-server-functions.patch b/gnu/packages/patches/emacs-telega-patch-server-functions.patch
deleted file mode 100644
index e3d49278d0..0000000000
--- a/gnu/packages/patches/emacs-telega-patch-server-functions.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Remove interactive build for telega-server, as it fails on Guix.
-Modify the `telega-server--find-bin' function to only use the version
-of telega-server installed by Guix.
-
-Created by Brett Gilio <brettg <at> gnu.org>
-
---- a/telega-server.el
-+++ b/telega-server.el
-@@ -113,7 +113,6 @@ If already deferring, then just executes the BODY."
- If BUILD-FLAGS is specified, then rebuild server without any
- queries using this flags for building, could be empty string.
- Otherwise query user about building flags."
--  (interactive)
-   (telega-test-env 'quiet)
-   (when (or build-flags
-             (y-or-n-p "Build `telega-server'? "))
-@@ -137,11 +136,8 @@ 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"))))
-+  (or (executable-find "telega-server")
-+      (error "`telega-server' not found in exec-path")))
- 
- (defun telega-server-version ()
-   "Return telega-server version."
-
diff --git a/gnu/packages/patches/emacs-telega-path-placeholder.patch b/gnu/packages/patches/emacs-telega-path-placeholder.patch
new file mode 100644
index 0000000000..c20be36712
--- /dev/null
+++ b/gnu/packages/patches/emacs-telega-path-placeholder.patch
@@ -0,0 +1,44 @@
+From 865b8c553722a971c68742c2e849e41eb0e2360c Mon Sep 17 00:00:00 2001
+From: Zhu Zihao <all_but_last <at> 163.com>
+Date: Thu, 24 Jun 2021 23:43:50 +0800
+Subject: [PATCH] Replace code that search path with placeholder for
+ configuration.
+
+---
+ telega-server.el | 6 +-----
+ telega-util.el   | 2 +-
+ 2 files changed, 2 insertions(+), 6 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@")
+ 
+ (defun telega-server-version ()
+   "Return telega-server version."
+diff --git a/telega-util.el b/telega-util.el
+index 73a46b1..f53e20a 100644
+--- a/telega-util.el
++++ b/telega-util.el
+@@ -464,7 +464,7 @@ N can't be 0."
+ 
+ (defun telega-etc-file (filename)
+   "Return absolute path to FILENAME from etc/ directory in telega."
+-  (expand-file-name (concat "etc/" filename) telega--lib-directory))
++  (concat "@TELEGA_SHARE@" "/" filename))
+ 
+ (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.32.0

[0002-gnu-emacs-telega-Update-to-0.7.024.patch (text/x-patch, inline)]
From e8d88e5b99b6136223a8be6e143bc91199cfd02f Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:26:51 +0800
Subject: [PATCH 2/3] gnu: emacs-telega: Update to 0.7.024.

* gnu/packages/emacs-xyz.scm(emacs-telega): Update to 0.7.024.

Rewrite build recipe.
---
 gnu/packages/emacs-xyz.scm | 165 +++++++++++--------------------------
 1 file changed, 46 insertions(+), 119 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index ab5d0ed061..dfbdb6b8f8 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26065,125 +26065,52 @@ service, and connect it with Emacs via inter-process communication.")
     (license license:gpl3+)))
 
 (define-public emacs-telega
-  ;; This package has versions newer than indicated on MELPA.
-  ;; Get the current version from `telega-version` in telega.el.
-  ;; or by running M-x telega-version.
-  (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
-	(revision "1")
-	(version "0.7.1"))
-    (package
-      (name "emacs-telega")
-      (version (git-version version revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/zevlg/telega.el")
-               (commit commit)))
-         (sha256
-          (base32
-           "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
-         (patches (search-patches
-                   "emacs-telega-patch-server-functions.patch"
-                   "emacs-telega-test-env.patch"))
-         (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:modules ((guix build gnu-build-system)
-                    ((guix build emacs-build-system) #:prefix emacs:)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%gnu-build-system-modules
-                             (guix build emacs-build-system)
-                             (guix build emacs-utils))
-         #:test-target "test"
-         ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
-         ;; temporarily.
-         ;; #:make-flags (list "WITH_VOIP=t")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'prefix-patch
-             (lambda _
-               (substitute* "server/Makefile"
-                 (("CC=cc")
-                  ,(string-append "CC=" (cc-for-target)))
-                 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
-                  (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
-                                 "/bin"))
-                 ;; Manually invoke `run_tests.py` after install phase.
-                 (("python3 run_tests.py")
-                  ""))
-               #t))
-           (add-after 'unpack 'expand-load-path
-             (assoc-ref emacs:%standard-phases 'expand-load-path))
-           (add-after 'unpack 'patch-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Hard-code paths to `ffplay` and `ffmpeg`.
-               (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
-                                                "/bin/ffplay"))
-                     (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
-                                                "/bin/ffmpeg")))
-                 (substitute* "telega-ffplay.el"
-                   (("\\(executable-find \"ffplay\"\\)")
-                    (string-append
-                     "(and (file-executable-p \"" ffplay-bin "\")"
-                     "\"" ffplay-bin "\")"))
-                   (("\\(executable-find \"ffmpeg\"\\)")
-                    (string-append
-                     "(and (file-executable-p \"" ffmpeg-bin "\")"
-                     "\"" ffmpeg-bin "\")"))))
-               ;; This would push the "contrib" sources to the load path,
-               ;; but as contrib is not installed alongside telega, it does
-               ;; nothing.
-               (substitute* "telega.el"
-                 (("\\(push .* load-path\\)") ""))
-               #t))
-           ;; The server test suite has a hardcoded path.
-           ;; Reset this behavior to use the proper path.
-           (add-after 'unpack 'patch-test-suite
-             (lambda _
-               (substitute* "server/run_tests.py"
-                 (("~/.telega/telega-server")
-                  (string-append (assoc-ref %outputs "out")
-                                 "/bin/telega-server")))
-               #t))
-           (add-after 'install 'run-server-suite
-             (lambda _
-               (invoke "python3" "server/run_tests.py")
-               #t))
-           (delete 'configure)
-           (add-after 'expand-load-path 'emacs-install
-             (lambda args
-               (apply (assoc-ref emacs:%standard-phases 'install)
-                      #:include `("etc" ,@emacs:%default-include)
-                      args)))
-           (add-after 'emacs-install 'emacs-build
-             (assoc-ref emacs:%standard-phases 'build))
-           (add-after 'emacs-install 'emacs-make-autoloads
-             (assoc-ref emacs:%standard-phases 'make-autoloads)))))
-      (inputs
-       `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
-      (propagated-inputs
-       `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
-         ("emacs-company" ,emacs-company)
-         ("emacs-rainbow-identifiers"
-          ,emacs-rainbow-identifiers)
-         ("libwebp" ,libwebp))) ; sticker support.
-      (native-inputs
-       `(("tdlib" ,tdlib)
-         ;; Use Emacs with wide ints on 32-bit architectures.
-         ("emacs" ,(match (%current-system)
-                     ((or "i686-linux" "armhf-linux")
-                      emacs-wide-int)
-                     (_
-                      emacs)))
-         ("python" ,python)))
-      (synopsis "GNU Emacs client for the Telegram messenger")
-      (description
-       "Telega is a full-featured, unofficial GNU Emacs-based client for the
-Telegram messaging platform.")
-      (home-page "https://zevlg.github.io/telega.el/")
-      (license license:gpl3+))))
+  (package
+    (inherit emacs-telega-server)
+    (name "emacs-telega")
+    (build-system emacs-build-system)
+    (arguments
+     `(#:emacs ,(if (target-64bit?)
+                    emacs-minimal
+                    ;; Require wide-int support for 32-bit platform.
+                    emacs-wide-int)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "telega-server.el"
+               (("@TELEGA_SERVER_BIN@")
+                (string-append (assoc-ref inputs "emacs-telega-server")
+                               "/bin/telega-server")))
+             (substitute* "telega-util.el"
+               (("@TELEGA_SHARE@")
+                (string-append (assoc-ref outputs "out")
+                               "/share/emacs-telega")))))
+         (add-after 'install 'install-share-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (define install-plan
+               '("langs" "sounds" "emojis.alist"
+                 "verified.svg" "telega-logo.svg"))
+
+             (define prefix (string-append (assoc-ref outputs "out")
+                                                "/share/emacs-telega"))
+             (with-directory-excursion "etc"
+               (for-each (lambda (file)
+                           (if (file-is-directory? file)
+                               (let ((dest (string-append prefix "/" file)))
+                                 (copy-recursively file dest))
+                               (install-file file prefix)))
+                         install-plan))
+             #t)))))
+    (inputs `(("emacs-telega-server" ,emacs-telega-server)))
+    (native-inputs '())
+    (propagated-inputs
+     `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
+       ("emacs-company" ,emacs-company)
+       ("emacs-rainbow-identifiers" ,emacs-rainbow-identifiers)))
+    (synopsis "GNU Emacs client for the Telegram messenger")
+    (description "Telega is a full-featured, unofficial GNU Emacs-based client
+for the Telegram messaging platform.")))
 
 (define-public emacs-telega-contrib
   (package/inherit emacs-telega
-- 
2.32.0

[0003-gnu-emacs-telega-contrib-Update-to-0.7.024.patch (text/x-patch, inline)]
From c2901b296be139a12ed0e94e7956706ec2a3243e Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last <at> 163.com>
Date: Fri, 25 Jun 2021 13:29:30 +0800
Subject: [PATCH 3/3] gnu: emacs-telega-contrib: Update to 0.7.024.

* gnu/packages/emacs-xyz.scm(emacs-telega-contrib): Update to 0.7.024.

[arguments]<phases>: Back to root directory of build before phase
'install-license-files' to properly install licenses.
[propagated-inputs]: Add emacs-dashboard, emacs-transient.
---
 gnu/packages/emacs-xyz.scm | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index dfbdb6b8f8..fbec1fda29 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26113,19 +26113,28 @@ service, and connect it with Emacs via inter-process communication.")
 for the Telegram messaging platform.")))
 
 (define-public emacs-telega-contrib
-  (package/inherit emacs-telega
+  (package
+    (inherit emacs-telega)
     (name "emacs-telega-contrib")
-    (build-system emacs-build-system)
     (arguments
      `(#:exclude '("telega-live-location.el")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'chdir
-           (lambda _ (chdir "contrib") #t)))))
+         (add-after 'unpack 'enter-subdirectory
+           (lambda _ (chdir "contrib") #t))
+         (add-before 'install-license-files 'leave-subdirectory
+           (lambda _ (chdir "..") #t)))))
+    (inputs '())
+    (native-inputs '())
     (propagated-inputs
-     `(("emacs-telega" ,emacs-telega)
-       ("emacs-alert" ,emacs-alert)
-       ("emacs-all-the-icons" ,emacs-all-the-icons)))))
+     `(("emacs-alert" ,emacs-alert)
+       ("emacs-all-the-icons" ,emacs-all-the-icons)
+       ("emacs-dashboard" ,emacs-dashboard)
+       ("emacs-telega" ,emacs-telega)
+       ("emacs-transient" ,emacs-transient)))
+    (synopsis "Contributed packages to Telega")
+    (description "Telega-contrib is a collection of third-party
+contributed packages to Telega.")))
 
 (define-public emacs-doom-modeline
   (package
-- 
2.32.0

[Message part 6 (text/plain, inline)]
Patches updated.

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Tue, 06 Jul 2021 03:05:02 GMT) Full text and rfc822 format available.

Message #26 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: 49219 <at> debbugs.gnu.org
Subject: Re: bug#49219: Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Tue, 06 Jul 2021 11:04:36 +0800
[Message part 1 (text/plain, inline)]
ping.

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Wed, 07 Jul 2021 13:53:01 GMT) Full text and rfc822 format available.

Message #29 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Giovanni Biscuolo <g <at> xelera.eu>
To: Zhu Zihao <all_but_last <at> 163.com>,
 Leo Prikler <leo.prikler <at> student.tugraz.at>
Cc: 49219 <at> debbugs.gnu.org
Subject: Re: [bug#49219] Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Wed, 07 Jul 2021 15:51:21 +0200
[Message part 1 (text/plain, inline)]
Hello Zhu,

thank you for your work on emacs-telega!

...sorry I'm late in this discussion.

Zhu Zihao <all_but_last <at> 163.com> writes:

> https://github.com/zevlg/telega.el/issues/297
>
> Just ask developer of telega.
>
> Seems that we'd better to let it downgrade :thinking:

for archival purposes, this is the comment [1] by Zajcev Evgeny:

--8<---------------cut here---------------start------------->8---

0.7.0XX is for stable telega from "releases" branch

0.7.XX is for bleading edge telega from "master" branch

We need a way to distinguish them, we use leading 0 right now

--8<---------------cut here---------------end--------------->8---

Also, the upstream README.md states:

--8<---------------cut here---------------start------------->8---

This project is developed on two primary branches. The 'releases' branch
is kept in compatibility with TDLib major releases. The 'master' branch
is for developmental purposes, and utilizes unstable features in TDLib.

--8<---------------cut here---------------end--------------->8---

As a general rule (AFAIU) Guix packages usually are based on stable
releases so probably we should always use <major>.<minor>.0<N> from now
on: WDYT?

In this case I'd add a comment before (version ...) to clarify this
numbering scheme, something like:

--8<---------------cut here---------------start------------->8---

(define-public emacs-telega-server
  (package
    (name "emacs-telega-server")
    ;; 0.7.0XX is for stable telega from "releases" branch
    ;; that is kept in compatibility with TDLib major releases
    (version "0.7.024")

--8<---------------cut here---------------end--------------->8---

Also, if you think it's useful in the future we could also add a
"emacs-telega-server-unstable" for testing bleading edge TDLib features.

WDYT?

I'll give your patch series a try if I find some time this week.

Thanks! Gio'


[1] https://github.com/zevlg/telega.el/issues/297#issuecomment-868992025

-- 
Giovanni Biscuolo

Xelera IT Infrastructures
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 09 Jul 2021 10:37:01 GMT) Full text and rfc822 format available.

Message #32 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: Giovanni Biscuolo <g <at> xelera.eu>
Cc: Leo Prikler <leo.prikler <at> student.tugraz.at>, 49219 <at> debbugs.gnu.org
Subject: Re: [bug#49219] Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 09 Jul 2021 18:36:42 +0800
[Message part 1 (text/plain, inline)]
Giovanni Biscuolo writes:

>
> Also, if you think it's useful in the future we could also add a
> "emacs-telega-server-unstable" for testing bleading edge TDLib features.
>
> WDYT?
>
> I'll give your patch series a try if I find some time this week.
>
> Thanks! Gio'
>
>
> [1] https://github.com/zevlg/telega.el/issues/297#issuecomment-868992025

I'm OK with it, maybe rename it to `emacs-telega-server-next`?

But I'm not sure Guix maintainer would accept it or not.

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#49219; Package guix-patches. (Fri, 09 Jul 2021 11:28:02 GMT) Full text and rfc822 format available.

Message #35 received at 49219 <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Zhu Zihao <all_but_last <at> 163.com>, Giovanni Biscuolo <g <at> xelera.eu>
Cc: 49219 <at> debbugs.gnu.org
Subject: Re: [bug#49219] Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 09 Jul 2021 13:27:18 +0200
Am Freitag, den 09.07.2021, 18:36 +0800 schrieb Zhu Zihao:
> Giovanni Biscuolo writes:
> 
> > Also, if you think it's useful in the future we could also add a
> > "emacs-telega-server-unstable" for testing bleading edge TDLib
> > features.
> > 
> > WDYT?
> > 
> > I'll give your patch series a try if I find some time this week.
> > 
> > Thanks! Gio'
> > 
> > 
> > [1] 
> > https://github.com/zevlg/telega.el/issues/297#issuecomment-868992025
> 
> I'm OK with it, maybe rename it to `emacs-telega-server-next`?
> 
> But I'm not sure Guix maintainer would accept it or not.
This probably depends on how often we'd have to bump TDLib to make this
meaningful.  "Major" release sounds like a 1.0 → 2.0 version bump,
which if "unstable" telega only depended on stuff introduced e.g. in
1.1 → 1.2 sounds a little too strict.  However, if unstable telega
means tailing arbitrary TDLib commits, I'd rather avoid doing that.

There's so far no precedent to worry about such things, though, so I'd
rather push the existing patch after some testing or an altered one if
problems are detected.  I haven't gotten to testing things myself
either, but given that we are one stable telega release behind, now
sounds like a good time to start doing that.  (Please pardon the
laziness on my part – I typically do lexical work before practical one
to allow myself to work on other patches and projects as well.)

Regards,
Leo





Reply sent to Leo Prikler <leo.prikler <at> student.tugraz.at>:
You have taken responsibility. (Fri, 09 Jul 2021 13:16:02 GMT) Full text and rfc822 format available.

Notification sent to Zhu Zihao <all_but_last <at> 163.com>:
bug acknowledged by developer. (Fri, 09 Jul 2021 13:16:02 GMT) Full text and rfc822 format available.

Message #40 received at 49219-done <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Zhu Zihao <all_but_last <at> 163.com>, Giovanni Biscuolo <g <at> xelera.eu>
Cc: 49219-done <at> debbugs.gnu.org
Subject: Re: [bug#49219] Acknowledgement ([PATCH]: Update emacs-telega.)
Date: Fri, 09 Jul 2021 15:15:32 +0200
Am Freitag, den 09.07.2021, 13:27 +0200 schrieb Leo Prikler:
> Am Freitag, den 09.07.2021, 18:36 +0800 schrieb Zhu Zihao:
> > Giovanni Biscuolo writes:
> > 
> > > Also, if you think it's useful in the future we could also add a
> > > "emacs-telega-server-unstable" for testing bleading edge TDLib
> > > features.
> > > 
> > > WDYT?
> > > 
> > > I'll give your patch series a try if I find some time this week.
> > > 
> > > Thanks! Gio'
> > > 
> > > 
> > > [1] 
> > > https://github.com/zevlg/telega.el/issues/297#issuecomment-868992025
> > 
> > I'm OK with it, maybe rename it to `emacs-telega-server-next`?
> > 
> > But I'm not sure Guix maintainer would accept it or not.
> This probably depends on how often we'd have to bump TDLib to make
> this
> meaningful.  "Major" release sounds like a 1.0 → 2.0 version bump,
> which if "unstable" telega only depended on stuff introduced e.g. in
> 1.1 → 1.2 sounds a little too strict.  However, if unstable telega
> means tailing arbitrary TDLib commits, I'd rather avoid doing that.
> 
> There's so far no precedent to worry about such things, though, so
> I'd
> rather push the existing patch after some testing or an altered one
> if
> problems are detected.  I haven't gotten to testing things myself
> either, but given that we are one stable telega release behind, now
> sounds like a good time to start doing that.  (Please pardon the
> laziness on my part – I typically do lexical work before practical
> one
> to allow myself to work on other patches and projects as well.)
> 
> Regards,
> Leo
After some testing, I've decided to push the current patch set, albeit
with some changes.  I redid my old hardcoding of ffmpeg and rephrased
the commit messages to be more explicit.  I also followed up with a
bump to 0.7.025.

There might still be some discussion to be had about versioning, but
for now I will close this bug.

Regards,
Leo





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 07 Aug 2021 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 263 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.