Am Samstag 17 Januar 2009 13:56:30 schrieb Pierre Schmitz:
The next one I'll try is php. It should be more complex but there won't be strange dependencies between sub packages.
OK, I have created a splitted php package now. Maybe I don't get it, but I think php has some of the worst build systems ever. :-) To sum things up, I have to say I really like the current implementation. It's really clean and even if you do not split the package a separate package function has a lot of advantages. I have also use makepkg -R a lot; added and removed sub packages and all went fine. So, what I have learnt from packageing PHP? 1) I have to use configure;make;make install several times. That's why I asked for build_pkg1.. functions. But thinking about it several build functions might be really problematic; especially if you want to repackage and call order of those functions is important. The solution is to use "out of source tree builds". This way you could do different things for each sub package. 2) Future versions of namcap should do some more tests like: * Are all deps of sub packages are defined as makedeps? * Do we have package functions for all pkgnames and vise versa? 3) $pkgname seems to allways point to the first entry of the pkgname array. See the following test case: pkgname=(test1 test2) pkgver=1 pkgrel=1 build() { echo -n should be empty: echo $pkgname } package_test1() { echo -n should be test1: echo $pkgname } package_test2() { echo -n should be test2: echo $pkgname } This allway echos test1 which is not really expected. So back to PHP. The main problem was that PHP itself is quite modular,but the build system is not. So I had to do several hack to get everything build within one PKGBUILD. Anyway: Once this is done we get a clean solution and don't have to abuse optdepends. The result are the following packages: 3,9M php-5.2.8-1-x86_64.pkg.tar.gz 2,4M php-apache-5.2.8-1-x86_64.pkg.tar.gz 2,2M php-cgi-5.2.8-1-x86_64.pkg.tar.gz 28K php-curl-5.2.8-1-x86_64.pkg.tar.gz 112K php-gd-5.2.8-1-x86_64.pkg.tar.gz 20K php-gmp-5.2.8-1-x86_64.pkg.tar.gz 20K php-ldap-5.2.8-1-x86_64.pkg.tar.gz 16K php-mcrypt-5.2.8-1-x86_64.pkg.tar.gz 8,0K php-mhash-5.2.8-1-x86_64.pkg.tar.gz 84K php-mysql-5.2.8-1-x86_64.pkg.tar.gz 44K php-odbc-5.2.8-1-x86_64.pkg.tar.gz 336K php-pear-5.2.8-1-x86_64.pkg.tar.gz 60K php-pgsql-5.2.8-1-x86_64.pkg.tar.gz 12K php-pspell-5.2.8-1-x86_64.pkg.tar.gz 12K php-snmp-5.2.8-1-x86_64.pkg.tar.gz 200K php-sqlite-5.2.8-1-x86_64.pkg.tar.gz 20K php-tidy-5.2.8-1-x86_64.pkg.tar.gz 16K php-xsl-5.2.8-1-x86_64.pkg.tar.gz In my first attepmt I had nearly everything as a sub package which was a bit extreme. So I finally decided to split only to avoid unneeded dependencies. E.g. there is no need to install postgres if you don't use it. This also makes it possible to add some less used features/modules without worring about increasing dependencies for others. I have attached the (quite long) PKGBUILD. Greetings, Pierre -- Pierre Schmitz Clemens-August-Straße 76 53115 Bonn Telefon 0228 9716608 Mobil 0160 95269831 Jabber pierre@jabber.archlinux.de WWW http://www.archlinux.de