uzullaがブログ

uzullaがブログです。

phpenvでphp5.5.7とかビルドするとbisonとかでおこなので、brewでどうにかするつもりが結局bison27のFormulaかく羽目になったやつ

年末ですね、私も忘年会は数えるところ後数回です。新年会も見えてきました。
相変わらず年末年始、やる事が何も無いですね。

今日の日記:まっさらのMac Lionにphpenvでphpいれる

XcodeとCommand Line Toolsいれる
CHH/phpenvをいれる
CHH/php-buildをいれる
phpenv install 5.5.7やる
色々エラーログでる
bisonが古すぎる。
brewをいれる
brewでbison入れる
はいったbisonが3だ…
php5.5.7のビルドにはbisonが新しすぎるのでは…
php-buildの定義にbrewでいれたbison追加して試して見る。
やっぱ駄目っぽい
brew versions bisonで昔の奴をみてみようとしたらunsupported and may be removed soon.とかいわれる
homebrew-versionsをtapする
bison 2.7無い…
homebrew-versionsのGitHubみる、やっぱ無い。
issueやp-rをみる
同様の境遇のPHPerから2.7ほしいってissueあがってたけど「prウェルカム!(笑顔」で終わってる
しかたないのでhomebrew-versionsをフォーク
bison2.7のFomula書く
手元でbrew install /path/to/my/Fomula/bison27.rbやってうごくことを確認する
ブランチきってコミットしてプッシュして一行プルリクを送る
プリリクめっちゃたまってるのを見て、不安におもいながら待つ(イマココ)
まあ、とりあえず手元では自作Fomulaではいったのでさきに進む
php-buildのdefault_configure_optionsにbrewでいれたbison追加する
あと、re2cない
brew install re2cでいれる
あと、libjpegない
brew install jpegでいれる
あと、libmcryptない
brew install libmcryptでいれる
しばし正座して待つ。

なんかPearがどうとかいうけど、実際はPearとか全然関係がない、autoconfがないから出てくるあのエラーがでた
brew install autoconfする
しばし正座して待つ。
warnはでてるけどどうでもいいね!できた!(おめでとう俺!)

brew versions消えるのか…

$ brew versions bison
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
https://github.com/Homebrew/homebrew-versions
3.0.2 git checkout 3872723 Library/Formula/bison.rb

過去バージョンをbrewでいれるやつの推奨方法がいつのまにか変わってたぽい。
まあめっちゃ面倒だったしな、それにsearchで過去バージョンふくめて引っ張れるのは(ゴチャるけど)ワカリヤスイと俺も思う。

(前はコミットIDをひっぱってきて、当時のFormulaをcheckoutしてそれをつかうという男らしい感じだった(例: http://blog.sarabande.jp/post/53780323365 ))

しかし、homebrew-versionsにいままでの分は全部いれといてくれてもよかったんやないの…?
男らしい大掃除されたってやつだな…。

書いたbison2.7のFormula

https://github.com/uzulla/homebrew-versions/blob/bison27/bison27.rb

bison27.rb

require 'formula'

class Bison27 < Formula
  homepage 'http://www.gnu.org/software/bison/'
  url 'http://ftpmirror.gnu.org/bison/bison-2.7.tar.gz'
  mirror 'http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz'
  sha1 'aa4f5aa51ee448bac132041df0ce25a800a3661c'

  keg_only :provided_by_osx, 'Some formulae require a newer version of bison.'

  def install
    system "./configure", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"
    system "make install"
  end
end

お困りの方はどうぞ

php-buildに、外のbisonをつかうように指定

~/.phpenv/plugins/php-build/share/php-build/default_configure_option

YACC=/usr/local/opt/bison27/bin/bison

の行を追加した。

ええ、もちろん、皆さんの言いたい事はわかります。

一番いいのはPHPがbison 3までサポートしてくれればいいんですよ。2.7まで〜2.7.1もだめ〜、とかそういう謎な状態になっているのが本当にアレなのです。

年の瀬ですし

色々な理由でbison27はやくマージされてほしいんだけど、外人さん年末年始コードとかみないんじゃないかという不安がすごい…。