«前の日記(2012-12-30) 最新 次の日記(2013-01-04)» 編集

ポケットを空にして。

1985|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2100|01|

「人の心に残るというのが大事」と言う話。

何か連絡がある場合はメールでどうぞ(過去の日記へのツッコミは基本的にみていません)
プレゼントは随時受け付けております :-) ここ最近のツッコミ/トラックバックリスト。


2013-01-03 [長年日記]

DebianでのRuby関連パッケージのことはじめ

誰かの役に立つかもしれないので、試考錯誤の記録を残そうかと。

  • Debian Wiki で Ruby について探すと、開発のページがあることが示唆されます。こちらの指示にしたがいましょう。
  • 開発のページは2つのグループがあることが述べられています。
    • Ruby本体についての議論をする「pkg-ruby team」
    • Ruby関連ライブラリ/アプリケーションについてのメンテナンスをする「pkg-ruby-extras team」
    • 私はRubyGemsをパッケージにする作業をするので「pkg-ruby-extras」が適当そうです
  • まず、Pkg-ruby-extras-maintainers メーリングリストにsubscribe してみましょう。
  • それから、Debian での sourceforge 的位置づけの Alioth.debian.org のpkg-ruby-extrasページのアカウントを作ります (Debian Developerなら作成済み)
  • 過去ログでも読んでおきましょうか…あれ、思ったよりもあんまり活発に議論はされていないですね。
  • さて、早速パッケージングのページを見て作業を始めましょう。「Joining the pkg-ruby-extras team」の項目はほぼクリアですね(全ドキュメント見てね、はちょっと難しいな…)
  • ソースを mr コマンドでチェックアウトしましょう。ちなみに squeeze の mr は古いそうなので、Wheezy以降で。
    $ git clone henrich@git.debian.org:/git/pkg-ruby-extras/pkg-ruby-extras.git
    $ mr -j 5 checkout (エラーになるので次の行で対応)
    $ echo "/home/henrich/src/ruby/pkg-ruby-extras/.mrconfig" > ~/.mrtrust
    $ mr -j 5 checkout
    (snip)
    mr checkout: finished (368 ok; 10 skipped)
    
  • 400個近くチェックアウトされた、ですか…巨大だな。では、次に自分の作ったパッケージを登録しましょう。
  • git.debian.org にログインして、今回は ruby-bcat パッケージを登録するために以下を実行
    henrich@vasks:~$ cd /git/pkg-ruby-extras
    henrich@vasks:/git/pkg-ruby-extras$ ./setup-repository ruby-bcat
    Initialized empty shared Git repository in /srv/git.debian.org/git/pkg-ruby-extras/ruby-bcat.git/
  • ローカルに戻ってソースをリポジトリに登録作業。
    $ ./make-mrconfig # これで mr で取ってくるパッケージリストを更新
    $ mr -j 5 checkout # 再度チェックアウト
    $ apt-get install git-buildpackage
    $ cd ruby-bcat
    $ git import-dsc --pristine-tar ~/src/cloud/ruby-packages/ruby-bcat_0.6.2-1.dsc  #この時点で既にパッケージの雛形はできていることが前提。.dsc ファイルを import する
    gbp:info: Tag upstream/0.6.2 not found, importing Upstream tarball
    pristine-tar: committed ruby-bcat_0.6.2.orig.tar.gz.delta to branch pristine-tar
    gbp:info: Version '0.6.2-1' imported under 'ruby-bcat'
    $ git tag -d debian/0.6.2-1
    Deleted tag 'debian/0.6.2-1' (was 698ce79) # まだパッケージが完成してないのでタグを外す
    $ git push --all
    Counting objects: 56, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (50/50), done.
    Writing objects: 100% (56/56), 29.26 KiB, done.
    Total 56 (delta 2), reused 0 (delta 0)
    To git+ssh://git.debian.org/git/pkg-ruby-extras/ruby-bcat.git
     * [new branch]      master -> master
     * [new branch]      pristine-tar -> pristine-tar
     * [new branch]      upstream -> upstream
    $ git push --tags
    Counting objects: 1, done.
    Writing objects: 100% (1/1), 176 bytes, done.
    Total 1 (delta 0), reused 0 (delta 0)
    To git+ssh://git.debian.org/git/pkg-ruby-extras/ruby-bcat.git
     * [new tag]         upstream/0.6.2 -> upstream/0.6.2
  • で、色々いじって push
    $ git push
  • 問題なければ tag つける
    $ git tag debian/0.6.2-1
    $ git push --tags
  • git-buildpackage すればパッケージが作成されるので、dput で push する。

ん、git のツリー直下で git-buildpackage するのは問題ないのかな?

どれ作業してるか判らなくなる

  • ruby-bcat は new queue に入れた
  • ruby-aruba を作業して git に登録
  • ruby-aruba が通ったから、ruby-simplecov がいけるかな、と思ったら ruby-capybara と ruby-appraisal が必要
    • ruby-capybara には ruby-launchy と ruby-fuubar が必要
      • ruby-fuubar には ruby-rspec-instafail が必要 → とりあえず ITP して git に登録
        あと、ruby-progressbar には実装が二つあって、Debian に入っているのと違うのが必要…なんだけど、とりあえず Debian パッケージの方を無理やり使うようにパッチした。一応ビルドは通る。
      • →ruby-rspec-instafail を git に登録、test がよくわからない。
      • ruby-launchy には ruby-spoon パッケージと ruby-ffi の更新が必要…
        ruby-spoon は ITP して git に登録...しようとしたら被ってた。アップデートしていいか一応確認しておく。これはそのまま放り込めそう。ruby-ffi はどうするかな。
    • ruby-appraisal は素直にパッケージにすれば良さそう…修正が必要だけど。