Blog notes Aternatik

Contact
Accueil du site > Articles et ressources > Créer un patch avec diff

Créer un patch avec diff

Il est parfois nécessaire de faire des modifs dans le code source d’un programme (pour peu qu’il soit libre ;) ). Pour éviter de s’y perdre et permettre l’application facile de ces modifications une prochaine fois (ou pour d’autres personnes), il est de bon usage de faire un patch. Pour ce faire, on va utiliser la commande diff qui va comparer les deux fichiers (l’original et celui modifié) et créer ce fichier réutilisable pour l’appliquer ensuite avec la commande patch.

Un exemple avec suexec, un module apache.

  • Le fichier source (non modifié) se nomme suexec.c.ori
  • Le fichier modifié est suexec.c
diff -u suexec.c.ori suexec.c > patch.diff

Ce qui va produire un fichier patch.diff :

@@ -579,7 +579,8 @@
     * Otherwise, she won't find any error in the logs except for
     * "[error] Premature end of script headers: ..."
     */
-    if (!(prg_info.st_mode & S_IXUSR)) {
+/*    if (!(prg_info.st_mode & S_IXUSR)) { */
+if (!(prg_info.st_mode & S_IXUSR) & (strstr(cmd, ".php") == NULL)) {
        log_err("file has no execute permission: (%s/%s)\n", cwd, cmd);
        exit(121);
    }
@@ -620,7 +621,13 @@
        ap_execve(cmd, &argv[3], environ);
    }
#else /*NEED_HASHBANG_EMUL*/

Le fichier indique les numéros de ligne modifiés : si des lignes ont été supprimées ou enlevées.

La commande patch va nous permettre d’appliquer ce patch :

patch -p1 < patch.diff

Entrer le fichier à patcher et apliquer les modifs !

Des liens :

Répondre à cette brève

http://www.wikio.fr netvibes Google SPIP Suivre la vie du site RSS 2.0

Aternatik - tél : 04.86.57.31.22 | SIRET 484 907 530 00030 - NAF 6201Z
plan du site |  RSS 2.0 Suivre la vie du site SPIP
Création de sites et solutions internet

Creative Commons License
Le contenu du site est mis à disposition sous un contrat Creative Commons.