[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#49219] Acknowledgement ([PATCH]: Update emacs-telega.)
From: |
Zhu Zihao |
Subject: |
[bug#49219] Acknowledgement ([PATCH]: Update emacs-telega.) |
Date: |
Fri, 25 Jun 2021 14:02:02 +0800 |
User-agent: |
mu4e 1.4.15; emacs 27.2 |
Update patches:
signature.asc
Description: PGP signature
>From ffcd346a5d2a7b6fccfc56d16156b833bbd6c8bb Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@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@posteo.net>
;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
-;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2020, 2021 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
;;; Copyright © 2020 Noah Landis <noahlandis@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@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@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
>From f0767bee6883a5b5f6e7b3956fb0a1f5003a5182 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@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
>From aad569dfce7a3223192cd34be30ff083a6962e55 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@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
--
Retrieve my PGP public key:
gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F
Zihao