En attendant, j’ai un début de truc :
Soit un SPIP4.3.1 tout neuf et « vide » installé (par spip_loader, par exemple) :
Récupérer les plugins non composerisés :
test -d plugins-dist/spip-contrib || mkdir -p plugins-dist/spip-contrib
git clone https://git.spip.net/spip-contrib-extensions/facteur.git plugins-dist/spip-contrib/facteur
git clone https://git.spip.net/spip-contrib-extensions/champs_extras_core.git plugins-dist/spip-contrib/cextras
git clone https://git.spip.net/spip-contrib-extensions/saisies.git plugins-dist/spip-contrib/saisies
git clone https://git.spip.net/spip-contrib-extensions/yaml.git plugins-dist/spip-contrib/yaml
rm -rf plugins-dist/spip-contrib/{facteur,cextras,saisies,yaml}/.git
Remplacer le fichier composer.json
à la racine du site par :
{
"name": "seenthis/project",
"description": "Distribution SeenThis",
"license": "GPL-3.0-only",
"type": "project",
"homepage": "https://seenthis.net",
"require": {
"php": "^7.4 || ^8.0",
"ext-json": "*",
"ext-sodium": "*",
"ext-xml": "*",
"ext-zip": "*",
"algo26-matthias/idna-convert": "^3.1",
"seenthis/autoembed": "3.0.x-dev",
"seenthis/calcul-date": "3.0.x-dev",
"seenthis/detecter-langue": "3.0.x-dev",
"seenthis/importer-flux": "3.0.x-dev",
"seenthis/lien-court": "3.0.x-dev",
"seenthis/microcache": "3.0.x-dev",
"seenthis/opencalais": "3.0.x-dev",
"seenthis/recuperer-favicon": "3.0.x-dev",
"seenthis/seenthis": "3.0.x-dev",
"seenthis/sphinx": "3.0.x-dev",
"seenthis/squelettes": "3.0.x-dev",
"spip/composer-installer": "^0.6.1",
"spip/security": "^1.6",
"symfony/deprecation-contracts": "^2.5",
"symfony/polyfill-mbstring": "^1.28",
"symfony/polyfill-php80": "^1.28",
"symfony/polyfill-php81": "^1.28",
"symfony/polyfill-php82": "^1.28"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
"phpstan/phpstan": "^1.10",
"spip/coding-standards": "^1.2"
},
"suggest": {
"ext-curl": "*",
"ext-gd": "For image processing",
"ext-mbstring": "Faster than the polyfill for string actions",
"ext-mysqli": "*",
"ext-pdo": "*",
"ext-pdo_sqlite": "*"
},
"repositories": {
"spip": {
"type": "composer",
"url": "https://get.spip.net/composer"
}
},
"autoload": {
"psr-4": {
"Spip\\": "ecrire/src/"
}
},
"archive": {
"exclude": [
"!vendor",
"phpcs.xml.dist",
"phpstan.neon.dist",
"phpstan-baseline.neon",
"spip_loader.php",
"spip_loader_config.php",
"spip_loader_list.json",
"!plugins-dist",
"!squelettes-dist",
"config/",
"!config/ecran_securite.php",
"!config/remove.txt",
"IMG/",
"!IMG/remove.txt",
"local/",
"!local/remove.txt",
"!local/CACHEDIR.TAG",
"tmp/",
"!tmp/remove.txt",
"!tmp/CACHEDIR.TAG"
]
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true,
"spip/composer-installer": true
},
"platform": {
"php": "7.4.33"
}
},
"extra": {
"spip": {
"extensions": [
"23forward/inclure-ajaxload",
"23forward/css-imbriques",
"spip-contrib/photoswipe",
"spip-contrib/indexer",
"spip-contrib/memoization",
"spip-contrib/typo-guillemets",
"seenthis/autoembed",
"seenthis/calcul-date",
"seenthis/detecter-langue",
"seenthis/importer-flux",
"seenthis/lien-court",
"seenthis/microcache",
"seenthis/opencalais",
"seenthis/recuperer-favicon",
"seenthis/seenthis",
"seenthis/sphinx",
"seenthis/squelettes"
]
}
}
}
Lancer l’installation :
rm -rf composer.lock && composer install --no-dev
Contenu de plugins-dist/
:
plugins-dist
├── 23forward
│ ├── css-imbriques
│ └── inclure-ajaxload
├── aide
├── archiviste
├── bigup
├── compagnon
├── compresseur
├── dump
├── forum
├── mediabox
├── medias
├── mots
├── plan
├── porte_plume
├── revisions
├── safehtml
├── seenthis
│ ├── autoembed
│ ├── calcul-date
│ ├── detecter-langue
│ ├── importer-flux
│ ├── lien-court
│ ├── microcache
│ ├── opencalais
│ ├── recuperer-favicon
│ ├── seenthis
│ ├── sphinx
├── sites
├── spip-contrib
│ ├── cextras
│ ├── facteur
│ ├── fulltext
│ ├── gravatar
│ ├── indexer
│ ├── memoization
│ ├── opensearch
│ ├── palette
│ ├── photoswipe
│ ├── saisies
│ ├── soundmanager
│ ├── typo-guillemets
│ └── yaml
├── statistiques
├── svp
├── textwheel
└── urls_etendues
Un tour dans ecrire/?exec=admin_plugin
finit l’installation des tables sql puis ecrire/?exec=admin_plugin&verrouille=oui
permet de constater que les plugins seenthis et leurs dépendances sont activés.
Bonus :
rm -f tmp/seenthis.zip
composer archive --format=zip --dir=tmp --file=seenthis
-rw-r--r-- 1 klike staff 10M Aug 3 14:29 tmp/seenthis.zip
Ce zip devient une distribution seenthis qui pourrait être installée ou mise à jour par spip_loader.php
si celui-ci était adapté pour mettre à jour un seenthis…
C’est pas encore la panacée, mais ça progresse…