subversion 1.5 で checkout した IniAdminPlugin を setup.py bdist_egg したらエラーになった
0.11 用の IniAdminPlugin の egg ファイルを作成しようとして python setup.py bdist_egg
するといきなりエラーになった。
$ python setup.py bdist_egg running bdist_egg running egg_info creating IniAdmin.egg-info writing IniAdmin.egg-info/PKG-INFO writing top-level names to IniAdmin.egg-info/top_level.txt writing dependency_links to IniAdmin.egg-info/dependency_links.txt writing entry points to IniAdmin.egg-info/entry_points.txt writing manifest file 'IniAdmin.egg-info/SOURCES.txt' Traceback (most recent call last): File "setup.py", line 11, in ? package_data={'iniadmin' : ['htdocs/css/*.css', 'templates/*.html', ]}) File "/usr/lib/python2.3/distutils/core.py", line 149, in setup dist.run_commands() File "/usr/lib/python2.3/distutils/dist.py", line 907, in run_commands self.run_command(cmd) File "/usr/lib/python2.3/distutils/dist.py", line 927, in run_command cmd_obj.run() File "/usr/lib/python2.3/site-packages/setuptools/command/bdist_egg.py", line 167, in run self.run_command("egg_info") File "/usr/lib/python2.3/distutils/cmd.py", line 333, in run_command self.distribution.run_command(command) File "/usr/lib/python2.3/distutils/dist.py", line 927, in run_command cmd_obj.run() File "/usr/lib/python2.3/site-packages/setuptools/command/egg_info.py", line 171, in run self.find_sources() File "/usr/lib/python2.3/site-packages/setuptools/command/egg_info.py", line 252, in find_sources mm.run() File "/usr/lib/python2.3/site-packages/setuptools/command/egg_info.py", line 306, in run self.add_defaults() File "/usr/lib/python2.3/site-packages/setuptools/command/egg_info.py", line 333, in add_defaults rcfiles = list(walk_revctrl()) File "/usr/lib/python2.3/site-packages/setuptools/command/sdist.py", line 45, in walk_revctrl for item in ep.load()(dirname): File "/usr/lib/python2.3/site-packages/setuptools/command/sdist.py", line 52, in _default_revctrl for path in finder(dirname,path): File "/usr/lib/python2.3/site-packages/setuptools/command/sdist.py", line 98, in entries_finder log.warn("unrecognized .svn/entries format in %s", dirname) NameError: global name 'log' is not defined
どうも subversion 1.5 working copy のフォーマットが変更になったので setuptools が .svn/entries
からリビジョン番号を取り出そうとして失敗している模様。(NameError: global name 'log' is not defined
になっているのはまた別の問題だとは思うがとりあえず今はムシ)
$ head -1 .svn/entries 9
setuptools のページから repository を確認したけど branches/setuptools-0.6 も trunk も subversion 1.5 用の処理はまだない。
svn export すればいけるだろうげとそれもなんか癪なので別の方法を。
ここで working copy フォーマットを変更するツールがあるのを思い出したのでそれを使ってみる。
$ /usr/lib/subversion/tools/client-side/change-svn-wc-format.py usage: change-svn-wc-format.py WC_PATH SVN_VERSION [--verbose] [--force] [--skip-unknown-format] change-svn-wc-format.py --help Change the format of a Subversion working copy to that of SVN_VERSION. --skip-unknown-format : skip directories with unknown working copy format and continue the update
第1引数には working copy のディレクトリを指定して、第2引数には subversion のバージョンを指定するらしい。今は 1.4 相当にしたいので 1.4 を指定。
$ /usr/lib/subversion/tools/client-side/change-svn-wc-format.py . 1.4 Converted WC at '.' into format 8 for Subversion 1.4 $ head -1 .svn/entries 8
いちおう 8 になっている。気を取り直して bdist_egg してみる。
$ python setup.py bdist_egg running bdist_egg running egg_info writing IniAdmin.egg-info/PKG-INFO .... creating dist creating 'dist/IniAdmin-0.2-py2.3.egg' and adding 'build/bdist.linux-i686/egg' to it removing 'build/bdist.linux-i686/egg' (and everything under it)
できた。
あれ。egg ファイルの名前 IniAdmin-0.2-py2.3.egg
にリビジョン番号入ってないよ…。setuptools は working copy にいたら常にリビジョン番号を取り出そうとするのね…。