owncloud パケジのソース掘削してみた

debian/ 配下は以下なカンジ。

$ ls debian/
changelog  
compat  
control  
copyright  
owncloud.conf  
owncloud.dirs  
owncloud.docs  
owncloud.install  
owncloud.postinst  
patches  
rules  
source  
watch

結構単純です。これ、php な Web アプリみたいなのですね。Description が以下。

Description: personal file storage server
 ownCloud is a personal file storage server using Webdav.
 .
 The ownCloud initiative is developed by KDE.

WebDAV な設定云々、というあたりはどこに記述されてるんでしょうね。

と言いつつ

某所にて owncloud-3.0 なソースパケジ (の素) を発見。以下から取得してます。

解凍してがっちゃんこして debuild してみます。

$ tar jxvf owncloud_3.0.0.orig.tar.bz2
$ mv owncloud owncloud-3.0.0-0ubuntu1
$ cd owncloud-3.0.0-0ubuntu1
$ tar zxvf ../owncloud_3.0.0-0ubuntu1.debian.tar.gz

で、debuild すれば良いのかな。

$ debuild

よろしくお願い致します。一応鍵は登録されてるはずなのであのオプション付けなかったんですが大丈夫かな。

駄目でした

control なナニがわしじゃないから当たり前に叱られました。一応でびあんパケジはできたので某所にてまっさらな環境作る。しかし make しない debuild ってのは本当に一瞬ですな。

導入

ファイル転送できたので導入対応をば。

$ sudo dpkg -i owncloud_3.0.0-0ubuntu1_all.deb

これは依存するパケジが同時にアレされないので失敗します。すかさず以下。

$ sudo apt-get update
$ sudo apt-get install -fy

実際にはいったん -s 付けて様子を伺ってから実行。apache2 とか php とか導入されていることとか owncloud も導入されることなどを確認してます。
導入は完了したようなのでブラウズしてみます、Chrome 以外で (何
とりあえず最初は管理権限の設定になるようですね。データフォルダとかデータベースまわりの設定も可能な模様ですが、今回はスルーして finish setup します。

と思ったら

mysql の username と database の名前入れれ、って言われたぞ。なんとなく微妙な流れだなぁ。1.0 が入ってるソレと比べてみたら mysql なパケジがアレ。

$ dpkg --get-selections|grep mysql
libmysqlclient16                                install
mysql-common                                    install
php5-mysql                                      install
$

以下は動いてる方。

$ dpkg --get-selections|grep mysql
libdbd-mysql-perl                               install
libmysqlclient16                                install
mysql-client-5.1                                install
mysql-client-core-5.1                           install
mysql-common                                    install
mysql-server                                    install
mysql-server-5.1                                install
mysql-server-core-5.1                           install
php5-mysql                                      install
$

mysql-server 入れます。

$ sudo apt-get install mysql-server

これで一式導入される模様。しかし最初に 1.0 を試したナニでは何故に server なパケジが導入されたのかが謎です。
で、これで MySQL の "root" のパスワード入れたりするんだよな。最初に試験した方が特に何も言わなくても導入されたんですが、control に大きな差は無かったのだけどなぁ。何が違うのか、って言われると最初は全部 apt で入れた程度の差なんですが。
おそらく mysql-server が動いていればさっきのナニは reload してあげれば大丈夫なはずだと思います。

mysql-server パケジ入れた

でも挙動変わらず。owncloud も入れなおしてみましたが挙動は変わりそうにない。これはおそらくこうした実装にしたのだろうな、という理解をすることにしました。
ユーザは root で (これ、良くないですね) データベースは owncloud ってことで適当に入力して finish したら出てきました。

挙動

同僚な方に動作確認を案内してみたのですが、位置情報の取得許可を求められたとのことでインターネットに晒してスマホでアクセス云々、ってのも考えられている模様。

引き続き

1.0 なナニと debian 配下の比較をしてみます。あと apache2 な WebDAV とどう連携しているのかが非常に謎です。

debian 配下なファイルの diff 取ってみた

control が以下。diff の出力のみ。

11,12c11,12
< Architecture: any
< Depends: ${misc:Depends}, apache2, php5, php-pear, php-xml-parser, php5-mysql | php5-sqlite
---
> Architecture: all
> Depends: ${misc:Depends}, apache2, php5, php-pear, php-xml-parser,php5-gd, php5-mysql | php5-sqlite

下側が 3.0.0 です。php5-gd が追加されてます。あと、files が追加されてます。中身は以下。

owncloud_3.0.0-0ubuntu1_all.deb web optional

これ、debuild が追加したファイルなんですかね。Debian ポリシーマニュアルの 4.12 にその旨の記載がありました。どうも debuild で追加されたクサいのが

あたりな模様。これは diff の対象からは外します。

  • debian/owncloud.conf は差分ナシ
  • debian/owncloud.dirs は差分ナシ

む、debian/owncloud.docs は docs/ がコメントアウトされてます。sdiff の出力が以下。

README                                                          README
docs/                                                         | #docs/

右側が 3.0.0 なソレです。を、debian/owncloud.install は結構差分がある模様。

1,3c1,3
< admin /usr/share/owncloud
< config /var/lib/owncloud
< css /usr/share/owncloud
---
> 3rdparty /usr/share/owncloud
> apps /usr/share/owncloud
> core /usr/share/owncloud
6,7d5
< img /usr/share/owncloud
< inc /usr/share/owncloud
9,10c7,8
< js /usr/share/owncloud
< log /usr/share/owncloud
---
> l10n /usr/share/owncloud
> lib /usr/share/owncloud
12c10
< plugins /usr/share/owncloud
---
> search /usr/share/owncloud
14c12,15
< webdav /usr/share/owncloud
---
> status.php /usr/share/owncloud
> 
> config /var/lib/owncloud
> 

これも面倒なので sdiff しちゃえ。

admin /usr/share/owncloud                                     | 3rdparty /usr/share/owncloud
config /var/lib/owncloud                                      | apps /usr/share/owncloud
css /usr/share/owncloud                                       | core /usr/share/owncloud
db_structure.xml /usr/share/owncloud                            db_structure.xml /usr/share/owncloud
files /usr/share/owncloud                                       files /usr/share/owncloud
img /usr/share/owncloud                                       <
inc /usr/share/owncloud                                       <
index.php /usr/share/owncloud                                   index.php /usr/share/owncloud
js /usr/share/owncloud                                        | l10n /usr/share/owncloud
log /usr/share/owncloud                                       | lib /usr/share/owncloud
ocs /usr/share/owncloud                                         ocs /usr/share/owncloud
plugins /usr/share/owncloud                                   | search /usr/share/owncloud
settings /usr/share/owncloud                                    settings /usr/share/owncloud
webdav /usr/share/owncloud                                    | status.php /usr/share/owncloud
                                                              >
                                                              > config /var/lib/owncloud
                                                              >
debian/owncloud.conf /etc/apache2/conf.d/                       debian/owncloud.conf /etc/apache2/conf.d/

む、これって dh_install というコマンドが使うのか。こりゃあれかな、このディレクトリ (あるいはファイル) はここに置いてね的ソレ、ってことかな。
ソースツリーのてっぺん見てみるに随分様子が変わっているみたいなのでこれだけ差分があるのは仕方が無いのか。

  • debian/owncloud.postinst も差分ナシ

で、上記の通り、ディレクトリの構成が相当変わっているので rules はかなり変更かかってます。diff は略します。rm してる部分が変更されてますね。

ありやまさんから

owncloud のオファーというか問い合わせあり。面白いタイミングだな、って思ってます。