fu7mu4’s diary

はてなダイアリーから移転しました。

macport ユーザーが Yosemite から El Capitan に移行した

Mac port を使っているのだが、MacEl Capitan にアップグレードしてみた

El Capitan をダウンロード

App StoreEl Capitan をダウンロード
6GBくらいなので時間がかかる。

El Capitan のインストール

インストーラーが起動していたので、そのままインストールさせて放置した。

macport

macport を更新しようとすると、OS かわっているからダメといわれる。移行(Migration)しろとのこと。

Error: Current platform "darwin 15" does not match expected platform "darwin 14"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

Migration の 説明を読む

https://trac.macports.org/wiki/Migration をてきとうに実施した。optionalの項目はとばした。

  • インストールしている port 書き出し
port -qv installed > myports.txt
  • 全部の port をアンインストール
sudo port -f uninstall installed
  • 掃除
sudo rm -rf /opt/local/var/macports/build/*
  • 書き出した port のリストから インストールする。
curl -O https://svn.macports.org/repository/macports/contrib/restore_ports/restore_ports.tcl
chmod +x restore_ports.tcl
sudo ./restore_ports.tcl myports.txt

結果

  • Clozure Cl 1.10 のインストールに失敗した
  • Emacs-Mac-App 5.9 のインストールに失敗した

Clozure CL 1.10 の対応

Clozure CL の subversion からダウンロードしてもカーネルをリビルドするときにエラー発生するのでmacport だけの問題ではない。ここでClozure CLのHPをみると、irc でサポートしてくれるかもみたいに書いてあったので質問したらうまくいった。 #ccl irc.freenode.net で rme に感謝しましょう。

You can add "-Q" to ASFLAGS in lisp-kernel/darwinx8664/Makefile and that will enable you to compile the lisp kernel. Or, you can switch to the 1.11 pre-release branch. ​http://ccl.clozure.com/blog/?p=178 In 10.11, the default assembler is the clang integrated assembler, and it doesn't understand .stabs directives. The -Q flag makes it use the prior, separate assembler.

(fu7mu4解釈)
lisp-kernel/darwinx8664/Makefile の ASFLAGS に -Q を追加すると、lisp kernel をビルドできる。または、CCL 1.11 pre-release ブランチを使用する。Mac OS 10.11(El Capitan) ではデフォルトのアセンブラが clang の統合アセンブラになっている。これは .stub ディレクティブを理解しない。 -Qフラグで対応できる。

lisp-kernel/darwinx8664/Makefile は "the ccl directory" にある。macportではここ。
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_ccl/ccl/work/ccl/lisp-kernel/darwinx8664/Makefile

とりあえず、original の CCL 1.10 ではカーネルのリビルドがとおるようになった。
macport の流儀はよくわからないので、オリジナルのccl を使用する。

Emacs-Mac-app

とりあえず、macport に エラーを報告してから、Emacs-app に逃げてみた。