今更だけどLilyPondがCatalinaで動かない [日常のあれやこれや]
macOS10.15 Catalinaでは32ビットアプリが動かなくなった。OSが供給するライブラリやFrameworkから32ビットコードが完全に無くなったわけではないみたいだけど、基本的には64ビットだけになった。僕が普段仕事に使っているAdobe製品やMathematicaや、TeX関連、その他開発用のユーティリティはOSをちゃんとフォローしているものばかりだったので問題なかった。ところが、しばらく使ってなかった趣味のためのアプリで動作しないものがあるのにいまごろ気がついた...
特に問題なのがLilyPond。これはもともとビルドが複雑で、しかもGPLとAppleのXcode以下の開発システムを使う上でのライセンスとに矛盾がある、というなんだかよくわからない話がずっとあった。
どうせ僕はコマンドラインでしかLilyPondを使ってなかった(他所の人の真似をしてTeXShopのengine(単なるシェルスクリプト)を書いた)ので自分用のLilyPondをビルドしようとしたけど、python2.6(3.xではない)はじめguile、Pango、FreeTypeなど膨大なライブラリが必要となってそのうえバージョンの微妙な違いでコンパイルができなくなったり、なんと、gccのバージョンにも依存するので、もうずっと前にくじけた。
strictなGPLの問題は僕にはよくわからない(複雑でめんどくさい)んだけど、ライセンスの問題で32ビットはビルドできるけど64ビットはダメ、なんてことはないんじゃないのか。いまいち納得いかない。
でも僕にとって楽譜を簡単に作ろうとするとLilyPondより簡単で仕上がりが美しいのはない。みんなが使っているFinaleやSibeliusよりも、一見めんどくさいテキスト入力は実は簡単で自由度が高く、短めの旗や素直で自然なスラーなんかは楽譜が簡潔に見えて僕は好きである。なので今の状態は非常に残念である。
誰かが頑張ってコンパイルしてMacPortsの一部としてコマンドライン版が使えるようだけど、僕はたまたまhomebrewを使っていて、僕はMacPortsとhomebrewを同時にインストールする、なんてマヌケなことをしたくない(だって、全くあるいはほとんど同じglibやGObjectやlibxml2やsqlite3やその他もろもろが別のディレクトリに2つ存在することになる。今となっては容量はたいしたことはないとはいえ、やっぱり変だと思う)。どうしようかな、と思っていたんだけど、やりたいことができてどうしてもLilyPondを動かしたくなった。
結局、homebrewにも移植されることを期待してテンポラルにMacPortsを入れることにした。MacPortsには/usr/localを使わせず、LilyPondを使う時はデフォルトの/optディレクトリへの絶対パスを指定することにした。LilyPondが必要とするものだけをインストールしたのに/optは5GBを超えた。Raspberry Piクロスコンパイル用のsysrootでさえ3.8GBなのに....
しかし、いざ使ってみると全然快適。昔書いた大きなLilyPondファイルのコンパイルがずいぶん速かった。32→64の違いだけとは思えない。他にも本家のmacOS版ではたくさんあるLilyPondユーティリティが全て動くわけではない。たとえばあるユーティリティはPythonで書かれているけど、それが必要とするPythonライブラリがPPCバイナリしかバンドルにはなくて動かない。i386バイナリを探してきて置き換えると微妙なバージョンの違いでやっぱり動かない。そういうのがいっぱいあって、とりあえず最初のふたつが失敗するともううんざりしてやる気がなくなってしまう。
そうやって本家バージョンでは使えないユーティリティがたくさん(気持ち的にはほとんど)あったんだけど、MacPorts版は全て動く。すばらしい。いや、それが当たり前なんだけど。
嬉しくなったんで、ちょっと遊ぶことにする。
特に問題なのがLilyPond。これはもともとビルドが複雑で、しかもGPLとAppleのXcode以下の開発システムを使う上でのライセンスとに矛盾がある、というなんだかよくわからない話がずっとあった。
どうせ僕はコマンドラインでしかLilyPondを使ってなかった(他所の人の真似をしてTeXShopのengine(単なるシェルスクリプト)を書いた)ので自分用のLilyPondをビルドしようとしたけど、python2.6(3.xではない)はじめguile、Pango、FreeTypeなど膨大なライブラリが必要となってそのうえバージョンの微妙な違いでコンパイルができなくなったり、なんと、gccのバージョンにも依存するので、もうずっと前にくじけた。
strictなGPLの問題は僕にはよくわからない(複雑でめんどくさい)んだけど、ライセンスの問題で32ビットはビルドできるけど64ビットはダメ、なんてことはないんじゃないのか。いまいち納得いかない。
でも僕にとって楽譜を簡単に作ろうとするとLilyPondより簡単で仕上がりが美しいのはない。みんなが使っているFinaleやSibeliusよりも、一見めんどくさいテキスト入力は実は簡単で自由度が高く、短めの旗や素直で自然なスラーなんかは楽譜が簡潔に見えて僕は好きである。なので今の状態は非常に残念である。
誰かが頑張ってコンパイルしてMacPortsの一部としてコマンドライン版が使えるようだけど、僕はたまたまhomebrewを使っていて、僕はMacPortsとhomebrewを同時にインストールする、なんてマヌケなことをしたくない(だって、全くあるいはほとんど同じglibやGObjectやlibxml2やsqlite3やその他もろもろが別のディレクトリに2つ存在することになる。今となっては容量はたいしたことはないとはいえ、やっぱり変だと思う)。どうしようかな、と思っていたんだけど、やりたいことができてどうしてもLilyPondを動かしたくなった。
結局、homebrewにも移植されることを期待してテンポラルにMacPortsを入れることにした。MacPortsには/usr/localを使わせず、LilyPondを使う時はデフォルトの/optディレクトリへの絶対パスを指定することにした。LilyPondが必要とするものだけをインストールしたのに/optは5GBを超えた。Raspberry Piクロスコンパイル用のsysrootでさえ3.8GBなのに....
しかし、いざ使ってみると全然快適。昔書いた大きなLilyPondファイルのコンパイルがずいぶん速かった。32→64の違いだけとは思えない。他にも本家のmacOS版ではたくさんあるLilyPondユーティリティが全て動くわけではない。たとえばあるユーティリティはPythonで書かれているけど、それが必要とするPythonライブラリがPPCバイナリしかバンドルにはなくて動かない。i386バイナリを探してきて置き換えると微妙なバージョンの違いでやっぱり動かない。そういうのがいっぱいあって、とりあえず最初のふたつが失敗するともううんざりしてやる気がなくなってしまう。
そうやって本家バージョンでは使えないユーティリティがたくさん(気持ち的にはほとんど)あったんだけど、MacPorts版は全て動く。すばらしい。いや、それが当たり前なんだけど。
嬉しくなったんで、ちょっと遊ぶことにする。
2020-01-05 22:46
nice!(1)
コメント(0)
コメント 0