2010年01月17日

Zope-2.12.2 と日本語の親和性

 前版2.12.1迄はZMI上で文字列プロパティ「management_page_charset」で「UTF-8」を値として設定しなければ、ZMI上の操作すらおぼつかなかった。でも、今回の2.12.2では、この設定が既定値に置換わったとのことで、利用プロダクト対応で無理やり別の文字コードにしなければならない場合を除き、「management_page_charset」プロパティは不要なものとなった。

 でも、これは「management_page_charset」の既定値が変わり、ZopeがUTF-8を基準に設計される方向になったというだけのこと、その方針の基で全てのコードの見直しがZopeとそのProducts、そして利用するモジュール側で行なわれない限り、日本語等の様なnon-ascii系のMulti-bite文字をまともに表示利用する為には、既知の対策がまだまだ必要だ。

 先ず、前稿のネタ「sitecustomize.py」でのZope用のPython環境の「defaultencoding」を「UTF-8」にすることは絶対必要なことである。:

import sys
sys.setdefaultencoding('UTF-8')


 Zope-2.12.2であっても、これがないと、ZWiki2.0b1利用でも、ZMI上で、日本語ページ名のリストは表示出来ても、その中身にアクセス出来なかったりする。

 でも、Zope-2.12.2の国際化対応に与える影響は結構強力であることも事実で、Zope-2.12.1以前でZWikiのIssueTrucker用のプロパティに日本語を放り込めるのはCategoryのみだったが、ZWiki側のソースコードの変更なしに他のissue_severities等に試しに、戯言等と追加して試ると「課題フィルタ(filterissues)」等でちゃんと表示される迄になった。ただ、概ね動作も良好なのだが、キャッシュ処理の関係かな? 書込み変更後の選択が以前のままで表示されたりすることもある。読み直すとちゃんとデータ通り表示されるので、問題を残していても軽めなのだろう。

 今後のZopeでの日本語利用は、「sitecustomize.py」さえちゃんと入れておけば明るいと言えよう。その辺、細かく設定することが嫌な方は、前稿のスクリプトを使いZopeインストールすると即、幸せになるかもだ。少なくとも設定漏れによる障害で悩むことはなくなるだろう。
タグ:Zope Python ZWiki
posted by Mire at 07:00 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

2010年01月16日

【Zope引越】Zope2.12InstallScript(v.2) 〜 Install&設定自動化

 【Zope引越】Zope2.12InstallScript 〜 個別Install&設定自動化 で公開した、Zope-2.12のInstall+設定Scriptに本日、問題が見つかったので報告すると共に改訂版をここに掲載する。今回より提供ファイルは次の2つとなり、所定のインストールとカスタマイズをして頂いた後、Zope実行ユーザで本体スクリプトを実行頂ければ、Zopeインスタンスフォルダにサービス起動時に必要となるZope起動スクリプトの生成迄は行なう様にした。内容を精査し必要により修正しスーパーユーザでサービス登録とサービス起動を行なって頂けば、後は、お好みのZopeプロダクトや必要なPythonモジュールをインストールし、ZMIでサイトオブジェクトの作成や既存サイトをexport/importして引越すだけだ。大いに楽しんで欲しい。尚、当方の環境では実行に10分前後必要ではあるが、始めに必要な6つの引数とスクリプト内の変数として埋め込んだ既定値を指定済みなので、その間他の作業が出来る。この辺、お決まりの手順なので隠蔽するが勝ちだろう。

反省、sitecustomize.pyによる既定文字コード設定が漏れていた


 Zope-2.12.2は、既定文字コードが原則UTF-8になったということで、少し注意散漫になっていた様だ、pythonの既定文字コード設定が必要であることに気付かず、それを漏らしたままScriptを作成してしまっていた。旧版であれば、ZMI画面で簡単に気付くものだが、2.12.2では、課題になかなか気付かなかった。ZWiki2.0b1で一部不具合があり調べて試るとそう言う結論であった。具体的には当方の作成したスクリプトはsite-packagesを引継がずにvirtualenvを作成するので、親にあるsitecustomize.pyがコピーされることはないと言う訳だ。

 /lib/python2.6/site-packages/sitecustomize.py


import sys
sys.setdefaultencoding('UTF-8')
#sys.setdefaultencoding('UTF-8')
#sys.setdefaultencoding('EUC-JP')
#sys.setdefaultencoding('Shift_JIS')


 今回、転んだ所で何も掴まず起き上がるのもしゃくなので、日本語環境専用として極め打ちしていた部分を変数化して、他言語にも対応出来る様に改良して試た。少なくともCJK環境内であればこれで対応出来るのてはないかと思う。

 使い方は、追記エリアに表示しているスクリプトを、zopeをインストールし実行するユーザのホームルートに入れ、スクリプトとして実行可能にした上で、普通のスクリプト同様に「./」を頭につけてスクリプトを実行すれば良い。例えば、Zopeの実行ユーザ名がzopeで、スクリプト名がZopeInst2.scrだったとすると、スーパーユーザroot管理者になり次の操作をする。無論、zopeユーザで最初からファイル作成を行なった場合にはzopeユーザで最後のchmodの実行だけでOKだ。初歩的なことだが取敢えず触れて置く。尚、今回より、日本語対応patch用のsetスクリプトは本体スクリプト側で自動生成させるので不要となり、代わりにZope起動スクリプトの生成用の雛型ファイルを同じフォルダに入れて頂く必要はある。Zope起動スクリプトは、Zopeインスタンスフォルダ内に作成されるので、精査の上適宜修正頂き、/etc/rc.d/init.dにコピー後、サービス登録の処理をして頂きたい。
      


su -
chown zope /home/zope/ZopeInst2.scr
chgrp zope /home/zope/ZopeInst2.scr
chmod 755 /home/zope/ZopeInst2.scr


 スクリプトの実行自体は次の様にすると良いだろう。
      


su - zope
script 20100115_Install_Zope-2.12.2_for_10080_log.txt
./ZopeInst2.scr ~/py2.6_2.12.2 2.12.2 ~/Zins_2.12.2_10080 admin hogehoge 10080
exit
 scriptとexitの行は、インストール画面のログ記録を取る為のもので必須ではないが併せて実行することを推奨する。大事な環境作成で何を実行したのか判らない様では、障害対策もあったものでないだろう。
 このスクリプトは6つの引数を指定することが必須なのでそれを漏れなく指定した場合には実行されるが、そうでない場合には使い方が表示される様にしている。スクリプトそのものは当方の壊れた和製英語を吐くがここだけ、取敢えず近い日本語に直したものを以下に掲載して置く。
      


[zope@l22dm ~]$ ./install_zope2_2.sh
####################################################################
# Zope2 導入と言語設定スクリプト
# Ver.0.0.2 2010-01-15 (C)Mire in pythonlife.seesaa.net
# (http://pythonlife.seesaa.net/article/137241693.html)
# * ライセンス: GPL :-)
# * 必要なもの:
# - sed : zope.conf の自動編集で必要
# - python2.6.x : Zope2.12.x で必要
# - virtualenv : python2.6.x に導入
# - setuptools : python2.6.x に導入
# - zope_daemon_scr : Zope script 雛型 CentOS5/RHEL5用
# - インターネット接続 (easy_installを使うので)
####################################################################
 このスクリプトは新たにZope用のpythonとja_JP.UTF-8用のZopeインスタンスを作成します。
# このスクリプトの既定値
#python2.6 インスタンス(親) :py_dir =/usr/local
#Zope2の PyPi URL :url =http://download.zope.org/Zope2/index/
#stletters.py ファイル :stl_py =lib/python2.6/site-packages/zope.structuredtext-3.4.0-py2.6.egg/zope/structuredtext
#sitecustomize.py ファイル :sitecustomize_py =lib/python2.6/site-packages/sitecustomize.py
#python defaultencoding :py_defaultencoding=UTF-8
#locale :sed01 =ja_JP.UTF-8
#datetime-format :sed02 =international
#rest-input-encoding :sed03 =utf-8
#rest-output-encoding :sed04 =utf-8
#rest-language-code :sed05 =ja
#default-zpublisher-encoding :sed06 =utf-8
(他の値を設定したいなら、このスクリプトを編集して下さい。)

このスクリプトは、次のことを実行
1. zope.conf編集の為の zope_conf_for_ja_JP.UTF-8.sed ファイルを作成。
2. site-packagesフォルダ内の sitecustomize.py ファイルを作成。
3. 新たにPythonのvirtualenvを作成。
4. Zope サーバをインストール。
5. Zope インスタンスを作成。
6. zope.conf ファイルの編集(地域言語等)
7. stletters.py ファイルの編集(StructuedTextのi18n対応修正)

あなたがやるべき作業
1. /etc/rc.d/init.d 内にサービス起動スクリプトを作成登録し
Zopeをサービス起動(super userで実行)
2. 利用するZopeプロダクトとPythonモジュールをインストール
- PlacelessTranslationService(>=2.0a2)
- ExternalEditor(and helper to client)
- jaMailHost
- i18nude (i18n potファイル作成用のPythonモジュール)
- 必要なもの、例えば ZWiki2.0b1, Plone, 等
3. 新規サイトオブジェクト作成か現サイトオブジェクトのexport/import
4. ポートセキュリティ設定の変更
5. 楽しみましょう。

####################################################################
## このスクリプトはzope ユーザのポームルートにインストール
## (chown,chgrp chmod 755 ./install_zope2_2.sh 後、zopeユーザで実行)
## 6 つの引数を設定
## 1. : 新しいPython環境のディレクトリ名
## 2. : インストールするZope2のバージョン名
## 3. : 新しいZopeインスタンスディレクトリ名
## 4. : Zope内の管理者ユーザID
## 5. : Zope内の管理者ユーザのパスワード
## 6. : ポート番号 (8080 以上であること)
## USAGE: ././install_zope2_2.sh
## eg. [root@svr01 ~]# su - zope
## [zope@svr01 ~]$ script ~/20100115_Install_Zope2.12.2_log.txt
## [zope@svr01 ~]$ ./install_zope2_2.sh ~/py26_for_Zope2.12.2 2.12.2 ~/ZOPE2.12.2_10080 admin hogehoge 10080
## [zope@svr01 ~]$ exit
## [zope@svr01 ~]$ su -
## [root@svr01 ~]#
[zope@l22dm ~]$

 尚、当方の環境で実行したところ、10分程度でこれだけのことが一気に完了する。ケアレスミスも防げるし何よりも楽だ。続きを読む
タグ:Zope Linux CentOS5.4
posted by Mire at 11:58 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

2010年01月08日

【Zope利用】ExternalEditor(外部編集)利用 〜 端末側Helper Install

 ZopeにはExternalEditorというプロダクトがあり、これをインストールしたZopeサイトなら、使い慣れたテキストエディタの等の任意の編集アプリを使い、Zope内のオブジェクトを編集出来る様になる。  多分これは、一般にはZMI上のオブジェクト編集がメインの用途なのだろうが、幸い、ZWikiもこの機能に対応しているので、導入されているZWikiサイトの画面には、右上に鉛筆アイコンが表示されている筈だ。

ZopeのExternal Editor のヘルパーのインストール


 Windowsマシンへのインストールは簡単で、次の手順になる。
  1. インストーラのダウンロード
     http://plope.com/software/ExternalEditor より最新のzopeedit-win32-x.x.x.exeをダウンロードする。現時点での最新はzopeedit-win32-0.9.3.exe なので当方はそれを利用。
  2. インストーラの実行
     実行ファイルなので、それをエクスプローラ上でダブルクリックする等して実行させ、後はメッセージに対し素直にはいはい言って置くだけだ。
  3. ZopeEditor.iniの編集
     普通のユーザにとり一番嫌らしいのはこれかな。このヘルパーアプリのインストールフォルダ内にあるZopeEditor.iniを編集して、利用するエディタアプリを指定する訳だ。一番単純な設定は次の1行(8行目)で、この行の頭の#マークを取除き、次の様に利用するエディタアプリのプログラムを指定するだけだ。
     当方の設定例: MKEditorを全般で利用する場合
     
     
    editor = "C:\Program Files\MKEditor\MKEditor.exe"
    
     尚、当方ではしていないが、Zope管理画面にあるオブジェクト別にHTMLや画像ファイル専用の外部編集アプリをその下のMIMEタイプの場所に指定することで、使い分けることも可能な様だ。(但し、当方の環境では上手く使分けが出来ていないが、テキストエディタ以外に必要性が乏しいので深追いしていない。頻繁な利用でない分は無理に使わなくてもコピペでも充分用を足す。)
     以下に、念の為、ZopeEdit.iniの対訳を掲載して置くので、後は、http://zope.jp/documents/how-to/external-editor 辺り等で補完して下さい。
# Zope External Editor helper application configuration # Zope 外部編集 ヘルパー アプリケーション 設定
[general] [general]
# General configuration options # 一般 設定 オプション
# Uncomment and specify an editor value to override the # コメントを外し、OSで指定されたエディタに優先させる為の
# editor specified by the operating system # エディタの値を指定して下さい。
#editor = #editor =
# Automatic save interval, in seconds. Set to zero for # 定期自動保存、秒単位。 自動保存しない
# no auto save (save to Zope only on exit). # (終了時のZopeへの保存のみ)ならゼロを設定。
save_interval = 1 save_interval = 1
# Temporary file cleanup. Set to false for debugging or # 一時ファイル消去。 バク取りまたはディスク容量を
# to waste disk space. Note: setting this to false is a # 浪費してよいなら false を設定。 注意: この false 設定は
# security risk to the zope server # Zopeサーバにとりセキュリティリスクです。
cleanup_files = 1 cleanup_files = 1
# Use !WebDAV locking to prevent concurrent editing by # 別のユーザによる同時編集防止用のWebDAV
# different users. Disable for single user use or for # ロックを使います。 より良い処理能力または単一
# better performance # ユーザ用なら無効にします
use_locks = 1 use_locks = 1
# To suppress warnings about borrowing locks on objects # 編集開始前にあなたによりロックされた文書上の
# locked by you before you began editing you can # ロック取得についての警告を抑制する為に、このフラッグを
# set this flag. This is useful for applications that # 設定出来ます。 これはCMFStagingの様にサーバ側の
# use server-side locking, like !CMFStaging # ロックを使うアプリケーションにとり便利です
always_borrow_locks = 0 always_borrow_locks = 0
# Specific settings by content-type or meta-type. Specific # content-typeまたはmeta-typeによる設定を指定して
# settings override general options above. Content-type # 下さい。上記一般オプションに優先する設定を指定ます。同じ
# settings override meta-type settings for the same option. # オプションのmeta-type設定はContent-typeに優先
[meta-type:DTML Document] [meta-type:DTML Document]
extension=.dtml extension=.dtml
[meta-type:DTML Method] [meta-type:DTML Method]
extension=.dtml extension=.dtml
[meta-type:Script (Python)] [meta-type:Script (Python)]
extension=.py extension=.py
[meta-type:Page Template] [meta-type:Page Template]
extension=.pt extension=.pt
[meta-type:Z SQL Method] [meta-type:Z SQL Method]
extension=.sql extension=.sql
[content-type:text/plain] [content-type:text/plain]
extension=.txt extension=.txt
[content-type:text/html] [content-type:text/html]
extension=.html extension=.html
[content-type:text/xml] [content-type:text/xml]
extension=.xml extension=.xml
[content-type:text/css] [content-type:text/css]
extension=.css extension=.css
[content-type:text/javascript] [content-type:text/javascript]
extension=.js extension=.js
[content-type:image/gif] [content-type:image/gif]
extension=.gif extension=.gif
[content-type:image/jpeg] [content-type:image/jpeg]
extension=.jpg extension=.jpg
[content-type:image/png] [content-type:image/png]
extension=.png extension=.png
 最後に、念の為、Zope側へのExternal Editor のインストールだが、これは一般的なZopeのプロダクトと同じで、External Editor本体のソースファイル「ExternalEditor-0.9.3-src.tgz」を展開して出来る「ExternalEditor」フォルダを 導入インスタンス内のProductsフォルダに入れてから、Zopeを再起動するだけである。尚、ZWiki上で認証しない一般の匿名ユーザにも認める場合には、ZMI画面のZWikiサイトオブジェクトフォルダのSecurityタブ上で Anonymous(匿名ユーザ) に対し「Use external editor」のチェックして置く必要がある。(蛇足ながら、当然「Zwiki: Edit pages」も入れないと編集自体が出来ないので「編集(edit)」のリンク自体も出ない。)  尚、当方はサーバ側はCentOS5.4 Zope2.12.2 ZWiki2.0b1、端末側はVista+Firefox3.5.6+MKEditor3.8.1-Jの環境での動作確認で、当方のZope2.12.1環境では何故か動作しなかった。
タグ:Zope ZWiki
posted by Mire at 11:44 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

2010年01月02日

【Zope引越】Zope2.12InstallScript 〜 個別Install&設定自動化

 実を言うとbashのシェルscriptにはとても疎い。仕方がないのでググりながら少しずつ作り上げたものが、次のものだ。前半は、virtualenvで、新たにZope本体をInstallするディレクトリ位置にPythonの独立環境を作成後、Zope2をeasy_installでInstallし、インスタンス作成 + etc/zope.conf への日本語利用時の標準的修正迄を自動化した。使い方は「Zope実行ユーザ になって」「以下の install_zope2.sh をそのルートに作成し、chmod 755 当たりで実行可能にした」上で、「6つの必要パラメータを指定してinstall_zope2.sh」を実行して頂くだけで、当方の環境では十数分間放置で作業が進むので、その間にサービス起動スクリプトの準備やportに対するセキュリティ変更を並行して行なうことも可能となった。

実行方法:
./install_zope2.sh <Python環境> <ZopeのVersion> <Zopeインスタンス> <Zope管理者ID> <Password> <port番号>
     ~/install_zope2.sh の実行例


[root@l22dm ~]# su - zope
[zope@l22dm ~]$ ./install_zope2.sh ~/py264_2122 2.12.2 ~/Z_2122 admin hogehoge 21080
############################################################
## Install of New Zope2 Server in /home/zope/py264_2122 and /home/zope/Z_2122
## with locale ja_JP.UTF-8
2010年 1月 2日 土曜日 19:14:51 JST
create python virtualenv in /home/zope/py264_2122
/usr/local/bin/virtualenv --no-site-packages /home/zope/py264_2122
New python executable in /home/zope/py264_2122/bin/python2.6
Also creating executable in /home/zope/py264_2122/bin/python
Installing setuptools............done.
cd /home/zope/py264_2122
source bin/activate
Installing zope 2.12.2
<中略>
Installed /home/zope/py264_2122/lib/python2.6/site-packages/zope.minmax-1.1.1-py2.6.egg
Finished processing dependencies for Zope2
make zope instance
############################################################
# zope.conf
cp /home/zope/Z_2122/etc/zope.conf /home/zope/Z_2122/etc/zope_org.conf
sed -e "s/# port-base 1000/# port-base 1000\n port-base 13000/g" /home/zope/Z_2122/etc/zope_for_ja_JP.UTF-8.conf > /home/zope/Z_2122/etc/zope.conf
2010年 1月 2日 土曜日 19:28:02 JST
Now Finished.
Prease, edit config what you want on "/home/zope/Z_2122/etc/zope.conf".
To run as service.
Make script in /etc/rc.d/init.d/
Do sysconfig -add <script name> and
service <script name> start
Note: Don't foget port security setup!
[zope@l22dm ~]$
 以下の2つのファイル「~/install_zope2.sh」と「~/zope_conf_for_ja_JP.UTF-8.sed」を、Zope実行ユーザのルートディレクトリに入れて実行権を与えて
(「chmod 755 ~/install_zope2.sh」を一度実行するだけ)からご利用下さい。Zope2.12InstallScript(v.2)が最新です。そちらをスクリプトはそちらをお使い下さい。新版では必要なソースコードの準備はこれでほとんど完了します。
 ~/install_zope2.sh


#!/bin/sh
echo "####################################################################"
echo "# Zope2 Install & Japanese language setup script"
echo "# Ver.0.0.1 2010-01-04 (C)Mire in pythonlife.seesaa.net"

if [ $# -eq 6 ]
then
py_dir="/usr/local"
url="http://download.zope.org/Zope2/index/"
sedfile="zope_conf_for_ja_JP.UTF-8.sed"
echo "####################################################################"
echo "## Install of New Zope2 Server in $1 and $3"
echo "## with locale $locale"
date
if [ -d "$1" ]
then
echo "$1 directory exists."
else
echo "create python virtualenv in $1"
echo "$py_dir/bin/virtualenv --no-site-packages $1"
$py_dir/bin/virtualenv --no-site-packages $1
fi
echo "cd $1"
cd $1
echo "source bin/activate"
source bin/activate
echo
echo "Installing zope $2"
echo "./bin/easy_install -i bin/easy_install -i $url Zope2"
./bin/easy_install -i bin/easy_install -i $url$2 Zope2
echo
echo "make zope instance"
./bin/mkzopeinstance -d $3 -u $4:$5
echo "####################################################################"
echo "# edits zope.conf for ja_JP.UTF-8"
if [ -f "$3/etc/zope_bk2.conf" ]
then
cp $3/etc/zope_bk2.conf $3/etc/zope_bk3.conf
fi
if [ -f "$3/etc/zope_bk1.conf" ]
then
cp $3/etc/zope_bk1.conf $3/etc/zope_bk2.conf
fi
if [ -f "$3/etc/zope_org.conf" ]
then
echo "$3/etc/zope_org.conf exists."
cp $3/etc/zope.conf $3/etc/zope_bk1.conf
else
echo "cp $3/etc/zope.conf $3/etc/zope_org.conf"
cp $3/etc/zope.conf $3/etc/zope_org.conf
fi
echo "sed -f ~/$sedfile $3/etc/zope_org.conf > $3/etc/zope_for_ja_JP.UTF-8.conf"
sed -f ~/$sedfile $3/etc/zope_org.conf > $3/etc/zope_for_ja_JP.UTF-8.conf
echo "sed -e \"s/# port-base 1000/# port-base 1000\\n port-base `expr $6 - 8080`/g\" $3/etc/zope_for_ja_JP.UTF-8.conf > $3/etc/zope.conf"
sed -e "s/# port-base 1000/# port-base 1000\\n port-base `expr $6 - 8080`/g" $3/etc/zope_for_ja_JP.UTF-8.conf > $3/etc/zope.conf
diff -du $3/etc/zope_org.conf $3/etc/zope.conf
date
echo "####################################################################"
echo "Finished!\n"
echo
echo "Edit config what you need on \"$3/etc/zope.conf\"."
echo "To run as service."
echo "Make script in /etc/rc.d/init.d/"
echo "Do sysconfig -add <script name> and"
echo " service <script name> start."
echo "( example script: http://pythonlife.seesaa.net/article/134473801.html )"
echo "Note: Don't foget port security's setup on your platform!"
else
echo "# (http://pythonlife.seesaa.net/article/137241693.html)"
echo "# * lisence: GPL :-)"
echo "# * requirement:"
echo "# - python2.6.x : for Zope2.12.x"
echo "# - virtualenv : on your python2.6.x"
echo "# - setuptools : "
echo "# - Internet connection (for install by easy_install)"
echo "####################################################################"
echo " This script creates new python's environment, installs Zope"
echo " and make it's instance for ja_JP.UTF-8."
echo " Prease, set 6 parameters."
echo " 1. <env directory>: directory name of new python environment"
echo " 2. <version> : Zope2 version name what you want to install"
echo " 3. <instance> : directory name of new zope instance"
echo " 4. <userid> : zope admin user id"
echo " 5. <pasword> : zope admin user password"
echo " 6. <port> : port number (>=8080)"
echo
echo "####################################################################"
echo "## USAGE: $0 <env directory> <version> <instance> <userid> <pasword> <port>"
echo "## eg:" $0 "~/py26_z2.12.2 2.12.2 ~/ZOPE10080 admin hogehoge 10080"
fi
 2010-01-04 新版に差替え。実行条件を見直しました。



Zope2.12InstallScript(v.2)では、この「~/zope_conf_for_ja_JP.UTF-8.sed」は本体スクリプトにマージされ、スクリプト変数の既定値に基づき自動作成されます。すなわちV2は日本語用でなく他言語対応を可能にしました。尚、そちらでは起動スクリプトも引数や環境変数を基に作成します(但し、こちらは、起動スクリプトの雛型が必要です)。
 ~/zope_conf_for_ja_JP.UTF-8.sed


s/# locale fr_FR/# locale fr_FR\n locale ja_JP.UTF-8/g
s/# datetime-format international/# datetime-format international\n datetime-format international/g
s/# rest-input-encoding iso-8859-15/# rest-input-encoding iso-8859-15\n rest-input-encoding utf-8/g
s/# rest-output-encoding iso-8859-15/# rest-output-encoding iso-8859-15\n rest-output-encoding utf-8/g
s/# rest-language-code de/# rest-language-code de\n rest-language-code ja/g
s/# default-zpublisher-encoding utf-8/# default-zpublisher-encoding utf-8\n default-zpublisher-encoding utf-8/g
続きを読む
タグ:Zope Linux CentOS5.4
posted by Mire at 23:47 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

【Zope引越】Zope-2.12.2にVersion Up 〜 結構な手間と時間

 明けましておめでとうございます。今年もマイナーネタで頑張りますので皆様どうぞ宜しくお願いします。

 さて、年が明けて、久しぶりにZope本家にアクセスして見るとタイトルのZope-2.12.2が、リリースされていたので、新規にインストールし、引っ越すことにした。効果は少ないと思うというかプラスは期待できないのではないかとは思うが、 「reStructured TextのDocutils」と「i18n」のモジュールが最新版に変わった他、Python2.6のみのサポートに変更されており、成否は別にしても見て試る価値はあると思ったからである。

 でも、実際にInstallして試ると、結構手間も時間もかかるし、何よりも、その手順を曖昧にしていることとZopeでのeasy_installに慣れていないので、無駄な作業が多くなってしまった。そこで、ここに、まずは作業内容をまとめ、続けて、その自動化模索につなげて行こうとと思う。

 尚、ここに書く手順は、予め、「1. 最新のPython2.6をInstallしていること」「2. Virtualenvがそれを対象にInstallしていること」「3. easy_installもそれを対象にInstallしていること」 「4. 自身の環境におけるZope-2.12用のサービス起動Scriptの雛型を持っていること」「5. Zope実行Userをスーパユーザ(root)でなくzope等にしていること」そして「6. OSはCentOS5.4」(locale=ja_JP.UTF-8)を前提にしているので、不足分は過去の投稿で確かめて頂き、環境の差異はご自身でご補完頂きたい。(尚、必要であれば判る範囲で質問にも応えすることは可能。)
  1. zope実行ユーザになる。:

    [root@l22dm ~]# su - zope
    
    
  2. zope2.12.2用のpython2.6環境「/home/zope/my_zope2.12.2」を「 `virtualenv <>`_ 」で作る。:

    [zope@l22dm ~]$ virtualenv --no-site-packages my_zope2.12.2
    (my_zope2.12.2)[zope@l22dm ~]$ cd my_zope2.12.2/
    [zope@l22dm my_zope2.12.2]$ source bin/activate
    
  3. easy_installでzope-2.12.2をインストール:

    (my_zope2.12.2)[zope@l22dm my_zope2.12.2]$ ./bin/easy_install -i bin/easy_install -i http://download.zope.org/Zope2/index/2.12.2 Zope2
    
  4. zope-2.12.2の実行インスタンスを「~/Z2.12.2」とそのuseridとpasswordを作成する:

    (my_zope2.12.2)[zope@l22dm my_zope2.12.2]$ bin/mkzopeinstance
    Please choose a directory in which you'd like to install
    Zope "instance home" files such as database files, configuration
    files, etc.
    
    Directory: ~/Z2.12.2
    Please choose a username and password for the initial user.
    These will be the credentials you use to initially manage
    your new Zope instance.
    
    Username:admin
    Password:
    Verify password:
    
  5. 「~/<インスタンス>/etc/zope.conf」を編集し日本語利用環境整備とport番号を調整(この場合、12000+8080=20080)する。:

     locale ja_JP.UTF-8
     datetime-format international
     rest-input-encoding utf-8
     rest-output-encoding utf-8
     rest-language-code ja
     port-base 12000
     default-zpublisher-encoding utf-8
    
    
    (my_zope2.12.2)[zope@l22dm my_zope2.12.2]$ cd ../Z2.12.2/etc/
    (my_zope2.12.2)[zope@l22dm etc]$ ls
    site.zcml  zope.conf
    (my_zope2.12.2)[zope@l22dm etc]$ cp zope.conf zope_org.conf
    (my_zope2.12.2)[zope@l22dm etc]$ emacs zope.conf
    [zope@l22dm ~]$ diff -du ~/Z2.12.2/etc/zope_org.conf ~/Z2.12.2/etc/zope.conf
    --- /home/zope/Z2.12.2/etc/zope_org.conf        2010-01-01 15:34:58.000000000 +0900
    +++ /home/zope/Z2.12.2/etc/zope.conf    2010-01-01 16:02:58.000000000 +0900
    @@ -184,6 +184,7 @@
     # Example:
     #
     #    locale fr_FR
    +    locale ja_JP.UTF-8
    
    
     # Directive: datetime-format
    @@ -201,6 +202,7 @@
     # Example:
     #
     #    datetime-format international
    +    datetime-format international
    
    
     # Directive: zserver-threads
    
    @@ -313,6 +315,7 @@
     # Example:
     #
     #    rest-input-encoding iso-8859-15
    +    rest-input-encoding utf-8
    
     # Directive: rest-output-encoding
     #
    @@ -326,6 +329,7 @@
     # Example:
     #
     #    rest-output-encoding iso-8859-15
    +    rest-output-encoding utf-8
    
     # Directive: rest-header-level
     #
    @@ -352,6 +356,7 @@
     # Example:
     #
     #    rest-language-code de
    +    rest-language-code ja
    
     # Directive: cgi-environment
     #
    @@ -902,6 +907,7 @@
    
     # Example:
     #
     #     port-base 1000
    +     port-base 12000
    
    
     # Directive: large-file-threshold
    @@ -927,6 +933,7 @@
     # Example:
     #
     #    default-zpublisher-encoding utf-8
    +    default-zpublisher-encoding utf-8
    
     # Directives: servers
     #
    
  6. daemon起動スクリプト作成(既存分をコピーしインスタンスを書替):

    (my_zope2.12.2)[zope@l22dm etc]$ su -
    パスワード:
    [root@l22dm ~]# cd /etc/rc.d/init.d/
    [root@l22dm init.d]# cp zope19080 zope20080
    [root@l22dm init.d]# emacs zope20080
    INSTANCE_HOME=/home/zope/Z2.12.2
    
    
  7. 作成インスタンスをサービス登録し起動:

    [root@l22dm init.d]# chkconfig --add zope20080
    [root@l22dm init.d]# chkconfig --list | grep zope20080
    zope20080       0:off   1:off   2:on    3:on    4:on    5:on    6:off
    [root@l22dm ~]# service zope20080 start
    Starting zope:                                             [  OK  ]
    [root@l22dm ~]#
    
  8. ポート番号のセキュリティを解除

  9. ブラウザでZMI( http://192.168.x.x:20080/manage )に作成したuseridとpasswordで接続。

  10. 必要Productsのインストールとpatchの適用

    • ZWiki
    • PlacelessTranseration
    • jaMailHost
    • stxたかのさんpatch
    • ZWiki ja.poの差替
  11. サイトDBのExport&Importでサイト移行

  12. サイトDBのUpgrade(必要な場合)

 まあ、結構、細々としたハンド作業の羅列となる。せめて、ZopeサーバのInstallだけでも、1つのScriptで自動実行出来たらと思う。さて、それは次稿で述べよう。


タグ:Zope CentOS5.4 Linux
posted by Mire at 22:46 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

2009年12月18日

【和訳】i18ndude 日本語訳α1 〜 Zope国際化 ZPT のpot生成

 前稿「【CentOS5.4】ZWiki2の日本語化 〜 i18ndudeでpot生成」で使ったi18ndudeのヘルプの和訳を掲載して置く。まだ、英語で読むよりは判る程度の訳で、充分に役立つレベルではないので、お気づきのことがありましたら、コメントをお願いします。
i18ndudeにはまとまったマニュアルは内容に見える。唯一あるのは、--helpをオプションを付けて得られる情報で、今回の日本語翻訳の対象はそれである。
     「i18ndude --help」で得られる英文の和訳


[zope@l22dm ZWiki]$ /home/zope/my_zope2/bin/i18ndude rebuild-pot --help
使い方: i18ndude コマンド [オプション] [バス | ファイル1 ファイル2 ...]]

i18ndudeは ZPT、Python Scripts及びi18n関連の様々なタスクを実行します。

-h, または --help でない限り、オプションは 以下のコマンドの内の一つが存在して
いなければなりません:

find-untranslated [-s|-n] [ファイル1 [ファイル2 ...]]
ZPTファイル名のリストを提供して、その未翻訳と思う箇所の
レポートを出力します。例、 "i18n:translate" や
"i18n:attributes" がなくなっているタグ。

-s オプションをつけたら、レポートには、それぞれのファイルの
エラーと警告のサーマリのみを含みます(また、エラーと警告がなければ
、何も出力しません)。 -n オプションをつけたら、
レポートには、それぞれのファイルのエラーのみを含みます。

rebuild-pot --pot <ファイル名> --create <ドメイン> [--merge <ファイル名>
[--merge2 <ファイル名>]] [--exclude="<除外1> <除外2> ..."] パス [パス2 ...]

--pot オプションを用いてpotファイルを渡すことで、一つ以上の
ページテンプレート(*.*pt)とPythonスクリプト(*.*py)を明示出来ます。


手作業でIDに書き戻す必要がある場合にはオリジナルのpotファイルの
バックアップコピーを必ずとって下さい。

--merge <ファイル名>オプションで追加のpotファイルを
渡すと、これらのmsgidsを対象とするpotファイルに後で続けて
結合しようとします。 ZPT内に見付けたものの中に既に存在するmsgidが
あったなら、警告の上、そのmsgidを無視します。 この追加のpotファイルから
mimeヘッダを持ってきます。 --merge2 <ファイル名> を用いて
第2のpotファイルを渡すなら、 最初の結合成果に、これを結合します

除外すべきファイルのリストもまた、半角空白文字で区切ったファイルの
リストを連ねた--exclude 引数を使い、渡すことが
出来ます。

merge --pot <ファイル名> --merge <ファイル名> [--merge2 <ファイル名>]
--pot オプションを用いて potファイルをそして第2potファイルを
--merge <ファイル名> オプション で、渡すと、対称potファイル内に、
それらのmsgidsの結合を試みます。 msgid既出のもの
だったら、警告の上、そのmsgidを無視します。

--merge2 <ファイル名> を渡すなら、初めにこの分を最初の分に
加えて結合します。

sync --pot <ファイル名> ファイル1 [ファイル2 ...]
--pot でpotファイルとpoファイルのリストを渡すと、poファイルから
potファイルにないmsgidsのそれらの翻訳メッセージを取除いて、
potファイルが持つがpoファイルの持たないメッセージを
追加します。

filter <ファイル1> <ファイル2>
二つのpotファイルを渡すと、ファイル2にある(例えばmsgids一致)除去される
全メッセージ付きのファイル1の標準出力のコピーを書出します。

admix <ファイル1> <ファイル2>
二つのpoファイルを渡すと、ファイル1に翻訳がないファイル2内の
翻訳された記載を探します。 これらの翻訳(msgstrs)をファイル1に追加
します。 これは、ファイル1内の記載件数に影響しないことに留意して下さい。

list --products [ ...]
これは、それぞれの言語用に翻訳されたプロダクトのpotを
どれくらい結合したかを表すシンプルなリストを作ります。 これは、
potファイルのあるディレクトリから、実行して下さい。

[zope@l22dm ZWiki]$
 読んで頂ければ判ったこと思うが、既存のpotやpoを渡すことでそのデータをマージすることも出来る様だ。前稿では、不足分を手作業で追加したが、過去の資産を有効活用する手順としては、この機能を活用すべきだったのだろう。続きを読む
posted by Mire at 00:27 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

2009年12月02日

【CentOS5.4】Zopeの国際化i18n 〜 PlacelessTranslationService

 前稿迄の設定でも、既存のProductsを使うことは可能ではある。しかし、そのほとんどは英語版なので、一般の日本人に利用して頂くには難しいことがある。されを解決する為には、Zopeプロダクト、PlacelessTranslationService をインストールすることでi18nに対応したものはナビボタンやメニュー等のコントロール等を容易に日本語化出来る。

 このインストールは、PyPi にProducts.PlacelessTranslationService 2.0a2が登録されているので、そこから、ZIPファイルをDL、解凍後、setup.py installし、その後、Zopeを再起動するだけだ。
 


[zope@l22dm ~]$ wget http://pypi.python.org/packages/source/P/Products.PlacelessTranslationService/Products.PlacelessTranslationService-2.0a2.zip

[zope@l22dm ~]$ unzip Products.PlacelessTranslationService-2.0a2.zip
Archive: Products.PlacelessTranslationService-2.0a2.zip
inflating: Products.PlacelessTranslationService-2.0a2/CHANGES.txt
inflating: Products.PlacelessTranslationService-2.0a2/PKG-INFO
inflating: Products.PlacelessTranslationService-2.0a2/README.txt
inflating: Products.PlacelessTranslationService-2.0a2/setup.cfg
inflating: Products.PlacelessTranslationService-2.0a2/setup.py
inflating: Products.PlacelessTranslationService-2.0a2/docs/changelog
inflating: Products.PlacelessTranslationService-2.0a2/docs/license.txt
inflating: Products.PlacelessTranslationService-2.0a2/Products/__init__.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/__init__.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/configure.zcml
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/Domain.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/GettextMessageCatalog.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/interfaces.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/lazycatalog.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/load.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/memoize.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/msgfmt.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/Negotiator.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/overrides.zcml
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/patches.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/PlacelessTranslationService.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/utility.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/utils.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/bin/convertToLocales.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/locales/PlacelessTranslationService.pot
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/locales/cs/LC_MESSAGES/PlacelessTranslationService.po
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/locales/de/LC_MESSAGES/PlacelessTranslationService.po
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/locales/el/LC_MESSAGES/PlacelessTranslationService.po
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES/PlacelessTranslationService.po
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/tests/__init__.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/tests/layer.py
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/www/catalog_broken.pt
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/www/catalog_info.pt
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/www/catalog_test.pt
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/www/GettextMessageCatalog.png
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/www/PlacelessTranslationService-32.png
inflating: Products.PlacelessTranslationService-2.0a2/Products/PlacelessTranslationService/www/PlacelessTranslationService.png
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/dependency_links.txt
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/namespace_packages.txt
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/not-zip-safe
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/PKG-INFO
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/requires.txt
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/SOURCES.txt
inflating: Products.PlacelessTranslationService-2.0a2/Products.PlacelessTranslationService.egg-info/top_level.txt
[zope@l22dm ~]$ ls
Products.PlacelessTranslationService-2.0a2
Products.PlacelessTranslationService-2.0a2.zip Z2 ZWiki ZWiki-2.0b1.tgz my_zope my_zope2
[zope@l22dm ~]$ cd Products.PlacelessTranslationService-2.0a2
[zope@l22dm Products.PlacelessTranslationService-2.0a2]$ ls
CHANGES.txt PKG-INFO Products Products.PlacelessTranslationService.egg-info README.txt docs setup.cfg setup.py
[zope@l22dm Products.PlacelessTranslationService-2.0a2]$ ~/my_zope2/bin/python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to Products.PlacelessTranslationService.egg-info/requires.txt
writing Products.PlacelessTranslationService.egg-info/PKG-INFO
writing namespace_packages to Products.PlacelessTranslationService.egg-info/namespace_packages.txt
writing top-level names to Products.PlacelessTranslationService.egg-info/top_level.txt
writing dependency_links to Products.PlacelessTranslationService.egg-info/dependency_links.txt
reading manifest file 'Products.PlacelessTranslationService.egg-info/SOURCES.txt'
writing manifest file 'Products.PlacelessTranslationService.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-i686/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/Products
copying Products/__init__.py -> build/lib/Products
creating build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/interfaces.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/PlacelessTranslationService.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/memoize.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/__init__.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/msgfmt.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/patches.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/load.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/utility.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/Domain.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/GettextMessageCatalog.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/lazycatalog.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/utils.py -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/Negotiator.py -> build/lib/Products/PlacelessTranslationService
creating build/lib/Products/PlacelessTranslationService/tests
copying Products/PlacelessTranslationService/tests/__init__.py -> build/lib/Products/PlacelessTranslationService/tests
copying Products/PlacelessTranslationService/tests/layer.py -> build/lib/Products/PlacelessTranslationService/tests
copying Products/PlacelessTranslationService/configure.zcml -> build/lib/Products/PlacelessTranslationService
copying Products/PlacelessTranslationService/overrides.zcml -> build/lib/Products/PlacelessTranslationService
creating build/lib/Products/PlacelessTranslationService/bin
copying Products/PlacelessTranslationService/bin/convertToLocales.py -> build/lib/Products/PlacelessTranslationService/bin
creating build/lib/Products/PlacelessTranslationService/locales
copying Products/PlacelessTranslationService/locales/PlacelessTranslationService.pot -> build/lib/Products/PlacelessTranslationService/locales
creating build/lib/Products/PlacelessTranslationService/locales/cs
creating build/lib/Products/PlacelessTranslationService/locales/cs/LC_MESSAGES
copying Products/PlacelessTranslationService/locales/cs/LC_MESSAGES/PlacelessTranslationService.po -> build/lib/Products/PlacelessTranslationService/locales/cs/LC_MESSAGES
creating build/lib/Products/PlacelessTranslationService/locales/de
creating build/lib/Products/PlacelessTranslationService/locales/de/LC_MESSAGES
copying Products/PlacelessTranslationService/locales/de/LC_MESSAGES/PlacelessTranslationService.po -> build/lib/Products/PlacelessTranslationService/locales/de/LC_MESSAGES
creating build/lib/Products/PlacelessTranslationService/locales/el
creating build/lib/Products/PlacelessTranslationService/locales/el/LC_MESSAGES
copying Products/PlacelessTranslationService/locales/el/LC_MESSAGES/PlacelessTranslationService.po -> build/lib/Products/PlacelessTranslationService/locales/el/LC_MESSAGES
creating build/lib/Products/PlacelessTranslationService/locales/pt_BR
creating build/lib/Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES
copying Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES/PlacelessTranslationService.po -> build/lib/Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES
creating build/lib/Products/PlacelessTranslationService/www
copying Products/PlacelessTranslationService/www/GettextMessageCatalog.png -> build/lib/Products/PlacelessTranslationService/www
copying Products/PlacelessTranslationService/www/PlacelessTranslationService-32.png -> build/lib/Products/PlacelessTranslationService/www
copying Products/PlacelessTranslationService/www/PlacelessTranslationService.png -> build/lib/Products/PlacelessTranslationService/www
copying Products/PlacelessTranslationService/www/catalog_broken.pt -> build/lib/Products/PlacelessTranslationService/www
copying Products/PlacelessTranslationService/www/catalog_info.pt -> build/lib/Products/PlacelessTranslationService/www
copying Products/PlacelessTranslationService/www/catalog_test.pt -> build/lib/Products/PlacelessTranslationService/www
creating build/bdist.linux-i686
creating build/bdist.linux-i686/egg
creating build/bdist.linux-i686/egg/Products
copying build/lib/Products/__init__.py -> build/bdist.linux-i686/egg/Products
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/interfaces.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/bin
copying build/lib/Products/PlacelessTranslationService/bin/convertToLocales.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/bin
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/cs
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/cs/LC_MESSAGES
copying build/lib/Products/PlacelessTranslationService/locales/cs/LC_MESSAGES/PlacelessTranslationService.po -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/cs/LC_MESSAGES
copying build/lib/Products/PlacelessTranslationService/locales/PlacelessTranslationService.pot -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/el
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/el/LC_MESSAGES
copying build/lib/Products/PlacelessTranslationService/locales/el/LC_MESSAGES/PlacelessTranslationService.po -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/el/LC_MESSAGES
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/de
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/de/LC_MESSAGES
copying build/lib/Products/PlacelessTranslationService/locales/de/LC_MESSAGES/PlacelessTranslationService.po -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/de/LC_MESSAGES
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/pt_BR
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES
copying build/lib/Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES/PlacelessTranslationService.po -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/locales/pt_BR/LC_MESSAGES
copying build/lib/Products/PlacelessTranslationService/PlacelessTranslationService.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/memoize.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/__init__.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/www/PlacelessTranslationService.png -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/www/catalog_test.pt -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/www/catalog_broken.pt -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/www/GettextMessageCatalog.png -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/www/catalog_info.pt -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/www/PlacelessTranslationService-32.png -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/www
copying build/lib/Products/PlacelessTranslationService/msgfmt.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/patches.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/load.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/utility.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/Domain.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
creating build/bdist.linux-i686/egg/Products/PlacelessTranslationService/tests
copying build/lib/Products/PlacelessTranslationService/tests/__init__.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/tests
copying build/lib/Products/PlacelessTranslationService/tests/layer.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService/tests
copying build/lib/Products/PlacelessTranslationService/GettextMessageCatalog.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/overrides.zcml -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/configure.zcml -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/lazycatalog.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/utils.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
copying build/lib/Products/PlacelessTranslationService/Negotiator.py -> build/bdist.linux-i686/egg/Products/PlacelessTranslationService
byte-compiling build/bdist.linux-i686/egg/Products/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/interfaces.py to interfaces.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/bin/convertToLocales.py to convertToLocales.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/PlacelessTranslationService.py to PlacelessTranslationService.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/memoize.py to memoize.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/msgfmt.py to msgfmt.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/patches.py to patches.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/load.py to load.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/utility.py to utility.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/Domain.py to Domain.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/tests/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/tests/layer.py to layer.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/GettextMessageCatalog.py to GettextMessageCatalog.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/lazycatalog.py to lazycatalog.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/utils.py to utils.pyc
byte-compiling build/bdist.linux-i686/egg/Products/PlacelessTranslationService/Negotiator.py to Negotiator.pyc
creating build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/namespace_packages.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/not-zip-safe -> build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/requires.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Products.PlacelessTranslationService.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO
creating dist
creating 'dist/Products.PlacelessTranslationService-2.0a2-py2.6.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)
Processing Products.PlacelessTranslationService-2.0a2-py2.6.egg
creating /home/zope/my_zope2/lib/python2.6/site-packages/Products.PlacelessTranslationService-2.0a2-py2.6.egg
Extracting Products.PlacelessTranslationService-2.0a2-py2.6.egg to /home/zope/my_zope2/lib/python2.6/site-packages
Adding Products.PlacelessTranslationService 2.0a2 to easy-install.pth file

Installed /home/zope/my_zope2/lib/python2.6/site-packages/Products.PlacelessTranslationService-2.0a2-py2.6.egg
Processing dependencies for Products.PlacelessTranslationService==2.0a2
Searching for python-gettext>=0.6
Reading http://pypi.python.org/simple/python-gettext/
Reading http://svn.plone.org/svn/collective/python-gettext/trunk
Best match: python-gettext 1.0
Downloading http://pypi.python.org/packages/source/p/python-gettext/python-gettext-1.0.zip#md5=ef79f2c6eb9146670dddede10bac1731
Processing python-gettext-1.0.zip
Running python-gettext-1.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-oZV40c/python-gettext-1.0/egg-dist-tmp-aQ1XDS
Adding python-gettext 1.0 to easy-install.pth file

Installed /home/zope/my_zope2/lib/python2.6/site-packages/python_gettext-1.0-py2.6.egg
Searching for Zope2==2.12.1
Best match: Zope2 2.12.1
Processing Zope2-2.12.1-py2.6-linux-i686.egg
Zope2 2.12.1 is already the active version in easy-install.pth
Installing runzope script to /home/zope/my_zope2/bin
Installing zopectl script to /home/zope/my_zope2/bin
Installing zpasswd script to /home/zope/my_zope2/bin
Installing mkzeoinstance script to /home/zope/my_zope2/bin
Installing mkzopeinstance script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/Zope2-2.12.1-py2.6-linux-i686.egg
Searching for ZODB3==3.9.3
Best match: ZODB3 3.9.3
Processing ZODB3-3.9.3-py2.6-linux-i686.egg
ZODB3 3.9.3 is already the active version in easy-install.pth
Installing mkzeoinst script to /home/zope/my_zope2/bin
Installing fstail script to /home/zope/my_zope2/bin
Installing zeopack script to /home/zope/my_zope2/bin
Installing runzeo script to /home/zope/my_zope2/bin
Installing zeopasswd script to /home/zope/my_zope2/bin
Installing zeoctl script to /home/zope/my_zope2/bin
Installing fsdump script to /home/zope/my_zope2/bin
Installing fsrefs script to /home/zope/my_zope2/bin
Installing repozo script to /home/zope/my_zope2/bin
Installing fsoids script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/ZODB3-3.9.3-py2.6-linux-i686.egg
Searching for ExtensionClass==2.11.3
Best match: ExtensionClass 2.11.3
Processing ExtensionClass-2.11.3-py2.6-linux-i686.egg
ExtensionClass 2.11.3 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/ExtensionClass-2.11.3-py2.6-linux-i686.egg
Searching for DateTime==2.12.0
Best match: DateTime 2.12.0
Processing DateTime-2.12.0-py2.6.egg
DateTime 2.12.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/DateTime-2.12.0-py2.6.egg
Searching for Acquisition==2.12.4
Best match: Acquisition 2.12.4
Processing Acquisition-2.12.4-py2.6-linux-i686.egg
Acquisition 2.12.4 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/Acquisition-2.12.4-py2.6-linux-i686.egg
Searching for zope.publisher==3.8.0
Best match: zope.publisher 3.8.0
Processing zope.publisher-3.8.0-py2.6.egg
zope.publisher 3.8.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.publisher-3.8.0-py2.6.egg
Searching for zope.interface==3.5.2
Best match: zope.interface 3.5.2
Processing zope.interface-3.5.2-py2.6-linux-i686.egg
zope.interface 3.5.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.interface-3.5.2-py2.6-linux-i686.egg
Searching for zope.i18n==3.7.1
Best match: zope.i18n 3.7.1
Processing zope.i18n-3.7.1-py2.6.egg
zope.i18n 3.7.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.i18n-3.7.1-py2.6.egg
Searching for zope.deprecation==3.4.0
Best match: zope.deprecation 3.4.0
Processing zope.deprecation-3.4.0-py2.6.egg
zope.deprecation 3.4.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.deprecation-3.4.0-py2.6.egg
Searching for zope.deferredimport==3.5.0
Best match: zope.deferredimport 3.5.0
Processing zope.deferredimport-3.5.0-py2.6.egg
zope.deferredimport 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.deferredimport-3.5.0-py2.6.egg
Searching for zope.component==3.7.1
Best match: zope.component 3.7.1
Processing zope.component-3.7.1-py2.6.egg
zope.component 3.7.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.component-3.7.1-py2.6.egg
Searching for setuptools==0.6c11
Best match: setuptools 0.6c11
Processing setuptools-0.6c11-py2.6.egg
setuptools 0.6c11 is already the active version in easy-install.pth
Installing easy_install script to /home/zope/my_zope2/bin
Installing easy_install-2.6 script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg
Searching for zope.app.schema==3.5.0
Best match: zope.app.schema 3.5.0
Processing zope.app.schema-3.5.0-py2.6.egg
zope.app.schema 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.schema-3.5.0-py2.6.egg
Searching for zope.app.publisher==3.8.3
Best match: zope.app.publisher 3.8.3
Processing zope.app.publisher-3.8.3-py2.6.egg
zope.app.publisher 3.8.3 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.publisher-3.8.3-py2.6.egg
Searching for zope.app.publication==3.7.0
Best match: zope.app.publication 3.7.0
Processing zope.app.publication-3.7.0-py2.6.egg
zope.app.publication 3.7.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.publication-3.7.0-py2.6.egg
Searching for zope.app.form==3.8.1
Best match: zope.app.form 3.8.1
Processing zope.app.form-3.8.1-py2.6.egg
zope.app.form 3.8.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.form-3.8.1-py2.6.egg
Searching for zope.viewlet==3.5.0
Best match: zope.viewlet 3.5.0
Processing zope.viewlet-3.5.0-py2.6.egg
zope.viewlet 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.viewlet-3.5.0-py2.6.egg
Searching for zope.traversing==3.7.1
Best match: zope.traversing 3.7.1
Processing zope.traversing-3.7.1-py2.6.egg
zope.traversing 3.7.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.traversing-3.7.1-py2.6.egg
Searching for zope.testing==3.7.7
Best match: zope.testing 3.7.7
Processing zope.testing-3.7.7-py2.6.egg
zope.testing 3.7.7 is already the active version in easy-install.pth
Installing zope-testrunner script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.testing-3.7.7-py2.6.egg
Searching for zope.testbrowser==3.6.0a2
Best match: zope.testbrowser 3.6.0a2
Processing zope.testbrowser-3.6.0a2-py2.6.egg
zope.testbrowser 3.6.0a2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.testbrowser-3.6.0a2-py2.6.egg
Searching for zope.tales==3.4.0
Best match: zope.tales 3.4.0
Processing zope.tales-3.4.0-py2.6.egg
zope.tales 3.4.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.tales-3.4.0-py2.6.egg
Searching for zope.tal==3.5.1
Best match: zope.tal 3.5.1
Processing zope.tal-3.5.1-py2.6.egg
zope.tal 3.5.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.tal-3.5.1-py2.6.egg
Searching for zope.structuredtext==3.4.0
Best match: zope.structuredtext 3.4.0
Processing zope.structuredtext-3.4.0-py2.6.egg
zope.structuredtext 3.4.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.structuredtext-3.4.0-py2.6.egg
Searching for zope.size==3.4.1
Best match: zope.size 3.4.1
Processing zope.size-3.4.1-py2.6.egg
zope.size 3.4.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.size-3.4.1-py2.6.egg
Searching for zope.site==3.6.1
Best match: zope.site 3.6.1
Processing zope.site-3.6.1-py2.6.egg
zope.site 3.6.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.site-3.6.1-py2.6.egg
Searching for zope.sequencesort==3.4.0
Best match: zope.sequencesort 3.4.0
Processing zope.sequencesort-3.4.0-py2.6.egg
zope.sequencesort 3.4.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.sequencesort-3.4.0-py2.6.egg
Searching for zope.sendmail==3.5.1
Best match: zope.sendmail 3.5.1
Processing zope.sendmail-3.5.1-py2.6.egg
zope.sendmail 3.5.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.sendmail-3.5.1-py2.6.egg
Searching for zope.security==3.7.1
Best match: zope.security 3.7.1
Processing zope.security-3.7.1-py2.6-linux-i686.egg
zope.security 3.7.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.security-3.7.1-py2.6-linux-i686.egg
Searching for zope.schema==3.5.4
Best match: zope.schema 3.5.4
Processing zope.schema-3.5.4-py2.6.egg
zope.schema 3.5.4 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.schema-3.5.4-py2.6.egg
Searching for zope.proxy==3.5.0
Best match: zope.proxy 3.5.0
Processing zope.proxy-3.5.0-py2.6-linux-i686.egg
zope.proxy 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.proxy-3.5.0-py2.6-linux-i686.egg
Searching for zope.processlifetime==1.0
Best match: zope.processlifetime 1.0
Processing zope.processlifetime-1.0-py2.6.egg
zope.processlifetime 1.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.processlifetime-1.0-py2.6.egg
Searching for zope.pagetemplate==3.5.0
Best match: zope.pagetemplate 3.5.0
Processing zope.pagetemplate-3.5.0-py2.6.egg
zope.pagetemplate 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.pagetemplate-3.5.0-py2.6.egg
Searching for zope.location==3.5.4
Best match: zope.location 3.5.4
Processing zope.location-3.5.4-py2.6.egg
zope.location 3.5.4 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.location-3.5.4-py2.6.egg
Searching for zope.lifecycleevent==3.5.2
Best match: zope.lifecycleevent 3.5.2
Processing zope.lifecycleevent-3.5.2-py2.6.egg
zope.lifecycleevent 3.5.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.lifecycleevent-3.5.2-py2.6.egg
Searching for zope.i18nmessageid==3.4.3
Best match: zope.i18nmessageid 3.4.3
Processing zope.i18nmessageid-3.4.3-py2.6-linux-i686.egg
zope.i18nmessageid 3.4.3 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.i18nmessageid-3.4.3-py2.6-linux-i686.egg
Searching for zope.formlib==3.6.0
Best match: zope.formlib 3.6.0
Processing zope.formlib-3.6.0-py2.6.egg
zope.formlib 3.6.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.formlib-3.6.0-py2.6.egg
Searching for zope.exceptions==3.5.2
Best match: zope.exceptions 3.5.2
Processing zope.exceptions-3.5.2-py2.6.egg
zope.exceptions 3.5.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.exceptions-3.5.2-py2.6.egg
Searching for zope.event==3.4.1
Best match: zope.event 3.4.1
Processing zope.event-3.4.1-py2.6.egg
zope.event 3.4.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.event-3.4.1-py2.6.egg
Searching for zope.contenttype==3.4.2
Best match: zope.contenttype 3.4.2
Processing zope.contenttype-3.4.2-py2.6.egg
zope.contenttype 3.4.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.contenttype-3.4.2-py2.6.egg
Searching for zope.contentprovider==3.5.0
Best match: zope.contentprovider 3.5.0
Processing zope.contentprovider-3.5.0-py2.6.egg
zope.contentprovider 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.contentprovider-3.5.0-py2.6.egg
Searching for zope.container==3.8.2
Best match: zope.container 3.8.2
Processing zope.container-3.8.2-py2.6-linux-i686.egg
zope.container 3.8.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.container-3.8.2-py2.6-linux-i686.egg
Searching for zope.configuration==3.6.0
Best match: zope.configuration 3.6.0
Processing zope.configuration-3.6.0-py2.6.egg
zope.configuration 3.6.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.configuration-3.6.0-py2.6.egg
Searching for zLOG==2.11.1
Best match: zLOG 2.11.1
Processing zLOG-2.11.1-py2.6.egg
zLOG 2.11.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zLOG-2.11.1-py2.6.egg
Searching for zdaemon==2.0.4
Best match: zdaemon 2.0.4
Processing zdaemon-2.0.4-py2.6.egg
zdaemon 2.0.4 is already the active version in easy-install.pth
Installing zdaemon script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/zdaemon-2.0.4-py2.6.egg
Searching for transaction==1.0.0
Best match: transaction 1.0.0
Processing transaction-1.0.0-py2.6.egg
transaction 1.0.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/transaction-1.0.0-py2.6.egg
Searching for tempstorage==2.11.2
Best match: tempstorage 2.11.2
Processing tempstorage-2.11.2-py2.6.egg
tempstorage 2.11.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/tempstorage-2.11.2-py2.6.egg
Searching for pytz==2009l
Best match: pytz 2009l
Processing pytz-2009l-py2.6.egg
pytz 2009l is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/pytz-2009l-py2.6.egg
Searching for docutils==0.5
Best match: docutils 0.5
Processing docutils-0.5-py2.6.egg
docutils 0.5 is already the active version in easy-install.pth
Installing rstpep2html.py script to /home/zope/my_zope2/bin
Installing rst2xml.py script to /home/zope/my_zope2/bin
Installing rst2newlatex.py script to /home/zope/my_zope2/bin
Installing rst2html.py script to /home/zope/my_zope2/bin
Installing rst2latex.py script to /home/zope/my_zope2/bin
Installing rst2pseudoxml.py script to /home/zope/my_zope2/bin
Installing rst2s5.py script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/docutils-0.5-py2.6.egg
Searching for ZConfig==2.7.1
Best match: ZConfig 2.7.1
Processing ZConfig-2.7.1-py2.6.egg
ZConfig 2.7.1 is already the active version in easy-install.pth
Installing zconfig_schema2html script to /home/zope/my_zope2/bin
Installing zconfig script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/ZConfig-2.7.1-py2.6.egg
Searching for RestrictedPython==3.5.1
Best match: RestrictedPython 3.5.1
Processing RestrictedPython-3.5.1-py2.6.egg
RestrictedPython 3.5.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/RestrictedPython-3.5.1-py2.6.egg
Searching for Persistence==2.11.1
Best match: Persistence 2.11.1
Processing Persistence-2.11.1-py2.6-linux-i686.egg
Persistence 2.11.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/Persistence-2.11.1-py2.6-linux-i686.egg
Searching for zc.lockfile==1.0.0
Best match: zc.lockfile 1.0.0
Processing zc.lockfile-1.0.0-py2.6.egg
zc.lockfile 1.0.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zc.lockfile-1.0.0-py2.6.egg
Searching for zope.browser==1.2
Best match: zope.browser 1.2
Processing zope.browser-1.2-py2.6.egg
zope.browser 1.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.browser-1.2-py2.6.egg
Searching for zope.authentication==3.7.0
Best match: zope.authentication 3.7.0
Processing zope.authentication-3.7.0-py2.6.egg
zope.authentication 3.7.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.authentication-3.7.0-py2.6.egg
Searching for zope.componentvocabulary==1.0
Best match: zope.componentvocabulary 1.0
Processing zope.componentvocabulary-1.0-py2.6.egg
zope.componentvocabulary 1.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.componentvocabulary-1.0-py2.6.egg
Searching for zope.datetime==3.4.0
Best match: zope.datetime 3.4.0
Processing zope.datetime-3.4.0-py2.6.egg
zope.datetime 3.4.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.datetime-3.4.0-py2.6.egg
Searching for zope.error==3.6.0
Best match: zope.error 3.6.0
Processing zope.error-3.6.0-py2.6.egg
zope.error 3.6.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.error-3.6.0-py2.6.egg
Searching for zope.app.basicskin==3.4.1
Best match: zope.app.basicskin 3.4.1
Processing zope.app.basicskin-3.4.1-py2.6.egg
zope.app.basicskin 3.4.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.basicskin-3.4.1-py2.6.egg
Searching for zope.app.pagetemplate==3.7.1
Best match: zope.app.pagetemplate 3.7.1
Processing zope.app.pagetemplate-3.7.1-py2.6.egg
zope.app.pagetemplate 3.7.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.pagetemplate-3.7.1-py2.6.egg
Searching for zope.app.testing==3.6.2
Best match: zope.app.testing 3.6.2
Processing zope.app.testing-3.6.2-py2.6.egg
zope.app.testing 3.6.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.testing-3.6.2-py2.6.egg
Searching for mechanize==0.1.11
Best match: mechanize 0.1.11
Processing mechanize-0.1.11-py2.6.egg
mechanize 0.1.11 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/mechanize-0.1.11-py2.6.egg
Searching for ClientForm==0.2.10
Best match: ClientForm 0.2.10
Processing ClientForm-0.2.10-py2.6.egg
ClientForm 0.2.10 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/ClientForm-0.2.10-py2.6.egg
Searching for zope.annotation==3.4.2
Best match: zope.annotation 3.4.2
Processing zope.annotation-3.4.2-py2.6.egg
zope.annotation 3.4.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.annotation-3.4.2-py2.6.egg
Searching for zope.copy==3.5.0
Best match: zope.copy 3.5.0
Processing zope.copy-3.5.0-py2.6.egg
zope.copy 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.copy-3.5.0-py2.6.egg
Searching for zope.broken==3.5.0
Best match: zope.broken 3.5.0
Processing zope.broken-3.5.0-py2.6.egg
zope.broken 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.broken-3.5.0-py2.6.egg
Searching for zope.filerepresentation==3.5.0
Best match: zope.filerepresentation 3.5.0
Processing zope.filerepresentation-3.5.0-py2.6.egg
zope.filerepresentation 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.filerepresentation-3.5.0-py2.6.egg
Searching for zope.dottedname==3.4.5
Best match: zope.dottedname 3.4.5
Processing zope.dottedname-3.4.5-py2.6.egg
zope.dottedname 3.4.5 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.dottedname-3.4.5-py2.6.egg
Searching for zope.cachedescriptors==3.5.0
Best match: zope.cachedescriptors 3.5.0
Processing zope.cachedescriptors-3.5.0-py2.6.egg
zope.cachedescriptors 3.5.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.cachedescriptors-3.5.0-py2.6.egg
Searching for zope.dublincore==3.4.3
Best match: zope.dublincore 3.4.3
Processing zope.dublincore-3.4.3-py2.6.egg
zope.dublincore 3.4.3 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.dublincore-3.4.3-py2.6.egg
Searching for zope.password==3.5.1
Best match: zope.password 3.5.1
Processing zope.password-3.5.1-py2.6.egg
zope.password 3.5.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.password-3.5.1-py2.6.egg
Searching for zope.app.dependable==3.4.0
Best match: zope.app.dependable 3.4.0
Processing zope.app.dependable-3.4.0-py2.6.egg
zope.app.dependable 3.4.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.dependable-3.4.0-py2.6.egg
Searching for zope.app.debug==3.4.1
Best match: zope.app.debug 3.4.1
Processing zope.app.debug-3.4.1-py2.6.egg
zope.app.debug 3.4.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.debug-3.4.1-py2.6.egg
Searching for zope.app.component==3.8.3
Best match: zope.app.component 3.8.3
Processing zope.app.component-3.8.3-py2.6.egg
zope.app.component 3.8.3 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.component-3.8.3-py2.6.egg
Searching for zope.app.appsetup==3.11
Best match: zope.app.appsetup 3.11
Processing zope.app.appsetup-3.11-py2.6.egg
zope.app.appsetup 3.11 is already the active version in easy-install.pth
Installing debug script to /home/zope/my_zope2/bin

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.appsetup-3.11-py2.6.egg
Searching for zope.hookable==3.4.1
Best match: zope.hookable 3.4.1
Processing zope.hookable-3.4.1-py2.6-linux-i686.egg
zope.hookable 3.4.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.hookable-3.4.1-py2.6-linux-i686.egg
Searching for zope.app.container==3.8.0
Best match: zope.app.container 3.8.0
Processing zope.app.container-3.8.0-py2.6.egg
zope.app.container 3.8.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.app.container-3.8.0-py2.6.egg
Searching for zope.session==3.9.1
Best match: zope.session 3.9.1
Processing zope.session-3.9.1-py2.6.egg
zope.session 3.9.1 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.session-3.9.1-py2.6.egg
Searching for zope.copypastemove==3.5.2
Best match: zope.copypastemove 3.5.2
Processing zope.copypastemove-3.5.2-py2.6.egg
zope.copypastemove 3.5.2 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.copypastemove-3.5.2-py2.6.egg
Searching for zope.minmax==1.1.0
Best match: zope.minmax 1.1.0
Processing zope.minmax-1.1.0-py2.6.egg
zope.minmax 1.1.0 is already the active version in easy-install.pth

Using /home/zope/my_zope2/lib/python2.6/site-packages/zope.minmax-1.1.0-py2.6.egg
Finished processing dependencies for Products.PlacelessTranslationService==2.0a2
[zope@l22dm Products.PlacelessTranslationService-2.0a2]$ cd ..
[zope@l22dm ~]$ su - root service zope20080 restart
パスワード:
Shutdown zope: [ OK ]
Starting zope: [ OK ]
[zope@l22dm ~]$


 以上で、前稿で作成したZWikiサイトを新たに開いてご覧になると、右上の操作リンクや下部の操作ボタンの一部が日本語に置換わることになる。ご確認頂きたい。続きを読む
posted by Mire at 09:28 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

【CentOS5.4】Zope2.12.1自動起動Script

 ちょいと面倒なものが、今日のお題の自動起動のスクリプトの作成と、サービス起動の設定だ。

 まあ、そんな時には人様のものを頂き試して、駄目なら、改造するのが手っ取り早い。シェルスクリプトについて全く勉強していない野郎には、その程度の対応しか出来ない(苦笑)。ということで、ググるとありました。Papasan's Home 「Zope自動起動用シェルスクリプト」に。papasanさん感謝です。2008年11月19日 16時37分なので、比較的新しい、気になるのは、以前当方の記憶が正しければ、zopeユーザでの実行対応が何処かに必要に見える。取敢えず、コピペでスクリプトファイルを作り、instanse等違う箇所を変更して実行して試るとやはり、zopeユーザでの実行としている当方のLinuxでは動いてくれない。仕方がないので、昔のLinuxのHDDをつないで眺めて見ると「su」で逃げていますね。ということで、試行錯誤の結果次の様な取敢えず用は足すものが出来た。サービス名がpsで表示出来ないのが不満だが、まあ、動けばいいかな。後は、この辺に濃い方、宜しく。
/etc/rc.d/init.d/zope212


#!/bin/sh
#
# zope Start/Stop the Zope web-application server.
#
# chkconfig: 2345 73 73
# description: zope is a web server specifically for handling \
# HTTP requests to the Zope web-application service.
#
# Source function library.
. /etc/rc.d/init.d/functions

INSTANCE_HOME=/home/zope/Z2
INSTANCE_NAME=`basename ${INSTANCE_HOME}`
ZOPE_USER=zope
RETVAL=0
[ -f ${INSTANCE_HOME}/bin/zopectl ] || exit 0

case "$1" in
start)
echo -n "Starting zope: "
umask 077
su -l $ZOPE_USER -c "${INSTANCE_HOME}/bin/zopectl start" > /dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/${INSTANCE_NAME}
;;
stop)
echo -n "Shutdown zope: "
su -l $ZOPE_USER -c "${INSTANCE_HOME}/bin/zopectl stop" > /dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${INSTANCE_NAME}
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
condrestart)
[ -f /var/lock/subsys/${INSTANCE_NAME} ] && $0 restart || RETVAL=0
;;
status)
su -l $ZOPE_USER -c "${INSTANCE_HOME}/bin/zopectl status"
[ $RETVAL -ne 0 ] && RETVAL=$?
;;
*)
echo "Usage: zope {start|stop|restart|condrestart|status}"
exit 1
esac

exit $RETVAL
 利用方法は、これを「/etc.rc.d/init.d/zope212」等として保存し、「chmod 755 /etc.rc.d/init.d/zope212」とした上で、サービス登録をする。chkconfigでもいいが、今回は、折角VNCで接続しているので、GUIツール「サービス」を使い登録し、開始、停止のテストをして確かめた。CentOS5.4_service_add_menu.png
CentOS5.4_service_add_zope.png

 尚、スクリプト作成に当たり、うまく行かないときには、スーパーユーザ(root)実行で、「/etc/rc.d/init.d/zope212 start」等を実行後、「ps aux | grep zope2」やブラウザでZMIへアクセスする等して実行状況を確認しながら進めると良いだろう。正常に起動出来る様になれば、ZMIの「restart」ボタンでの再起動で日頃は済ませることが出来る。

 


[root@l22dm ~]# /etc/rc.d/init.d/zope212 start
Starting zope: [ OK ]
[root@l22dm ~]# /etc/rc.d/init.d/zope212 stop
Shutdown zope: [ OK ]
[root@l22dm ~]# /etc/rc.d/init.d/zope212 restart
Shutdown zope: [ OK ]
Starting zope: [ OK ]
[root@l22dm ~]# /etc/rc.d/init.d/zope212 status
program running; pid=2943
[root@l22dm ~]# ps aux | grep zope2
zope 2941 0.0 0.4 23396 4804 ? Ssl 03:03 0:00 /home/zope/my_zope2/bin/python2.6 /home/zope/my_zope2/lib/python2.6/site-packages/zdaemon-2.0.4-py2.6.egg/zdaemon/zdrun.py -S /home/zope/my_zope2/lib/python2.6/site-packages/Zope2-2.12.1-py2.6-linux-i686.egg/Zope2/Startup/zopeschema.xml -b 10 -s /home/zope/Z2/var/zopectlsock -x 0,2 -z /home/zope/Z2 /home/zope/Z2/bin/runzope
zope 2943 23.8 3.3 40888 33248 ? S 03:03 0:08 /home/zope/my_zope2/bin/python /home/zope/my_zope2/bin/runzope -C /home/zope/Z2/etc/zope.conf
[root@l22dm ~]#

Zope_ZMI_Control_Panel.png
タグ:Zope CentOS Linux
posted by Mire at 03:22 | Comment(0) | TrackBack(0) | Zope | このブログの読者になる | 更新情報をチェックする

2009年07月02日

Zopeの管理画面に入れない Passwordが...

 いや、困った。手元PC内のテスト用Zope内のZWikiを久しぶりに弄ろうとしたら、urlが判らない。仕方がないので、ZMI(Zopeの管理画面)に入る為、サービスでインスタンスを確認し、confからポート番号を拾い叩いてよく使っているIDとパスワードを打ってみるが受け付けない。

 仕方がないので、緊急管理者作成をすることにした。先ず必要な情報を整理する。

1. Zopeインスタンス(コンテンツ実体): C:\Zope\Instance\2.11.1
2. Zopeインストール(サーバシステム): D:\Zope\2.11.1\Zope
3. 一時管理者ID: admin_temp
4. パスワード: 作業中忘れないもの^^;;

その上で、以下の処理をした。最初はpython.exeを忘れたのでエラーになっている。2回目はそれを指定したのでうまくいっている。尚、3回目も同じことをしているが、それはZMIでログインをしてみたら出来なかったから再度試してみたものである。結局、この作業で作成したaccessファイルは、Zopeサーバのサービス起動時に有効になる様でサービスの再起動で解決でした。

 当然ながら、ZMIに入って、管理者IDを確認すると、「むっ!!」これじゃ思い出せんだろうというIDしかない。仕方がないので忘れないIDとパスワードを登録した。これで、一時管理者IDは不要なので削除で作業完了だ。

Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.

C:\>D:\Zope\2.11.1\Zope\bin\zpasswd.py C:\Zope\Instance\2.11.1\access
File "D:\Zope\2.11.1\Zope\bin\zpasswd.py", line 83
os.chmod(ac_path, 0644)
^
SyntaxError: invalid token

C:\>D:\Zope\2.11.1\Python\python.exe D:\Zope\2.11.1\Zope\bin\zpasswd.py C:\Zope\Instance\2.11.1\access
Username: admin_temp
Password:
Verify password:

Please choose a format from:

SHA - SHA-1 hashed password (default)
CRYPT - UNIX-style crypt password
CLEARTEXT - no protection

Encoding: SHA
Domain restrictions:

C:\>D:\Zope\2.11.1\Python\python.exe D:\Zope\2.11.1\Zope\bin\zpasswd.py C:\Zope\Instance\2.11.1\access
Username: admin_temp
Password:
Verify password:

Please choose a format from:

SHA - SHA-1 hashed password (default)
CRYPT - UNIX-style crypt password
CLEARTEXT - no protection

Encoding: SHA
Domain restrictions:

C:\>del C:\Zope\Instance\2.11.1\access

C:\>


因みに、C:\Zope\Instance\2.11.1\accessの中身は次の様にSHAでパスワードを暗号処理している。でも残すことはセキュリティ上好ましくないので削除する。
admin_temp:{SHA}Vcr4X242xs+azJ1uUXASxrxy33U=
タグ:Zope
posted by Mire at 20:12 | Comment(0) | Zope | このブログの読者になる | 更新情報をチェックする
月額見放題1,000円開始キャンペーンバナー(画像ありver)
紺碧の艦隊 ルパン三世 GREAT CHASE クリックプロモーション
<< 2013年01月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
カテゴリ
タグクラウド
ファン
利用中のオープンソース
最近のコメント
最近の記事
過去ログ
QRコード
レガシーなアプリはいかが?
Dell 法人のお客様ページ
  • 【法人様向け】デル、お得なキャンペーン情報
  • 法人のお客様向け ストレージソリューション
  • 法人のお客様向け ネットワークソリューション
  • 【SOHO法人様向け】デル・オンライン広告限定ページ
  • デル-個人のお客様ページ
  • 【個人のお客様向け】デル・オンライン広告限定ページ
  • オンライン広告限定キャンペーンページ
  • ソフトウェア&周辺機器 パソコン工房
    ツートップインターネットショップ(twotop.co.jp) マウスコンピューター/G-Tune
  • ×

    この広告は1年以上新しい記事の投稿がないブログに表示されております。