Pouvoir demander un module PHP dans paquet.xml #3819

Closed
opened 6 years ago by maieul · 13 comments
maieul commented 6 years ago
Collaborator

Actuellement, paquet.xml permet de requérir un plugin SPIP.

Par contre il n'est pas possible de dire qu'il y a besoin d'un module php particulier (par exemple curl pour le plugin twitter).

ne pourrait-on pas ajouter une balise qui conditionnerait l'activation d'un plugin à l'existence d'un module (à l'aide de la fonction get_loaded_extensions) ?

Actuellement, paquet.xml permet de requérir un plugin SPIP. Par contre il n'est pas possible de dire qu'il y a besoin d'un module php particulier (par exemple curl pour le plugin twitter). ne pourrait-on pas ajouter une balise qui conditionnerait l'activation d'un plugin à l'existence d'un module (à l'aide de la fonction get_loaded_extensions) ?
Owner

Oué, on vient d'avoir une surprise aussi en changeant de serveur, il manquait Soap pour un plugin.
Peut être qu'une écriture telle que <necessite nom="php:soap"> pourrait le faire ?

Oué, on vient d'avoir une surprise aussi en changeant de serveur, il manquait Soap pour un plugin. Peut être qu'une écriture telle que `<necessite nom="php:soap">` pourrait le faire ?
Poster
Collaborator

ca me paraît bien comme syntaxe. Faudra juste pas oublier de packporter dans toutes les branches maintenues, histoire qu'on puisse quand même installer le plugin partout.

ca me paraît bien comme syntaxe. Faudra juste pas oublier de packporter dans toutes les branches maintenues, histoire qu'on puisse quand même installer le plugin partout.
Owner

Hum ça ça n'ennuie plus de backporter par contre.

Par ailleurs ce n'est pas compliqué à intégrer. Ci-joint un patch rapide.

J'ai testé en mettant dans z-core :

  • <necessite nom="php:curl" /> OK
  • <necessite nom="php:CURL" /> OK
  • <necessite nom="php:curly" /> Pas OK (normal)

Dans ce dernier cas, l'erreur affichée est :

  • Impossible d’activer le plugin ../plugins/zone/z-core
    ** Nécessite le plugin PHP:CURLY

Par contre, si on met juste 'php' il indique bien :

  • Le plugin Z-core dépend de PHP [8.0;]

Donc il faudrait ajouter une chaine de langue pour les extensions PHP aussi je suppose.

Hum ça ça n'ennuie plus de backporter par contre. Par ailleurs ce n'est pas compliqué à intégrer. Ci-joint un patch rapide. J'ai testé en mettant dans z-core : - `<necessite nom="php:curl" />` OK - `<necessite nom="php:CURL" />` OK - `<necessite nom="php:curly" />` Pas OK (normal) Dans ce dernier cas, l'erreur affichée est : * Impossible d’activer le plugin ../plugins/zone/z-core ** Nécessite le plugin PHP:CURLY Par contre, si on met juste 'php' il indique bien : * Le plugin Z-core dépend de PHP [8.0;] Donc il faudrait ajouter une chaine de langue pour les extensions PHP aussi je suppose.
Poster
Collaborator

Il faudrait a minima que 3.0 et 3.1 l'ait (ou alors il faut que les plugins pensent à dire "cette partie là des nécessites est conditionné à une version de SPIP")

Il faudrait a minima que 3.0 et 3.1 l'ait (ou alors il faut que les plugins pensent à dire "cette partie là des nécessites est conditionné à une version de SPIP")
Owner

Oui mais…

  1. c'est pas une correction de bug à proprement parler, et
  2. ça fait ajouter une chaine de langue (or on en n'ajoute qu'en 3.2)
Oui mais… 1) c'est pas une correction de bug à proprement parler, et 2) ça fait ajouter une chaine de langue (or on en n'ajoute qu'en 3.2)
Poster
Collaborator

ok, bah on n'utilisera pour une fois la balise

ok, bah on n'utilisera pour une fois la balise <spip>
Owner

hum. Si j'écris <necessite nom="php:curly" compatibilite="[8.0;]" /> j'obtiens :

  • Le plugin Z-core dépend de PHP:CURLY [8.0;]

Ce qui est déjà lisible sans chaîne de langue en plus. C'est juste si tu mets pas de version que c'est étrange du coup.
Pour une extension php ça sera le cas le plus fréquent d'ailleurs.

hum. Si j'écris `<necessite nom="php:curly" compatibilite="[8.0;]" />` j'obtiens : * Le plugin Z-core dépend de PHP:CURLY [8.0;] Ce qui est déjà lisible sans chaîne de langue en plus. C'est juste si tu mets pas de version que c'est étrange du coup. Pour une extension php ça sera le cas le plus fréquent d'ailleurs.
Owner

En fait il y a 2 textes d'erreurs différents.

  • 1 dans SPIP si le plugin est déjà actif et que ses dépendances ne deviennent plus satisfaites («Nécessite le plugin PHP:CURLY en version ≥ 8.0.»)
  • 1 dans SVP lorsqu'on tente d'activer le plugin («Le plugin Z-core dépend de PHP:CURLY [8.0;]»)
En fait il y a 2 textes d'erreurs différents. - 1 dans SPIP si le plugin est déjà actif et que ses dépendances ne deviennent plus satisfaites («Nécessite le plugin PHP:CURLY en version ≥ 8.0.») - 1 dans SVP lorsqu'on tente d'activer le plugin («Le plugin Z-core dépend de PHP:CURLY [8.0;]»)
Owner

Première partie avec r23396

Première partie avec r23396
Owner

Seconde partie avec https://zone.spip.org/trac/spip-zone/changeset/102745

Je pense que c'est bon. À tester.
Statut changé à Fermé

Seconde partie avec https://zone.spip.org/trac/spip-zone/changeset/102745 Je pense que c'est bon. À tester. **Statut changé à Fermé**
b_b commented 6 years ago
Owner

Heu, je viens de réaliser que cette modification permet de connaître pas mal de choses sur la machine qui héberge le site, exemple :

https://www.spip.net/local/config.txt

Et on retrouve une partie de ces infos dans le header des pages forcément.

Si l'admin d'une machine la configure pour qu'elle utilise des header silencieux en mode prod, cela ne servira presque à rien puisque SPIP va tout dévoiler sur la config PHP. Peut-être faudrait-il exclure ces infos d'une manière ou d'une autre, non ?

Heu, je viens de réaliser que cette modification permet de connaître pas mal de choses sur la machine qui héberge le site, exemple : https://www.spip.net/local/config.txt Et on retrouve une partie de ces infos dans le header des pages forcément. Si l'admin d'une machine la configure pour qu'elle utilise des header silencieux en mode prod, cela ne servira presque à rien puisque SPIP va tout dévoiler sur la config PHP. Peut-être faudrait-il exclure ces infos d'une manière ou d'une autre, non ?
Owner

Ah… Zut ! C'est nul effectivement !

Ah… Zut ! C'est nul effectivement !
Owner

Bon, r23604 tord le cou à ce problème. Merci du signalement b_b :)

Bon, r23604 tord le cou à ce problème. Merci du signalement b_b :)
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.