unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#36751] [PATCH] gnu: Add emacs-hyperbole.
@ 2019-07-21 19:36 LaFreniere, Joseph
  2019-07-23  4:33 ` LaFreniere, Joseph
  2020-06-20 19:33 ` bug#36751: Done: " Jakub Kądziołka
  0 siblings, 2 replies; 6+ messages in thread
From: LaFreniere, Joseph @ 2019-07-21 19:36 UTC (permalink / raw)
  To: 36751

[-- Attachment #1: Type: text/plain, Size: 53 bytes --]

Please see the attached patch.

--
Joseph LaFreniere

[-- Attachment #2: 0001-gnu-Add-emacs-hyperbole.patch --]
[-- Type: text/x-patch, Size: 10462 bytes --]

From f97a05a1abe561c31dee815a1f3623c85c025868 Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <joseph@lafreniere.xyz>
Date: Wed, 5 Jun 2019 01:27:49 -0500
Subject: [PATCH] gnu: Add emacs-hyperbole.

* gnu/packages/emacs-xyz.scm (emacs-hyperbole): Add at 7.0.3
---
 gnu/packages/emacs-xyz.scm                    | 63 ++++++++++++++
 .../emacs-hyperbole-do-not-check-dir.patch    | 24 ++++++
 .../patches/emacs-hyperbole-domainname.patch  | 29 +++++++
 .../emacs-hyperbole-toggle-messaging.patch    | 86 +++++++++++++++++++
 4 files changed, 202 insertions(+)
 create mode 100644 gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
 create mode 100644 gnu/packages/patches/emacs-hyperbole-domainname.patch
 create mode 100644 gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a808749444..7760b889aa 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -182,6 +182,69 @@ metadata.")
 (define-public geiser
   (deprecated-package "geiser" emacs-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 '("\\.el$" "\\.info$")
+       #: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
+
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#36751] [PATCH] gnu: Add emacs-hyperbole.
  2019-07-21 19:36 [bug#36751] [PATCH] gnu: Add emacs-hyperbole LaFreniere, Joseph
@ 2019-07-23  4:33 ` LaFreniere, Joseph
  2019-08-03  4:16   ` LaFreniere, Joseph
  2020-06-20 19:33 ` bug#36751: Done: " Jakub Kądziołka
  1 sibling, 1 reply; 6+ messages in thread
From: LaFreniere, Joseph @ 2019-07-23  4:33 UTC (permalink / raw)
  To: 36751

[-- Attachment #1: Type: text/plain, Size: 269 bytes --]

Please find a fixup commit attached.  The original patch omitted
several sample files;  whie those files are not necessary for the
functioning of Hyperbole itself, they are referred to in its menu system
and are valuable resources for new users.

-- 
Joseph LaFreniere

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-fixup-gnu-Add-emacs-hyperbole.patch --]
[-- Type: text/x-patch, Size: 960 bytes --]

From 4624f21921730162f64b3efd90969e64eb54a39a Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <joseph@lafreniere.xyz>
Date: Mon, 22 Jul 2019 23:18:48 -0500
Subject: [PATCH] fixup! gnu: Add emacs-hyperbole.

---
 gnu/packages/emacs-xyz.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 7760b889aa..df01e1d931 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -201,7 +201,12 @@ metadata.")
                 "emacs-hyperbole-toggle-messaging.patch"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:include '("\\.el$" "\\.info$")
+     `(#:include '("DEMO"
+                   "DEMO-ROLO.otl"
+                   "HY-ABOUT"
+                   "\\.el$"
+                   "\\.info$"
+                   "\\.kotl$")
        #:phases
        (modify-phases %standard-phases
          (add-before 'install 'make-info
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#36751] [PATCH] gnu: Add emacs-hyperbole.
  2019-07-23  4:33 ` LaFreniere, Joseph
@ 2019-08-03  4:16   ` LaFreniere, Joseph
  2019-08-06 11:32     ` swedebugia
  0 siblings, 1 reply; 6+ messages in thread
From: LaFreniere, Joseph @ 2019-08-03  4:16 UTC (permalink / raw)
  To: 36751

[-- Attachment #1: Type: text/plain, Size: 185 bytes --]

I have squashed the fixup into the original commit and rebased on 
current master (82ebb785f178d8618d39b658932d23d9f859fc91).  The 
resulting commit is attached.


--
Joseph LaFreniere

[-- Attachment #2: 0001-gnu-Add-emacs-hyperbole.patch --]
[-- Type: text/x-patch, Size: 10613 bytes --]

From 7bddfbe5cc24c5493b640d385901fa705cf06fcb Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <joseph@lafreniere.xyz>
Date: Wed, 5 Jun 2019 01:27:49 -0500
Subject: [PATCH] gnu: Add emacs-hyperbole.

* gnu/packages/emacs-xyz.scm (emacs-hyperbole): Add at 7.0.3
---
 gnu/packages/emacs-xyz.scm                    | 68 +++++++++++++++
 .../emacs-hyperbole-do-not-check-dir.patch    | 24 ++++++
 .../patches/emacs-hyperbole-domainname.patch  | 29 +++++++
 .../emacs-hyperbole-toggle-messaging.patch    | 86 +++++++++++++++++++
 4 files changed, 207 insertions(+)
 create mode 100644 gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
 create mode 100644 gnu/packages/patches/emacs-hyperbole-domainname.patch
 create mode 100644 gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 600d810bea..73f64ff4c2 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -183,6 +183,74 @@ metadata.")
 (define-public geiser
   (deprecated-package "geiser" emacs-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
+
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#36751] [PATCH] gnu: Add emacs-hyperbole.
  2019-08-03  4:16   ` LaFreniere, Joseph
@ 2019-08-06 11:32     ` swedebugia
  2020-05-11 23:16       ` Alex ter Weele
  0 siblings, 1 reply; 6+ messages in thread
From: swedebugia @ 2019-08-06 11:32 UTC (permalink / raw)
  To: LaFreniere, Joseph, 36751

Hi!

Thanks for the patch.

On 2019-08-03 06:16, LaFreniere, Joseph wrote:
> I have squashed the fixup into the original commit and rebased on 
> current master (82ebb785f178d8618d39b658932d23d9f859fc91).  The 
> resulting commit is attached.
>
>
> -- 
> Joseph LaFreniere

Git said this:

$ git apply 0001-gnu-Add-emacs-hyperbole.patch
0001-gnu-Add-emacs-hyperbole.patch:122: space before tab in indent.
          (or (and (boundp 'user-mail-address)
0001-gnu-Add-emacs-hyperbole.patch:123: trailing whitespace.
-- 
0001-gnu-Add-emacs-hyperbole.patch:149: trailing whitespace.

0001-gnu-Add-emacs-hyperbole.patch:155: space before tab in indent.
       (dname (or (and (boundp 'message-user-fqdn) (stringp 
message-user-fqdn)
0001-gnu-Add-emacs-hyperbole.patch:156: space before tab in indent.
               (string-match "\\." message-user-fqdn)
warning: squelched 10 whitespace errors
warning: 15 lines add whitespace errors.

---

Could you take a look at that?

Otherwise LGTM.

(I linted it, inspected the output in the store with 'ls -lR' and opened 
the info file)

-- 
Cheers Swedebugia

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#36751] [PATCH] gnu: Add emacs-hyperbole.
  2019-08-06 11:32     ` swedebugia
@ 2020-05-11 23:16       ` Alex ter Weele
  0 siblings, 0 replies; 6+ messages in thread
From: Alex ter Weele @ 2020-05-11 23:16 UTC (permalink / raw)
  To: swedebugia; +Cc: LaFreniere, Joseph, 36751

[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]

swedebugia <swedebugia@riseup.net> writes:

> Hi!
>
> Thanks for the patch.
>
> On 2019-08-03 06:16, LaFreniere, Joseph wrote:
>> I have squashed the fixup into the original commit and rebased on
>> current master (82ebb785f178d8618d39b658932d23d9f859fc91). The 
>> resulting commit is attached.
>>
>>
>> -- Joseph LaFreniere
>
> Git said this:
>
> $ git apply 0001-gnu-Add-emacs-hyperbole.patch
> 0001-gnu-Add-emacs-hyperbole.patch:122: space before tab in indent.
>      (or (and (boundp 'user-mail-address)
> 0001-gnu-Add-emacs-hyperbole.patch:123: trailing whitespace.
> -- 
> 0001-gnu-Add-emacs-hyperbole.patch:149: trailing whitespace.
>
> 0001-gnu-Add-emacs-hyperbole.patch:155: space before tab in indent.
>    (dname (or (and (boundp 'message-user-fqdn)
> (stringp message-user-fqdn)
> 0001-gnu-Add-emacs-hyperbole.patch:156: space before tab in indent.
>        (string-match "\\." message-user-fqdn)
> warning: squelched 10 whitespace errors
> warning: 15 lines add whitespace errors.
>
> ---
>
> Could you take a look at that?

I took a look at this. Regarding "trailing whitespace", I think
those are generated with trailing whitespace in them, so I think it is
normal that when adding .patch files to git that we'd see that
message. Regarding "space before tab in indent", a mixture of tabs and
spaces appears to be consistent with the Hyperbole codebase, so I think
that's ok too.

Attached is a patch that should apply against master. I have tested it a
bit, by going through some of the Hyperbole demo. Things like Koutliner
and Hycontrol seem to work, though I did not test all of Hyperbole's
many features.


[-- Attachment #2: 0001-gnu-Add-emacs-hyperbole.patch --]
[-- Type: text/x-patch, Size: 10644 bytes --]

From 96091af1de0ed8b91dc42e042ec9128c999d5016 Mon Sep 17 00:00:00 2001
From: "LaFreniere, Joseph" <joseph@lafreniere.xyz>
Date: Fri, 2 Aug 2019 23:16:19 -0500
Subject: [PATCH] gnu: Add emacs-hyperbole.

* gnu/packages/emacs-xyz.scm (emacs-hyperbole): Add at 7.0.3
---
 gnu/packages/emacs-xyz.scm                    | 68 +++++++++++++++
 .../emacs-hyperbole-do-not-check-dir.patch    | 24 ++++++
 .../patches/emacs-hyperbole-domainname.patch  | 29 +++++++
 .../emacs-hyperbole-toggle-messaging.patch    | 86 +++++++++++++++++++
 4 files changed, 207 insertions(+)
 create mode 100644 gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
 create mode 100644 gnu/packages/patches/emacs-hyperbole-domainname.patch
 create mode 100644 gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c472958886..bd312c2f87 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -243,6 +243,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
+
-- 
2.26.2


[-- Attachment #3: Type: text/plain, Size: 117 bytes --]


>
>
> Otherwise LGTM.
>
> (I linted it, inspected the output in the store with 'ls -lR' and
> opened the info file)

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#36751: Done: [PATCH] gnu: Add emacs-hyperbole.
  2019-07-21 19:36 [bug#36751] [PATCH] gnu: Add emacs-hyperbole LaFreniere, Joseph
  2019-07-23  4:33 ` LaFreniere, Joseph
@ 2020-06-20 19:33 ` Jakub Kądziołka
  1 sibling, 0 replies; 6+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 19:33 UTC (permalink / raw)
  To: 36751-done

[-- Attachment #1: Type: text/plain, Size: 81 bytes --]

Thanks for the patch, pushed as commit 7d80d795248b029183b27361e9ab4895079375f7.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-06-20 19:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-21 19:36 [bug#36751] [PATCH] gnu: Add emacs-hyperbole LaFreniere, Joseph
2019-07-23  4:33 ` LaFreniere, Joseph
2019-08-03  4:16   ` LaFreniere, Joseph
2019-08-06 11:32     ` swedebugia
2020-05-11 23:16       ` Alex ter Weele
2020-06-20 19:33 ` bug#36751: Done: " Jakub Kądziołka

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).