Loading

Nom

       Debian::Packages::Compare - comparaison des depots emdebian.

VERSION

       Version 0.2.0




SYNOPSIS

       Lit le fichier Packages, cree une table de hachage de paquet et de
       version - une fois par architecture, une par suite, une paire par
       depot. Le module sous-jacent libparse-debian-packages-perl est un
       module tres simple, il n’y a probablement aucune raison de mettre des
       donnees dans la table de hachage de comparaison, ni de prendre les
       donnees necessaires et de charger les donnees completes de chaque
       paquet separement en utilisant get_simple_package.

       Ce module est actuellement lie a la structure du depot utilise par
       reprepro dans le but d’identifier la liste d’architecture et
       differentes autres pieces de metadonnees. A l’avenir, des fonctions
       pourront etre ajoutees pour fournir de telles listes.

       Le module attend de trouver tous les depots contenus dans un repertoire
       de base :

        $base/$repo_name/conf/distributions

       Si $base n’est pas defini ou si le dossier contenant le depot ne peut
       pas etre trouve, les fonctions retournent toutes undef.

       etc.

       Exemple de code :

        use Debian::Packages::Compare;

        my $base = '/path/to/repositories/'
        &set_base($base);

       my $debu  = &read_packages (’unstable’, ’filter’);
        my $gripu = &read_packages (’unstable’, ’grip’);
        my %debianunstable = %$debu  if (defined $debu);
        my %gripunstable   = %$gripu if (defined $gripu);
        foreach my $pkg (sort keys %debianunstable)
        {
          if ($debianunstable{$pkg}{’source’} ne
       $gripunstable{$pkg}{’source’})
          {
            # $pkg is either not in grip repository or is a different version
          }
        }

       Les caracteristiques principales pour les versions suivantes
       impliqueront une gestion d’erreur plus volubile.

        perl -MDebian::Packages::Compare -MData::Dumper -e '&set_base("/opt/reprepro"); \
         $c = &read_packages("testing","grip"); print Dumper ($$c{"dpkg"});';

get_archlist

       Exige la disposition du fichier de mise en page de reprepro,
       actuellement.

       Lit les architectures disponibles et retourne une liste.

get_locale_roots

       Exige la disposition du fichier de mise en page de reprepro,
       actuellement.

       Lit les racines locales disponibles et retourne une liste.

get_components

       Similar to get_locale_roots but for ordinary repositories so that
       component splits (like dev and doc in Emdebian Grip) can be implicitly
       supported. Note that repositories with contrib or non-free will likely
       get confused results with this kind of support.

get_suite_names

       Parses the conf/distributions file for the specified repository and
       retrieves the list of configured suite names - a collated unique list
       of the Suite: and Codename: variables in conf/distributions.

get_unfrozen_suite_names

       Parses the conf/distributions file for the specified repository and
       retrieves the list of configured suite names that are NOT ReadOnly.
       Codename: variables are NOT included.

set_base

       Definit le repertoire de base du depot (ou des depots) a comparer. Le
       module s’attend a trouver tous les depots contenus dans un repertoire
       de base :

        $base/$repo_name/dists/$suite/main/binary-$arch/Packages
        $base/$repo_name/dists/$suite/main/source/Sources.gz

read_sources

       Similaire a read_binaries mais attend un fichier Sources.gz compresse
       par GZip. En general, il n’est pas appelle directement.

read_binaries

       Lit le fichier Packages et cree une table de hachage des paquets, des
       architectures et des versions dans les depots respectifs (sous le
       repertoire $base) et la suite pour l’@archlist definie, en incluant les
       details des sources.

       Prend deux parametres : le nom de la suite et le nom du depot.

       Retourne undef si le fichier Packages est introuvable.

       par exemple pour le depot Grip :

        $hash{'sed'}{'source'} => '4.1.5-8'
        $hash{'sed'}{'armel'} => '4.1.5-8em1'
        ...

read_locale

       Fonction specialisee qui gere l’organisation de la racine locale du
       depot TDeb. La structure interne de composant de la racine locale est
       cachee dans la table de hachage renvoyee, le nom du composant est liste
       separement et contenu dans le nom du paquet. Les donnees sources sont
       retenues sous le nom du paquet source original et referencees dans la
       table de hachage :

       La racine locale est contenue dans $list{$package}{'locale'} et le nom
       du paquet source dans $list{$package}{'source'}

       par exemple

        $hash{'sed-locale-pt-br}{'source'} => 'sed'
        $hash{'sed-locale-pt-br}{'locale'} => 'pt'
        $hash{'sed-locale-pt-br}{'armel'} => '4.1.5-8'
        ...
        $hash{'sed'}{'source'} => '4.1.5-8'

get_single_package

       Recupere l’enregistrement de tous les paquets pour un unique paquet,
       binaire (architecture unique) ou source (.dsc).

get_missing_sources

       Compare deux depots de la meme suite et retourne une liste de paquets
       source qui sont dans le premier depot mais pas dans le second (les
       versions plus anciennes sont ignorees).

       A FAIRE : creer des fonctions get_outdated_sources et
       get_outdated_binaries.

get_missing_binaries

       Compare deux depots de la meme suite et retourne une liste de paquets
       binaires qui existent dans les deux depots comme paquets sources mais
       existent seulement en tant que paquets binaires dans le premier depot
       et pas dans le second.

       Les suffixes de version d’Emdebian sont automatiquement effaces dans la
       comparaison.

get_britney_list

       Compare deux depots, chacun avec unstable et testing, retourne une
       liste de paquets source qui sont prets pour la migration.

       Pour etre pret a la migration, un paquet doit exister dans le premier
       depot dans la meme version dans unstable et dans testing. Il doit aussi
       exister dans le second depot pour unstable et doit avoir la meme
       version que dans le premier depot. Finalement, le paquet source doit
       soit etre absent de testing dans le second depot soit etre dans une
       version plus ancienne que dans unstable.

       C’est une specificite de Debian seulement et aucun support n’est
       disponible pour les depots qui n’implementent pas les suites unstable
       et testing precisement de la meme maniere que Debian.

       Toutes les donnees sont regenerees a chaque fois que la fonction est
       executee.

       1. depot1 unstable doit correspondre a depot1 testing 2. depot1
       unstable doit correspondre a depot2 unstable 3. depot2 unstable doit
       etre plus recent que depot2 testing 4. Toutes les architectures sont
       comparees, y compris les sources.

       Retourne undef en cas d’erreur.

       La table de hachage renvoyee est indexee sous le nom du paquet source.

       To get the list of packages that raised a complaint about missing
       sources, call get_britney_complaint - the returned list will be
       undefined unless get_britney_list has already been called.

get_britney_complaint

       If get_britney_list comes up with source packages that are missing for
       a testing migration, get_britney_complaint returns the list of source
       package names that were identified.

       If get_britney_list has not been called, returns undef.

       If there are no complaints, also returns undef.

COPYRIGHT ET LICENCE

        Copyright (C) 2008  Neil Williams <codehelp@debian.org>

       Ce logiciel est libre; vous pouvez le redistribuer selon les termes de
       la licence GNU General Public License telle que publiee par la Free
       Software Foundation; en prenant la version 3 de la licence ou (selon
       votre choix) n’importe quelle version subsequente.

       Ce logiciel est distribue dans l’espoir qu’il soit utile, mais AUCUNE
       GARANTIE n’est donnee tant pour des raisons COMMERCIALES que pour
       REPONDRE A UN BESOIN PARTICULIER. Consulter la Licence Publique
       Generale GNU pour plus de details.

       Vous devriez avoir recu copie de la Licence Publique Generale de GNU
       avec ce programme. Sinon, voir <http://www.gnu.org/licenses/>.

AUTEUR

       Neil Williams, "<codehelp@debian.org>"

BUGS

       Veuillez signaler tout bogue ou demande de fonctionnalites via le
       systeme de suivi de bogues Debian (BTS) en utilisant "reportbug
       libdebian-packages-compare-perl".