homebrewのformulaをカスタマイズする
久しぶりにimagemagickを使おうとしたら、librsvgをリンクしないインストールになっているのに気付いた。以前、そのあたりはいい感じにしておいたはずなのにな、と思って調べたところ、formulaからインストール時のオプションが削除されてしまった(PR)ということのようだ。
何か別のオプションなりなんなりがあるのかな? と調べてみたが、そういうのはないらしい。
そもそもの話が「オプションについてはhomebrewのCIを通しているわけでもないし、ましてや相互の組み合わせときたら」(issue)ということで、必要ならtapを作ってねという流れになるのだろうと思う。
とはいえそこまでの話でもないので、今回はbrew edit
して必要なビルドオプションを追加してインストールすることにした。
brew edit imagemagick
エディタが開くので、依存関係とconfigueオプションを追加する。
--- a/Formula/imagemagick.rb
+++ b/Formula/imagemagick.rb
@@ -28,6 +28,7 @@ class Imagemagick < Formula
depends_on "openjpeg"
depends_on "webp"
depends_on "xz"
+ depends_on "librsvg"
uses_from_macos "bzip2"
uses_from_macos "libxml2"
@@ -55,6 +56,7 @@ def install
--without-x
--without-wmf
--enable-openmp
+ --with-rsvg
ac_cv_prog_c_openmp=-Xpreprocessor\ -fopenmp
ac_cv_prog_cxx_openmp=-Xpreprocessor\ -fopenmp
LDFLAGS=-lomp
あとはインストールすればよい。
brew reinstall --build-from-source homebrew
すでにimagemagickをインストールしていたので、ここではinstall
ではなくreinstall
している。またbottleなimagemagickがあるので--build-from-source
オプションによりソースからのインストールを指定しておく。
bottleなimagemagickではこう↓だったのが
$ magick -list format | grep SVG
MSVG SVG rw+ ImageMagick's own SVG internal renderer
SVG SVG rw+ Scalable Vector Graphics (XML 2.9.4)
SVGZ SVG rw+ Compressed Scalable Vector Graphics (XML 2.9.4)
editしたimagemagickでこう↓変化した。
$ magick -list format | grep SVG
MSVG SVG rw+ ImageMagick's own SVG internal renderer
SVG SVG rw+ Scalable Vector Graphics (RSVG 2.44.15)
SVGZ SVG rw+ Compressed Scalable Vector Graphics (RSVG 2.44.15)
なお、brew edit
するとこういう状態↓になる。
$ cd $(brew --repository homebrew/core)
$ git status --short
M Formula/imagemagick.rb