Browse Source

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>
gn-latest-20200725
LaFreniere, Joseph 2 years ago
committed by Jakub Kądziołka
parent
commit
7d80d79524
No known key found for this signature in database GPG Key ID: E315A75846131564
4 changed files with 207 additions and 0 deletions
  1. +68
    -0
      gnu/packages/emacs-xyz.scm
  2. +24
    -0
      gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
  3. +29
    -0
      gnu/packages/patches/emacs-hyperbole-domainname.patch
  4. +86
    -0
      gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch

+ 68
- 0
gnu/packages/emacs-xyz.scm View File

@ -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")


+ 24
- 0
gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch View File

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

+ 29
- 0
gnu/packages/patches/emacs-hyperbole-domainname.patch View File

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

+ 86
- 0
gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch View File

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

Loading…
Cancel
Save