Techioz Blog

Mac os BigSur での Libvmaf の brew Formula の変更方法

概要

mac OS BigSur に libvmaf 依存関係をインストールするときにエラーが発生します。

インストール時のエラーは次のとおりです。

brew install libvmaf

このエラーは、数式が次のコマンドを実行すると発生します。

system "ninja", "-vC", "build"

ただし、brew install libvmaf を使用すると、brew は元の式で再コンパイルされ、依然としてエラーが発生します。

ただし、プリコンパイルされたフォルダー (エラーのないフォルダー) を使用するように元の数式を変更することはできません。

元の libvmaf の式は次のとおりです。

class Libvmaf < Formula
  desc "Perceptual video quality assessment based on multi-method fusion"
  homepage "https://github.com/Netflix/vmaf"
  url "https://github.com/Netflix/vmaf/archive/refs/tags/v3.0.0.tar.gz"
  sha256 "7178c4833639e6b989ecae73131d02f70735fdb3fc2c7d84bc36c9c3461d93b1"
  license "BSD-2-Clause-Patent"

  bottle do
    sha256 cellar: :any,                 arm64_sonoma:   "bdc90ebc175c1f071be4ce895051586583177c3b1029817dc1078472a3da8261"
    sha256 cellar: :any,                 arm64_ventura:  "cc4765c5f45c5f87bcc42dba73fada9659abbf47bb9adb68bd406c26ac23380a"
    sha256 cellar: :any,                 arm64_monterey: "2c9b931ff4d557c6f731b1e834464f96e2620e77f1b857c2ec3061bb589e42da"
    sha256 cellar: :any,                 sonoma:         "a3ad27257fe552feb0d8ba3f2285feb7a6a772b845514e8d97bf0f9a9c0f1830"
    sha256 cellar: :any,                 ventura:        "28589a2b48fbd851749f57be19eda359e64056f289f899b80a52224dc3a6ad71"
    sha256 cellar: :any,                 monterey:       "bb97b9845e37e7090fecfff2e47c32c08c18ea4161da8d88134a7f7be4e07c22"
    sha256 cellar: :any_skip_relocation, x86_64_linux:   "5cb81b38b8c402fc0c12a8a639a7208406958d27a1f8a513c706a5636903cdc4"
  end

  depends_on "meson" => :build
  depends_on "ninja" => :build
  depends_on "vim" => :build

  on_intel do
    depends_on "nasm" => :build
  end

  def install
    Dir.chdir("libvmaf") do
      system "meson", *std_meson_args, "build"
      system "ninja", "-vC", "build"
      system "ninja", "-vC", "build", "install"
    end
    pkgshare.install "model"
  end

  test do
    (testpath/"test.c").write <<~EOS
      #include <libvmaf/libvmaf.h>
      int main() {
        return 0;
      }
    EOS

    flags = [
      "-I#{HOMEBREW_PREFIX}/include/libvmaf",
      "-L#{lib}",
    ]

    system ENV.cc, "test.c", "-o", "test", *flags
    system "./test"
  end
end


解決策

私自身もこれに取り組んでいます。どこかに重大な変更があったようです (おそらく vim のアップデートで?)。これに関係があると思います。 https://github.com/orgs/Homebrew/Discussions/5093

ああ、わかりました、修正できたと思います!!!!

したがって、これを修正するために 5 日前に公開されたパッチによって、この問題を引き起こしたのは vim の重大な変更でした。 0052.9.1。

vim –version を実行すると、バージョンの内訳が表示されます。 バージョン9.1 …… 含まれるパッチ: 1 ~ 50 <- 少なくとも 1 ~ 52 である必要があります。

brew update vim を実行すると、何らかの理由で brew が 9.1.0050 以降のパッチを取得できませんでした。 vim のリンクを解除してから最新バージョンをインストールすると、問題が解決されるはずです。走ってみる

brew unlink vim   
brew install --HEAD vim

次に、vim –version をもう一度確認すると、アップグレードされているはずです。次に、libvmaf を brew install すると、g2g になるはずです。