構成
- オレオレ MacPorts リポジトリ www.example.com:/srv/www/macports (Linux サーバ)
- Portfile ツリー : http://www.example.com/macports/portfiles (www.example.com:/srv/www/macports/portfiles)
- 配布ファイルアーカイブ : http://www.example.com/macports/distfiles (www.example.com:/srv/www/macports/distfiles)
- ローカル開発マシン (Mac)
- 開発中パッケージ置き場 : ~/proj/macports/work
- オレオレリポジトリのミラー : ~/proj/macports/mirror
準備
決めること
- パッケージの名前 : example-app
- バージョン : 0.1.0
- パッケージのカテゴリ : sysutils
リポジトリミラーの準備
$ cd ~/proj/macports/mirror $ rsync -az --delete www.example.com:/srv/www/macports/ .
パッケージの準備
$ cd ~/proj/macports/work $ git clone http://www.upstream.com/example-app.git $ cd example-app $ git checkout -b macports $ mkdir macports $ vi macports/Portfile # vim: set ft=tcl et sw=4 ts=4 sts=4 : PortSystem 1.0 name example-app version 0.1.0 categories sysutils maintainers metalglue@example.com description example-app long_description example-app master_sites http://www.example.com/macports/distfiles/ $ git add macports $ git commit
最初のアップロード
tar アーカイブファイルに固めて,チェックサムを計算し,Portfile に記述する.
$ cd ~/proj/macports/work $ tar zcf ~/proj/macports/mirror/distfiles/example-app-0.1.0.tar.gz example-app $ md5sum ~/proj/macports/mirror/distfiles/example-app-0.1.0.tar.gz 236aaec0cd680a4d254d26fd6820043d $ vi example-app/macports/Portfile checksums md5 236aaec0cd680a4d254d26fd6820043d
それらをミラーディレクトリにコピーして,portindex コマンドでインデックスを作り,アップロードする.
$ mkdir ~/proj/macports/mirror/portfiles/sysutils/example-app $ cp example-app/macports/Portfile ~/proj/macports/mirror/portfiles/sysutils/example-app $ cd ~/proj/macports/mirror/portfiles $ portindex $ cd .. $ rsync -av --delete ./ www.example.com:/srv/www/macports
テスト
$ sudo port sync $ port clean --all example-app $ port -v install example-app
0 件のコメント:
コメントを投稿