ごんぢくじょう -- `invalid 'depends_on macos' value: ":lion"`って何だよっ!

世の中,自分のあずかり知らぬところで,全ては動いているんだな,て話.

https://splhack.github.io/macvim-kaoriya/macvim-kaoriya.jpg

夜中,訳あって*1強行に踏み切ったOSクリーンインストール
そこからの環境構築作業の中で,2つのエラーに泣かされることに.

いずれもHomebrewまわり.

駆け逃げして寝ちゃおうと思っていた中での出来事だっただけに,何気に憔悴させられ,
今後また同じような目にあったら嫌すぎると言うことで,手続きのメモを残しておこうと.

エラーの結果,採った処置の流れ.

先述の通り2つあって,ひとつは,Homebrew-Caskで使うCaskを変更する,ということをします.:

% #
% # MacVim Kaoriyaをインストール
% #
% brew tap woowee/mycask
% brew install my-macvim-kaoriya

MacVim-Kaoriyaのインストールのために導入させて頂いてきたcaskを,delphinus/homebrew-macvim-kaoriyaから,自前のものに切り替えました.

もうひとつ.:

% #
% # Python3のバージョンを3.6.4にする
% #
% cd "$(brew --repository)/Library/Taps/homebrew/homebrew-core/Formula/"
% git fetch --unshallow
% brew log python --oneline | grep 3.6.4
% git checkout 6e3f70c43a python.rb
% brew edit python3
% # ← *** ここで,開いたpythonのformulaを変更し,保存.***
% brew uninstall --force python
% HOMEBREW_NO_AUTO_UPDATE=1 brew install --ignore-dependencies python
% git reset HEAD
% git checkout .

ポイントは,brew editの手続きのところで,
python3のformulaに手を加える,ということをしています.

エラーの原因となっている,古いコンパイラの記述を削除するのだそうです.

以下,2つのエラーについての詳細.



Error: Cask 'macvim-kaoriya' definition is invalid: invalid 'depends_on macos' value: ":lion"

MacVim-Kaoriyabrew cask installで遭遇したエラー.

MacVim-Kaoriyaのインストールはご覧の通りHomebrew-Caskによって,[delphinus/homebrew-macvim-kaoriya][10]を有り難く利用させて頂くことによって実現してきました.

ところがここでエラーが発生していると.:

% brew cask install macvim-kaoriya
Error: Cask 'macvim-kaoriya' definition is invalid: invalid 'depends_on macos' value: ":lion"

つい先日までは,こんなエラーなかったのに...

本来ならばcaskの記述をどうにかすればいいのでしょうが,そんな気力はなく笑,特に追いかけることもせずに,さくっと,随分昔に自前で用意していたMacVim-Kaoriyaのcaskを使う,で切り替えることに.

brew cask edit my-macvim-kaoriyaでcaskファイル開いて,
一応,shasum -a 256 ~/Downloads/MacVim-KaoriYa-20180324.dmg*3sha256に定義するハッシュ値urlくらいを更新して保存.

再度,brew cask install
ちなみに,brew cask install my-macvim-kaoriyaとなっています.

Homebrewは10.8OS X Mountain Lion以前はサポートしない,ってなったから.らしい

and removal of support for OS X Mountain Lion (10.8) and older.

これが背景らしいです.

2019年の02月02日って,つい最近じゃん.

ちなみに,Caskの作り方

» homebrew-cask_adding_a_cask.md at master · Homebrew/homebrew-cask · GitHub

メモ.

手前味噌ですがこんなのもあったりします.😇

Error: Calling 'fails_with :clang' with 'build' < 600 is disabled! There is no replacement.

2つ目のエラー.

こちらは,pythonのバージョンを3.6.4に下げるために行っている手続きの中での話です.:

% brew uninstall --force python
Uninstalling python... (3,907 files, 60.4MB)
Error: Calling 'fails_with :clang' with 'build' < 600 is disabled! There is no replacement.
Please report this to the homebrew/core tap:
  /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/python.rb:52

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  https://github.com/Homebrew/homebrew-core/issues

brew uninstallしているだけなのに...

今まで,と言いますか,こちらもごく最近やったことある作業で,
その時は何の問題もなかったのですが.

ゲンナリ

そしたら,このようなレポートに出くわしました.:

» Calling 'fails_with :clang' with 'build' < 600 is disabled · Issue #36 · sashkab/homebrew-python · GitHub

バグだそう.

brew edit python3で,formulaの当該部分を書き換える

上述issueのコミットログを覗いてみますと.

» python3{5,6,7}: remove checkes for old compilers. · sashkab/homebrew-python@ef70e0b · GitHub

どうやら,下記引用の箇所が良くないらしい.:

  fails_with :clang do
    build 425
    cause "https://bugs.python.org/issue24844"
  end

自分のマシンで使われているformulaも覗いてみると,確かにその記述があります.
先に引用したエラーメッセージ文にもあるよう,52行目辺り.

と言うことで自分も倣って,当該箇所4行を削除し,保存.

そして再びbrew uninstall --force python

上手く行く様子.

と言うか,これも最近の話じゃん...

今回,分かったこと

brew update-resetbrew up

キッカケはこちら.:

Please run brew update-reset, then brew up, it should fix the issues. If not, feel free to give use additional information below.

brew update-resetってなもんあるんだ,と.

ちなみに,ここにも書いてありました.
最近追加された感じかしら?

brew update-reset resets all repositories and taps to their upstream versions. This is useful when debugging git issues.

でもbrew upって何なんでしょう?

3.6.4のrepo

brew log pythonの結果.

commit 6e3f70c43a0cdd02280a1cfc78693ce1bc7eb5e4
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date:   Thu Mar 22 15:27:00 2018 +0000

    python: update 3.6.4_4 bottle.

したがって,こうなるみたいです.:

https://raw.githubusercontent.com/Homebrew/homebrew-core/6e3f70c43a0cdd02280a1cfc78693ce1bc7eb5e4/Formula/python.rb

にしても,これはひとつひとつ,地味に探さなくてはならないのでしょうか...
要調査.

brew --repository

--repository [user/repo]
Display where Homebrew’s .git directory is located.

If user/repo are provided, display where tap user/repo’s directory is located.

今更ですが,整理.

ということで,疲れましたよ.
はい,おしまい.

*1:と言うか,血迷って,と言った表現の方がただしいかな.

*2:いい加減どうにかならないものか,と流石に思ってきている.と言うか,どうにかする力が無い自身がダメなのだけど.

*3:'.dmg'ファイルはサイトからあらかじめダウンロードしてます.