guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#67983] built-in downloader


From: Jaeme Sifat
Subject: [bug#67983] built-in downloader
Date: Sun, 21 Jan 2024 12:25:32 -0500
User-agent: Mozilla Thunderbird

On 1/21/24 03:29, Liliana Marie Prikler wrote:

Am Samstag, dem 20.01.2024 um 18:51 -0500 schrieb Jaeme Sifat:
Hi, This is just a friendly bump for my patchset to add nerd font
packages to Emacs. There has been no activity on this thread for
almost a month regarding the new patches.
I don't see how "a built-in downloader" fixes the issues I've pointed
out.  Rather, unless this downloader only picks free fonts, it might
well violate the FSDG.  I think we'd do well in substitute*-ing the
nerd fonts where needed.

Cheers

On closer inspection, The built-in downloader for `nerd-icons.el' is this procedure.

--8<---------------cut here---------------start------------->8---

;;;###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))))

--8<---------------cut here---------------end--------------->8---

The provided font is Symbols Nerd Font Mono, which is distributed under the 
expat license.
However, I agree that this built in downloader has the chance of violating the 
FSDG sometime in the future
since it points to the main branch of the repo. It [the nerd icons repository] 
also redistributes the nerd icons font
without the respective license notice.

I think we'd do well in substitute*-ing the
nerd fonts where needed.

I agree, the much better solution would be to create a patch that removes this 
crude built-in downloader and instead uses Guix for
the nerd icons. So I'm going to send patches that 1. removes the built-in font 
downloader for `emacs-nerd-icons' and 2.
Adds the nerd icons font to Emacs (licensed under expat) and 3. Adds that icon 
font as a propagated input to `emacs-nerd-icons'

As a note I'm surprised that `emacs-nerd-icons' managed to be merged into 
master as it seems to be the main culprit.
Maybe we should remove it for the sake of consistency until this fix is made? 
I'm willing to send a revised patchset
that contains all the emacs nerd font packages + compliance patches with the 
FSDG.

I'm going to see what I can do, thank you for your patience.

---
Jaeme







reply via email to

[Prev in Thread] Current Thread [Next in Thread]