La collection de ports et de packages NE passe PAS par l'audit complet de sécurité dont OpenBSD fait l'objet. Bien que nous nous efforçons de maintenir la qualité de la collection des packages à un niveau élevé, nous n'avons malheureusement pas assez de ressources humaines pour assurer le même niveau de robustesse et de sécurité.
La collection de ports, à l'origine empruntée à FreeBSD, comble ce vide. Ce concept stipule que chaque logiciel tiers doit avoir un fichier "makefile" qui définit :
Les packages sont l'équivalent binaire des ports. Un port compilé devient un package qui peut être enregistré dans le système en utilisant pkg_add(1)
Les packages ressemblent à de simples paquets .tgz, mais ils devraient toujours être ajoutés en utilisant pkg_add(1), car il pourrait y avoir des informations supplémentaires que seul pkg_add(1) sait manipuler. Astuce : vous pouvez distinguer les packages des paquets .tgz en utilisant pkg_info(1).
pkg_add
pkgname.tgz. Si vous prenez les packages dans une même source (un
dépôt de packages), réglez PKG_PATH sur l'URL de ce dépôt, afin de
traiter les dépendances.
Par exemple, pour installer le package Gimp sur la révision 3.6, et ce sur une machine i386, faites à partir du site ftp (incluant les dépendances) :
# setenv PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/3.6/packages/i386/
# pkg_add ${PKG_PATH}gimp-1.2.5.tgz
La version 2.7 a vu l'introduction d'une branche stable pour l'arborescence des ports.
Par exemple, pour saisir la branche stable de la version 3.6 :
$ cd /usr/ports
$ cvs -q -d anoncvs@some.anon.server:/cvs up -r OPENBSD_3_6 -Pd
Commençant avec la version 2.8, les binaires choisis sont également disponibles. Veuillez vous référer à la page des packages stables pour la la mise à jour des packages et pour les mises à jour importantes de la branche stable. Si vous voulez recevoir les annonces de sécurité, vous pouvez vous inscrire à la liste de diffusion ports-security.
Les noms des packages sont toujours changés en cas de mise à jour du logiciel, pour éviter tout risque de confusion entre un logiciel en version finale et un logiciel corrigé de ses bogues.
A partir d'OpenBSD 2.8, pour mettre à jour un logiciel vous devez :
Vous pouvez télécharger par ftp la version finale souhaitée à partir du répertoire pub/OpenBSD/[version] (où [version] est le numéro de la version finale) sur n'importe lequel des sites ftp miroirs. Les versions finales sont celles que nous livrons sur notre CDROM, et sont soumises à plus de tests que celles sur n'importe quel "snapshot". Davantage d'informations sont disponibles dans la page ports(7) du manuel.
L'arborescence des ports, comme le reste d'OpenBSD, change constamment.
L'arborescence courante des ports ne devrait pas être employée avec la version finale précédente. Ceci est dû aux changements, typiques du processus de construction du port, qui exigent du code basé sur l'arborescence courante des sources d'OpenBSD.
L'arborescence des ports fonctionne comme une seule entité. Le
fonctionnement de la mise à jour d'un seul répertoire n'est pas garanti,
car les dépendances du logiciel peuvent vous forcer à mettre à jour et
recompiler de vastes parties de l'arborescence des ports. Il est
fortement conseillé de ne pas suivre les ports courants à moins que vous
ne soyez préparé à traiter des problèmes variés. Des listes de discussion comme
ports-changes@openbsd.org ou tech@openbsd.org
seront probablement d'une valeur inestimable.
Vous êtes invités à utiliser les ports stables sur une machine de production : nous essaierons de garder l'arborescence des ports stables à jour en prenant en compte les problèmes, et également en fournissant des mises à jour de binaires opportunes.
Notez que la suppression des "distfiles" n'est pas un problème, car ftp.openbsd.org contient le dépôt complet. Même le changement des "checksums" n'est pas un problème : vous pouvez utiliser la commande
make checksum REFETCH=true
pour vous assurer de saisir la "distfile" correcte pour votre
arborescence des ports. Pour des définitions de current et
de stable, consultez
les saveurs OpenBSD.
Une liste des changements quotidiens des ports et des ports-current est disponible.
L'arborescence des ports-current peut être retrouvée via :
Si vous prevoyez d'obtenir une arborescence des ports et de compiler, installez l'utilitaire d'archivage unzip. Vous devriez pouvoir faire quelque chose comme :
% cd /usr/ports/archivers/unzip
% su
# make
# make install
# exit
Facile, non ? Ceci l'est particulièrement si l'on considère tout ce qui
s'est produit en arrière-plan :
A partir d'OpenBSD 3.0, la majorité des ports construisent automatiquement les packages pendant l'installation.
Quand les ports sont construits, le répertoire /usr/ports/distfiles contient les sources des programmes, et /usr/ports/packages contient les binaires. Les utilisateurs dotés d'une connexion à faible débit peuvent se référer à mirroring-ports(7) pour saisir immédiatement et efficacement tous les "distfiles". Dans la version OpenBSD -current, vous pouvez employer le script /usr/ports/infrastructure/fetch/clean-old pour suivre les vieilles "distfiles". Notez que le CD d'OpenBSD inclut seulement l'arborescence des ports et les packages choisis. Si vous souhaitez avoir les "distfiles", vous devrez les obtenir d'une manière indépendante.
L'arborescence des ports possède beaucoup de dispositifs pour l'utilisateur avancé qui seront de précieux outils au delà de l'installation de base. Les utilisateurs avancés peuvent souhaiter fouiner dans les fichiers "makefile" (vous devriez d'abord lire la page make(1) du manuel) ou assigner diverses variables à partir de la ligne de commande ou bien dans /etc/mk.conf. Ces variables sont décrites en détail dans la page bsd.port.mk(5) du manuel et dans les documents "porting" ci-dessous.
Si vous souhaitez participer au développement de l'arborescence des ports d'OpenBSD, vous devriez d'abord lire porting.html. Cette page fait référence au FreeBSD Porter's Handbook et aux conseils liés à la politique spécifique d'OpenBSD.
La collection de ports est un projet volontaire. Parfois, le projet n'a simplement pas les ressources en développeurs pour maintenir tout à jour. Les développeurs reprennent majoritairement ce qu'ils considèrent comme intéressant et pouvant être testé dans leur environnement. Vos donations sont essentielles aux tests multi-plateformes de ces ports.
Certains ports peuvent être en retard sur les versions principales pour cette raison. La collection de ports peut récupérer une version d'un programme de janvier tandis qu'une nouvelle version du programme a été lancée par ses développeurs en mai, il y a trois mois. C'est souvent une décision réfléchie ; la nouvelle version peut comporter des problèmes sur OpenBSD, ce que le mainteneur essaie de résoudre, ou peut simplement être en deçà de la version précédente : OpenBSD peut avoir des objectifs différents de ceux des développeurs d'autres projets, qui ont parfois comme conséquence des dispositifs et des choix de conception ou d'exécution qui sont indésirables du point de vue des développeurs d'OpenBSD. La mise à jour peut également être remise à plus tard parce que la nouvelle version n'est pas considérée comme cruciale.
Si vous avez cependant réellement besoin d'une nouvelle version d'un port, vous devriez demander au MAINTENEUR du port sa mise à jour (voir ci-dessous comment découvrir qui est le mainteneur); si vous pouvez envoyer des "patchs" pour ceci, c'est encore mieux. Pour créer les "patchs" appropriés, vous devriez vous référer à la documentation de fabrication des ports.
Si vous avez des ennuis avec un port existant, envoyez s'il vous plait un e-mail au mainteneur. Pour voir qui est le mainteneur du port, essayez par exemple :
% cd /usr/ports/archivers/unzip
% make show=MAINTAINER
Alternativement, s'il n'y a pas de mainteneur ou si vous ne pouvez pas
le/la joindre, envoyez un mail à la liste de discussion des ports
d'OpenBSD, ports@openbsd.org.
Veuillez ne pas utiliser la liste de discussion misc@openbsd.org pour
des questions au sujet des ports. Les corrections sont toujours les
bienvenues, si vous fournissez :
uname -a,
% cd /usr/ports/archivers/unzip
% su
# mkdir -p ~/portslogs
# make clean install 2>&1 | /usr/ports/infrastructure/build/portslogger \
~/portslogs
Après ceci, vous devriez avoir un fichier de logs de compilation dans
votre dossier ~/portslogs que vous pourrez envoyer au "maintainer" du
port. En outre, assurez-vous que vous n'employez aucune option spéciale
pour votre compilation, par exemple dans /etc/mk.conf.
Alternativement, vous pouvez