(ドタバタの記録、になってしまった。しばらく事後報告が続く予定。)
macOS Sequoia (macOS 15) がリリースされた。
人身御供のMacを選んで、Sonoma からアップグレードする。 これ自体はすんなりできた。
macOS のメジャーバージョンを変えたとき、 次にすべきは MacPorts の更新である (古いのが動かない訳ではないが、ports の更新がまったくできないので)。
そのためには、まずは Xcode の Command Line Tools の更新をする。 これも簡単にすんだ。
macOS のメジャーバージョンが更新されたとき、 これまで MacPorts では、 “migration” とか呼ばれる、実質的に全部インストールし直し、が必要だった。 その手順がかなり面倒だったので、/opt/local の下をバッサり削除して、 新規インストールというのをやっていたりしたのだが、 その手続きが大きく簡略化されたようだ。
「Migrating MacPorts after a major operating system upgrade or from one computer to another ¶」
https://trac.macports.org/wiki/Migration
実質的にターミナルで
sudo port migrate |
macOS が新しくなったことより (何かいいことはあるんだろうけど、 どういういいことがあるかは知らない)、 こっちの方が嬉しい。
% sudo port migrate Migration will first upgrade MacPorts and then reinstall all installed ports. Would you like to continue? [Y/n]: y Upgrading MacPorts... ---> Checking for newer releases of MacPorts MacPorts base version 2.10.1 installed, MacPorts base version 2.10.1 available. ---> MacPorts base is outdated, installing new version 2.10.1 ---> Attempting to fetch MacPorts 2.10.1 source code from https://github.com/macports/macports-base/releases/download/v2.10.1/MacPorts-2.10.1.tar.bz2 ---> Extracting MacPorts 2.10.1 ---> Installing new MacPorts release in /opt/local as root:wheel; permissions 0755 ---> Updating the ports tree Taking a snapshot of the current state... Following inactive ports will not be a part of this snapshot and won't be installed while restoring: aom @3.9.0_0 automake @1.16.5_0 bash @5.2.26_0 cairo @1.17.6_1 +quartz+x11 (中略) xz @5.4.6_0 zvbi @0.2.35_3 Continue? [Y/n]: y Done: Snapshot '1' : 'snapshot created for migration' created at 2024-09-20 23:16:17 Deactivating all ports... (中略) |
macOS のメジャーバージョンを変えるのは、 MacPorts の更新にそれなりに時間がかかるので億劫だったのだけれど、 それが解消されたようだ。とても嬉しい。
… しかし、まだパッケージ・ファイル (コンパイル済みのファイル一式を収めたもの) が用意されていないことが多いようで、 一々 build しなくちゃいけないのか。 かなりの大物を build しているね。当然時間がかかる。 少し待つのが吉なのかな。 となると、macOS のアップグレードも少し待つものでしょう。
あれ、lv, lha, xpdf, gnuplot, ffmpeg がインストールされないな。 もう lha, xpdf はなくてもいいけど、lv, gnuplot, ffmpeg はないと困るぞ。 gnuplot, ffmpeg についてはインストールされた Mac もあるな。 何かのミスか (やり直して何とかなった)。
lv, lha は他と依存はない小物だけれど、どの Mac でもインストールできてないな。 はてな?
えーと。のぞきに行く。どうやるんだったけ。
#ls -l /opt/local/var/macports/distfiles/lv sudo port extract lv sudo port conf lv #cd `port dir lv` cd `port work lv` |
ああ!!!configure script で int なしの main があるせいか!!! うわあ。つい最近出会した GLSC が cc (LLVM) でコンパイルできない、 というのと同じじゃん。
そうか、 “Warning: Configuration logfiles contain indications of -Wimplicit-function-declaration; check that feateures were not accidentaly disabled:” という警告が出ていた意味が分かった。 lv は古いプログラムで、書き方が古いけれど、 MacPorts の port 担当は、 ソース・プログラムに手を入れずに -W某 で済ます、という選択をした。 それで今回、型名を書いてなければ int という暗黙の仮定をする、 の方に引っかかったのか。 configure スクリプトに int 書き足してとりあえず解決。
lha もこの線で何とかなった。 Makefile を探して CFLAGS に -Wno-error=implicit-function-declaration -Wno-error=implicit-int を追加して、build をやり直したら通った。
しかしすべての port にこんなことをする訳にはいかないな。 やはり port が更新されるのを待つしかない。 やっちゃった Mac は仕方ないから、必要な物だけでも、何とかするのか。 他の大勢の Mac はしばらく macOS のアップグレードをペンディングする。
教訓 新しいものにすぐ飛びついてはいけません。人身御供はよくよく選びましょう。
(少し夏休み気分が残っていたせいでやってしまった。多分1週間ズレていたら、 やらなかったと思います。)
(2024/9/22) 現時点でも、時間がかかることを置いておけば、 一部の古いものを除いて、多くの port は使えるようになる。 今のところ、Intel Mac で gcc14 のインストールがうまく行かない。 そのせいで、それに依存する ports (scipyとか) がインストールできない。 最近やっている数値計算で gcc は必須なので、ちょっと困っているが、 まあやってしまったものは仕方がない。速いMac≒Apple Silicon Mac ≒実際に大きな計算をするMacでは動くので、大きな問題ではない。 gcc は大物なので、近日中に解決する(してくれる)だろう、と期待している。
(2024/9/25) 認知はされているようだが… 「Bug 116809 - Failure to build GCC on macOS 15 / Xcode 16 for Intel」
私と同じく macOS Sequoia に更新した人(MacPorts利用者)は、色々奮闘していて、 どんな様子かは、
「macOS Sequoia Problems」で見られる。
(2024/9/27) gcc14 が Intel Mac でもコンパイルできるように更新された。 openblas, py312-numpy もこれまで通り
sudo port install openblas +native sudo port install py312-numpy +openblas |
sudo port install py312-scipy |
この状態は、Intel Mac でも Apple Silicon Mac でも同じみたい。
これは待っていれば良いのかな?
https://trac.macports.org/ticket/70460 によると
In case it's not clear, scipy wants gast 0.5.x which you don't have; MacPorts gast has moved past that version already. scipy needs to be updated to a newer version that will accept our newer gast.だそうで、待つべきらしい。
(2024/9/29午後)
あ、py312-scipy 通った。担当割り当てされていたし、やってくれるかな、
と思っていたら、一晩で解決か。これで普段使っている ports はすべて
Sequoia で動くようになった。
ありがとうございます。使わせていただきます。
MacPorts は頑張っているな、という印象。
メモ(がらくた)
/opt/local/var/macprts/sources/rsync.macports.org/macports/release/tarballs/ports/カテゴリー/名前
MacPorts のアンインストール
“Migrating a MacPorts installation” の 2.4. Uninstall によると、
MacPorts をアンインストールする手順 |
sudo port -fp uninstall installed sudo rm -rf \ /opt/local \ /Applications/DarwinPorts \ /Applications/MacPorts \ /Library/LaunchDaemons/org.macports.* \ /Library/Receipts/DarwinPorts*.pkg \ /Library/Receipts/MacPorts*.pkg \ /Library/StartupItems/DarwinPortsStartup \ /Library/Tcl/darwinports1.0 \ /Library/Tcl/macports1.0 \ ~/.macports(まず ports を削除して、それから MacPorts 自身を削除する。) |
(2024/9/23追記)
Sequoia について「早まるな。まだインストールするな。」
という WWW サイトが増えてきたような気がする。
そうかもねー。
桂田 祐史