hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
01/05/2004 むう [長年日記]
tDiary 438日目
■ [Gentoo] ebuild ネーミングポリシ
repoman には
ven_cat = r'[\w0-9-]+' # Category
ven_nam = r'([+a-z0-9-]+(?:[+_a-z0-9-]*[+a-z0-9-]+)*)' # Name
ven_ver = r'((?:\d+\.)*\d+[a-z]?)' # Version
ven_suf = r'(_(alpha\d*|beta\d*|pre\d*|rc\d*|p\d+))?' # Suffix
ven_rev = r'(-r\d+)?' # Revision
と書いてあり,portage_core.py には
pattern=re.compile(
'^(\w+-\w+)/' # category
'([^/]+?)' # name
'-(\d+(?:\.\d+)*[a-z]*)' # version, eg 1.23.4a
'(_(?:alpha|beta|pre|rc|p)\d*)?' # special suffix
'(?:-r(\d+))?$') # revision, eg r12
と書いてある.一体どっちなんでしょ.
いや uploader が ebuild からアプリ名を取得する際に,大文字の部分までを最長マッチで切り取ってしまう現象が確認されたので調べてみたんですけどね.repoman の方を見ると,そりゃ大文字は弾かれるわな,という正規表現.uploader は今まで repoman 準拠の正規表現を使ってたので怪しいことになったんでしょうな.切り取り現象もこれ派生のものでしょう.
一方 portage_core.py の方を見ると,ebuild の名前は / 以外の任意の文字列.ふーむ随分チェックが甘いけど,これなら大文字が許容される.
というわけで uploader をこの正規表現に変えておきましたとさ.めでたいかとうかは使ってみてのお楽しみ.
正しいのは http://www.gentoo.org/doc/ja/policy.xml に書いてあるようにrepomanの方ですね。ただ、たくさんのパッケージで既に大文字がたくさん使われてしまっているので、諦めてポリシーを変えるべきだと思うのですが…。ちなみにportage_core.pyは今はほとんど(全く?)使われてないです。
うーむ,「英小文字、0-9の数字、ハイフン(-)しか含むべきではありません。(中略) Portageツリーにはいくつかのこのルールに従っていないパッケージがあります。しかし *あなたの* パッケージはこれに従うべきです。」となると,uploader では許容すべきでないんでしょうかねぇ….
もし本家に持ってくようなことがあると小文字にしなきゃなんなくなりますよね.
そうですねぇ。uploaderでは許容していいと思います。本家にあげるのは微妙ですねぇ…。そのポリシー無くしてもらいたいんだけど、言い出すのはめんどくさいなぁ(もしくは全部ちゃんとした名前に変更する)
はやっ(^^;
全部ちゃんとした名前に変更する方がいいんでしょうけど,結構な量があるから大変そう….
uploader については [-dev 206] の usata さんの言うような形で良いとは思います.
警告入れようとするとコード追加しなきゃなんないからめんどくさいけど(^^;
しかし単なる大文字許容なら repoman の正規表現に大文字を加えた,
([+a-zA-Z0-9-]+(?:[+_a-zA-Z0-9-]*[+a-zA-Z0-9-]+)*)
てな感じにした方が良かったかも….
# しかし今気付いたけど _ や + が許容されてる気がする….
uploaderの大文字の許容で、すばやい対応ありがとうございました。
ちなみに単語の頭のみ大文字許容ってのはどうでしょう?
([+a-zA-Z0-9-]?[+a-z0-9-]+(?:[+_a-zA-Z0-9-]?[+_a-z0-9-]+)*)
# 例により未確認な正規表現です(^^;;
うーん,dev-perl 以下のものを見ると,大文字なのは単語の先頭だけに限らないようなんですが….
許容するなら全面的にする,しないなら全面的にしない,という風にした方が分かりやすいと思うんですが(^^;
う、よく見るとほんとですね。自分で作成しておきながら、覚えてませんでした。
全面的に使える!がうれしいですが。。。どうなんでしょうねぇ。。。