bandageAppliquer un patch

Vous avez ouvert un ticket au service support et celui-ci vous a fourni un patch ou un lien vers un patch? Voici la procédure simple pour l'appliquer !

Procédure simplifiée (Grande majorité des cas)

circle-check

Placer le patch au bon endroit

Selon ou se situe le bug rencontré, le patch peut-être à destination du cœur ou d'un plugin. Il est donc nécessaire de placer le patch au bon endroit avant de l'appliquer.


Le patch concerne le cœur de GLPI

  • Un fichier vous a été fourni: Déplacez le fichier précédemment créé vers le dossier racine de GLPI.

  • Un lien vous a été fourni: Se déplacer vers le dossier racine de glpi puis lancer la commande suivante afin de télécharger le patch:

    • wget https://xxx/bug-fix.diff

  • Vérifier ensuite que le fichier est bien présent:

Alt text

Le patch concerne un Plugin

  • Un fichier vous a été fourni: Déplacez le fichier précédemment créé vers le dossier du plugin.

  • Un lien vous a été fourni: Se déplacer vers le dossier du plugin puis lancer la commande suivante afin de télécharger le patch:

    • wget https://xxx/bug-fix.diff

  • Vérifier ensuite que le fichier est bien présent:

Alt text

Tester le patch

Avant d'appliquer le patch, vous devez le tester avec cette commande et le paramètre --dry-run

circle-info

Votre système vous indique que la commande patch est inconnue ? cliquer-ici

Le test échoue ❌

En cas d'erreur vous devriez avoir ceci

Beaucoup de choses peuvent mener à l'échec :

  • Votre version de GLPI est différente de la version utilisée pour faire le patch

  • Le fichier qui doit être modifié par le patch a déjà été précédemment

triangle-exclamation

Le test réussi ✅

En cas de succès vous devriez avoir ceci

ou ceci


Appliquer le patch

Le test est réussi ✅ ? Vous pouvez maintenant appliquer réellement le patch avec cette commande

Félicitations le patch est appliqué !


Cas particuliers (rares)

circle-check

Annuler un patch

Pour annuler un patch, entrez la commande :

Vous avez un numéro de commit

Le service support vous donne ce numéro de commit ex : adc9876

  • D'abord, vous devez récupérer les changements du commit

  • Allez à https://github.com/glpi-project/glpi/commit/ + NUMERO_COMMIT

circle-check
  • Puis, transformez le commit en patch en ajoutant .diff à la fin de l'url.

Comme ceci https://github.com/glpi-project/glpi/commit/adc9876.diff

Alt text
  • Copiez l'URL du patch et exécutez un wget sur votre serveur GLPI wget https://github.com/glpi-project/glpi/commit/adc9876.diff

circle-info

Info

Si c'est un patch du cœur de GLPI, effectuez le wget directement à la racine de GLPI.

Si c'est un patch de plugin, effectuez le wget directement dans le dossier du plugin concerné. Enfin, allez à la section appliquer le patch

Vous avez un numéro PR (Pull Request)

Le service support vous donne un numéro PR 4770

  • D'abord, vous devez récupérer la PR

  • Allez à https://github.com/glpi-project/glpi/pull/ + NUMERO_PR

circle-check
  • D'abord, transformez la PR en patch en ajoutant .diff à la fin de l'url.

Comme ceci https://github.com/glpi-project/glpi/pull/4770.diff

Alt text
  • Copiez l'URL du patch et exécutez un wget sur votre serveur GLPI wget https://github.com/glpi-project/glpi/pull/4770.diff

circle-info

Info

Si c'est un patch du cœur de GLPI, effectuez le wget directement à la racine de GLPI.

Si c'est un patch de plugin, effectuez le wget directement dans le dossier du plugin concerné. Enfin, allez à la section appliquer le patch

Enfin, allez à la section appliquer le patch


Vérifier que le binaire patch est installé

  • Dans de rares cas, il se peut que votre installation de Linux ne soit pas pourvue de la commande patch. Pour savoir s'il est installé, trouvez simplement la version du binaire patch installé

S'il est installé vous devriez avoir ceci

Sinon vous devriez avoir ceci

  • Installez-le avec cette commande

Ubuntu/Debian

CentOS/RHEL

Mis à jour