[spip-dev] que faire avec pclzip ?

Salut,

J’ai fait une recherche des mentions de pclzip ou plctar dans le code :

egrep -rin 'pcl(zip|tar)' * | grep -v .svn | cut -d: -f1 | uniq

ecrire/inc/pclzip.php
ecrire/lang/ecrire_ar.php
ecrire/lang/ecrire_ast.php
ecrire/lang/ecrire_br.php
ecrire/lang/ecrire_ca.php
ecrire/lang/ecrire_co.php
ecrire/lang/ecrire_de.php
ecrire/lang/ecrire_en.php
ecrire/lang/ecrire_eo.php
ecrire/lang/ecrire_es.php
ecrire/lang/ecrire_eu.php
ecrire/lang/ecrire_fa.php
ecrire/lang/ecrire_fr.php
ecrire/lang/ecrire_fr_fem.php
ecrire/lang/ecrire_gl.php
ecrire/lang/ecrire_it.php
ecrire/lang/ecrire_it_fem.php
ecrire/lang/ecrire_lb.php
ecrire/lang/ecrire_nl.php
ecrire/lang/ecrire_oc_ni.php
ecrire/lang/ecrire_oc_ni_mis.php
ecrire/lang/ecrire_pt.php
ecrire/lang/ecrire_pt_br.php
ecrire/lang/ecrire_ro.php
ecrire/lang/ecrire_ru.php
ecrire/lang/ecrire_sk.php
ecrire/lang/ecrire_tr.php
ecrire/lang/ecrire_uk.php
plugins-dist/medias/action/ajouter_documents.php
plugins-dist/medias/inc/joindre_document.php
plugins-dist/svp/inc/pcltar.php
plugins-dist/svp/lib/pcltar/readme.txt
plugins-dist/svp/teleporter/http_deballe_tgz.php
plugins-dist/svp/teleporter/http_deballe_zip.php

En gros, on constate que SPIP n’utilise pas PclZip lui-même mais que 2 plugins s’en servent: “media” et “svp” (qui utilise aussi PclTar).

Les mentions à la chaine de la chaine de traduction ‘plugin_erreur_zip’ :

egrep -rn 'plugin_erreur_zip' * | grep -v .svn | cut -d: -f1 | uniq

ecrire/lang/ecrire_ar.php
ecrire/lang/ecrire_ast.php
ecrire/lang/ecrire_br.php
ecrire/lang/ecrire_ca.php
ecrire/lang/ecrire_co.php
ecrire/lang/ecrire_de.php
ecrire/lang/ecrire_en.php
ecrire/lang/ecrire_eo.php
ecrire/lang/ecrire_es.php
ecrire/lang/ecrire_eu.php
ecrire/lang/ecrire_fa.php
ecrire/lang/ecrire_fr.php
ecrire/lang/ecrire_fr_fem.php
ecrire/lang/ecrire_gl.php
ecrire/lang/ecrire_it.php
ecrire/lang/ecrire_it_fem.php
ecrire/lang/ecrire_lb.php
ecrire/lang/ecrire_nl.php
ecrire/lang/ecrire_oc_ni.php
ecrire/lang/ecrire_oc_ni_mis.php
ecrire/lang/ecrire_pt.php
ecrire/lang/ecrire_pt_br.php
ecrire/lang/ecrire_ro.php
ecrire/lang/ecrire_ru.php
ecrire/lang/ecrire_sk.php
ecrire/lang/ecrire_tr.php
ecrire/lang/ecrire_uk.php

Autrement dit, cette chaine n’est utilisée nulle part.

De manière moins systématique, une recherche de ces librairies sur la zone, indique qu’elles ne sont pas utilisées ailleurs, sauf avec une copie dans spip_loader … mais je n’ai pas récupérer toute la zone pour vérifier, j’ai sans doute rater une contrib …

D’où la proposition suivante : retirer la librairie du noyau, fournir un plugin “archives” (nom à débattre) qui contiendrait pclzip et pcltar et ajouter une dépendance à “archives” dans “media” et “svp”. Si possible, en créant une interface qui ne ferait pas référence à PclZip et PclTar, mais ça peut attendre un second temps.

Les avantages: ça fait maigrir un tout petit peu le noyau et, étant maintenu sur la zone, il pourrait être maintenu par plus de monde, et voir les 2 libs sus-mentionnées être remplacées par quelque chose de plus moderne dans un troisième temps par l’ensemble de la communauté.

Des avis ? Des inconvénients ?

Amitiés,

+1

Le core peut toujours (et doit encore) continuer de maigrir !

Nuance, le corps ne doit pas s'aigrir, il doit s'alléger :wink:

:slight_smile:

Mais par contre, dès que je fouille le code du noyau et que je vois toutes les incohérences de nommage, il n'arrête pas de m'aigrir !

Joli :slight_smile:

Coucou James,

Voilà pour la zone

ben@ben-Folio:~/svn/spip-zone$ egrep -rn ‹ plugin_erreur_zip › * | grep -v .svn | cut -d: -f1 | uniq
modeles/accessible/installfix/ecrire/lang/ecrire_fr.php
plugins/patch_xss_2.0.24/lang/ecrire_fr.php
plugins/distant_curl/action/charger_plugin.php
plugins/patch_xss_2.1.25/lang/ecrire_fr.php
plugins/pcltar/action/charger_plugin.php
squelettes/RevueLigne/lang/ecrire_fr.old
squelettes/RevueLigne/lang/ecrire_fr.php

ben@ben-Folio:~/svn/spip-zone/plugins$ egrep -rin ‹ pcl(zip|tar) › * | grep -v .svn | cut -d: -f1 | uniq -c
4 cfg/branches/v1/cfg/classes/cfg_fichier.php
4 cfg/branches/v2/extensions/compat/cfg/classes/cfg_fichier.php
6 chargeur/inc/chargeur.php
2 codes_postaux/trunk/formulaires/telecharger_codes_postaux.php
2 codes_postaux/branches/version-1.0/formulaires/telecharger_cp.php
2 COG/trunk/formulaires/telecharger_cog.php
4 COG/trunk/formulaires/importer_cog.php
2 COG/branches/1.0/formulaires/telecharger_cog.php
4 COG/branches/1.0/formulaires/importer_cog.php
2 COG_gps/trunk/formulaires/telecharger_coggps.php
2 COG_gps/branches/1.0/formulaires/telecharger_coggps.php
1 convertisseur/trunk/inc/convertisseur.php
4 convertisseur/trunk/exec/convertisseur.php
1 convertisseur/branches/v1/inc/convertisseur.php
4 convertisseur/branches/v1/exec/convertisseur.php
6 ddUpload/action/joindre.php
642 didaspip/exec/pclzip.lib.php
4 didaspip/exec/importdidaspip.php
4 didaspip/formulaires/didaspip_import.html
3 distant_curl/action/charger_plugin.php
4 ecommerce/squelettes_ecommerce/spip_image.php3
6 epub_reader/trunk/inc/epubreader_creerjs.php
6 epub_reader/branches/v1/epubreader_fonctions.php
7 exif/inc/getdocument.php.old
8 export_odt/inc/spipoasis.php
5 forms/forms_et_tables_3_0/interface/action/forms_telecharger.php
4 forms/1_9_1/exec/forms_telecharger.php
4 forms/1_9_0/exec/forms_telecharger.php
5 forms/forms_et_tables_2_5/action/forms_telecharger.php
5 forms/forms_et_tables_1_9_1/action/forms_telecharger.php
5 forms/forms_et_tables_2_0/action/forms_telecharger.php
1 fulltext/trunk/lib/fonctions_zip.php
1 fulltext/trunk/extract/pptx.php
1 fulltext/trunk/extract/odt.php
1 fulltext/trunk/extract/xlsx.php
1 fulltext/trunk/extract/docx.php
1 fulltext/branches/v1/lib/fonctions_zip.php
1 fulltext/branches/v1/extract/pptx.php
1 fulltext/branches/v1/extract/odt.php
1 fulltext/branches/v1/extract/xlsx.php
1 fulltext/branches/v1/extract/docx.php
2 gis/trunk/inc/kml_infos.php
2 gis/branches/v3/inc/kml_infos.php
2 gis/branches/v2_cluster/inc/kml_infos.php
2 gis/branches/v2/inc/kml_infos.php
6 mediatheque/inc/joindre_document.php
4 mediatheque/action/ajouter_documents.php
2 mes_fichiers/trunk/prive/squelettes/inclure/inc-liste_mes_fichiers_fonctions.php
1 mes_fichiers/trunk/mes_fichiers_options.php
5 mes_fichiers/trunk/inc/mes_fichiers_sauver.php
3 mes_fichiers/branches/v0/action/mes_fichiers.php
1 mes_fichiers/branches/v1/mes_fichiers_options.php
5 mes_fichiers/branches/v1/inc/mes_fichiers_sauver.php
4 mes_fichiers/branches/v1/inc/mes_fichiers_utils.php
5 mes_fichiers/tags/1.0.2/inc/mes_fichiers_sauver.php
4 mes_fichiers/tags/1.0.2/inc/mes_fichiers_utils.php
3 mes_fichiers/tags/0.2.0/action/mes_fichiers.php
5 odt2spip/trunk/action/odt2spip_importe.php
5 odt2spip/branches/version_19_20_21/action/odt2spip_importe.php
1 patch_xss_2.0.24/lang/ecrire_fr.php
1 patch_xss_2.1.25/lang/ecrire_fr.php
3 pb_visites/inc/pb_visites_traiter.php
5 pcltar/plugin.xml
89 pcltar/lib/pcltar/readme.txt
159 pcltar/inc/pcltar.php
11 pcltar/inc/charger_plugin.php
3 pcltar/action/charger_plugin.php
6 phpexcel/trunk/lib/PHPExcel/Settings.php
8 phpexcel/trunk/lib/PHPExcel/Shared/ZipArchive.php
681 phpexcel/trunk/lib/PHPExcel/Shared/PCLZip/pclzip.lib.php
80 phpexcel/trunk/lib/PHPExcel/Shared/PCLZip/readme.txt
4 phpexcel/trunk/lib/changelog.txt
4 pipeline_document_192/inc/ajouter_documents.php
2 saveauto/trunk/prive/squelettes/inclure/inc-liste_saveauto_fonctions.php
5 saveauto/trunk/inc/saveauto.php
3 saveauto/branches/2.1/inc/saveauto.php
2 saveauto/branches/2.0/inc/saveauto_fonctions.php
3 saveauto/branches/3.0/inc/saveauto.php
1 siou/tags
3 siou/odb_import/exec/inc-fichiers.php
1 siou/odb_import/exec/odb_import.php
3 sitra_exports/trunk/inclure/sitra_decompresse_maj.php
3 sitra_exports/trunk/inclure/sitra_maj_images.php
3 spixplorer/action/spx_archive.php
5 step/inc/step_actionneur.php
3 tinymce/tinymce_1_9_1_et_plus/tinymce_acti_pipelines_bo.php
3 trad-lang/trunk/action/tradlang_exporter_zip.php
1 verifcore/refcorespip191.txt
1 zeroclipboard/branches/v1/plugin.xml
5 zippeur/trunk/zippeur_fonctions.php
1 zippeur/trunk/prive/squelettes/navigation/configurer_zippeur.html
1 zippeur/trunk/zippeur_administrations.php
1 zippeur/trunk/formulaires/configurer_zippeur.html
5 zippeur/branches/zippeur2/zippeur_fonctions.php
1 zippeur/branches/zippeur2/prive/squelettes/navigation/configurer_zippeur.html
1 zippeur/branches/zippeur2/fonds/cfg_zippeur.html
1 zippeur/branches/zippeur2/base/zippeur.php
1 zippeur/branches/zippeur2/formulaires/configurer_zippeur.html
5 zippeur/branches/zippeur3/zippeur_fonctions.php
1 zippeur/branches/zippeur3/prive/squelettes/navigation/configurer_zippeur.html
1 zippeur/branches/zippeur3/fonds/cfg_zippeur.html
1 zippeur/branches/zippeur3/base/zippeur.php
1 zippeur/branches/zippeur3/formulaires/configurer_zippeur.html
5 zippeur/branches/zippeur1/zippeur_fonctions.php
1 zippeur/branches/zippeur1/prive/squelettes/navigation/configurer_zippeur.html
1 zippeur/branches/zippeur1/fonds/cfg_zippeur.html
1 zippeur/branches/zippeur1/base/zippeur.php
1 zippeur/branches/zippeur1/formulaires/configurer_zippeur.html
3 zotspip/trunk/zotspip_fonctions.php
3 zotspip/branches/v1/zotspip_fonctions.php

En effet, je ne sais pas utiliser le moteur de recherche de trac :smiley:

Je vais donc éplucher tout ça, histoire de voir comment faire pour réduire le risque de rétro-incompatibilité :wink:

Et donc, voici quelques résultats :

dans les quelques 1224 répertoires de plugins

110 fichiers mentionnant pcl(zip|tar) ont été trouvés grâce à la recherche de Ben.

On trouve donc une mention à pcl(zip|tar) dans 64 plugins (je compte un plugin par trunk, 1 pour chaque branche, 1 pour chaque tag)

4 d’entres eux seulement sont au grenier (http://zone.spip.org/trac/spip-zone/browser/archivelist_grenier.txt)

Sur les 60 plugins qui ne sont pas au grenier, la précision de la version SPIP compatible dans les fichiers plugin.xml OU paquet.xml permet d’éliminer ceux qui ont une limite supérieure qui n’atteint pas la version de dev (<=3.1.99)

On trouve donc 25 plugins précisent une limite supérieure dans un <necessite id=“SPIP” … /> qui indique que ce n’est pas (encore) compatible avec la 3.2-dev, les voilà préservés.

35 plugins ne précisent donc soit rien du tout soit pas de limite supérieure. Pour déterminer s’ils sont encore maintenus, j’ai pris arbitrairement un intervalle d’1 an environ entre aujourd’hui et le dernier commit.

20 plugins n’ont pas reçus de commit depuis plus d’un an. Considérons qu’ils ne sont pas maintenus pour le moment. Mais pour mémoire, voici la liste :

http://zone.spip.org/trac/spip-zone/browser/plugins/cfg/branches/v2/core
http://zone.spip.org/trac/spip-zone/browser/plugins/cfg/branches/v2/extensions/compat
http://zone.spip.org/trac/spip-zone/browser/plugins/cfg/branches/v2/extensions/depots
http://zone.spip.org/trac/spip-zone/browser/plugins/cfg/branches/v2/extensions/interface
http://zone.spip.org/trac/spip-zone/browser/plugins/codes_postaux/branches/version-1.0
http://zone.spip.org/trac/spip-zone/browser/plugins/COG_gps/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/convertisseur/branches/v1
http://zone.spip.org/trac/spip-zone/browser/plugins/ddUpload
http://zone.spip.org/trac/spip-zone/browser/plugins/didaspip
http://zone.spip.org/trac/spip-zone/browser/plugins/distant_curl
http://zone.spip.org/trac/spip-zone/browser/plugins/forms/1_9_0
http://zone.spip.org/trac/spip-zone/browser/plugins/gis/branches/v3
http://zone.spip.org/trac/spip-zone/browser/plugins/patch_xss_2.1.25
http://zone.spip.org/trac/spip-zone/browser/plugins/pb_visites
http://zone.spip.org/trac/spip-zone/browser/plugins/phpexcel/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/saveauto/branches/3.0
http://zone.spip.org/trac/spip-zone/browser/plugins/siou/odb_import
http://zone.spip.org/trac/spip-zone/browser/plugins/verifcore
http://zone.spip.org/trac/spip-zone/browser/plugins/zippeur/branches/zippeur2
http://zone.spip.org/trac/spip-zone/browser/plugins/zippeur/branches/zippeur1

Enfin, en plus de svp et media, il reste donc 15 plugins a priori maintenus, mentionnant d’une manière ou d’une autre pclzip ou pcltar. Si ces libs disparaisent du core et de svp, il sera bon prévenir auteurs et mainteneurs de ces plugins des changements qui seront à apporter pour rester compatible avec la 3.2-dev. Sinon, il faudra penser à ajouter une limite supérieure au des plugins qui ne seraient pas mis à jour ? Il peut aussi s’avérer que certains des plugins listés ci-dessous ne sont plus maintenus non plus. Dans ce cas, c’est peut-être l’occasion de les mettre au grenier.

http://zone.spip.org/trac/spip-zone/browser/plugins/codes_postaux/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/COG/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/convertisseur/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/epub_reader/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/forms/forms_et_tables_2_5
http://zone.spip.org/trac/spip-zone/browser/plugins/forms/forms_et_tables_2_0
http://zone.spip.org/trac/spip-zone/browser/plugins/fulltext/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/gis/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/mes_fichiers/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/odt2spip/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/saveauto/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/trad-lang/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/zippeur/trunk
http://zone.spip.org/trac/spip-zone/browser/plugins/zippeur/branches/zippeur3
http://zone.spip.org/trac/spip-zone/browser/plugins/zotspip/trunk

C’est fait.

Le plugin s’appelle donc “archives”, faute de mieux. Il assure pour le moment la fourniture des 2 librairies historiques, comme je l’ai proposé.

C’est sur la zone que l’API de ce plugin peut être discuté maintenant, je suppose ?

A+

James a écrit le 04/02/2016 00:12 :

C'est fait.

Le plugin s'appelle donc "archives", faute de mieux.

À un s près, c'est le même nom que Archive - Plugins SPIP
Est-ce que "libarchives" ne serait pas plus clair ?

Hello,
je devais créer un zip dans un plugin alors je me suis demandé qu'elle
était ce "quelque chose de plus moderne dans un troisième temps"
Visiblement php tout simplement ( merci marcimat)

Enfin #chezMoiCaMarche

   1. // Creation du fichier zip
   2. $zip = new ZipArchive();
   3. $filename = _DIR_IMG."zip/monzip.zip";
   4. if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
   5. exit("cannot open <$filename>\n");
   6. }
   7. while ( plouf ) {
   8. $zip->addFile($cheminFichier,basename($cheminFichier));
   9. }
   10. $zip->close();

Ben.

1 « J'aime »