• [^] # Suggestion pour unifier les .rpm et des .deb

    Posté par . En réponse à la dépêche LSB 1.1. Évalué à 10.

    Il y a un truc que j'ai toujours trouvé améliorable dans le format des .RPM et des .DEB.

    Je m'explique : dans un package il y a deux choses des données (sources, binaires à installer, doc ...) et des métadonnées (nom du package, dépendances, mais aussi licenses, version ...).

    L'auteur d'un outil de gestion de package doit créer un moteur de gestion des dépendances, et suivant la logique adoptée par son moteur il choisira tel ou tel organisation des métadonnées pour décrire les dépendances : c'est ce qui limite la fonctionalité d'un ALIEN, il y a forcément perte d'information lors de la conversion puisque l'on en est réduit au plus petit dénominateur commun.

    Ma proposition : un package est en fait un simple fichier .tar contenant deux choses :
    - un "data.tar" pour les données..
    - un "metadata.xml" pour les métadonnées.

    Avantages :
    - au lieu de standardiser le fond (quelles métadonnées stocker), on ne standardise que la forme (tag XML à utiliser).
    Chaque outil de package reste donc libre d'utiliser son propre format de métadonnées (différent par exemple entre une Debian et une RedHat/Mandrake)
    - comme un fichier XML est un fichier texte il est facile de créer un package à l'aide d'outils standards (dejà le cas pour .deb)
    - extensibilité : le comportement par défaut du parser est d'ignorer les tags inconnus.
    Même si le nouveau tag n'est reconnu par aucun outil de gestion de package, il reste compréhensible par un humain (par exemple un tag "<LICENCE>GPL</LICENSE>")
    - possiblité de gziper le tar pour regagner la place perdue par le format texte.
    - possibilité d'écrire des outils d'importation/exportation entre le format XML et des format .deb ou .rpm sans perte d'information (contrairement à ALIEN) puisque le format XML peut-être choisi comme + grand dénominateur commun.

    On peut ainsi prendre un .DEB le convertir en XML, rajouter à la main les méta-informations manquantes puis le convertir en RPM et obtenir un RPM de qualité équivalente à un qui aurait été généré directement dans ce format.
    Idem pour le sens de conversion .RPM --> .DEB