mercredi 17 mars 2010

pkg_rollling-replace et pkgsrc

Je pense beaucoup de bien de pkgsrc, une infrastructure multi plateforme pour installer des logiciels à partir du code source,  dont je me sers pour bénéficier des dernières nouveautés du libre à côté des outils standards de ma plateforme.
Pkgsrc permet sur OSX d'avoir ainsi git, mplayer, unrar, hatari, gpg, nedit et sur Linux ( Debian ) d'avoir la dernière version de svn et d'openvpn, sans mettre le bazar dans dpkg.

Pour la dernière mise à jour de pkgsrc, je me suis laissé tenté par pkg_rolling-replace en lieu et place de l'habituel pkg_chk. pkg-rolling-replace a le principal avantage par rapport à pkg_chk de faire une mise à jour progressive, alors que pkg_chk deinstalle tout ce qui doit être mis à jour avant de recompiler.
Comme sur ma machine ( PowerPC 1,42 GHz), la compilation de mes 500 paquets prend plusieurs jours, cela représente un intérêt évident.
J'ai documenté sur le wiki netbsd  les étapes utilisées, la commande principale étant

pkg_rolling-replace -rsuvX bmake,bootstrap-mk-files,pax,pkg_install

Deux échecs seulement dans la mise à jour des 506 paquets.

===> Building for physfs-1.0.1nb1
/Volumes/Projects/netbsd/bin/bmake  all-recursive
/bin/sh ./libtool --mode=link gcc  -O2 -pipe -O2 -I/Volumes/Projects/netbsd/include -I/usr/include -D_REENTRANT -D_REENTRANT -D_THREAD_SAFE   -L/V
olumes/Projects/netbsd/lib -L/usr/lib  -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,IOKit -no-undefined -o test_physfs  test_physfs.o ./libphysfs.
la -lpthread -lz
gcc -O2 -pipe -O2 -I/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/include -D_REENTRANT -D_THREAD_SAFE -Wl,-framework -Wl,Carbon -Wl
,-framework -Wl,IOKit -o .libs/test_physfs test_physfs.o  -L/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/lib ./.libs/libphysfs.dyl
ib -lpthread -lz
Undefined symbols:
  "_readline", referenced from:
      _main in test_physfs.o
  "_add_history", referenced from:
      _main in test_physfs.o
      _main in test_physfs.o
ld: symbol(s) not found

Ceci est du à un petit LDFLAGS+=      -lreadline manquant et a fait l'objet d'un rapport de bug (#42468) pour aboutir à la conclusion que ceci avait déja été corrigé, et que mon source n'était pas à jour ! Apparemment csup avait manqué quelques répertoires lors de la mise à jour, ou quelque chose a manqué entre la chaise et l'ordinateur lors de l'update.

===> Installing for tex-courier-2008.7340
ERROR: tex-courier-2008.7340 conflicts with installed package(s):
ERROR:     teTeX-texmf-3.0nb16
ERROR: They install the same files into the same place.
ERROR: Please remove conflicts first with pkg_delete(1).

Un cas de paquet renommé, rien de bien méchant après quelques pkg_delete et bmake install, l'erreur disparait.

Aucun commentaire: