[PATCH emacs-team 0/2] gnu: emacs-nerd-icons: Patch out installer.

  • Open
  • quality assurance status badge
Details
One participant
  • normally_js
Owner
unassigned
Submitted by
normally_js
Severity
normal
N
N
normally_js wrote on 21 Mar 22:36 +0100
(address . guix-patches@gnu.org)(name . normally_js)(address . normally_js@posteo.net)
cover.1711056678.git.normally_js@posteo.net
Related to #67983, this patchset removes the unstable install script from the
`emacs-nerd-icons' package to instead propagate the symbols nerd font from
Guix itself.

normally_js (2):
gnu: Add font-symbols-nerd.
gnu: emacs-nerd-icons: Patch out installer.

gnu/local.mk | 2 +
gnu/packages/emacs-xyz.scm | 4 ++
gnu/packages/fonts.scm | 24 ++++++++
.../emacs-nerd-icons-remove-installer.patch | 59 +++++++++++++++++++
4 files changed, 89 insertions(+)
create mode 100644 gnu/packages/patches/emacs-nerd-icons-remove-installer.patch


base-commit: d67e4f0f9b10c7ddac8fb0ca68cbf1d6ad0a6e5d
--
2.41.0
N
N
normally_js wrote on 21 Mar 22:37 +0100
[PATCH 2/2] gnu: emacs-nerd-icons: Patch out installer.
(address . 69933@debbugs.gnu.org)(name . normally_js)(address . normally_js@posteo.net)
3412014f759a856f5e3b571c4229a15bde177882.1711056678.git.normally_js@posteo.net
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
N
N
normally_js wrote on 21 Mar 22:37 +0100
[PATCH 1/2] gnu: Add font-symbols-nerd.
(address . 69933@debbugs.gnu.org)(name . normally_js)(address . normally_js@posteo.net)
af161606076bc2913c74eff2731a3506cb0b9d78.1711056678.git.normally_js@posteo.net
* gnu/packages/fonts.scm (font-symbols-nerd): New variable.

Change-Id: I9ce3b60a775bffeff8ca3a9ebbd90f66ebf614ff
---
gnu/packages/fonts.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 9ec722c19c..7ab576b506 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -60,6 +60,7 @@
;;; Copyright © 2023 chris <chris@bumblehead.com>
;;; Copyright © 2023, 2024 Luis Felipe López Acevedo <sirgazil@zoho.com>
;;; Copyright © 2024 Christina O'Donnell <cdo@mutix.org>
+;;; Copyright © 2024 normally_js <normally_js@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3578,6 +3579,29 @@ (define-public font-scientifica
Most characters are just 4px wide, which is brilliant for low dpi(90-120) displays.")
(license license:silofl1.1)))
+(define-public font-symbols-nerd
+ (package
+ (name "font-symbols-nerd")
+ (version "3.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ryanoasis/nerd-fonts/releases/download/v"
+ version
+ "/NerdFontsSymbolsOnly.zip"))
+ (sha256
+ (base32 "0xka49qk3r5m3jgpk3fi9b7j593fflg287ck99k12p8czqz62r4c"))))
+ (build-system font-build-system)
+ (home-page "https://www.nerdfonts.com/")
+ (synopsis "Nerd Font symbols standalone package")
+ (description
+ "This package provides just the Nerd Font icons that can be used to patch
+fonts for icon support or provide glyph support to user interfaces. It
+provides a high number of glyphs in addition to those found in 'iconic' fonts
+like Font Awesome.")
+ (license license:expat)))
+
(define-public font-tuffy
(package
(name "font-tuffy")
--
2.41.0
?