Avis sur le backport

Je suis en Stable sur toutes mes machines. Ça me conviens très bien, je récupère iceweasel depuis le dépôt de Mozilla et pour le reste je n’ai jamais besoin de version plus à jour (sauf pour des IDE et autres autour de Java que j’installe dans /opt à la main).

Il m’arrive tout de même de vouloir un paquet plus à jour (en fait ça m’es arrivé une fois, ce matin), pour wine. J’ai récupéré la version de Cùran et j’ai reconstruit le paquet pour ma version (en compilant avec gcc 4.4 et pas 4.5). Ça me permet d’avoir une version récente de wine tout en gardant la sécurité induite par APT (les collision entre paquets sont géré par exemple, je peux le virer facilement).

Sachant que l’on peut faire ça de manière très simple avec :

ou en passant par

Si cela ne se fait que pour quelques paquets qui n’ont pas trop dépendances et que celles-ci sont pas exclusives à une version Sid.
(c’est important il me semble)

Est ce que vous pensez qu’il peut être intéressant d’avoir ce source.list :

[code]## squeeze
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free

squeeze multimedia

deb http://www.debian-multimedia.org squeeze main non-free
deb-src http://mirror.home-dn.net/debian-multimedia squeeze main

squeeze security

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

squeeze update

deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free

################################################

wheezy

deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free

wheezy multimedia

deb-src http://www.debian-multimedia.org/ wheezy main

wheezy security

deb-src http://security.debian.org/ wheezy/updates main contrib non-free

################################################

sid

deb-src http://ftp.fr.debian.org/debian/ sid main contrib non-free

sid multimedia

deb-src http://www.debian-multimedia.org/ sid main

################################################

experimental

deb-src http://ftp.fr.debian.org/debian/ experimental main contrib non-free

experimental multimedia (uniquement 64 bits, décommentez les lignes dans ce cas)

#deb-src http://www.debian-multimedia.org/ experimental main[/code]
Pour pouvoir facilement en cas de besoin, piocher ailleurs en limitant au maximum les upgrade de paquets.

Pour être un peu plus concret les paquets de Cùran dépendent de lib32asound2 en version 1.0.24.1-4, mais c’est uniquement parce qu’ils ont étaient compilés avec cette version de la bibliothèque, après recompilation avec ma version 1.0.23-2.1, je n’ai aucun problème à signaler.

Au final cette technique m’a permis sous Squeeze d’obtenir wine 1.3.37 (oui je sais) en lieux et place de wine 1.0.1 sans mettre à jour aucun paquet (j’ai du installer les dépendances pour la compilation, d’ailleurs je ne comprend pas pourquoi il y a besoin de valgrind mais passons).

Pourquoi pas si cela correspond à ton besoin.
J’ai beaucoup pratiqué le backport et le packaging perso sous Lenny (beaucoup moins sous squeeze). J’avais le deb-src de SID pour aller chercher des sources récentes, pas plus parce que je n’en avais pas besoin. Je faisais bien attention à la manière de versionner (n° de révision, dépendances, modif des sources pour pouvoir compiler et utiliser apt-get build-dep…) et je collais ça sur un dépôt perso pour le déploiement et les mises à jour. Ca s’est toujours bien passé même si je me suis parfois heurté à un mur comme la nécessité de backporter libc6…Mattotop s’était bien payé ma tête ce jour là :laughing:

L’idée c’était surtout de savoir s’il y avait un problème potentiel que je ne vois pas à l’heure actuel. Je ne suis pas un grand spécialiste d’APT.

2 Cents: Fait gaffe au fichier préférence avec ce sources.list, attention à l’upgrade en sid

Aucun fichier de préférence n’est nécessaire. apt ne fait pas de mise à jour sur deb-src.

Okay, merci j’ai donc appris un truc de plus.

Ça a l’air super comme astuce.
Cependant je n’y arrive pas. Il me dit qu’il ne trouve pas les sources du paquet spécifié, en l’occurence linux-image-3.1.0-1-amd64.
Comment fais-tu pour connaître les sources disponible, comme ça n’apparaît pas dans un apt-cache policy?
Et en détail, comment précises-tu la branche souhaitée? avec l’option -t ?

En fait le mieux c’est de mettre les dépôt deb aussi et de configurer les préférences (il faut qu’elles soient positives sinon c’est embêtant).

Par contre linux 3.1 dépend de kernel-wedge 2.84, j’ai tenté de le compiler avec la version 2.74 mais ça ne marche pas.
Tente avec linux-source :slightly_smiling:

Merci de tes précisions, je vais refaire un fichier preferences digne de ce nom! :slightly_smiling:
J’ai déja compilé le 3.2 à partir des sources de kernel.org, afin d’avoir le meilleur support pour sandyBridge d’intel. Mais bon, j’oublie certainement des trucs à la compilation car j’ai des erreurs pour powernowk8 lors du démarrage.
Donc je voulais utiliser la méthode debian, avec les patchs tout prête de debian pour ne pas faire de bêtises.
Enfin je m’éloigne du sujet…

La méthode debian c’est d’utiliser linux-source :slightly_smiling:

Au pire il te suffit de récupérer le .config du noyau Debian (les patchs Debian du noyau, je ne sais pas s’il en existe encore).

OSEF, on est dans PC.

Et je le trouve où ce .config? Dans le dossier /boot, d’après le wiki, mais ce n’est pas le bon puisque c’est celui de l’ancien noyau :s

apt-get install -d linux-image-3.1.0-1-amd64 dir=$(mktemp -d) dpkg -x '/var/cache/apt/linux-image-3.1.0-1-amd64_3.1.8-2_amd64.deb' "$dir" cp "${dir}/boot/config-3.1.0-1-amd64" . rm -rf "${dir}" :wink:

C’est fou comme c’est simple lorsqu’on a la solution! Merci :slightly_smiling:

Par contre, avoue que tu te la joue un peu avec ton dossier temporaire :stuck_out_tongue: . Mais c’est bon à prendre, je ne connaissait pas :slightly_smiling: .

apt-file list pkg aide pas mal.

Quand on en a raz le bol des fichiers au doux nom de « toto », « azerty » ou « kldjslk », un peu partout dans on home, on fini par utiliser des solutions plus pertinente.

En plus là ça me permet de te filer une salve de commande qui fonctionnerons sur ta machine avec peu d’effet de bord.

Pour fabriquer un backport, pense à faire avant un apt-get build-dep paquet, ça installe les dépendances nécessaires pour faire le paquet. Cela te permet de savoir quels sont les paquets à installer.
Dans les soucis, il peut arriver plusieurs choses:

  1. Il te dit que tu as une mauvaise version de dh_make ou autre. Il te suffit d’éditer le fichier debian/compat et de le mettre froidement à ta version. Ça marche en général.

  2. Pärfois tu n’as pas la bonne version à installer ou un p)paquet n’existe pas dans stable. Il te faut donc faire un deuxième backport. À partir de 4 appels récursifs, personnellement je sature. Dans un tel cas, il suffit

  • soit de modifier le fichier control en virant la dépendance et en enlevant la fonctionalité demandant la librairie, soit de baisser la version de la librairie demandée (souvent ça ça coince).
  1. Il peut y avoir un incident de compilation nécessitant une retouche manuelle ou une modif de debian/rules. Dans ce cas reprend la compilation via
    $ fakeroot debian/rules binary
    Ça continue la construction des paquets binaires là où ça avait arrêter.

Sinon je te suggères dans les trucs un peu crades qui marchent bien de regarder la partie 4) de faire-un-paquet-version-complete-t4691.html

J’ai déjà rencontré, sauf que je maîtrise pas aussi bien que toi la construction de paquet, du coup j’y vais à coup de grep et de sed récursif. C’est plus bourrin encore, il faut vraiment faire gaffe, mais ça marche.

[quote=“fran.b”]2) Pärfois tu n’as pas la bonne version à installer ou un p)paquet n’existe pas dans stable. Il te faut donc faire un deuxième backport. À partir de 4 appels récursifs, personnellement je sature. Dans un tel cas, il suffit

  • soit de modifier le fichier control en virant la dépendance et en enlevant la fonctionalité demandant la librairie, soit de baisser la version de la librairie demandée (souvent ça ça coince).[/quote]
    Merci pour le conseil. Jusqu’à présent j’arrêtais quand ça devenait trop compliqué.

[quote=“fran.b”]3) Il peut y avoir un incident de compilation nécessitant une retouche manuelle ou une modif de debian/rules. Dans ce cas reprend la compilation via
$ fakeroot debian/rules binary
Ça continue la construction des paquets binaires là où ça avait arrêter.[/quote]
C’est utile à savoir, merci.

C’est un peu plus sophistiqué, mais c’est une technique que j’ai plutôt tendance à réserver aux logiciels qui n’existent pas sous Debian.