MacPorts で古いリビジョンのポートをインストールする(Snow Leopard に OpenCV @2.4.1 をインストール)

MacPorts から OpenCV @2.4.2 をインストールするのにちょっと躓いたのでメモ。

OpenCV @2.4.2 をインストールしようとしたら CUDA Tool Kit が無いと言われてしまう。

bash
sudo port -vf install opencv
--->  Computing dependencies for opencv.
--->  Configuring opencv
-- Detected version of GNU GCC: 42 (402)
-- Found OpenEXR: /opt/local/lib/libIlmImf.dylib
-- Looking for libavformat/avformat.h
-- Looking for libavformat/avformat.h - found
-- Looking for ffmpeg/avformat.h
-- Looking for ffmpeg/avformat.h - not found
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing:  CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (Required is at least version "4.1")
-- Could NOT find PythonLibs: Found unsuitable version "2.6.1", but required is at least "2.7.3" (found /opt/local/lib/libpython2.7.dylib)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named sphinx
CMake Error at cmake/OpenCVModule.cmake:518 (ocv_add_precompiled_header_to_target):
  Unknown CMake command "ocv_add_precompiled_header_to_target".
Call Stack (most recent call first):
  modules/core/CMakeLists.txt:23 (ocv_add_precompiled_headers)


-- Configuring incomplete, errors occurred!

CUDA なんて頻繁に使うものでもないからインストールするのが面倒。OpenCV @2.4.1 なら CUDA を入れなくてもいいみたいなので古いポートファイルを拾ってインストールすることにした。

古いポートファイルを取得してインストールするまで

OpenCV のポートファイルログページで取得したいリビジョンを探す。OpenCV @2.4.1 なら @93939 が最終。

MacPorts

リビジョン番号をクリックしてポートファイルの詳細ページを開き、ページ最下部にある「オリジナルフォーマット」をクリックして、適当な作業用ディレクトリにダウンロードする。作業用ディレクトリ内で sudo port install を実行すればインストールが始まる。

ポートファイルの URL だけをコピーし、ターミナルで全ての作業を行うなら以下のようにすればいい。作業が終わったら $HOME/build はゴミ箱へ。

bash
$ mkdir $HOME/build; cd $_
$ curl -O https://trac.macports.org/export/93939/trunk/dports/graphics/opencv/Portfile
$ sudo port install