Instead of relying on the built-in installer script to collect the nerd font
icons files (which is unstable since it downloads a blob from the master
branch of the same repository), we can propagate the `font-symbols-nerd'
package.
* gnu/packages/patches/emacs-nerd-icons-remove-installer.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register emacs-nerd-icons-remove-installer.patch.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons)
[source]: Apply emacs-nerd-icons-remove-installer.patch.
[propagated-inputs]: Add font-symbols-nerd.
Change-Id: I712fcfe67512837fa7db59546d7492c3a7755561
---
gnu/local.mk | 2 +
gnu/packages/emacs-xyz.scm | 4 ++
.../emacs-nerd-icons-remove-installer.patch | 59 +++++++++++++++++++
3 files changed, 65 insertions(+)
create mode 100644 gnu/packages/patches/emacs-nerd-icons-remove-installer.patch
Toggle diff (115 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 7f1006010b..0f99730a68 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -64,6 +64,7 @@
# Copyright © 2023 Herman Rimm <herman@rimm.ee>
# Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
# Copyright © 2024 David Elsing <david.elsing@posteo.net>
+# Copyright © 2024 normally_js <normally_js@posteo.net>
#
# This file is part of GNU Guix.
#
@@ -1985,6 +1986,7 @@ dist_patch_DATA = \
%D%/packages/patches/racket-rktio-bin-sh.patch \
%D%/packages/patches/racket-zuo-bin-sh.patch \
%D%/packages/patches/remake-impure-dirs.patch \
+ %D%/packages/patches/emacs-nerd-icons-remove-installer.patch \
%D%/packages/patches/restartd-update-robust.patch \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
%D%/packages/patches/rng-tools-revert-build-randstat.patch \
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index eadc8eeb67..4c0a7d815f 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -138,6 +138,7 @@
;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
;;; Copyright © 2024 dan <i@dan.games>
+;;; Copyright © 2024 normally_js <normally_js@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28906,12 +28907,15 @@ (define-public emacs-nerd-icons
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
+ (patches
+ (search-patches "emacs-nerd-icons-remove-installer.patch"))
(sha256
(base32
"0ggj6lm02m7nb5gxnqs2v2lkxsclml6kq176vam9qyg1fsm7yvdw"))))
(build-system emacs-build-system)
(arguments
(list #:include #~(cons "^data\\/" %default-include)))
+ (propagated-inputs (list font-symbols-nerd))
(synopsis "Library for easily using nerd font icons inside Emacs")
(description "Nerd-icons an alternative to all-the-icons. It works on both
GUI and terminal, and requires a nerd font installed on your system.")
diff --git a/gnu/packages/patches/emacs-nerd-icons-remove-installer.patch b/gnu/packages/patches/emacs-nerd-icons-remove-installer.patch
new file mode 100644
index 0000000000..1edc1fcd91
--- /dev/null
+++ b/gnu/packages/patches/emacs-nerd-icons-remove-installer.patch
@@ -0,0 +1,59 @@
+From d6e6f3bda3f7267e54be153d985f48accc8b21ae Mon Sep 17 00:00:00 2001
+From: normally_js <normally_js@posteo.net>
+Date: Thu, 21 Mar 2024 16:47:34 -0400
+Subject: [PATCH] Remove nerd-icons-install-fonts procedure.
+
+---
+ nerd-icons.el | 36 ------------------------------------
+ 1 file changed, 36 deletions(-)
+
+diff --git a/nerd-icons.el b/nerd-icons.el
+index 0b7b02d..a5e3d49 100644
+--- a/nerd-icons.el
++++ b/nerd-icons.el
+@@ -963,42 +963,6 @@ string."
+ (cons candidate-name candidate-icon)))
+ data)))
+
+-;;;###autoload
+-(defun nerd-icons-install-fonts (&optional pfx)
+- "Helper function to download and install the latests fonts based on OS.
+-The provided Nerd Font is Symbols Nerd Font Mono.
+-When PFX is non-nil, ignore the prompt and just install"
+- (interactive "P")
+- (when (or pfx (yes-or-no-p "This will download and install fonts, are you sure you want to do this?"))
+- (let* ((url-format "https://raw.githubusercontent.com/rainstormstudio/nerd-icons.el/main/fonts/%s")
+- (font-dest (cond
+- ;; Default Linux install directories
+- ((member system-type '(gnu gnu/linux gnu/kfreebsd))
+- (concat (or (getenv "XDG_DATA_HOME")
+- (concat (getenv "HOME") "/.local/share"))
+- "/fonts/"
+- nerd-icons-fonts-subdirectory))
+- ;; Default MacOS install directory
+- ((eq system-type 'darwin)
+- (concat (getenv "HOME")
+- "/Library/Fonts/"
+- nerd-icons-fonts-subdirectory))))
+- (known-dest? (stringp font-dest))
+- (font-dest (or font-dest (read-directory-name "Font installation directory: " "~/"))))
+-
+- (unless (file-directory-p font-dest) (mkdir font-dest t))
+-
+- (mapc (lambda (font)
+- (url-copy-file (format url-format font) (expand-file-name font font-dest) t))
+- nerd-icons-font-names)
+- (when known-dest?
+- (message "Fonts downloaded, updating font cache... <fc-cache -f -v> ")
+- (shell-command-to-string (format "fc-cache -f -v")))
+- (message "%s Successfully %s `nerd-icons' fonts to `%s'!"
+- (nerd-icons-wicon "nf-weather-stars" :v-adjust 0.0)
+- (if known-dest? "installed" "downloaded")
+- font-dest))))
+-
+ ;;;###autoload
+ (defun nerd-icons-insert (&optional arg glyph-set)
+ "Interactive icon insertion function.
+--
+2.41.0
+
--
2.41.0