aboutsummaryrefslogtreecommitdiff
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
parentef6d3b643689953b71fe103e8c6f520b54996f11 (diff)
downloadguix-7d80d795248b029183b27361e9ab4895079375f7.tar
guix-7d80d795248b029183b27361e9ab4895079375f7.tar.gz
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 6537216935..0247874c04 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -250,6 +250,74 @@ using geiser.")
(license license:bsd-3)
(home-page "https://github.com/xiaohanyu/ac-geiser"))))
+(define-public emacs-hyperbole
+ (package
+ (name "emacs-hyperbole")
+ (version "7.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://ftpmirror.gnu.org/hyperbole/"
+ "hyperbole-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0znsjhm0lmzpmkgfni4qzx4l6dp604bmrzp3mwxxax2v96wpwmcx"))
+ (patches
+ (search-patches
+ "emacs-hyperbole-do-not-check-dir.patch"
+ "emacs-hyperbole-domainname.patch"
+ "emacs-hyperbole-toggle-messaging.patch"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:include '("DEMO"
+ "DEMO-ROLO.otl"
+ "HY-ABOUT"
+ "\\.el$"
+ "\\.info$"
+ "\\.kotl$")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'make-info
+ (lambda _
+ (invoke "make" "info"))))))
+ (propagated-inputs `(("inetutils" ,inetutils)))
+ (home-page "https://www.gnu.org/software/hyperbole/")
+ (synopsis "The Everyday Hypertextual Information Manager")
+ (description
+ "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
+programmable hypertextual information management system implemented as a GNU
+Emacs package. It offers rapid views and interlinking of all kinds of textual
+information, utilizing Emacs for editing. It can dramatically increase your
+productivity and greatly reduce the number of keyboard/mouse keys you'll need
+to work efficiently. Hyperbole lets you:
+
+@itemize
+@item Quickly create hyperlink buttons either from the keyboard or by dragging
+between a source and destination window with a mouse button depressed. Later,
+activate buttons by pressing/clicking on them or by giving the name of the
+button.
+@item Activate many kinds of \"implicit buttons\" recognized by context within
+text buffers, e.g. URLs, grep output lines, and git commits. A single key or
+mouse button automatically does the right thing in dozens of contexts; just
+press and go.
+@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
+that all renumber automatically as any node or tree is moved in the outline.
+Each node also has a permanent hyperlink anchor that you can reference from
+any other node.
+@item Manage all your contacts quickly with hierarchical categories and embed
+hyperlinks within each entry. Or create an archive of documents with
+hierarchical entries and use the same search mechanism to quickly find any
+matching entry.
+@item Use single keys to easily manage your Emacs windows or frames and
+quickly retrieve saved window and frame configurations.
+@item Search for things in your current buffers, in a directory tree or across
+major web search engines with the touch of a few keys.
+@end itemize
+
+The common thread in all these features is making retrieval, management and
+display of information fast and easy. That is Hyperbole's purpose.")
+ (license license:gpl3+)))
+
(define-public emacs-paredit
(package
(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 0000000000..66c7a0fb08
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
@@ -0,0 +1,24 @@
+From 3016fbd61e47978be73bbbaf7a8c2709bec42066 Mon Sep 17 00:00:00 2001
+From: Joseph LaFreniere <joseph@lafreniere.xyz>
+Date: Fri, 12 Jul 2019 13:12:40 -0500
+Subject: [PATCH] Do not run hyperb:check-dir-user during initialization
+
+---
+ hyperbole.el | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/hyperbole.el b/hyperbole.el
+index 872dbaf..6edb2a7 100644
+--- a/hyperbole.el
++++ b/hyperbole.el
+@@ -653,7 +653,6 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
+ (interactive)
+ (message "Initializing Hyperbole...")
+ (run-hooks 'hyperbole-init-hook)
+- (hyperb:check-dir-user)
+ (or (stringp hyperb:user-email)
+ (setq hyperb:user-email
+ (or (and (boundp 'user-mail-address)
+--
+2.22.0
+
diff --git a/gnu/packages/patches/emacs-hyperbole-domainname.patch b/gnu/packages/patches/emacs-hyperbole-domainname.patch
new file mode 100644
index 0000000000..cf4b63b54b
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-domainname.patch
@@ -0,0 +1,29 @@
+From 17c87ac58ce6d475fa1987347fcb868ef7f75e40 Mon Sep 17 00:00:00 2001
+From: Joseph LaFreniere <joseph@lafreniere.xyz>
+Date: Sun, 2 Jun 2019 12:38:27 -0500
+Subject: [PATCH] Replace executable domainname with hostname
+
+Fixes build failure:
+> ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
+> patch-el-files: unable to locate "domainname"
+---
+ hypb.el | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/hypb.el b/hypb.el
+index 6abc17a..0332946 100644
+--- a/hypb.el
++++ b/hypb.el
+@@ -183,8 +183,7 @@ Global keymap is used unless optional KEYMAP is given."
+
+ (defun hypb:domain-name ()
+ "Returns current Internet domain name with '@' prepended or nil if none."
+- (let* ((dname-cmd (or (file-exists-p "/usr/bin/domainname")
+- (file-exists-p "/bin/domainname")))
++ (let* ((dname-cmd (file-exists-p "/bin/hostname"))
+ (dname (or (and (boundp 'message-user-fqdn) (stringp message-user-fqdn)
+ (string-match "\\." message-user-fqdn)
+ message-user-fqdn)
+--
+2.21.0
+
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 0000000000..ab66e1b389
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
@@ -0,0 +1,86 @@
+From 6d5c587ec719e3309077c7d637b03b13db65c047 Mon Sep 17 00:00:00 2001
+From: Joseph LaFreniere <joseph@lafreniere.xyz>
+Date: Fri, 12 Jul 2019 12:43:46 -0500
+Subject: [PATCH] Move definition of hyperbole-toggle-messaging to hsettings
+
+---
+ hsettings.el | 25 +++++++++++++++++++++++++
+ hyperbole.el | 26 --------------------------
+ 2 files changed, 25 insertions(+), 26 deletions(-)
+
+diff --git a/hsettings.el b/hsettings.el
+index 6cdd1b8..9632067 100644
+--- a/hsettings.el
++++ b/hsettings.el
+@@ -163,6 +163,31 @@ package to display search results."
+ search-term)))
+ (user-error "(Hyperbole): Invalid web search service `%s'" service-name))))
+
++;;;###autoload
++(defun hyperbole-toggle-messaging (&optional arg)
++ "Toggle Hyperbole support for explicit buttons in mail and news buffers.
++Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
++adds hooks (nil value) or removes them (t value).
++
++With optional prefix ARG > 0, enables support. If ARG <= 0,
++disables/inhibits support."
++ (interactive "P")
++ (setq inhibit-hyperbole-messaging (if (null arg)
++ (not inhibit-hyperbole-messaging)
++ (<= (prefix-numeric-value arg) 0)))
++ (if inhibit-hyperbole-messaging
++ (var:remove-all)
++ (var:append-all)
++ ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
++ ;; was nil.
++ (cond ((boundp 'hyperbole-loading))
++ ((not after-init-time)
++ (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
++ (t (load "hyperbole"))))
++ (if (called-interactively-p 'interactive)
++ (message "Hyperbole messaging button support is %s"
++ (if inhibit-hyperbole-messaging "disabled" "enabled"))))
++
+ (defcustom inhibit-hyperbole-messaging t
+ "*Determines whether Hyperbole supports explicit buttons in mail and news buffers.
+ The default of t means disable such support (work remains to
+diff --git a/hyperbole.el b/hyperbole.el
+index 4aa427d..872dbaf 100644
+--- a/hyperbole.el
++++ b/hyperbole.el
+@@ -121,32 +121,6 @@
+ t)))
+ (error "(Hyperbole): Startup failure: `hyperb:dir' must be manually added to `load-path' to fix.")))
+
+-;; This must be defined before the defcustom `inhbit-hyperbole-messaging'.
+-;;;###autoload
+-(defun hyperbole-toggle-messaging (&optional arg)
+- "Toggle Hyperbole support for explicit buttons in mail and news buffers.
+-Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
+-adds hooks (nil value) or removes them (t value).
+-
+-With optional prefix ARG > 0, enables support. If ARG <= 0,
+-disables/inhibits support."
+- (interactive "P")
+- (setq inhibit-hyperbole-messaging (if (null arg)
+- (not inhibit-hyperbole-messaging)
+- (<= (prefix-numeric-value arg) 0)))
+- (if inhibit-hyperbole-messaging
+- (var:remove-all)
+- (var:append-all)
+- ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
+- ;; was nil.
+- (cond ((boundp 'hyperbole-loading))
+- ((not after-init-time)
+- (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
+- (t (load "hyperbole"))))
+- (if (called-interactively-p 'interactive)
+- (message "Hyperbole messaging button support is %s"
+- (if inhibit-hyperbole-messaging "disabled" "enabled"))))
+-
+ (defgroup hyperbole-koutliner nil
+ "Hyperbole multi-level autonumbered outliner customizations."
+ :group 'hyperbole)
+--
+2.22.0
+