Rendre obligatoire GD2 pour installer SPIP

Actuellement, lorsque SPIP est installé, aucun moteur de reduction d’image n’est activé.

Si bien que si la personne n’a pas le reflexe d’aller dans la page de configuration, elle va se retrouver avec des images non réduites.

Je propose ceci

  • mettre GD2 (le plus complet et le plus répandu) des moteurs comme activé par défaut
  • rendre obligatoire d’avoir GD2 pour installer SPIP

Cela n’empechera pas les utilisateurice avancer de choisir un autre moteur si besoin. Mais au moins pour les neophytes (ou pour les gens comme moi qui ont la flemme), on aura quelque chose de cohérent dès le départ.

Cf. fix: pas de warning lors qu'on tente un `image_reduire` alors que la librairie n'a pas été choisie (!57) · Requêtes de fusion · spip / ecrire · GitLab

On me signale ceci

gd2 est requis : Configuration requise - SPIP

mais ni spip, ni spip_loader ne font cette vérification de manière très formelle

C’est peut-être au plugin-dist spip/images de faire se boulot et de définir l’extension par défaut, non ?

Alors si c’est le cas

  1. A mon sens il faut mettre gd2 dans le composer.json d’ecrire (car il y a quelques filtres images en dehors du plugin-dist spip/images… va savoir pourquoi…)
  2. Et faire en sorte que inc/install.php · 5.x · spip / ecrire · GitLab s’appuie sur le composer.json pour vérifier les choses (pour celles et ceux qui n’utilisent pas composer… c’est à dire la très grande majorité des gens).

Et donc refactor: à l'installation, pour vérifier les extensions nécessaires, se baser... (!104) · Requêtes de fusion · spip / ecrire · GitLab

Du coup, plutôt déplacer le code de traitement d’images résiduel présent dans spip/ecrire dans le plugins spip/images, à mon sens.

Du coup, plutôt déplacer le code de traitement d’images résiduel présent dans spip/ecrire dans le plugins spip/images, à mon sens.

oui dans l’idéal ce serait cela. Mais cela n’empecherait pas pour autant qu’il faudrait dire GD2 obligatoire.

Et j’avoue que je ne sais pas pourquoi on a encore ce code residuel.

@cerdic il y a une raison autre que « on a pas eu le temps » ?

Ben non c’est un choix d’architecture initial : par défaut, et sans plugin, SPIP implémente uniquement image_reduire qui sait donc utiliser une des 4 libs proposées dans la configuration, et qui peut-être par ailleurs downgradées par une simple réduction côté client si on a aucune lib image disponible.

Et le principe est (était ? je sais plus où on en est) que ecrire/ n’utilise que ce filtre image_reduire et aucun filtre image qui nécessiterait gd2.

Et donc ensuite, le plugin spip/images propose une panoplie de filtres supplémentaires qui, eux, requièraient gd2, mais qui donc à partir de SPIP 5 pourront utiliser au choix gd2 ou imagick

Donc techniquement ecrire/ n’est pas supposé requérir gd2, par contre spip/images l’est en effet.

Par ailleurs, et pour être complet, la compilation des filtres images est dérogatoire, on a des mécanismes spécifiques et en particulier l’insertion automatique de |image_graver après toute série de filtres images, il est donc impératif d’avoir le noyau de gestion des filtres images dans ecrire/ et pas en plugin. Et donc à partir de là c’est cohérent d’avoir au moins un filtre image implémenté : image_reduire donc, qui a ensuite été enrichi de image_reduire_par et image_passe_partout puis finalement de image_recadre_avec_fallback qui utilise le image_recadre du plugin spip/images si dispo, et sinon fallback vers image_passe_partout

Je pense donc pas que cette organisation doivent être modifiée, et donc ecrire/ n’est pas supposé requérir GD2.

Le plugin spip/images lui pourrait requerir GD2 et préconfigurer la lib en auto-detection si rien n’est configuré, mais techniquement il peut aussi fonctionner maintenant avec imagick et sans GD2, je sais pas comment on gère ça avec composer…

y a pas.

l’entrée require de composer, c’est un ET. Donc, d’après ce que tu dis, aucune de ces deux extensions n’est requise, et c’est de manière applicative qu’il faut trouver celle qui est installée, en choisir une par défaut si les deux sont présentes, déclencher une erreur si aucune n’est présente …

Au mieux, on peut utiliser suggests qui n’a pas d’impact lors d’un composer install ou un composer update. C’est informatif.