ページ更新: 2008-01-09 (水) (3994日前)

関連: ../Debian, Linux/Debian

(2007-07-09 新規作成)

Debian 4.0 (Etch), Trac 0.10.3 やそれ以降のものに関するメモ。

(Debian 3.1 Sarge の場合は ../Debian

Trac日本語版パッケージの作成、まで完了。

目次

[編集]

Debian 4.0リリース時の情報 #

[編集]

Debian 4.0のインストール #

今回の説明文書を作成するために、 以下のWebページから「安定版 (stable)」リリースの公式 "netinst" イメージを入手して、 インストールした。

選択が必要が画面だけ、以下に示す。

なお、説明のため、次のように設定した。

  • ホスト名は「debian」
  • ユーザー名は「user」

インストール先はVMware Workstation 6.0.0 で作成した仮想PCである。 (VMware workstation 4.5.3 はインストールの途中で失敗した)

[編集]

パッケージマネージャの設定:ネットワークミラーを使いますか? #

tracパッケージのソースコードやパッケージ作成ツールを入手するので、最初からネットワークミラーを使うようにする:

debian-4.0-trac-01.png

[編集]

ソフトウェアの選択 #

今回はどれも選択しなかった。これで最低限のパッケージがインストールされる:

debian-4.0-trac-02.png

本番では「標準システム」くらいは指定しておいたほうが良いかもしれない。

[編集]

インストール完了後のaptの設定 #

aptの設定ファイル /etc/apt/sources.list を編集する。 エディタで開く(この時点で nano と vim-tiny がインストールされている):

debian~# nano /etc/apt/sources.list

次の点を修正する:

  • netinst CD-ROM はこの時点では不要なので、deb cdrom: 行をコメントアウトする(#を行頭に挿入する)。

次の点を確認する:

  • deb-src が少なくとも etch main と etch/updates main contrib の2行あることを確認する。なければ書き足すこと。 (apt-get sourceで必要になるため)
[編集]

sshのインストール #

ssh経由で作業したいので、sshパッケージをインストールする。

debian:~# export LANG=
debian:~# aptitude update && aptitude install ssh
   :
   :
debian:~#

IPアドレスを確認する:

debian:~# /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:95:49:69
          inet addr:192.168.222.128  Bcast:192.168.222.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe95:4969/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1098 errors:0 dropped:0 overruns:0 frame:0
          TX packets:771 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1359201 (1.2 MiB)  TX bytes:54489 (53.2 KiB)
          Interrupt:169 Base address:0x2000

このIPに対して他の端末から接続できる。なお、パスワード認証でログインできた。 (パスワード認証が禁止されていない)

[編集]

Trac日本語版パッケージの作成とインストールの概略 #

ここでは、Trac日本語版パッケージの作成とインストールで投入するコマンドラインを示す。

トラブルに当たらない限りは(あるいは何らかの野望がない限りは)、この節のコマンドだけ知っていればよい。

Trac日本語版パッケージの作成に必要なソフトウェアをインストールする。(rootで実行)

# apt-get -u build-dep trac
# aptitude install devscripts fakeroot unzip

Trac日本語版パッケージを作成する。(一般ユーザで実行)

~$ mkdir package
~$ cd package
~/package$ wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
~/package$ apt-get source trac
~/package$ cd trac-0.10.3/
~/package/trac-0.10.3$ uupdate ../trac-0.10.4-ja-1.zip 0.10.4-ja-1
~/package/trac-0.10.4-ja-1$ dpkg-buildpackage -us -uc -b -rfakeroot

Trac日本語版パッケージをインストールする。(rootで実行)

# aptitude install trac
# apt-get --purge remove trac
# dpkg -i /home/user/package/trac_0.10.4-ja-1-1_all.deb
[編集]

Trac日本語版パッケージの作成 #

[編集]

tracパッケージの作成に必要なパッケージをインストールする #

この作業はrootで行う。

最初に、apt-get -u build-dep で、tracパッケージの作成に必要なパッケージをインストールする:

debian:~# apt-get -u build-dep trac
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  binutils build-essential cdbs cpp cpp-4.1 debhelper dpatch dpkg-dev g++ g++-4.1 
  gcc gcc-4.1 gettext gettext-base html2text intltool-debian libc6-dev libssp0 
  libstdc++6-4.1-dev linux-kernel-headers make patch po-debconf python-all 
  python-all-dev python-dev python2.4-dev
アップグレード: 0 個、新規インストール: 27 個、削除: 0 個、保留: 1 個。
20.0MB のアーカイブを取得する必要があります。
展開後に追加で 70.3MB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://ftp.jp.debian.org etch/main gettext-base 0.16.1-1 [123kB]
取得:2 http://ftp.jp.debian.org etch/main patch 2.5.9-4 [99.5kB]
取得:3 http://ftp.jp.debian.org etch/main binutils 2.17-3 [2605kB]
取得:4 http://ftp.jp.debian.org etch/main linux-kernel-headers 2.6.18-7 [1875kB]
取得:5 http://ftp.jp.debian.org etch/main libc6-dev 2.3.6.ds1-13 [2716kB]
取得:6 http://ftp.jp.debian.org etch/main cpp-4.1 4.1.1-21 [2331kB]
取得:7 http://ftp.jp.debian.org etch/main cpp 4:4.1.1-15 [11.6kB]
取得:8 http://ftp.jp.debian.org etch/main libssp0 4.1.1-21 [4492B]
取得:9 http://ftp.jp.debian.org etch/main gcc-4.1 4.1.1-21 [461kB]
取得:10 http://ftp.jp.debian.org etch/main gcc 4:4.1.1-15 [5052B]
取得:11 http://ftp.jp.debian.org etch/main libstdc++6-4.1-dev 4.1.1-21 [1634kB]
取得:12 http://ftp.jp.debian.org etch/main g++-4.1 4.1.1-21 [2615kB]
取得:13 http://ftp.jp.debian.org etch/main g++ 4:4.1.1-15 [1360B]
取得:14 http://ftp.jp.debian.org etch/main make 3.81-2 [382kB]
取得:15 http://ftp.jp.debian.org etch/main dpkg-dev 1.13.25 [166kB]
取得:16 http://ftp.jp.debian.org etch/main build-essential 11.3 [6982B]
取得:17 http://ftp.jp.debian.org etch/main cdbs 0.4.48 [427kB]
取得:18 http://ftp.jp.debian.org etch/main html2text 1.3.2a-3 [98.9kB]
取得:19 http://ftp.jp.debian.org etch/main gettext 0.16.1-1 [2190kB]
取得:20 http://ftp.jp.debian.org etch/main intltool-debian 0.35.0+20060710.1 [30.8kB]
取得:21 http://ftp.jp.debian.org etch/main po-debconf 1.0.8 [111kB]
取得:22 http://ftp.jp.debian.org etch/main debhelper 5.0.42 [510kB]
取得:23 http://ftp.jp.debian.org etch/main dpatch 2.0.21 [83.5kB]
取得:24 http://ftp.jp.debian.org etch/main python-all 2.4.4-2 [838B]
取得:25 http://ftp.jp.debian.org etch/main python2.4-dev 2.4.4-3 [1509kB]
取得:26 http://ftp.jp.debian.org etch/main python-dev 2.4.4-2 [890B]
取得:27 http://ftp.jp.debian.org etch/main python-all-dev 2.4.4-2 [854B]
20.0MB を 41s で取得しました (484kB/s)
 :
 :
debian:~# 

さらに、足りない物やあったほうが便利なパッケージをインストールする:

debian:~# aptitude install devscripts fakeroot unzip
  :
  :
以下の新規パッケージがインストールされます:
  devscripts fakeroot unzip
更新: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。
634kB のアーカイブを取得する必要があります。展開後に 1769kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://ftp.jp.debian.org etch/main devscripts 2.9.26 [386kB]
取得:2 http://ftp.jp.debian.org etch/main fakeroot 1.5.10 [96.2kB]
取得:3 http://ftp.jp.debian.org etch/main unzip 5.52-9 [152kB]
634kB を 1s 秒でダウンロードしました (404kB/s)
  :
  :
debian:~#

インタアクトの日本語版はZIPで提供されているので、パッケージ作成ツール以外にunzipが必要になる。

[編集]

パッケージ作成作業用のディレクトリを用意する #

この作業は一般ユーザで行う。

作業中にはファイルが多数作成されるので、作業用にディレクトリを用意する。

user@debian:~$ mkdir package
user@debian:~$ cd package
user@debian:~/package$
[編集]

インタアクトのTrac日本語版を入手する #

この作業は一般ユーザで行う。

インタアクトのTrac日本語版を入手する。

user@debian:~/package$ wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
--07:18:43--  http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
           => `trac-0.10.4-ja-1.zip'
www.i-act.co.jp をDNSに問いあわせています... 221.186.147.250
www.i-act.co.jp|221.186.147.250|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 650,892 (636K) [application/zip]

100%[===================================================================>] 650,892      480.41K/s

07:18:45 (479.63 KB/s) - `trac-0.10.4-ja-1.zip' を保存しました [650892/650892]

user@debian:~/package$ ls
trac-0.10.4-ja-1.zip

user@debian:~/package$
[編集]

tracパッケージのソースコードを入手する #

この作業は一般ユーザで行う。

apt-getを用いてtracパッケージのソースコードを入手する。

ちなみに、この時点(2007-07-17)では、Debianのパッケージは Trac-0.10.3 を元にしている。

user@debian:~/package$ apt-get source trac
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
470kB のソースアーカイブを取得する必要があります。
取得:1 http://ftp.jp.debian.org etch/main trac 0.10.3-1 (dsc) [714B]
取得:2 http://ftp.jp.debian.org etch/main trac 0.10.3-1 (tar) [460kB]
取得:3 http://ftp.jp.debian.org etch/main trac 0.10.3-1 (diff) [8784B]
470kB を 1s で取得しました (319kB/s)
gpg: can't open `/gnupg/options.skel': そのようなファイルやディレクトリはありません
gpg: Signature made 2006年12月14日 08時00分49秒 JST using DSA key ID B8C1FA69
gpg: Can't check signature: public key not found
dpkg-source: extracting trac in trac-0.10.3
dpkg-source: unpacking trac_0.10.3.orig.tar.gz
dpkg-source: applying ./trac_0.10.3-1.diff.gz

user@debian:~/package$ ls
trac-0.10.3           trac_0.10.3-1.diff.gz  trac_0.10.3.orig.tar.gz
trac-0.10.4-ja-1.zip  trac_0.10.3-1.dsc

user@debian:~/package$
[編集]

パッケージのソースコードをTrac日本語版で更新する #

この作業は一般ユーザで行う。

uupdateを用いて、tracパッケージのソースコードにTrac日本語版を反映させる。

user@debian:~/package$ cd trac-0.10.3/
user@debian:~/package/trac-0.10.3$ uupdate ../trac-0.10.4-ja-1.zip 0.10.4-ja-1
New Release will be 0.10.4-ja-1-1.
-- Untarring the new sourcecode archive ../trac-0.10.4-ja-1.zip
Archive:  ../trac-0.10.4-ja-1.zip
   creating: trac-0.10.4-ja-1/
  :
  :
  inflating: trac-0.10.4-ja-1/README.trac-ja
  inflating: trac-0.10.4-ja-1/COPYING.trac-ja
Success!  The diffs from version 0.10.3-1 worked fine.
Remember: Your current directory is the OLD sourcearchive!
Do a "cd ../trac-0.10.4-ja-1" to see the new package

user@debian:~/package/trac-0.10.3$
[編集]

パッケージソースからtrac日本語版パッケージを作成する #

この作業は一般ユーザで行う。

dpkg-buildpackageを用いて、「tracパッケージのソースコードにTrac日本語版を反映させた物」から Debianパッケージを作成する。

user@debian:~/package/trac-0.10.4-ja-1$ dpkg-buildpackage -us -uc -b -rfakeroot
dpkg-buildpackage: source package is trac
dpkg-buildpackage: source version is 0.10.4-ja-1-1
dpkg-buildpackage: source changed by  <user@debian.localdomain>
dpkg-buildpackage: host architecture i386
  :
  :
dpkg-deb: `../trac_0.10.4-ja-1-1_all.deb' にパッケージ `trac' を構築しています。
 dpkg-genchanges -b
dpkg-genchanges: binary-only upload - not including any source code
dpkg-buildpackage: binary only upload (no source included)

user@debian:~/package/trac-0.10.4-ja-1$

以下の場所にパッケージが作成された:

user@debian:~/package/trac-0.10.4-ja-1$ ls ../*.deb
../trac_0.10.4-ja-1-1_all.deb
user@debian:~/package/trac-0.10.4-ja-1$
[編集]

補足 (2007-12-09) #

2007-12-09 [自宅サーバー][インストール][Debian]Tracをインストールする - プチ技術メモ

によると, 「パッケージソースからtrac日本語版パッケージを作成する」ところでエラーが発生するとのこと。

対処として、trac-0.10.4-ja-1/debian/patches/00list を修正していくつかのパッチを無効にしたとのこと。

自分は追試していないが、DebianのTracパッケージが更新されたのが原因と思われる。

パッチのうち CVE-2007-1405, CVE-2007-1406 の件は Trac 0.10.3.1 で 修正されているのでTrac 0.10.3.1 以後を使うならパッチを無効に しても問題なし、だと思う。

r4664, r4670, r4699 のバックポートパッチは Trac 0.10.4 あたりから持ってきた物だと思われるが、未確認。 Changeset 4664 Changeset 4670 Changeset 4699

[編集]

日本語版パッケージをインストールする #

[編集]

Debianのtracパッケージ(英語版)と関連するパッケージをインストールする #

この作業はrootで行う。

aptitudeを用いて、tracパッケージ(オリジナルの英語版)と関連するパッケージをインストールする:

debian:~# aptitude install trac
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
タスクの記述を読み込んでいます... 完了
タグのデータベースを構築しています... 完了
以下の新規パッケージが自動的にインストールされます:
  apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1
  libexpat1 libneon26 libpcre3 libpq4 libsqlite3-0 libsvn1 libxml2 python-central
  python-clearsilver python-pysqlite2 python-setuptools python-subversion
  python-support sgml-base subversion xml-core
以下のパッケージが一時固定されています:
  linux-image-2.6.18-4-686
以下の新規パッケージがインストールされます:
  apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1
  libexpat1 libneon26 libpcre3 libpq4 libsqlite3-0 libsvn1 libxml2 python-central
  python-clearsilver python-pysqlite2 python-setuptools python-subversion
  python-support sgml-base subversion trac xml-core
更新: 0 個、新規インストール: 23 個、削除: 0 個、保留: 1 個。
6435kB のアーカイブを取得する必要があります。展開後に 19.7MB のディスク領域が新たに消費さ
れます。
続けますか? [Y/n/?] y
拡張状態情報を書き込んでいます... 完了
取得:1 http://security.debian.org etch/updates/main libpq4 8.1.9-0etch1 [270kB]
取得:2 http://ftp.jp.debian.org etch/main libpcre3 6.7-1 [166kB]
取得:3 http://ftp.jp.debian.org etch/main python-central 0.5.12 [31.9kB]
取得:4 http://ftp.jp.debian.org etch/main python-support 0.5.6 [23.9kB]
取得:5 http://ftp.jp.debian.org etch/main libapr1 1.2.7-8.2 [109kB]
取得:6 http://ftp.jp.debian.org etch/main libexpat1 1.95.8-3.4 [62.9kB]
取得:7 http://ftp.jp.debian.org etch/main libsqlite3-0 3.3.8-1.1 [194kB]
取得:8 http://ftp.jp.debian.org etch/main libaprutil1 1.2.7+dfsg-2 [68.5kB]
取得:9 http://ftp.jp.debian.org etch/main apache2-utils 2.2.3-4 [341kB]
取得:10 http://ftp.jp.debian.org etch/main apache2.2-common 2.2.3-4 [932kB]
取得:11 http://ftp.jp.debian.org etch/main apache2-mpm-worker 2.2.3-4 [421kB]
取得:12 http://ftp.jp.debian.org etch/main apache2 2.2.3-4 [38.6kB]
取得:13 http://ftp.jp.debian.org etch/main libxml2 2.6.27.dfsg-1 [755kB]
取得:14 http://ftp.jp.debian.org etch/main libneon26 0.26.2-3.1 [119kB]
取得:15 http://ftp.jp.debian.org etch/main libsvn1 1.4.2dfsg1-2 [593kB]
取得:16 http://ftp.jp.debian.org etch/main python-clearsilver 0.10.3-4.1 [85.3kB]
取得:17 http://ftp.jp.debian.org etch/main python-pysqlite2 2.3.2-2 [65.2kB]
取得:18 http://ftp.jp.debian.org etch/main python-setuptools 0.6c3-3 [204kB]
取得:19 http://ftp.jp.debian.org etch/main subversion 1.4.2dfsg1-2 [1027kB]
取得:20 http://ftp.jp.debian.org etch/main python-subversion 1.4.2dfsg1-2 [512kB]
取得:21 http://ftp.jp.debian.org etch/main sgml-base 1.26 [11.7kB]
取得:22 http://ftp.jp.debian.org etch/main trac 0.10.3-1 [384kB]
取得:23 http://ftp.jp.debian.org etch/main xml-core 0.09-0.1 [21.5kB]
6435kB を 16s 秒でダウンロードしました (386kB/s)
  :
  :

debian:~# 
[編集]

Trac英語版パッケージだけを削除する #

この作業はrootで行う。

apt-getを用いてtracパッケージだけを削除する:

debian:~# apt-get --purge remove trac
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
以下のパッケージは「削除」されます:
  trac*
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 1 個。
0B のアーカイブを取得する必要があります。
展開後に 2003kB のディスク容量が解放されます。
続行しますか [Y/n]? y
(データベースを読み込んでいます ... 現在 22999 個のファイルとディレクトリがインストールさ
れています。)
trac を削除しています ...

debian:~#
[編集]

今回作成したTrac日本語版パッケージをインストールする #

この作業はrootで行う。

dpkgを用いて、先ほど作成したTrac日本語版パッケージをインストールする:

debian:~# dpkg -i /home/user/package/trac_0.10.4-ja-1-1_all.deb
未選択パッケージ trac を選択しています。
(データベースを読み込んでいます ... 現在 22725 個のファイルとディレクトリがインストールさ
れています。)
(.../trac_0.10.4-ja-1-1_all.deb から) trac を展開しています...
trac (0.10.4-ja-1-1) を設定しています ...

debian:~#
[編集]

SubversionとTracの共通設定 (作成中) #

Subversion

  • Subversionリポジトリは /var/svn/ 以下に作成する。
    • 例えば /var/svn/hogeproject とか、/var/svn/poyoproject とか。
  • リポジトリの形式は fsfs にする。
    • 理由はクラッシュ時にリポジトリを他のサーバで扱いやすいので。あとSubversion 1.5で改良が入るので。
  • リポジトリへのアクセスは http、あるいは https にする。
  • hookは、post-commit-hook, post-lock, post-unlock, pre-prop-change を使用する。
    • post-commit-hook では、trac-post-commit-hook によるチケットへのコメント投稿と、 mailer.py によるコミットメールの送信(TracのチェンジセットのURLも通知も含む)を行う。
      • mailer.py の設定は /var/svn/XXXX/conf/mailer.conf に置く。
    • post-lock と post-unlock は mailer.py でメールで通知する。
    • pre-prop-change でコミットログの改変を許可する。
      • trac-admin resync が必要だが時間が掛かるので、 pre-prop-changeでフラグを立てておいて、早朝に cronで同期させる。

Trac

  • Trac Environment(Project)は /var/trac/ 以下に作成する
  • プラグインは /usr/share/trac/plugins/ に、Egg形式で置く。
  • EggCache は /var/cache/egg/ にする。
  • Tracのプラグインをいくつか

その他

  • 日時バックアップは /backup/svn, /backup/trac に作成する。
    • n日分保存する。
  • MTAはデフォルトのEximではなく、Postfixを使う。
    • 単に私が慣れているため。
[編集]

mailer.py のインストール (作成中) #

subversion-tools パッケージをインストールする:

debian:~# aptitude install subversion-tools
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
タスクの記述を読み込んでいます... 完了
タグのデータベースを構築しています... 完了
以下のパッケージが一時固定されています:
  linux-image-2.6.18-4-686
以下の新規パッケージがインストールされます:
  subversion-tools
以下のパッケージが推奨されていますがインストールされません:
  courier-mta esmtp-run exim exim4 exim4-daemon-heavy exim4-daemon-light 
  libconfig-inifiles-perl libsvn-perl liburi-perl masqmail msmtp-mta 
  nullmailer postfix sendmail-bin smail ssmtp xmail xsltproc
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
166kB のアーカイブを取得する必要があります。展開後に 549kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://ftp.jp.debian.org etch/main subversion-tools 1.4.2dfsg1-2 [166kB]
166kB を 0s 秒でダウンロードしました (235kB/s)
 :
 :

debian:~#

mailerを検索する。スクリプトの場所と、設定ファイルのサンプル (mailer.conf.example) の場所が判る:

debian:~# dpkg -L subversion-tools | grep mailer
/usr/share/subversion/hook-scripts/mailer
/usr/share/subversion/hook-scripts/mailer/mailer.py
/usr/share/subversion/hook-scripts/mailer/mailer.conf.example
debian:~#

mailer.pyより高機能なsvnmailer http://opensource.perlig.de/svnmailer/ も使ってみたいが、 時間が取れないので保留する。

Debianパッケージの情報:

debian:~# apt-cache search subversion | grep mail
svnmailer - an extensible subversion commit notification tool
 
debian:~# apt-cache show svnmailer | grep ^Version
Version: 1.0.8-6

documentation http://opensource.perlig.de/svnmailer/doc-1.0/http://opensource.perlig.de/svnmailer/doc-1.1/ を見ると、 browser_base_url だの mail_type だのと言った面白そうな設定項目があるのだけど。

[編集]

Apache 2.2の設定 (作成中) #

mkdir -p /var/cache/eggcache chown www-data:www-data /var/cache/eggcache

Digest認証用に /var/svn/htdigest

Subversionのアクセス制御に /var/svn/authz

/etc/apache2/sites-available

## Trac parent dir

<Location /trac>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend

    PythonOption TracEnvParentDir "/var/trac"
    PythonOption TracUriRoot /trac
    SetEnv PYTHON_EGG_CACHE "/var/cache/eggcache"
    SetEnv LC_TIME C
</Location>

<Location "/trac/[^/]+/login">
    AuthType Digest
    AuthName "svn"
    AuthUserFile "/var/svn/htdigest"
    Require valid-user
</Location>


## Subversion parent dir

<Location /svn>
    DAV svn
#   SVNListParentPath on
    SVNParentPath "/var/svn"
    AuthzSVNAccessFile "/var/svn/authz"
    SVNIndexXSLT "/svnindex.xsl"
</Location>

<LocationMatch "/svn/[^/]+/">
    AuthType Digest
    AuthName "svn"
    AuthUserFile "/var/svn/htdigest"
    Require valid-user
</Location>
[編集]

Subversionリポジトリ、Trac環境ごとの設定 (作成中) #

[編集]

フック #

以下のスクリプトをSubversionリポジトリを作る都度 /var/svn/project-name/hooks/ にコピーする。

(post-commitフックの中で/var/trac/project-name/ を指定しているのでシンボリックリンクできない。 リポジトリのパスから求めればいいのだけど、shはよく知らないので手を付けてない。 いっそ、mailer.py が /var/svn/project-name/conf/mailer.conf 設定ファイルを読むので、 「-p /var/trac/project-name/」が存在しないときは、 同様に trac-post-commit.conf を読むようにした方がよいかも。)

[編集]

post-commit フック (2007-07-24) #

  1. コミット通知メールを送信 (mailer.py)
  2. Tracチケットへコメント追加 (trac-post-commit-hook)
#!/bin/sh

REPOS="$1"
REV="$2"

/usr/share/subversion/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV"

LANG=ja_JP.UTF-8 /usr/bin/python /usr/local/bin/trac-post-commit-hook \
 -p /var/trac/project-name/  \
 -r "$REV"
[編集]

post-lock フック (2007-07-24) #

  1. ロック通知メールを送信 (mailer.py)
#!/bin/sh

REPOS="$1"
USER="$2"

/usr/share/subversion/hook-scripts/mailer/mailer.py lock "$REPOS" "$USER"
[編集]

post-unlock フック (2007-07-24) #

  1. アンロック通知メールを送信 (mailer.py)
#!/bin/sh

REPOS="$1"
USER="$2"

/usr/share/subversion/hook-scripts/mailer/mailer.py unlock "$REPOS" "$USER"
[編集]

pre-revprop-change フック (2007-07-24) #

pre-revprop-change.tmpl をコピーしただけ。コミットログの編集を許可する。

(TODO: trac-admin resync が必要になるので、バックグラウンドでtrac-admin resyncを実行するようにすると便利)

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1
[編集]

mailerの設定 (作成中) #

設定項目1 /var/svn/hogeproject/conf/mailer.conf

[general]
mail_command = /usr/sbin/sendmail
smtp_hostname = localhost

[defaults]
diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s
commit_subject_prefix = [svn:HogeProject commit]
propchange_subject_prefix = [svn:HogeProject propchange]
lock_subject_prefix = [svn:HogeProject lock]
unlock_subject_prefix = [svn:HogeProject unlock]
from_addr = svn@debian.example.jp
to_addr = user, hoge, poyo
reply_to =
generate_diffs = none
commit_url = http://debian.example.jp/trac/hogeproject/changeset/%(rev)s
show_nonmatching_paths = yes

[maps]

commit_url にはTracのチェンジセットのURLを指定できる。commitメールで通知される。

ちなみに、mailer.confのサンプルでは上の設定項目以外に次の設定が可能(コメントアウトされている):

debian:~# grep '^#[a-z]' /usr/share/subversion/hook-scripts/mailer/mailer.conf.example | uniq
#mail_command = /usr/sbin/sendmail
#smtp_hostname = localhost
#smtp_username = example
#smtp_password = example
#commit_url = http://diffs.server.com/trac/software/changeset/%(rev)s
#diff_add_url =
#diff_copy_url =
#diff_modify_url = http://diffs.server.com/?p1=%(base_path)s&p2=%(path)s
#diff_delete_url =
#suppress_deletes = yes
#suppress_adds = yes
#truncate_subject = 200

diff_*_url はまだ使っていないのでよくわからない。

[編集]

trac-ja-resource が新しくなってた (2008-01-09) #

以下引用:

* etch (stable) (web): trac 用の日本語リソース
  0.8.4-2-1: all
* etch-m68k (web): trac 用の日本語リソース
  0.8.4-2-1: all
* lenny (testing) (web): trac 用の日本語リソース
  0.10.4-ja-1-1: all
* sid (unstable) (web): trac 用の日本語リソース
  0.10.4-ja-1-1: all"

パッケージをダウンロード(インストールしない)して、中身を確認してみた。 templateやwiki-defaultだけではなく、Trac自身も入っているようだ。

$ sudo apt-get install -d trac-ja-resource/testing
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
trac-ja-resource にはバージョン 0.10.4-ja-1-1 (Debian:testing) を選択しました
以下のパッケージが新たにインストールされます:
  trac-ja-resource
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
400kB のアーカイブを取得する必要があります。
展開後に追加で 2224kB のディスク容量が消費されます。
取得:1 http://cdn.debian.or.jp testing/main trac-ja-resource 0.10.4-ja-1-1 [400kB]
400kB を 1s で取得しました (232kB/s)
ダウンロードオンリーモードでパッケージのダウンロードが完了しました

$ dpkg --contents /var/cache/apt/archives/trac-ja-resource_0.10.4-ja-1-1_all.deb
  :
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/doc/trac-ja-resource/
-rw-r--r-- root/root       689 2007-05-24 12:31 ./usr/share/doc/trac-ja-resource/README
-rw-r--r-- root/root      3310 2007-05-24 12:31 ./usr/share/doc/trac-ja-resource/THANKS
-rw-r--r-- root/root      3377 2007-05-24 12:31 ./usr/share/doc/trac-ja-resource/README.trac-ja.gz
-rw-r--r-- root/root       251 2007-05-16 12:22 ./usr/share/doc/trac-ja-resource/README.Debian
-rw-r--r-- root/root       441 2007-05-24 12:31 ./usr/share/doc/trac-ja-resource/AUTHORS
-rw-r--r-- root/root      1076 2007-05-16 00:35 ./usr/share/doc/trac-ja-resource/copyright
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/doc/trac-ja-resource/examples/
-rwxr-xr-x root/root       125 2007-05-16 12:19 ./usr/share/doc/trac-ja-resource/examples/trac.fcgi
-rwxr-xr-x root/root       131 2007-05-16 12:19 ./usr/share/doc/trac-ja-resource/examples/trac.cgi
-rw-r--r-- root/root      2013 2007-05-24 12:31 ./usr/share/doc/trac-ja-resource/changelog.gz
-rw-r--r-- root/root      1788 2007-05-16 12:30 ./usr/share/doc/trac-ja-resource/README.Debian.ja
-rw-r--r-- root/root       579 2007-05-24 12:32 ./usr/share/doc/trac-ja-resource/changelog.Debian.gz
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/trac-ja-resource/
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/trac-ja-resource/wiki-macros/
  :
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/trac-ja-resource/python/
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/trac-ja-resource/python/trac/
  :
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/trac-ja-resource/wiki-default/
  :
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/trac-ja-resource/templates/
  :
drwxr-xr-x root/root         0 2007-05-24 12:39 ./usr/share/python-support/
-rw-r--r-- root/root        28 2007-05-24 12:39 ./usr/share/python-support/trac-ja-resource.dirs
[編集]

Trac 0.11 #

[編集]

trac-0.10.4-ja-1から Trac-0.11.ja1 に移行した #

(後でかく)

[編集]

Trac-0.11.ja1 → Trac-0.11.1.ja1 #

(後でかく)

[編集]

mod_wsgi 2.3を自分でコンパイルする (2008-09-02) #

Debian 4.0

../ExtLinkRewriterPlugin用のリダイレクタを自分で書きたかったので、mod_wsgiをインストールする。

Debian 4.0 + etch-backportsのmod_wsgiのバージョンは 2.0-1~bpo40+1 だが、なんとなく2.3を使いたかったので、自分でコンパイルした。 Changesを見る限り、さほど影響がないような気もするけど。

* [[Changes in mod_wsgi version 2.0.>http://code.google.com/p/modwsgi/wiki/ChangesInVersion0200]]
* [[Changes in mod_wsgi version 2.1.>http://code.google.com/p/modwsgi/wiki/ChangesInVersion0201]]
* [[Changes in mod_wsgi version 2.2.>http://code.google.com/p/modwsgi/wiki/ChangesInVersion0202]]
* [[Changes in mod_wsgi version 2.3.>http://code.google.com/p/modwsgi/wiki/ChangesInVersion0203]]

ソースコードを入手する:

$ svn co http://modwsgi.googlecode.com/svn/tags/mod_wsgi-2.3
A    mod_wsgi-2.3/configure
A    mod_wsgi-2.3/LICENCE
A    mod_wsgi-2.3/configure.ac
A    mod_wsgi-2.3/Makefile-1.X.in
A    mod_wsgi-2.3/Makefile-2.X.in
A    mod_wsgi-2.3/mod_wsgi.c
A    mod_wsgi-2.3/README
 U   mod_wsgi-2.3
リビジョン 1033 をチェックアウトしました。

コンパイル、インストール:

$ cd mod_wsgi-2.3/

$ ./configure
checking for apxs2... /usr/bin/apxs2
checking Apache version... 2.2.3
checking for python... /usr/bin/python
configure: creating ./config.status
config.status: creating Makefile

$ make
/usr/bin/apxs2 -c -I/usr/include/python2.4 -DNDEBUG   mod_wsgi.c -L/usr/lib/python2.4/config 
-lpython2.4 -lpthread -ldl -lutil /usr/share/apr-1.0/build/libtool 
--silent --mode=compile --tag=disable-static i486-linux-gnu-gcc -prefer-pic 
-DLINUX=2 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_REENTRANT 
-I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/postgresql -I/usr/include/xmltok -pthread 
-I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I/usr/include/postgresql 
-I/usr/include/python2.4 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
touch mod_wsgi.slo
In file included from /usr/include/python2.4/Python.h:8,
                 from mod_wsgi.c:113:
/usr/include/python2.4/pyconfig.h:851:1: warning: "_POSIX_C_SOURCE" redefined
In file included from /usr/include/sys/types.h:27,
                 from /usr/include/apr-1.0/apr.h:113,
                 from /usr/include/apache2/ap_config.h:25,
                 from /usr/include/apache2/httpd.h:43,
                 from mod_wsgi.c:34:
/usr/include/features.h:150:1: warning: this is the location of the previous definition
/usr/share/apr-1.0/build/libtool --silent --mode=link --tag=disable-static i486-linux-gnu-gcc -o mod_wsgi.la
-rpath /usr/lib/apache2/modules -module -avoid-version    mod_wsgi.lo -L/usr/lib/python2.4/config -lpython2.4
-lpthread -ldl -lutil

$ sudo make install

}}}

将来はTracもこちらで動かしてみたい。(IntegrationWithTrac - modwsgi - Google Code - How to use Trac with mod_wsgi.)

[編集]

TODO: Tracでファイルの文字コードを自動判定」パッチが必要なら組み込む #

もし必要なら、 2007-02-20 ヤマロぶろぐ:Tracでファイルの文字コードを自動判定 の自動判定を組み込む、かも。

このパッチには別途、chardetが必要なので、あらかじめ入手・インストールしておく。

$ apt-cache show python-chardet
Package: python-chardet
Priority: optional
Section: python
Installed-Size: 620
Maintainer: Piotr Ozarowski <ozarow@gmail.com>
Architecture: all
Source: chardet
Version: 1.0-1
Depends: python-central (>= 0.5), python
Filename: pool/main/c/chardet/python-chardet_1.0-1_all.deb
Size: 168506
MD5sum: 13979fb363243b77beb0f852c3d098ae
SHA1: 77ee4a41f9ef762c2bff0c0df0dec0b3c1cc742a
SHA256: e7a25946c6d81262d64b5fecdadc0ef53b080e6d8a0d914d60545108695cb84a
Description: universal character encoding detector
 Chardet takes a sequence of bytes in an unknown character encoding, and
 attempts to determine the encoding.
 .
 Supported encodings:
  * ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
  * Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified
    Chinese)
  * EUC-JP, SHIFT_JIS, ISO-2022-JP (Japanese)
  * EUC-KR, ISO-2022-KR (Korean)
  * KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
  * ISO-8859-2, windows-1250 (Hungarian)
  * ISO-8859-5, windows-1251 (Bulgarian)
  * windows-1252 (English)
  * ISO-8859-7, windows-1253 (Greek)
  * ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
  * TIS-620 (Thai)
 .
 This library is a port of the auto-detection code in Mozilla.
 .
  Homepage: http://chardet.feedparser.org/
Python-Version: all
Tag: devel::lang:python, devel::library, implemented-in::python, role::devel-lib, role::shared-lib, works-with
::text, works-with-format::plaintext

}}}

[編集]

コメント #

コメントは ソフト/Bug Tracking/trac#comment にお願いします。