summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaFreniere, Joseph <joseph@lafreniere.xyz>2019-08-02 23:16:19 -0500
committerJakub Kądziołka <kuba@kadziolka.net>2020-06-20 21:18:24 +0200
commit7d80d795248b029183b27361e9ab4895079375f7 (patch)
tree4d31a2d6b27e070fabb2bca60ed934446487e241
parentgnu: Add hashcash. (diff)
downloadguix-7d80d795248b029183b27361e9ab4895079375f7.tar.gz
guix-7d80d795248b029183b27361e9ab4895079375f7.tar.bz2
guix-7d80d795248b029183b27361e9ab4895079375f7.tar.xz
gnu: Add emacs-hyperbole.
* gnu/packages/emacs-xyz.scm (emacs-hyperbole): Add at 7.0.3 Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net>
-rw-r--r--gnu/packages/emacs-xyz.scm68
-rw-r--r--gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch24
-rw-r--r--gnu/packages/patches/emacs-hyperbole-domainname.patch29
-rw-r--r--gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch86
4 files changed, 207 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 6537216..0247874 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -250,6 +250,74 @@ using geiser.")
250 (license license:bsd-3) 250 (license license:bsd-3)
251 (home-page "https://github.com/xiaohanyu/ac-geiser")))) 251 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
252 252
253(define-public emacs-hyperbole
254 (package
255 (name "emacs-hyperbole")
256 (version "7.0.3")
257 (source (origin
258 (method url-fetch)
259 (uri (string-append
260 "http://ftpmirror.gnu.org/hyperbole/"
261 "hyperbole-" version ".tar.gz"))
262 (sha256
263 (base32
264 "0znsjhm0lmzpmkgfni4qzx4l6dp604bmrzp3mwxxax2v96wpwmcx"))
265 (patches
266 (search-patches
267 "emacs-hyperbole-do-not-check-dir.patch"
268 "emacs-hyperbole-domainname.patch"
269 "emacs-hyperbole-toggle-messaging.patch"))))
270 (build-system emacs-build-system)
271 (arguments
272 `(#:include '("DEMO"
273 "DEMO-ROLO.otl"
274 "HY-ABOUT"
275 "\\.el$"
276 "\\.info$"
277 "\\.kotl$")
278 #:phases
279 (modify-phases %standard-phases
280 (add-before 'install 'make-info
281 (lambda _
282 (invoke "make" "info"))))))
283 (propagated-inputs `(("inetutils" ,inetutils)))
284 (home-page "https://www.gnu.org/software/hyperbole/")
285 (synopsis "The Everyday Hypertextual Information Manager")
286 (description
287 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
288programmable hypertextual information management system implemented as a GNU
289Emacs package. It offers rapid views and interlinking of all kinds of textual
290information, utilizing Emacs for editing. It can dramatically increase your
291productivity and greatly reduce the number of keyboard/mouse keys you'll need
292to work efficiently. Hyperbole lets you:
293
294@itemize
295@item Quickly create hyperlink buttons either from the keyboard or by dragging
296between a source and destination window with a mouse button depressed. Later,
297activate buttons by pressing/clicking on them or by giving the name of the
298button.
299@item Activate many kinds of \"implicit buttons\" recognized by context within
300text buffers, e.g. URLs, grep output lines, and git commits. A single key or
301mouse button automatically does the right thing in dozens of contexts; just
302press and go.
303@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
304that all renumber automatically as any node or tree is moved in the outline.
305Each node also has a permanent hyperlink anchor that you can reference from
306any other node.
307@item Manage all your contacts quickly with hierarchical categories and embed
308hyperlinks within each entry. Or create an archive of documents with
309hierarchical entries and use the same search mechanism to quickly find any
310matching entry.
311@item Use single keys to easily manage your Emacs windows or frames and
312quickly retrieve saved window and frame configurations.
313@item Search for things in your current buffers, in a directory tree or across
314major web search engines with the touch of a few keys.
315@end itemize
316
317The common thread in all these features is making retrieval, management and
318display of information fast and easy. That is Hyperbole's purpose.")
319 (license license:gpl3+)))
320
253(define-public emacs-paredit 321(define-public emacs-paredit
254 (package 322 (package
255 (name "emacs-paredit") 323 (name "emacs-paredit")
diff --git a/gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch b/gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
new file mode 100644
index 0000000..66c7a0f
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
@@ -0,0 +1,24 @@
1From 3016fbd61e47978be73bbbaf7a8c2709bec42066 Mon Sep 17 00:00:00 2001
2From: Joseph LaFreniere <joseph@lafreniere.xyz>
3Date: Fri, 12 Jul 2019 13:12:40 -0500
4Subject: [PATCH] Do not run hyperb:check-dir-user during initialization
5
6---
7 hyperbole.el | 1 -
8 1 file changed, 1 deletion(-)
9
10diff --git a/hyperbole.el b/hyperbole.el
11index 872dbaf..6edb2a7 100644
12--- a/hyperbole.el
13+++ b/hyperbole.el
14@@ -653,7 +653,6 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
15 (interactive)
16 (message "Initializing Hyperbole...")
17 (run-hooks 'hyperbole-init-hook)
18- (hyperb:check-dir-user)
19 (or (stringp hyperb:user-email)
20 (setq hyperb:user-email
21 (or (and (boundp 'user-mail-address)
22--
232.22.0
24
diff --git a/gnu/packages/patches/emacs-hyperbole-domainname.patch b/gnu/packages/patches/emacs-hyperbole-domainname.patch
new file mode 100644
index 0000000..cf4b63b
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-domainname.patch
@@ -0,0 +1,29 @@
1From 17c87ac58ce6d475fa1987347fcb868ef7f75e40 Mon Sep 17 00:00:00 2001
2From: Joseph LaFreniere <joseph@lafreniere.xyz>
3Date: Sun, 2 Jun 2019 12:38:27 -0500
4Subject: [PATCH] Replace executable domainname with hostname
5
6Fixes build failure:
7> ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
8> patch-el-files: unable to locate "domainname"
9---
10 hypb.el | 3 +--
11 1 file changed, 1 insertion(+), 2 deletions(-)
12
13diff --git a/hypb.el b/hypb.el
14index 6abc17a..0332946 100644
15--- a/hypb.el
16+++ b/hypb.el
17@@ -183,8 +183,7 @@ Global keymap is used unless optional KEYMAP is given."
18
19 (defun hypb:domain-name ()
20 "Returns current Internet domain name with '@' prepended or nil if none."
21- (let* ((dname-cmd (or (file-exists-p "/usr/bin/domainname")
22- (file-exists-p "/bin/domainname")))
23+ (let* ((dname-cmd (file-exists-p "/bin/hostname"))
24 (dname (or (and (boundp 'message-user-fqdn) (stringp message-user-fqdn)
25 (string-match "\\." message-user-fqdn)
26 message-user-fqdn)
27--
282.21.0
29
diff --git a/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch b/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
new file mode 100644
index 0000000..ab66e1b
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
@@ -0,0 +1,86 @@
1From 6d5c587ec719e3309077c7d637b03b13db65c047 Mon Sep 17 00:00:00 2001
2From: Joseph LaFreniere <joseph@lafreniere.xyz>
3Date: Fri, 12 Jul 2019 12:43:46 -0500
4Subject: [PATCH] Move definition of hyperbole-toggle-messaging to hsettings
5
6---
7 hsettings.el | 25 +++++++++++++++++++++++++
8 hyperbole.el | 26 --------------------------
9 2 files changed, 25 insertions(+), 26 deletions(-)
10
11diff --git a/hsettings.el b/hsettings.el
12index 6cdd1b8..9632067 100644
13--- a/hsettings.el
14+++ b/hsettings.el
15@@ -163,6 +163,31 @@ package to display search results."
16 search-term)))
17 (user-error "(Hyperbole): Invalid web search service `%s'" service-name))))
18
19+;;;###autoload
20+(defun hyperbole-toggle-messaging (&optional arg)
21+ "Toggle Hyperbole support for explicit buttons in mail and news buffers.
22+Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
23+adds hooks (nil value) or removes them (t value).
24+
25+With optional prefix ARG > 0, enables support. If ARG <= 0,
26+disables/inhibits support."
27+ (interactive "P")
28+ (setq inhibit-hyperbole-messaging (if (null arg)
29+ (not inhibit-hyperbole-messaging)
30+ (<= (prefix-numeric-value arg) 0)))
31+ (if inhibit-hyperbole-messaging
32+ (var:remove-all)
33+ (var:append-all)
34+ ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
35+ ;; was nil.
36+ (cond ((boundp 'hyperbole-loading))
37+ ((not after-init-time)
38+ (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
39+ (t (load "hyperbole"))))
40+ (if (called-interactively-p 'interactive)
41+ (message "Hyperbole messaging button support is %s"
42+ (if inhibit-hyperbole-messaging "disabled" "enabled"))))
43+
44 (defcustom inhibit-hyperbole-messaging t
45 "*Determines whether Hyperbole supports explicit buttons in mail and news buffers.
46 The default of t means disable such support (work remains to
47diff --git a/hyperbole.el b/hyperbole.el
48index 4aa427d..872dbaf 100644
49--- a/hyperbole.el
50+++ b/hyperbole.el
51@@ -121,32 +121,6 @@
52 t)))
53 (error "(Hyperbole): Startup failure: `hyperb:dir' must be manually added to `load-path' to fix.")))
54
55-;; This must be defined before the defcustom `inhbit-hyperbole-messaging'.
56-;;;###autoload
57-(defun hyperbole-toggle-messaging (&optional arg)
58- "Toggle Hyperbole support for explicit buttons in mail and news buffers.
59-Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
60-adds hooks (nil value) or removes them (t value).
61-
62-With optional prefix ARG > 0, enables support. If ARG <= 0,
63-disables/inhibits support."
64- (interactive "P")
65- (setq inhibit-hyperbole-messaging (if (null arg)
66- (not inhibit-hyperbole-messaging)
67- (<= (prefix-numeric-value arg) 0)))
68- (if inhibit-hyperbole-messaging
69- (var:remove-all)
70- (var:append-all)
71- ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
72- ;; was nil.
73- (cond ((boundp 'hyperbole-loading))
74- ((not after-init-time)
75- (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
76- (t (load "hyperbole"))))
77- (if (called-interactively-p 'interactive)
78- (message "Hyperbole messaging button support is %s"
79- (if inhibit-hyperbole-messaging "disabled" "enabled"))))
80-
81 (defgroup hyperbole-koutliner nil
82 "Hyperbole multi-level autonumbered outliner customizations."
83 :group 'hyperbole)
84--
852.22.0
86