Fink

Portage - 5. Préparation pour la version 10.3

5.1 Perl

Sous Mac OS X 10.2, /usr/bin/perl correspondait à la version 5.6.0 de perl et l'architecture était représentée par la chaîne de caractères "darwin". Sous Mac OS X 10.3, /usr/bin/perl correspond à la version 5.8.1 de perl, et l'architecture est représentée par la chaîne de caractères "darwin-thread-multi-2level". Ces changements n'affectent probablement pas l'utilisation courante de l'exécutable perl lors de la création de paquets, car chaque exécutable perl sait où trouver ses propres modules. Les mainteneurs de paquets de module perl ("-pm") qui suivent les règles d'empaquetage des modules perl en vigueur et celles des scripts CompileScript et InstallScript n'ont pas de souci à se faire.

5.2 Nouvelles définitions de symboles

À partir de Mac OS X 10.3, il existe une définition complète du type socklen_t type. Pour l'utiliser, il faut ajouter au programme :

#include <sys/types.h>
#include <sys/socket.h>

5.3 Nouvelles librairies systèmes incorporées

Mac OS X 10.3 comprend plusieurs librairies qui n'existaient pas dans les versions précédentes du système, et étaient donc fournies en tant que paquets Fink. Il s'agit de :

LibrairiesNotes
libpoll

Les fichiers /usr/lib/libpoll.dylib et /usr/include/poll.h sont toujours inclus, toutefois l'implémentation de cette librairie sous Mac OS X n'est pas complète. Si elle correspond à vos besoins, vous pouvez supprimer les dépendances des paquets Fink "libpoll" et "libpoll-shlibs". Le code de la librairie est incorporé dans libSystem ; cette librairie est toujours liée automatiquement. Cela signifie que le drapeau -lpoll n'est pas nécessaire si vous désirez utiliser l'implémentation Mac OS X. Sachez que Mac OS X fournit un fichier libpoll.dylib ; il se peut donc que -lpoll donne un résultat différent selon que le paquet Fink "libpoll" est installé ou non.

libdl

Les fichiers /usr/lib/libdl.dylib et /usr/include/dlfcn.h sont inclus maintenant ; il n'y a donc plus besoin de dépendre des paquets Fink "dlcompat", "dlcompat-dev" et "dlcompat-shlibs". Le code de la librairie est incorporé dans libSystem ; cette librairie est toujours liée automatiquement. Cela signifie que le drapeau -ldl n'est plus nécessaire (mais son utilisation n'a aucun effet).

GNU getopt

Cette librairie, qui comprend la fonction getopt_long(), a été incorporée dans libSystem et /usr/include/getopt.h ; vous n'avez donc pas besoin d'utiliser les paquets Fink "libgnugetopt" et "libgnugetopt-shlibs". Comme libSystem est automatiquement liée et que le répertoire /usr/include fait partie des répertoires automatiques de recherche des headers, vous pouvez supprimer tous les drapeaux -lgnugetopt et -I/opt/sw/include/gnugetopt qui avaient été ajoutés pour permettre d'accéder au paquet Fink "libgnugetopt".

Lors de la migration d'un paquet vers Mac OS X 10.3, essayez de supprimer ces dépendances obsolètes, car il se peut que ces paquets soient supprimés des arborescences futures. Cela signifie qu'il faut un fichier de description différent pour chaque arborescence. Comme toujours, le champ Revision doit être incrémenté lors de changements faits sur un paquet. De cette façon, les utilisateurs qui passent de Mac OS X 10.2 à Mac OS X 10.3 voient les paquets spécifiques à la branche 10.3 comme "plus récents" que les paquets de l'arborescence 10.2. Par convention, le champ Revision doit être incrémenté de 10 unités lors d'une migration vers un arbre plus récent de façon à laisser une marge pour pouvoir mettre à jour les paquets des branches moins récentes.

Lors du test d'un paquet en migration, n'oubliez pas de désinstaller les paquets que vous avez supprimé du champ BuildDepends, pour éviter que le compilateur lie avec les librairies Fink installées.

Suite: 6. Préparation pour la version 10.4