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>
This commit is contained in:
		
							parent
							
								
									ef6d3b6436
								
							
						
					
					
						commit
						7d80d79524
					
				
					 4 changed files with 207 additions and 0 deletions
				
			
		|  | @ -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
									
								
								gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
									
										
									
									
									
										Normal 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
									
								
								gnu/packages/patches/emacs-hyperbole-domainname.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								gnu/packages/patches/emacs-hyperbole-domainname.patch
									
										
									
									
									
										Normal 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
									
								
								gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
									
										
									
									
									
										Normal 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 | ||||
| 
 | ||||
		Reference in a new issue