Différences entre versions de « Backports »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m
 
imported>SylvainBeucler
m
Ligne 13 : Ligne 13 :
 
[http://backports.org backports.org] est la référence en la matière.
 
[http://backports.org backports.org] est la référence en la matière.
 
Rien à ajouter :)
 
Rien à ajouter :)
 +
  
 
== Comment backporter? ==
 
== Comment backporter? ==
 +
 +
Quelques considérations générales:
 +
 +
=== To search for a missing dependency ===
 +
 +
In a vanilla install, sarge and backports in sources.list:
 +
aptitude search keyword # search package whose name contain 'keyword'
 +
apt-cache policy packagename # see what versions are available from
 +
      # that package
 +
 +
=== Testing the build-deps ===
 +
 +
dpkg-checkbuilddeps.
 +
 +
Caution: it reports packages that are not installed, that doesn't tell you whether the build _could_ be installed or not.
 +
 +
=== Installing the build-dep ===
 +
 +
apt-get build-dep packagename
 +
 +
Altering the build-dep during the creation of the backport: <code>apt-get build-dep</code> uses <code>/var/lib/apt/lists/ftp.[mirror].debian.org_debian_dists_[distro]_[component]_source_Sources</code>.
 +
 +
You can go quick&dirty and alter that file. I do not know about a "clean" solution (like feeding <code>apt-get build-dep</code> directly with a <code>debian/control</code> file)
 +
 +
=== Making the newly built dependencies available to apt ===
 +
 +
cd /usr/src
 +
mkdir repo
 +
mv *.deb *.orig.tar.gz *.dsc *.changes *.diff.gz repo/
 +
(cd repo && apt-ftparchive packages . | gzip -c > Packages.gz)
 +
(cd repo && apt-ftparchive sources  . | gzip -c > Sources.gz)
 +
echo "deb file:///usr/src/repo ./" >> /etc/apt/sources.list
 +
 +
=== Don't's ===
 +
 +
Don't <code>aptitude install debhelper/sarge-backports</code>.
 +
This will include new helper scripts that may be copied into your packages' postinst/prerm/etc.
 +
 +
== Documentation ==
 +
 +
* Un HOWTO: [http://www.dannf.org/docs/backporting-debs.txt A Heuristic-based Process for Backporting Debs]
 +
 +
* Des [http://www.inittab.de/slides/backporting.pdf transparents] (en allemand :/) d'un des contributeurs de backports.org. Même si vous ne connaissez pas la langue, notez le nom des commandes utilisées.
 +
 +
== Exemples ==
 +
 +
Voici également deux exemples de backports réalisés par Cliss XXI:
 +
* [[Backport OpenOffice2]]: en cours, le but est d'inclure GJC.
 +
* [[Backport Evince]]: complet

Version du 11 juin 2006 à 17:58

Définition

Un backport, c'est un paquet Debian recompilé pour une distribution précédente. Par exemple, il y a un backport de la dernière version de KDE [1] compilé pour Sarge, à partir des paquets initialement prévue pour Etch.

Motivations

Cette recompilation est nécessaire pour plusieurs raisons:

  • Les dépendences des paquets changent pour tenir compte de l'évolution de l'ensemble du système; ici, on changera ces dépendances pour revenir à des version antérieures.
  • La compatibilité binaire est vraisemblablement inférieure sous GNU/Linux à celle de MS Woe: même en ignorant les dépendances, une différence de libc entre le système où l'on compile l'applicatino et le système où l'on l'exécute peut faire planter l'application. Il est donc nécessaire de recompiler, plutôt que de copier les binaires directement. Nous avons eu le problème en lançant le binaire testing de GNU Arch dans une Sarge (tous deux en version PPC). Cela me paraît un peu surprenant tout de même.

Où trouver des backports

backports.org est la référence en la matière. Rien à ajouter :)


Comment backporter?

Quelques considérations générales:

To search for a missing dependency

In a vanilla install, sarge and backports in sources.list:

aptitude search keyword # search package whose name contain 'keyword'
apt-cache policy packagename # see what versions are available from

# that package

Testing the build-deps

dpkg-checkbuilddeps.

Caution: it reports packages that are not installed, that doesn't tell you whether the build _could_ be installed or not.

Installing the build-dep

apt-get build-dep packagename
Altering the build-dep during the creation of the backport: apt-get build-dep uses /var/lib/apt/lists/ftp.[mirror].debian.org_debian_dists_[distro]_[component]_source_Sources.
You can go quick&dirty and alter that file. I do not know about a "clean" solution (like feeding apt-get build-dep directly with a debian/control file)

Making the newly built dependencies available to apt

cd /usr/src
mkdir repo
mv *.deb *.orig.tar.gz *.dsc *.changes *.diff.gz repo/
(cd repo && apt-ftparchive packages . | gzip -c > Packages.gz)
(cd repo && apt-ftparchive sources  . | gzip -c > Sources.gz)
echo "deb file:///usr/src/repo ./" >> /etc/apt/sources.list

Don't's

Don't aptitude install debhelper/sarge-backports. This will include new helper scripts that may be copied into your packages' postinst/prerm/etc.

Documentation

  • Des transparents (en allemand :/) d'un des contributeurs de backports.org. Même si vous ne connaissez pas la langue, notez le nom des commandes utilisées.

Exemples

Voici également deux exemples de backports réalisés par Cliss XXI: