Ce tutorial présente la méthode à utiliser pour créer un port FreeBSD de façon rapide. Il ne s'agit en rien d'une référence couvrant tout les aspects de cet exercice. Pour tout supplément d'information le Handbook est la réponse.
Tous les éléments de la chaîne de compilation classique sur un FreeBSD en état de marche.
Ce document est un résumé de ce qui est trouvable dans le trés bon Porter's Handbook (/usr/share/doc/en_US.ISO8859-1/books/porters-handbook/index.html habituellement). Néanmoins ce document peut être une bonne référence rapide en français pour combler les trous de mémoire ou servir de feuille de route globale d'un process connu mais pas encore maitrisé. Enfin c'est dans ces deux buts que je l'ai écrit pour moi …
Garder sous la main le fichier /usr/ports/Mk/bsd.port.mk qui est inclu par tous les Makefile et qui donne de bonnes infos.
Le Makefile minimal doit ressembler à cela :
# New ports collection makefile for: oneko # Date created: 5 December 1994 # Whom: asami # # $FreeBSD$ # PORTNAME= oneko PORTVERSION= 1.1b CATEGORIES= games MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ MAINTAINER= asami@FreeBSD.org COMMENT= A cat chasing a mouse all over the screen MAN1= oneko.1 MANCOMPRESSED= yes USE_IMAKE= yes .include <bsd.port.mk>
Deux fichiers de descriptions sont nécessaires :
Il s'agit d'une simple description du port. Un paragraphe et l'url vers le site web suffisent.
Il s'agit d'une liste des fichiers et répertoires créés pendant l'installation. Les manpages ne doivent pas y figurer sauf si vous n'utilisez pas les variables MANn dans le Makefile. Les répertoires créés à l;installation doivent être préfixé du mot clef @dirrm afin qu'ils soient supprimés à la désinstallation.
bin/oneko lib/X11/app-defaults/Oneko lib/X11/oneko/cat1.xpm lib/X11/oneko/cat2.xpm lib/X11/oneko/mouse.xpm @dirrm lib/X11/oneko
Si vous êtes vraiment pressé et qu'il n'y a que peu de fichiers dans le port vous pouvez mettre la liste directement dans le Makefile en utilisant les mots clés PLIST_FILES, PLIST_DIRS :
PLIST_FILES= bin/oneko \ lib/X11/app-defaults/Oneko \ lib/X11/oneko/cat1.xpm \ lib/X11/oneko/cat2.xpm \ lib/X11/oneko/mouse.xpm PLIST_DIRS= lib/X11/oneko
Dans ce cas là, pas besoin de créer un fichier pkg-plist.
Utilisez simplement la commande 'make makesum' ce qui générera directement le fichier distinfo.
Voilà le plus gros du boulot est fait, il ne reste plus qu'à tester. Il vous faut vérifier et tester que :
Pour cela il faut suivre la procédure suivante :
Il existe un outil, devel/portlint, pour vérifier et améliorer vos ports.
$> cd /usr/ports/games/oneko $> portlint looks fine.
Vous pouvez avoir des patchs à vous (ou pas), à appliquer aux sources du biniou que vous voulez porter/packager. Il y a quelques règles à respecter quant nommage de deux ci :
Ex : patch-Imakefile, patch-src-config.h
Utilisez un diff -u, le -r est valide aussi mais vérifier bien ce qu'il donne avant de l'intégrer au port surtout si vous prévoyez de le proposer à la communauté.