portsを弄くって、py-tkinterを入れたときの小話

FreeBSDにてwxPythonを入れる際、色々困ったことがある。
中でも、インストールすれば良かったpy-openglやpy-numpyと違い、py-tkinterは少しややこしかった。(まあ、py-numpyもaltera外さなかったらコンパイルできなくて困ったけど。make rmconfigは僕みたいなへたれユーザーにとって神は言い過ぎ)

環境:

問題:

さて。
何が問題になったかと言うと、x11-toolkits/py-tkinterは、lang/python26に依存しておりました。
もっと言うと、python2.6.5を要求してたのでございます。
しかし!
lang/python26でインストールされるのはpython2.6.6。

要するに。
インストールされているpythonは2.6.5で、py-tkinter入れるのにはpython2.6.5が必要なのに、依存しているlang/python26は2.6.6用のそれ。
という状況。

不用意に、アップデートしなければ良かったのか?

解決策というか妥協策:

タイトル通り、ports以下を少々いじくって入れました。その手順は下記。

  • これは簡易的メモです。何をしているのかわからねぇよって方は、責任を負えないのでスルーしていただけると幸いです。

手順:

  1. python2.5.5のtar玉を持ってくる。
  2. ls -la、sha256、md5などのコマンドで、持ってきたtar玉のsha256、md5、ファイルサイズを取得する。
  3. ports/distfiles以下にそれをぶちこむ。
  4. lang/python26以下のMakefileでバージョンを2.5.5に書き換え。
  5. 同じく、lang/python26以下のdistinfoを後で戻すときのために退避。これのコピーをいじる。
  6. コピーしたdistinfoを、2.5.5用に書き換える。
  7. x11-toolkits/py-tkinterでmake installする。(lang/python26以下ではしない)
  8. py-tkinterが入ったら、lang/python26のいじったファイルを元に戻す。

こんな感じです。なお、最後の元に戻すって行程を踏まないと、portsnap fetch updateができなくなりますので、必ず行ってください。