Monday, May 2, 2011

雑談とか2

まだ#x264devで議論の途中(?)みたいですが、おそらく次回の更新でconfigureとmakeに変更が来ます。簡単に要約してしまうと、

  1. configureのオプションとして以下のものが追加される
    --disable-cli、--system-libx264、--enable-static

  2. makeのオプションとして以下のものが追加される
    install-cli、install-lib-dev、install-lib-static、install-lib-shared

  3. ビルド時にstripしなくなるかもしれない(意見対立中?僕はしない方に一票)


3の変更と関連してmake install-stripが実装されるかされないかはわかりません。そこらへんの議論はまだされていない様子。この記事の内容から更に変更になる場合もあると思うので、ビルダーの方々は更新が来たらdiffに目を通すことをお勧めします。シェルスクリプトとMakefileに注意すればいいだけなので、ちょっと調べながら眺めてみれば変更内容は理解できると思います。

また別件ですが、GPAC Repositoryは管理上の点からどうしてもrebaseをせざるを得ません。svnの更新を取り込み、git svn rebaseをしますが、このときにconflictが発生した場合はそれを修正してgit rebase --continue、を繰り返して、すべてのパッチのconflictが解消したらビルドの確認をしてpush -fしています。このときに歴史が書き換えられ、他の環境からpullする時にconflictが発生します。そういうときはパッチ適用前のリビジョン(つまりgit logで見たときにAuthorがgolgol氏や僕でないコミット)をgit logから探し、そこにgit reset --hardしてから再度pullするとうまくいきます。GitHubに公開されているD_S氏のx264-devel repositoryを利用している人は既に手慣れた作業かもしれません。まあよくわからないときはgit cloneし直すのが一番簡単です…(笑)

更にもう一つだけ注意点を。このようにして更新をしていくと、conflictする度に過去のコードを書き変えることになります。つまり、ある時点で作ったバイナリのソースコードを、過去に遡って取得できなくなります。ライセンスを考え、バイナリ配布をする場合には、バイナリを作った時点で適用されているパッチをバックアップしておくか、またはソースコードを丸々残しておくことをおすすめします。

パッチはgit format-patchで取得できます。その時点でのソースコードを丸々取得する場合はgit archiveを利用すればいいと思います。僕はgit archiveが手軽だと思います(圧縮ファイルを伸張すればパッチを当てなくてもすぐにビルドにできますし)。使い方はこんな感じ。

[gist id=950385]

zipならもうちょっとシンプルにこんな感じ。

[gist id=950360]

コマンドが面倒な人はGitHubのページからDownloadをクリックしてGit Snapshotを取得してください。

No comments:

Post a Comment