Ketchup, pour garder un noyau bien à jour

Posté par  (site web personnel) . Modéré par Mouns.
Étiquettes :
0
11
jan.
2006
Noyau
Ketchup est un outil réalisé en python par Matt Mackall, également auteur du logiciel de gestion de version Mercurial. Ketchup permet de facilement :
  • mettre à jour les sources de son noyau
  • tester de multiples versions du noyau
  • se déplacer entre les différentes versions du noyau
Des exemples d'utilisation sont disponibles pour se donner une idée du programme.

Ainsi, au lieu de télécharger des versions complètes du noyau à chaque nouvelle version, Ketchup permet de passer de la version du noyau dont vous disposez à n'importe quelle autre version du noyau, qu'elle soit plus récente ou plus ancienne.
Ketchup est capable de télécharger automatiquement les patches nécessaires, de vérifier leur signature GPG, et de les appliquer ou les désappliquer pour parvenir à la version du noyau souhaitée. Ketchup permet ceci sur un grand nombre de branches du noyau: les versions stables du 2.4 et du 2.6 évidemment, mais également les versions de test -rc publiées par Linus Torvalds, les versions expérimentales -mm diffusées par Andrew Morton, la version spécial temps réel -rt d'Ingo Molnar, etc.

Un outil sympathique pour qui souhaite suivre le développement du noyau, tester de multiples versions, ou tout simplement rester à jour ! Quelques exemples d'utilisations:
$ ketchup -l
listera les versions du noyau disponibles au travers de Ketchup,
$ ketchup -m
indiquera la version du noyau disponible sur le disque,
$ ketchup 2.6-tip
mettra à jour vers la version stable la plus récente du 2.6
$ ketchup 2.6.11
appliquera les patches nécessaires pour revenir au 2.6.11
$ ketcup 2.6-rc
mettra à jour pour le dernier noyau -rc

Aller plus loin

  • # A la recherche de l'outil manquant

    Posté par  (site web personnel) . Évalué à 0.

    Cet outil est très intéressant.
    Cela serait sympa s'il entrait dans le Linux Standard Base pour que les noyaux puissent être transférés d'une distribution à une autre.
    • [^] # Re: A la recherche de l'outil manquant

      Posté par  . Évalué à 5.

      Je suis pas sur de bien comprendre.

      ketchup c'est juste un script pour passer d'une version de kernel à une autre. Ca change rien au binaire généré, ça évite uniquement d'avoir à se prendre la tête pour savoir quels patches inverser, jusqu'où revenir lorsqu'un passe d'un -stable
      à un -rc et ainsi de suite.
    • [^] # Re: A la recherche de l'outil manquant

      Posté par  (site web personnel) . Évalué à 4.

      Je vois pas trop le rapport entre la LSB et Ketchup. Ketchup, c'est juste un outil pour simplifier la récupération des sources du noyau. Rien à voir avec une quelconque compatibilité binaire entre distributions.
      • [^] # Re: A la recherche de l'outil manquant

        Posté par  . Évalué à 1.

        Thomas, je n'ai pas compris la réponse d'Encolpe comme toi mais c'est vrai que d'avoir une config noyau propre à chaque distrib et facilement incluse dans Ketchup permettrait de migrer d'une version de noyau à une autre sans chambouler la stabilité de la distribution :) (comprendre passer d'un 2.6.11-gentoo-r3 à un 2.6.14-gentoo-r5 sans trop de manip pour l'utilisateur lambda). Ceux qui aiment taper des lignes de commande ne sont pas touchés par cela =)
  • # pas mal

    Posté par  (site web personnel) . Évalué à 4.

    ouais c'est pas mal , j'utilise depuis un moment pour mettre à jour les sources du noyau...

    j'ai commence à lire le code car je m'interesse à python. et c'est pas très rigoureux pas endroit ca fait un peu peur ...

    tiens d'ailleurs j'essaye
    # ../ketchup.py -l
    2.4 (signed)
    old stable kernel series
    2.4-pre (signed)
    old stable kernel series prereleases
    2.6 (signed)
    current stable kernel series
    2.6-bk (signed)
    old stable kernel series snapshots
    Traceback (most recent call last):
    File "../ketchup.py", line 686, in ?
    lprint(tree, ["(unsigned)","(signed)"][version_info[tree][3]])
    TypeError: list indices must be integers

    euh ... pas cool
    • [^] # Re: pas mal

      Posté par  (site web personnel) . Évalué à 4.

      À mon avis, faut pas hésiter à envoyer des patches à Matt Mackall qui les intègrera avec plaisir.
    • [^] # Re: pas mal

      Posté par  . Évalué à 0.

      pareil

      et par ailleurs :
      bibi@here:~/Documents/Downloads/ketchup-0.9.6$ ./ketchup 2.6-tip
      None -> 2.6.15-git7
      Downloading linux-2.6.15.tar.bz2
      --14:19:56-- http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar(...)
      => `/home/bibi/.ketchup/linux-2.6.15.tar.bz2.partial'
      Résolution de www.kernel.org... 204.152.191.5, 204.152.191.37
      Connecting to www.kernel.org|204.152.191.5|:80... connecté.
      requête HTTP transmise, en attente de la réponse... 200 OK
      Longueur: 39,832,836 (38M) [application/x-bzip2]

      100%[==============================================================>] 39,832,836 134.41K/s ETA 00:00

      14:25:06 (125.38 KB/s) - `/home/bibi/.ketchup/linux-2.6.15.tar.bz2.partial' saved [39832836/39832836]

      Traceback (most recent call last):
      File "./ketchup", line 737, in ?
      transform(a, b)
      File "./ketchup", line 506, in transform
      a = install_nearest(base(b))
      File "./ketchup", line 474, in install_nearest
      f = trydownload([url], f, 1)
      File "./ketchup", line 356, in trydownload
      if not sign or verify(url, f, sign):
      File "./ketchup", line 335, in verify
      sf = f + sign
      TypeError: cannot concatenate 'str' and 'int' objects

      System : Ubuntu Breezy
      • [^] # Re: pas mal

        Posté par  (site web personnel) . Évalué à 4.

        Et voilà une correction pour ce problème:
        http://free-electrons.com/pub/patches/ketchup/20060113a/

        Je l'envoie à Matt!

        En attendant que Matt intègre les corrections aux problèmes reportés sur cette liste, voici une version qui semble les corriger:
        http://free-electrons.com/pub/patches/ketchup/ketchup-0.9.6-latest-fixes

        :-)

        Michael.
  • # debian

    Posté par  . Évalué à 0.

    Et quelle intégration avec debian ?

    Moi, sur ma debian, j'ai déja plusieurs noyaux.
    Je comprend pas bien comment ça vas s'interfacer avec la gession des noyaux de debian quoi
    • [^] # Re: debian

      Posté par  (site web personnel) . Évalué à 4.

      Cet outils gère les kernels et patchs "releasés" (ho le jolie mot) par ces messieurs de kernel.org. Debian applique ses propres patches aux kernels proposés.
      Je vois pas bien ce que tu veux dire par "comment ça va s'interfacer avec la gestion des noyaux de debian".
      D'ailleurs Ketchup est déjà disponible en sid (j'ai pas regardé pour les autres branches).
      • [^] # Re: debian

        Posté par  . Évalué à 1.

        de meme en stable (je teste tt juste la..)
      • [^] # Re: debian

        Posté par  . Évalué à 2.

        bon, ok, j'ai peut être pas été clair, mais j'ai du mal a expliqué, je trouve ça dur à expliquer. Et quelle interret de me moinzer, franchement ?

        Bah, quand on installe debian, on a un kernel de base qui est mis dans /boot/grub/menu.lst

        Si je fait un apt-get install linux-image-2.6.15-1-686 par exemple, bah, ça installe le noyau, les module y tou y tou, sans que j'y comprenne rien d'ailleur, et ça modifie le /boot/grub/menu.lst en y ajoutant le nouveau noyau

        Ce que je voudrais savoir, c'est si ketchup vas faire de même, c'est a dire ajouter le noyau à menu.lst mais vu que c'est un fichier qui semble être gerré par le système debian. Vu que ketchup, n'est pas un projet debian, il pourrait y avoir un conflit et donc peut être que c'est pas gerré, et justement je m'embroille là et j'y comprend plus rien.

        plus clair ?
        • [^] # Re: debian

          Posté par  (site web personnel) . Évalué à 4.

          Comme on le découvre plus bas, en fait Ketchup ne se charge que de récupérer les sources du noyau, à toi de te démerder ensuite pour compiler et installer. Peut-être que Debian a des outils pour t'y aider, sinon c'est à la main qu'il faut le faire. Et dans ce cas, si tu ne connais pas bien et Linux (le noyau) et ta distribution, laisse tomber, tu risques de tout casser. (M'enfin, ça ne t'interdit pas d'apprendre et d'essayer, hein, mais de préférence sur un autre ordi, ou une autre partition, afin d'avoir toujours un poste de travail bien stable.)
  • # En manque ?

    Posté par  . Évalué à -1.

    On est si en manque de bonne news que cela pour accepter une news à tendance freshmeat ?
    • [^] # Re: En manque ?

      Posté par  (site web personnel) . Évalué à 4.

      On n'accepte que les news des versions majeures des logiciels, ou bien les alpha/beta/RC importantes des logiciels majeurs, ou encore les premières releases de logiciels innovants, originaux et/ou attendus. On rentre ici dans la troisième catégorie.
      • [^] # Re: En manque ?

        Posté par  (site web personnel) . Évalué à 8.

        Juste pour dire que j'ai fait un journal que je pense assez complet et précis sur ketchup : http://linuxfr.org/~chtitux/19674.html , le 12 octobre, il n'y a pas si longtemps.

        Alors ketchup n'est pas une première release ...

        Je crois personnellement que ce genre d'annonce ne mérite pas d'être en première page (même si c'est mon propre avis, je le partage quand même).

        Je ne vasi pas copier/coller mon journal qui explique très bien comment utiliser ketchup, mais je signalerai juste que Klive va très bien avec quand on utilise les RCs du noyau.

        Pensez-vous qu'une dépêche de première page sur Klive puisse être validée ?
        (La question n'est pas si on doit la faire, ni qui la fera, mais si elle est autant interessante et pertinente que celle-ci ?)
        • [^] # Re: En manque ?

          Posté par  . Évalué à 4.

          Je réclame l'ancienneté (26 avril 2004) : http://linuxfr.org/~lezardbreton/11972.html !!!
          Bon, ok, mon journal était tout pourri :)

          Tout ça pour dire que ketchup est un outils très sympa que j'ai réutilisé il y a pas longtemps. Il manque un peu de documentation, mais en même temps, je ne peux pas dire que ça soit un outil grand public...
        • [^] # Re: En manque ?

          Posté par  (site web personnel) . Évalué à 2.

          Ta proposition de brêve sur Klive est dans le pipe, sur le billard, on est en train de l'opérer, y'a des chances pour que ça se passe bien... ;-)
  • # Git

    Posté par  (site web personnel) . Évalué à 6.

    Il me semble que l'on peut faire tout ça avec Git, pour un coût pas si élevé en espace disque. Bien sûr, ce n'est pas aussi user-friendly, mais on peut faire des choses en plus (genre corriger un truc trivial et envoyer un patch propre, ou faire des recherches puissantes dans l'historique du développement du noyau, ou faire du git bisect qui permet de faire la chasse aux bugs de manière super efficace).
    • [^] # Re: Git

      Posté par  (site web personnel) . Évalué à 3.

      Oui, c'est sûr qu'on peut faire la même chose avec git, mais j'ai encore jamais eu le courage de regarder comment ça fonctionne, et les quelques docs que j'ai lu me donnent pas l'impression d'un truc franchement simple à utiliser. Tu utilises Git directement, ou bien Cogito ? Quelle doc tu as utilisé ?
      • [^] # Re: Git

        Posté par  (site web personnel) . Évalué à 2.

        Pour l'instant je n'en fais pas une utilisation intensive, essentiellement ce que propose Ketchup, mais au lieu de faire joujou avec des versions du noyau, je fais joujou avec des versions de Git. Mais je me sens suffisamment à l'aise avec Git pour l'utiliser la prochaine fois que je voudrai tester des trucs dans le noyau.

        Clairement, ce n'est pas simple à utiliser, même si pour une utilisation de base (initialiser ou télécharger, ajouter, valider, mettre à jour, visualiser), il n'y a rien de bien méchant. Le plus difficile, c'est de trouver la bonne commande et d'éviter les faux amis (git fetch contre git pull), et de se farcir quelques syntaxes, euh on va dire puissantes (celle de sélection d'un commit, que je suis loin de maîtriser (on peut parler du troisième père du frère de tel commit, il me semble)).

        Ce n'est pas la documentation qui manque (plus de cent manpages, un howto imparfait, un lexique, quelques autres miettes éparses), mais il manque un bon Git Book, avec un gars qui maîtrise Git et qui sait s'expliquer clairement.

        Quelqu'un s'est fait son propre guide, une sorte de « Git pour les nuls », il faut que je me replonge dedans, mais ça m'a semblé être le meilleur guide de Git à ce jour, qui explique bien les concepts et liste bien les commandes (même si les développeurs ont fait pas mal de corrections quand il l'a posté).

        Le guide se trouve là :
        http://www.gelato.unsw.edu.au/archives/git/0512/13748.html
        • [^] # Re: Git

          Posté par  . Évalué à 3.

          En même temps, à chaque utilisation son outils... Utiliser Git pour simplement changer son noyau c'est utiliser un canon pour tuer un moustique...

          Si l'on est plus orienté développement noyau, on choisira Git qui permet de gérer les sources de façon plus "fine" et qui propose un plus grand nombre de fonctionnalités vu qu'il est conçu pour ça... Par contre si c'est juste pour changer de noyau facilement ketchup fait complètement l'affaire...
  • # Et avec les pilotes propriétaires, qu'est-ce que ça donne ?

    Posté par  . Évalué à 2.

    Tout cela semble bel et beau, et Ketchup a un petit goût de tomate pourrie sympatique, mais... qu'est-ce que ça donne quand on utilise - au hasard - les pilotes propriétaires NVidia pour obtenir l'accélération Open Gl avec une carte du même constructeur ?

    Je subodore qu'à ce moment là, on risque de devoir "réinstaller" les dits pilotes à chaque modification opérée via Ketchup. Est-ce bien ça ?

    Si c'est la cas, ça milite une fois de plus pour l'utilisation exclusive de pilotes intégrés au noyau, mais bon... mon Chromium !! Mon PPracer ! (snif).
    Si ça prend en charge la chose, chapeau. J'en doute hélas.
  • # Site down

    Posté par  . Évalué à 1.

    Je naviguais sur le site, puis j'ai changé de page puis PAF : << IOError[Errno 28] No space left on device >> :)

    (Je leur ai envoyé un mail, mais c'est un peu con si c'est sur la meme partition, ça partira en disk full quand meme)
  • # Sources -ck

    Posté par  . Évalué à 1.

    Y'a-t-il une astuce pour pouvoir utiliser Ketchup avec les sources -ck ? Visiblement, il ne les gère pas de base et pourtant, elles sont assez utilisées il me semble (et en l'occurence, c'est mon cas :p) donc ça m'étonne un peu que ça ne soit pas le cas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.