Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation of fonts from .exe (MS TTF fonts) fails #71

Open
6 tasks done
breml opened this issue Jan 11, 2025 · 0 comments
Open
6 tasks done

Installation of fonts from .exe (MS TTF fonts) fails #71

breml opened this issue Jan 11, 2025 · 0 comments

Comments

@breml
Copy link

breml commented Jan 11, 2025

General troubleshooting steps

Description of issue

When I try to install fonts, which are contained in an .exe file, like the MS TTF fonts, for example Arial, this fails with the following error:

/tmp/font-arial-20250111-147200-nhi2ku
Error: An exception occurred within a child process:
  TypeError: no implicit conversion of nil into String

After some debugging, I found, that the arial32.exe file is not extracted and those the .TTF files are not present in the temporary folder. With the following additions to the formula, the installation is successful for me:

  class FontArial < Formula
    desc "Arial font"
    homepage "https://sourceforge.net/projects/corefonts/files/the%20fonts/final/"
    head "https://downloads.sourceforge.net/corefonts/arial32.exe"
+   depends_on "cabextract" => :build

    def install
+     system "cabextract", "arial32.exe"
      (share/"fonts").install Dir.glob("./**/Arial.TTF")[0]
      (share/"fonts").install Dir.glob("./**/Arialbd.TTF")[0]
      (share/"fonts").install Dir.glob("./**/Arialbi.TTF")[0]
      (share/"fonts").install Dir.glob("./**/Ariali.TTF")[0]
    end

    test do
      assert_path_exists share/"fonts"
    end
  end

Output of your command with --verbose --debug

$ brew install --verbose --debug --HEAD --force font-arial
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb (Formulary::FromNameLoader): loading font-arial
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb (Formulary::FromNameLoader): loading font-arial
==> Fetching homebrew/linux-fonts/font-arial
==> Downloading https://downloads.sourceforge.net/corefonts/arial32.exe
/usr/bin/env /var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Linuxbrew/4.4.15\ \(Linux\;\ x86_64\ Bluefin-dx\ 41\ \(FROM\ Fedora\ Silverblue\)\)\ curl/8.9.1 --header Accept-Language:\ en --retry 3 -V
/usr/bin/env /var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Linuxbrew/4.4.15\ \(Linux\;\ x86_64\ Bluefin-dx\ 41\ \(FROM\ Fedora\ Silverblue\)\)\ curl/8.9.1 --header Accept-Language:\ en --retry 3 --fail --location --silent --head https://downloads.sourceforge.net/corefonts/arial32.exe
Already downloaded: /var/home/lubr/.cache/Homebrew/downloads/591a954a9144940e6043df922d9c9a9436ba3f24256274676d78e3edc1a92fc3--arial32.exe
==> Verifying checksum for '591a954a9144940e6043df922d9c9a9436ba3f24256274676d78e3edc1a92fc3--arial32.exe'
Warning: Cannot verify integrity of '591a954a9144940e6043df922d9c9a9436ba3f24256274676d78e3edc1a92fc3--arial32.exe'.
No checksum was provided.
For your reference, the checksum is:
  sha256 "85297a4d146e9c87ac6f74822734bdee5f4b2a722d7eaa584b7f2cbf76f478f6"
==> Installing font-arial from homebrew/linux-fonts
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb (Formulary::FromTapLoader): loading homebrew/linux-fonts/font-arial
/usr/bin/env /var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/shared/git --version
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromPathLoader): loading /var/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-linux-fonts/Formula/font-arial.rb
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading gcc@11
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading binutils
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading make
/usr/bin/env /var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/shared/git --version
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading gcc
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading gcc@14
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading gcc
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromAPILoader): loading gcc@14
cp -p /var/home/lubr/.cache/Homebrew/downloads/591a954a9144940e6043df922d9c9a9436ba3f24256274676d78e3edc1a92fc3--arial32.exe /tmp/font-arial-20250111-147200-nhi2ku/arial32.exe
==> Temporary files retained at:
/tmp/font-arial-20250111-147200-nhi2ku
Error: An exception occurred within a child process:
  TypeError: no implicit conversion of nil into String
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:113:in `basename'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:113:in `block in install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:94:in `each'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:94:in `install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-linux-fonts/Formula/font-arial.rb:7:in `install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/debrew.rb:15:in `block in install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/debrew.rb:86:in `debrew'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/debrew.rb:15:in `install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb:179:in `block (3 levels) in install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/kernel.rb:539:in `with_env'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb:139:in `block (2 levels) in install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:1623:in `block in brew'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:3347:in `block (2 levels) in stage'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/kernel.rb:539:in `with_env'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:3346:in `block in stage'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/resource.rb:114:in `block (2 levels) in unpack'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/download_strategy.rb:117:in `chdir'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/download_strategy.rb:102:in `stage'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/resource.rb:110:in `block in unpack'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/mktemp.rb:90:in `block in run'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/mktemp.rb:90:in `chdir'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/mktemp.rb:90:in `run'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/resource.rb:237:in `stage_resource'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/resource.rb:109:in `unpack'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/resource.rb:83:in `stage'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/3.3.0/forwardable.rb:240:in `stage'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:3324:in `stage'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/formula.rb:1616:in `brew'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb:133:in `block in install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/kernel.rb:539:in `with_env'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb:125:in `install'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb:232:in `<main>'

Output of brew cask doctor

(I think, these instructions are no longer valid, but I provide the output anyway).

$ brew cask doctor
Error: `brew cask` is no longer a `brew` command. Use `brew <command> --cask` instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant