FreeBSD : Trucs et astuces pour la création de port

Distribution de travail : FreeBSD 15.0

1/ Comment créer un fichier vide ?

Ouvrir :

Makefile

Dans :

do-install:

Ajouter :

${TOUCH} ${STAGEDIR}${DATADIR}/dat/var/perm

Ouvrir :

pkg-plist

Ajouter :

@owner games
@group games
@mode 0664
%%DATADIR%%/dat/var/perm

2/ Comment copier un fichier ?

Vérification :

[root@reseau99 /usr/ports/games/evilhack]# ls -l files/sysconf
-rw-r--r--  1 root wheel 14091 Feb  8 11:10 files/sysconf

Ouvrir :

Makefile

Dans :

do-install:

Ajouter :

${CP} ${FILESDIR}/sysconf ${STAGEDIR}${DATADIR}/dat/sysconf

4/ Vérification de la syntaxe des fichier du port.

  • Erreur :
[root@reseau99 /usr/ports/games/evilhack]# portlint -AC
FATAL: Makefile: [1]: use a tab (not space) after a variable name

Explication :

Cette erreur indique qu'il y a des espaces au lieu de tabulations avant ou après les noms de variables dans le Makefile.
Dans les Makefiles FreeBSD, il faut utiliser des tabulations pour l'indentation des valeurs de variables.

Solution :

Ouvrir :

Makefile

Chercher :

PORTNAME=<plusieurs espaces>evilhack
DISTVERSION=    0.9.1
CATEGORIES=     games

Remplacer par :

PORTNAME=<>tabulation>evilhack
DISTVERSION=    0.9.1
CATEGORIES=     games

5/ Processus complet pour créer un patch

  1. Extraire les sources
[root@reseau99 /usr/ports/games/evilhack]# make extract
  1. Sauvegarder le fichier original

Avant de modifier un fichier, créez une copie .orig :

[root@reseau99 /usr/ports/games/evilhack]# cd work/EvilHack-0.9.1/
[root@reseau99 /usr/ports/games/evilhack/work/EvilHack-0.9.1]# 
[root@reseau99 /usr/ports/games/evilhack/work/EvilHack-0.9.1]# cp include/system.h include/system.h.orig
  1. Modifier le fichier

Ouvrir :

include/system.h

Faites vos modifications nécessaires.

  1. Générer le patch automatiquement
[root@reseau99 /usr/ports/games/evilhack/work/EvilHack-0.9.1]# cd /usr/ports/games/evilhack
[root@reseau99 /usr/ports/games/evilhack]# make makepatch
  1. Vérifier le patch créé
[root@reseau99 /usr/ports/games/evilhack]# cat files/patch-include_system.h 
--- include/system.h.orig       2026-02-07 21:35:17 UTC
+++ include/system.h
@@ -573,9 +573,6 @@ E int FDECL(tgetent, (char *, const char *));
 #else
 #if !(defined(HPUX) && defined(_POSIX_SOURCE))
 E int FDECL(tgetent, (char *, const char *));
-#ifndef HAVE_TPUTS
-E void FDECL(tputs, (const char *, int, int (*)()));
-#endif /* HAVE_TPUTS */
 #endif
 E int FDECL(tgetnum, (const char *));
 E int FDECL(tgetflag, (const char *));