Provided by: emdebian-tdeb_3.0.7_all bug

NOM

       splitout_tdeb - Extraire un TDeb Debian a partir d'un .deb a la volee

Description

       Separe un paquet Debian en un TDeb Debian et un paquet Debian plus
       petit en depaquetant, deplacant les fichiers appropries et en
       repaquetant avec une note dans la description et en ajoutant le suffixe
       de version +t1.

       Lors de la creation d'un depot contenant des TDebs, il est fortement
       recommande de specifier les fichiers .changes de facon a ce que le
       depot puisse inclure les sources originaux, pour des raisons
       juridiques.

       Si un fichier existe avec le meme nom dans le repertoire de sortie, il
       sera ecrase.

Copyright et Licence

        Copyright (C) 1997-2000  Roman Hodek <roman@hodek.net>
        Copyright (C) 2000-2002  Colin Watson <cjwatson@debian.org>
        Copyright (C) 2002-2004  David Schleef <ds@schleef.org>
        Copyright (C) 2004  Nikita Youshchenko <yoush@cs.msu.su>
        Copyright (C) 2004  Raphael Bossek <bossekr@debian.org>
        Copyright (C) 2007-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 une copie de la Licence Publique Generale de
       GNU avec ce programme. Sinon, voir <http://www.gnu.org/licenses/>.

Convertir vers TDebs

       L'idee ici est basee sur dpkg-cross :

        1. recoit un .deb ou un .changes comme une option de la ligne de commande
        2. depaquette le .deb comme le fait dpkg-cross
        3. cree les donnees de controle pour le nouveau TDeb
        4. replace les fichiers dans le TDeb
        5. repaquette le .deb avec un suffixe de version TDeb.
        6. reconstruit le .deb original et modifie le .changes de facon a ce que
            le source original puisse etre maintenu.

       Aussi peu de dependances que possible X ce script devrait etre
       transforme en une gestion de TDeb plus utilisable.

       Les versions futures auront aussi a comprendre les classes Dpkg mais
       jusqu'a ce que celles-ci soient implementees, la force brute est
       utilisee.

Automatisation

       Relativement simple, mais quelques verifications sont necessaires dans
       le cas ou votre liste de paquets possibles inclut des paquets deja
       traites par dpkg-cross.

        #!/bin/sh
        set -e

        DIR=/tmp/myrepo/
        for deb in `ls /var/cache/apt/archives/*.deb`; do
           cross=`echo $deb | grep "\-.*-cross" || true`
           if [ ! -z "$cross" ]; then
               echo "skipping dpkg-cross package: $deb"
               continue
           fi
           /usr/share/emdebian-tools/splitout_tdeb -o $DIR $deb
        done

       Un script similaire devrait etre capable de se debrouiller avec les
       fichiers .changes obtenus pour maintenir les paquets source.

       Bien qu'utilisant dcut en interne, splitout_tdeb n'est pas concu pour
       obtenir les fichiers .changes directement a partir de
       http://incoming.debian.org, un script d'encapsulation sera necessaire.

       Une encapsulation supplementaire sera certainement necessaire pour
       permettre a un depot TDeb de X rattraper X les miroirs Debian existant,
       par exemple si le premier telechargement vers le depot TDeb est un
       telechargement binaire seul sans un .orig.tar.gz reference. Voir
       emdebian-grip pour la facon dont ceci pourrait fonctionner.

       splitout_tdeb s'assure que le .tar.gz est copie dans le repertoire de
       sortie et que reprepro peut localiser les fichiers appropries si
       l'option --ignore=missingfile est activee. Helas, cette fonctionnalite
       n'est pas preservee dans le mode processincoming de reprepro.

Problemes

       Beaucoup. :-)

       Plus de travail est necessaire, pour permettre (ou definir par defaut)
       a l'option de *ne pas* reconstruire le paquet binaire mais cela depend
       du binaire utilisant deja un TDeb. Pour le moment, il s'agit d'un
       bricolage rapide pour obtenir des TDebs facilement. splitout_tdeb ne
       merite probablement pas d'entrer dans la distribution stable, la
       fonctionnalite devrait etre implementee directement dans les builds
       Debian.

       Les Tdeb generes utilisent le nom du paquet source ce qui va compliquer
       les choses si vous essayez de generer les TDebs a partir des binaires
       appartenant au meme paquet source X preferez plutot dpkg-gentdeb ou
       dh_gentdeb de l'interieur du build (natif) du paquet.

       Aussi, les dependances strictes ne sont pas alterees par splitout_tdeb
       X si un autre paquet (typiquement provenant du meme paquet source) a
       une dependance stricte envers un paquet reconstruit par splitout_tdeb,
       ce paquet a des chances de devenir ininstallable. Par exemple, si foo
       depend de bar (= 1.2.3-4) et que bar est reconstruit par splitout_deb,
       bar va devenir 1.2.3-4+t1 et foo va devenir ininstallable. Comme
       precedemment, la solution est de preparer le TDeb a partir de la
       construction normale de paquet. emdebian-grip a aussi resolu ce
       probleme mais splitout_tdeb est seulement un script de convenance et
       n'utilise pas (encore) cette prise en charge.

       Utilisez l'option --verbose pour voir le contenu du fichier de controle
       genere du TDeb et du paquet binaire modifie.

       splitout_tdeb ne permet pas (encore) +t2 ou les autres revisions de
       TDeb X cela necessite une gestion dans dpkg pour .diff1.gz pour que le
       +t2 puisse etre envoye sans affecter le(s) paquet(s) binaire(s). Le
       mecanisme entier de mise a jour des TDebs par les traducteurs est
       encore a implementer.