diff mbox series

[bug#39878] gnu: add emacs-bookmarks+

Message ID 85lfoiezni.fsf@disroot.org
State Accepted
Headers show
Series [bug#39878] gnu: add emacs-bookmarks+ | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Amar M. Singh March 3, 2020, 6:11 a.m. UTC
Add package emacs-bookmarks+.

Can someone help me with this build?  Bookmarks+ requiers
bookmarks+-mac.el to be loaded to be able to compile the other files.

Emacswiki: https://www.emacswiki.org/emacs/BookmarkPlus
Richer bookmarks. They record more. They are more accurate.

Thanks,
Amar

Comments

Oleg Pykhalov July 25, 2020, 7:49 p.m. UTC | #1
Hi,

So much time was passed, but maybe we could get this to work if the
package still helpful for Emacs users.

nly@disroot.org (Amar M. Singh) writes:

[…]

> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index be0e6a84c2..1ac5f77bb7 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -21536,3 +21536,39 @@ Values are stored in a directory in @code{user-emacs-directory}, using
>  one file per value.  This makes it easy to delete or remove unused
>  variables.")
>      (license license:gpl3+)))
> +
> +(define-public emacs-bookmark+
> +  (package
> +    (name "emacs-bookmark+")
> +    (version "2020.01.22")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (map (lambda (x)
> +                          (string-append
> +                           "https://www.emacswiki.org/emacs/download/" x))
> +                        `("bookmark+.el"
> +                          "bookmark+-mac.el"
> +                          "bookmark+-bmu.el"
> +                          "bookmark+-key.el"
> +                          "bookmark+-lit.el"
> +                          "bookmark+-1.el")))

‘bookmarks+-mac.el’ and other files are missing because this ‘(origin
...)’ returns only a single file:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build --no-grafts --no-offload 'emacs-bookmark+' -S
/gnu/store/p0lvca4zr1rh4bs9fd281hjh15ck28x8-bookmark+.el
--8<---------------cut here---------------end--------------->8---

You could use ‘(origin ...)’ inside ‘(inputs ...)’ to fetch all the
files, but in that case we could have an issue with more hashes as
described bellow.

To fix issue with hashes I think we could use url-fetch on
https://github.com/emacsmirror/emacswiki.org/blob/f2f216389097ada0172ebbfaaf594e397930682e/bookmark%2B.el
and other files.

> +              (sha256
> +               (base32
> +                "1dkpszmflik3yhv05w8rvi6vz1mzgapncb5y231r6mwy40rphyhi"))))

The hash was changed, even the version is the same.

> +    (build-system emacs-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-before 'build 'build-mac
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((out (assoc-ref outputs "out")))
> +               (invoke "emacs" "-Q" "--batch"
> +                       "--eval='(byte-compile-file \"bookmark+-mac.el\"'")))))))

‘emacs-build-system’ provides a byte compilation AFAIK, so don't need
this ‘(arguments ...)’.

> +    (home-page "https://www.emacswiki.org/emacs/bookmark%2b.el")
> +    (synopsis "Bookmark+: extensions to standard library `bookmark.el'")

Rather “@code{bookmark}”.

Oleg.
Amar M. Singh July 29, 2020, 1:32 a.m. UTC | #2
On July 25, 2020 7:49:37 PM UTC, Oleg Pykhalov <go.wigust@gmail.com> wrote:

> Hi,
> 
> So much time was passed, but maybe we could get this to work if the
> package still helpful for Emacs users.
> 
> nly@disroot.org (Amar M. Singh) writes:
> 
> […]
> 
>> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
>> index be0e6a84c2..1ac5f77bb7 100644
>> --- a/gnu/packages/emacs-xyz.scm
>> +++ b/gnu/packages/emacs-xyz.scm
>> @@ -21536,3 +21536,39 @@ Values are stored in a directory in
> 
> @code{user-emacs-directory}, using
>> one file per value. This makes it easy to delete or remove unused
>> variables.")
>> (license license:gpl3+)))
>> +
>> +(define-public emacs-bookmark+
>> + (package
>> + (name "emacs-bookmark+")
>> + (version "2020.01.22")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (map (lambda (x)
>> + (string-append
>> +
> 
> "https://www.emacswiki.org/emacs/download" x))
>> + `("bookmark+.el"
>> + "bookmark+-mac.el"
>> + "bookmark+-bmu.el"
>> + "bookmark+-key.el"
>> + "bookmark+-lit.el"
>> + "bookmark+-1.el")))
> 
> ‘bookmarks+-mac.el’ and other files are missing because this ‘(origin
> ...)’ returns only a single file:
> --8<---------------cut here---------------start------------->8---
> $ ./pre-inst-env guix build --no-grafts --no-offload 'emacs-bookmark+'
> -S
> /gnu/store/p0lvca4zr1rh4bs9fd281hjh15ck28x8-bookmark+.el
> --8<---------------cut here---------------end--------------->8---
> 
> You could use ‘(origin ...)’ inside ‘(inputs ...)’ to fetch all the
> files, but in that case we could have an issue with more hashes as
> described bellow.
> 
> To fix issue with hashes I think we could use url-fetch on
> https://github.com/emacsmirror/emacswiki.org/blob/f2f216389097ada0172ebbfaaf594e397930682e/bookmark+
> el
> and other files.
> 
>> + (sha256
>> + (base32
>> +
> 
> "1dkpszmflik3yhv05w8rvi6vz1mzgapncb5y231r6mwy40rphyhi"))))
> 
> The hash was changed, even the version is the same.
> 
>> + (build-system emacs-build-system)
>> + (arguments
>> + `(#:phases
>> + (modify-phases %standard-phases
>> + (add-before 'build 'build-mac
>> + (lambda* (#:key outputs #:allow-other-keys)
>> + (let ((out (assoc-ref outputs "out")))
>> + (invoke "emacs" "-Q" "--batch"
>> + "--eval='(byte-compile-file
> 
> \"bookmark+-mac.el\"'")))))))
> 
> ‘emacs-build-system’ provides a byte compilation AFAIK, so don't need
> this ‘(arguments ...)’.
> 
>> + (home-page "https://www.emacswiki.org/emacs/bookmark+.el")
>> + (synopsis "Bookmark+: extensions to standard library
> 
> `bookmark.el'")
> 
> Rather “@code{bookmark}”.
> 
> Oleg.

hello Oleg,

Thanks, great pointers. Clearly, a guix expert unlike me. But I don't think this needs to be
packaged. Don't want it.
You can close the issue.

Sorry, thanks.
Amar
diff mbox series

Patch

From e2b74ed78da1d24206847fe94fb885ff46cac563 Mon Sep 17 00:00:00 2001
From: Amar Singh <nly@disroot.org>
Date: Tue, 3 Mar 2020 10:55:16 +0530
Subject: [PATCH] gnu: Add emacs-bookmark+.

* gnu/packages/emacs-xyz.scm (emacs-bookmark+): New variable.
---
 gnu/packages/emacs-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index be0e6a84c2..1ac5f77bb7 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -21536,3 +21536,39 @@  Values are stored in a directory in @code{user-emacs-directory}, using
 one file per value.  This makes it easy to delete or remove unused
 variables.")
     (license license:gpl3+)))
+
+(define-public emacs-bookmark+
+  (package
+    (name "emacs-bookmark+")
+    (version "2020.01.22")
+    (source (origin
+              (method url-fetch)
+              (uri (map (lambda (x)
+                          (string-append
+                           "https://www.emacswiki.org/emacs/download/" x))
+                        `("bookmark+.el"
+                          "bookmark+-mac.el"
+                          "bookmark+-bmu.el"
+                          "bookmark+-key.el"
+                          "bookmark+-lit.el"
+                          "bookmark+-1.el")))
+              (sha256
+               (base32
+                "1dkpszmflik3yhv05w8rvi6vz1mzgapncb5y231r6mwy40rphyhi"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-mac
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "emacs" "-Q" "--batch"
+                       "--eval='(byte-compile-file \"bookmark+-mac.el\"'")))))))
+    (home-page "https://www.emacswiki.org/emacs/bookmark%2b.el")
+    (synopsis "Bookmark+: extensions to standard library `bookmark.el'")
+    (description "Bookmark+ builds on vanilla Emacs bookmarks.  An optional
+bookmark annotation is user-supplied text that is saved as part of the
+bookmark.  You can tag bookmarks.  You can have multiple bookmarks with the
+same name.  Bookmarks record the number of times you have visited them and the
+time of the last visit.")
+    (license license:gpl3+)))
-- 
2.25.1