vcs-snapshot.eclass

最近はGitHubなんかでタグをつけて、そのままそれをリリースtarballにしているところも多い。ところが、このtarball、展開すると username-projectname-hash みたいなディレクトリに入っていて、Gentooのデフォルトのソースディレクトリ設定である${P} (zsh-3.1.1、とかそんな感じで projectname-version)とは一致しないことが多い。

そこでこういうやつらに対処するために、 ebuildの中でソースディレクトリを設定する(S="${WORKDIR}"/username-project-name-hash)とか、mv * "${S}" する、とかがそれぞれebuildごとに行なわれてきた。

こういうのを統合しようとして、 vcs-snapshot.eclass というのが作られた。使い方は簡単。inheritさえしておけば、 unpackしてから mv *-*-[0-9a-f]*[0-9a-f]/ "${S}" || die してくれる。