netatalk のビルド
MacOS X 10.5 Leopard はクリアテキストパスワードは駄目なので、Debian で最初から用意されている netatalk だと駄目! その辺りは README.Debian に書いてある。というわけで、OpenSSL をサポートした状態でビルドしてインストールをする。
まずは libssl-dev のインストール。
paraches@debian:~/myTest$ sudo apt-get install libssl-dev Password: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 以下の特別パッケージがインストールされます: libc6-dev linux-kernel-headers zlib1g-dev 提案パッケージ: glibc-doc manpages-dev 推奨パッケージ: gcc c-compiler 以下のパッケージが新たにインストールされます: libc6-dev libssl-dev linux-kernel-headers zlib1g-dev アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。 7085kB のアーカイブを取得する必要があります。 展開後に追加で 28.3MB のディスク容量が消費されます。 続行しますか [Y/n]? <長いので省略> linux-kernel-headers (2.6.18-7) を設定しています ... libc6-dev (2.3.6.ds1-13etch2) を設定しています ... zlib1g-dev (1.2.3-13) を設定しています ... libssl-dev (0.9.8c-4etch1) を設定しています ... paraches@debian:~/myTest$
で、次に netatalk のソースを落としてくる。
paraches@debian:~/myTest$ apt-get source netatalk パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 1947kB のソースアーカイブを取得する必要があります。 取得:1 http://cdn.debian.or.jp etch/main netatalk 2.0.3-4 (dsc) [802B] 取得:2 http://cdn.debian.or.jp etch/main netatalk 2.0.3-4 (tar) [1921kB] 取得:3 http://cdn.debian.or.jp etch/main netatalk 2.0.3-4 (diff) [26.1kB] 1947kB を 1s で取得しました (1614kB/s) gpg: failed to create temporary file `/home/paraches/.gnupg/.#lk0x81168e8.debian.22632': 許可がありません gpg: keyblock resource `/home/paraches/.gnupg/pubring.gpg': general error gpg: Signature made 2006年01月14日 17時30分38秒 JST using DSA key ID 496A1827 gpg: Can't check signature: public key not found dpkg-source: extracting netatalk in netatalk-2.0.3 dpkg-source: unpacking netatalk_2.0.3.orig.tar.gz dpkg-source: applying ./netatalk_2.0.3-4.diff.gz paraches@debian:~/myTest$ ls netatalk-2.0.3 netatalk_2.0.3-4.dsc netatalk_2.0.3-4.diff.gz netatalk_2.0.3.orig.tar.gz paraches@debian:~/myTest$
何か言われてるけど、ま、いっか…。(何やら gpg --keyserver 云々でどうにかするみたい)
次に cracklib2 をインストール。
paraches@debian:~/myTest/netatalk-2.0.3$ sudo apt-get install cracklib2 パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 推奨パッケージ: cracklib-runtime 以下のパッケージが新たにインストールされます: cracklib2 アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 28.0kB のアーカイブを取得する必要があります。 展開後に追加で 90.1kB のディスク容量が消費されます。 取得:1 http://cdn.debian.or.jp etch/main cracklib2 2.7-19 [28.0kB] 28.0kB を 0s で取得しました (74.0kB/s) 未選択パッケージ cracklib2 を選択しています。 (データベースを読み込んでいます ... 現在 89998 個のファイルとディレクトリがインストールされています。) (.../cracklib2_2.7-19_i386.deb から) cracklib2 を展開しています... cracklib2 (2.7-19) を設定しています ... paraches@debian:~/myTest/netatalk-2.0.3$ sudo apt-get install cracklib2-dev パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 推奨パッケージ: cracklib-runtime 以下のパッケージが新たにインストールされます: cracklib2-dev アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 30.6kB のアーカイブを取得する必要があります。 展開後に追加で 94.2kB のディスク容量が消費されます。 取得:1 http://cdn.debian.or.jp etch/main cracklib2-dev 2.7-19 [30.6kB] 30.6kB を 0s で取得しました (108kB/s) 未選択パッケージ cracklib2-dev を選択しています。 (データベースを読み込んでいます ... 現在 90008 個のファイルとディレクトリがインストールされています。) (.../cracklib2-dev_2.7-19_i386.deb から) cracklib2-dev を展開しています... cracklib2-dev (2.7-19) を設定しています ... paraches@debian:~/myTest/netatalk-2.0.3$
で、ビルドを始めるけど、その前に OpenSSL をサポートする様に設定。
paraches@akarasiel:~/myTest/netatalk-2.0.3/debian$ DEB_BUILD_OPTIONS="ssl debuild" paraches@akarasiel:~/myTest/netatalk-2.0.3/debian$ export DEB_BUILD_OPTIONS
これで OpenSSL をサポートする様になったのでビルドを開始。途中、ちゃんと --with-ssl-dir となっているのも確認。
paraches@debian:~/myTest/netatalk-2.0.3$ dpkg-buildpackage -rfakeroot dpkg-buildpackage: source package is netatalk dpkg-buildpackage: source version is 2.0.3-4 dpkg-buildpackage: source changed by Sebastian Rittau <srittau@debian.org> dpkg-buildpackage: host architecture i386 <長いので省略> touch debian/stamp-autotools-files chmod a+x /home/paraches/myTest/netatalk-2.0.3/./configure cd . && CC="cc" CXX="g++" CFLAGS="-g -Wall -O2" CXXFLAGS="-g -Wall -O2" CPPFLAGS="" LDFLAGS="" /home/paraches/myTest/netatalk-2.0.3/./configure --build=i486-linux-gnu --prefix=/usr --includedir="\${prefix}/include" --mandir="\${prefix}/share/man" --infodir="\${prefix}/share/info" --sysconfdir=/etc --localstatedir=/var --libexecdir="\${prefix}/lib/netatalk" --disable-maintainer-mode --disable-dependency-tracking --srcdir=. --with-shadow --enable-fhs --with-tcp-wrappers --with-mangling --enable-timelord --enable-overwrite --with-pkgconfdir=/etc/netatalk --with-nls-dir=/usr/share/netatalk/nls --disable-logger --enable-srvloc --enable-pgp-uam --enable-krb4-uam --enable-krbV-uam --with-ssl-dir --with-cracklib=/var/cache/cracklib/cracklib_dict <長いので省略> dpkg-deb: `../netatalk_2.0.3-4_i386.deb' にパッケージ `netatalk' を構築しています。 signfile netatalk_2.0.3-4.dsc gpg: failed to create temporary file `/home/paraches/.gnupg/.#lk0x81168e8.debian.25120': 許可がありません gpg: keyblock resource `/home/paraches/.gnupg/secring.gpg': general error gpg: failed to create temporary file `/home/paraches/.gnupg/.#lk0x8122868.debian.25120': 許可がありません gpg: keyblock resource `/home/paraches/.gnupg/pubring.gpg': general error gpg: skipped "Sebastian Rittau <srittau@debian.org>": secret key not available gpg: [stdin]: clearsign failed: secret key not available dpkg-genchanges dpkg-genchanges: not including original source code in upload dpkg-buildpackage: binary and diff upload (original source NOT included) (WARNING: Failed to sign .dsc and .changes file) paraches@debian:~/myTest/netatalk-2.0.3$ cd .. paraches@debian:~/myTest$ ls -al 合計 2732 drwxr-xr-x 3 paraches paraches 4096 2007-12-26 09:44 . drwxr-xr-x 18 paraches paraches 4096 2007-12-26 09:22 .. drwxr-xr-x 14 paraches paraches 4096 2007-12-26 09:41 netatalk-2.0.3 -rw-r--r-- 1 paraches paraches 76181 2007-12-26 09:41 netatalk_2.0.3-4.diff.gz -rw-r--r-- 1 paraches paraches 565 2007-12-26 09:41 netatalk_2.0.3-4.dsc -rw-r--r-- 1 paraches paraches 899 2007-12-26 09:44 netatalk_2.0.3-4_i386.changes -rw-r--r-- 1 paraches paraches 763296 2007-12-26 09:44 netatalk_2.0.3-4_i386.deb -rw-r--r-- 1 paraches paraches 1920570 2005-06-26 13:32 netatalk_2.0.3.orig.tar.gz
ビルド終了。
確認をしてみる。
paraches@debian:~/myTest$ ls /usr/lib/netatalk/ etc2ps.sh ofwmpap tfwpaprev uams_gss.so uams_passwd.la ifmpap ofwpap uams_clrtxt.so uams_guest.a uams_passwd.so ifmpaprev psa uams_dhx.so uams_guest.la uams_pgp.a ifpap psf uams_dhx_pam.a uams_guest.so uams_pgp.la ifpaprev tfmpap uams_dhx_pam.la uams_krb4.a uams_pgp.so ifwmpap tfmpaprev uams_dhx_pam.so uams_krb4.la uams_randnum.a ifwmpaprev tfpap uams_dhx_passwd.a uams_krb4.so uams_randnum.la ifwpap tfpaprev uams_dhx_passwd.la uams_pam.a uams_randnum.so ifwpaprev tfwmpap uams_dhx_passwd.so uams_pam.la ofmpap tfwmpaprev uams_gss.a uams_pam.so ofpap tfwpap uams_gss.la uams_passwd.a
ちゃんと uams_dhx があるから OK!
次に今入っている netatalk を削除。
paraches@debian:~/myTest$ sudo dpkg -r netatalk (データベースを読み込んでいます ... 現在 90022 個のファイルとディレクトリがインストールされています。) netatalk を削除しています ... Stopping AppleTalk Daemons: afpd papd timelord atalkd cnid_metad.
で、今ビルドした netatalk をインストール
paraches@debian:~/myTest$ sudo dpkg -i netatalk_2.0.3-4_i386.deb 未選択パッケージ netatalk を選択しています。 (データベースを読み込んでいます ... 現在 89884 個のファイルとディレクトリがインストールされています。) (netatalk_2.0.3-4_i386.deb から) netatalk を展開しています... netatalk (2.0.3-4) を設定しています ... 設定ファイル /etc/default/netatalk を新規にインストールしています ... 設定ファイル /etc/pam.d/netatalk を新規にインストールしています ... Starting AppleTalk services (this will take a while): atalkd papd afpd cnid_metad. paraches@debian:~/myTest$
何やらレガシーなものは止めた方が良いらしい。というわけで、/etc/default/netatalk を編集。以下の2つを NO にする。
ATALKD_RUN=no PAPD_RUN=no
あと、apt-get update/upgrade でせっかく入れた netatalk がアップデートされちゃわないようにする。これをすると保留になる。どこかのサイトで見たんだけど、こうすれば折角入れたのがアップデートされて元に戻っちゃうのを避けられるのね!
paraches@debian:~/myTest/netatalk$ echo "netatalk hold" | sudo dpkg --set-selections
最後に共有するフォルダの設定は /etc/netatalk/AppleVolums.default の最後に共有するフォルダのパスと共有するときの名前を書く。
~/ "Home Directory" options:upriv
options:upriv は Leopard で共有したときにパーミションがおかしくなるのを解決してくれる魔法の呪文。(あんまり状況解ってない…)