unzipのビルドはできたけれど、毎回手動でやるのもなんなので、自前のPortfileを作って使いやすくする。
macportsの説明を見ると、どこかにディレクトリを作ってPortfileを置いて、/opt/local/etc/macports/sources.conf に書けば良いらしいので、その路線で行く。
また、何か書くたびにいちいちblogを書いてファイルを添付すると言うのもなんなので、githubに置くことにする。
githubのアカウントは既にあるとして、新しいリポジトリmacportsを作成する。
と、その前に、macのsshの公開鍵をgithubのアカウントの設定→SSH公開鍵で追加しておく。
すると、画面に手順が出るので、そのまま実行。
$ git config --global user.name ""
$ git config --global user.email false@wizard-limit.net
$ mkdir macports
$ cd macports
$ git init
$ touch README
$ git add README
$ git commit -m 'first commit'
$ git remote add origin git@github.com:false-git/macports.git
$ git push -u origin master
そしたら、まずはオリジナルのunzipのPortfileをベースにしたいので、続けて以下のようにする。
$ mkdir archivers
$ cd archivers
$ mkdir unzip-iconv
$ cd unzip-iconv
$ cp /opt/local/var/macports/sources/rsync.macports.org/release/ports/archivers/unzip/Portfile .
$ cd ../..
$ git add archivers
$ git commit -m 'import original unzip portfile'
これで準備ができたので、archivers/unzip-iconv/Portfileをエディタで修正する。
このPortfileでは、オリジナルのunzipにFS#15256 – [unzip] New unzip 6.0 lacks -O -I optionsのパッチをあてたいんだけど、patchをダウンロードするのに「URL/ファイル名」の形式ではなく URL?hoge の形式になっている。
Portfileにpatch関連ので書けるのは patch_sites, patchfiles, patch.argsくらいなので、このようなサイトに対応する方法がわからない。
そこで、苦肉の策として、以下のようにしてみた。
  • patchfilesは最初は空。
  • pre-fetch で curl fetch でパッチファイルを files/ にダウンロードする。
  • ダウンロードしたら、patchfilesにパッチファイルを追加する。こうしないと、pre-fetchで持ってきても別途取りに行こうとして失敗する
こう言うpatchサイトはたくさんあると思うので、正しいやり方は別にあると思うんだけど、今のところ試行錯誤で辿りつけたのはここまで。
と、言うわけでできたPortfileはgithubにあります。
オリジナルとの変更点は、ここで見られる。
Portfileが書けたら、以下の手順で有効にする。
  1. /opt/local/etc/macports/sources.confにportsを置いたディレクトリを追加。
    file:///Users/false/macports
    
  2. portsを置いたディレクトリで、portindexを実行する。
これで、sudo port install unzip-iconv とかやれば、インストールできる。

【追記】
portの実行でportのディレクトリにファイルを置くのは気持ち悪いので、patchのダウンロード先をdistfilesにしてみた。
そしたら、patchfilesに書いても再度取りに行こうとしなくなったので、patchfilesに書いて、sumチェックもできるようになった。
変更点はこんな感じ。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: macportsのPortfileを書く

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/2620

コメントする

このブログ記事について

このページは、falseが2011年5月 3日 12:42に書いたブログ記事です。

ひとつ前のブログ記事は「zipアーカイブ内のファイル名」です。

次のブログ記事は「macのTeX環境」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1