
Bon ben voilà, je vous soumets ici la première version de mon PKGBUILD qui permet de compiler flock depuis la source pour les deux architectures. Il n'est pas encore francisé, mais je le poste quand même parce que j'ai quelques soucis que j'aimerais bien régler...
Le PKGBUILD + les sources locales sont dispo ici : http://jm.ambrosino.free.fr/archlinux/flock.tar.gz
Voici le PKGBUILD dans le détail avec quelques explications :
1) Pour Lucene, le PKGBUILD d'AUR est méchamment obsolète. En voici un à jour :pkgname=flock
pkgver=1.1
pkgrel=1
pkgdesc="A free, easy-to-use web browser built on Mozilla technologies."
url="http://www.flock.com/"
arch=('i686' 'x86_64')
license=('MPL' 'GPL')
depends=('gtk2' 'fontconfig' 'libxt' 'nss' 'libstdc++5')
makedepends=('lucene' 'clucene' 'jdk')
source=(http://mirrors.ibiblio.org/pub/mirrors/ ... ce.tar.bz2
mozconfig
fix_lucene_path.diff
flock.desktop)
md5sums=('70ee190dd28b43e1e3e5583324d35f10' 'a8cb6523c8a9f7929b63b23f0b622381' 'fa4d939b8ec6d9a95bb8c30cbadf5253' 'cb006a380c8abb63f59f1304bcbe09e7')
build() {
mv mozconfig $startdir/src/$pkgname/mozilla
cd $startdir/src/$pkgname/mozilla
# removing useless files that cause gcc 4.3 to break
rm xpcom/obsolete/component/nsFileSpecImpl.h
rm xpcom/obsolete/component/nsIRegistry.idl
rm xpcom/obsolete/component/nsIRegistryUtils.h
rm xpcom/obsolete/component/regExport.cpp
# fix for lucene path not detected correctly
cd flock/base/lucene/src
patch -p0 < $startdir/src/fix_lucene_path.diff
# starting build...
cd $startdir/src/$pkgname/mozilla
# make -f client.mk build
make DESTDIR=${startdir}/pkg install
# removing mozilla devel stuff
rm -rf ${startdir}/pkg/usr/local/share
rm -rf ${startdir}/pkg/usr/local/include
rm -rf ${startdir}/pkg/usr/local/lib/pkgconfig
# installing icons and desktop files
mkdir -p ${startdir}/pkg/usr/share/pixmaps/
convert ${startdir}/pkg/usr/local/lib/$pkgname-$pkgver/icons/default.xpm ${startdir}/pkg/usr/share/pixmaps/flock.png
install -Dm644 ${startdir}/src/flock.desktop ${startdir}/pkg/usr/share/applications/flock.desktop
}
2) Sur architecture x86_64 seulement : pour Clucene, il faut le recompiler depuis ABS en ajoutant -fPIC aux C[XX]FLAGS. Manque de pot, je possède la librairie modifiée sur mon système, mais je n'ai pas gardé le PKGBUILD...pkgname=lucene
pkgver=2.3.1
pkgrel=1
pkgdesc="A high-performance, full-featured text search engine library written entirely in Java"
url="http://lucene.apache.org/java/docs/index.html"
license="APL"
depends=(jre)
makedepends=(jdk apache-ant)
arch=('i686' 'x86_64')
source=(http://www.mirrorservice.org/sites/ftp. ... ver.tar.gz)
md5sums=('5bf11cc19adb469f272c12590182f50f')
build() {
cd $startdir/src/$pkgname-$pkgver
ant
install -D -m644 $startdir/src/$pkgname-$pkgver/$pkgname-core-$pkgver.jar $startdir/pkg/usr/share/java/$pkgname-core-$pkgver.jar
}
En gros, avec la librairie que j'ai sur mon système, ça compile nickel, et je peux la récupérer avec repacman.
Mais si j'essaie de faire un nouveau PKGBUILD pour clucene avec les mêmes options que précédemment, et que je l'installe, la compilation de flock re-foire... je dois probablement oublier un truc, mais pas moyen de trouver quoi. L'idée, c'était de créer un package clucene-fpic nécéssaire pour compiler flock et en conflit avec clucene. Je pense que ce n'est pas insurmontable, il faut encore que je tatonne un peu...
3) Le bug le plus bizarre... si j'essaie de lancer la compilation depuis le PKGBUILD, ça plante systématiquement avec des erreurs qui changent à chaque fois mais qui me semblent assez fantaisistes (ex : mon compilateur C++ ne fonctionne pas, ou alors il manque des choses dans la source...). Si je commente la ligne "make -f client.mk build", puis que je lance la compilation manuellement après un premier makepkg (donc une fois les patchs appliqués), la compilation se fait sans aucun problème. Il me suffit alors de faire makepkg -f pour obtenir mon paquet... si quelqu'un a une explication, je suis preneur...
Au final, j'ai bien réussi à obtenir un paquet binaire qui fonctionne très bien (vous pouvez le récupérer ici et constater par vous mêmes : http://jm.ambrosino.free.fr/archlinux/p ... pkg.tar.gz ) mais on peut pas dire que la méthode soit pas crade...
Vu qu'on a jamais été aussi près d'avoir un paquet natif x86_64 (même chez ubuntu, ils packagent le flock 32 bits sous x86_64
