Journal euscan: trouver les ebuilds pas à jour

Posté par (page perso) . Licence CC by-sa
Tags :
17
16
avr.
2011

J'ai récemment commencer à travailler sur un petit utilitaire pour gentoo appellé "euscan" (pour Ebuild Upstream Scan). Pour ceux qui ne connaissent pas l'utilitaire "uscan" de Debian, il permet de scanner "upstream" pour trouver de nouvelles versions. uscan est utilisé par packages.qa.debian.org (par exemple: http://packages.qa.debian.org/p/php-net-ipv4.html).

Pour l'instant, j'utilise deux heuristiques pour trouver de nouvelles versions. Les deux sont basées sur les variables SRC_URI (uri source) et PV (package version) d'un ebuild: - Scan des répertoires pour trouver de nouvelles versions - Brute force: on génère de nouvelles versions et on regarde si elle sont dispo

Cela marche aussi quand uniquement une partie de la version est dans l'url (par exemple: http://foo.bar/2.0/bar.tar.gz pour la 2.0.1).

Le code est dispo sur http://git.iksaif.net/?p=euscan.git;a=summary
Et l'interface web sur http://euscan.iksaif.net/

Un exemple d'utilisation de euscan:

$ ../euscan htop 
 * sys-process/htop-0.9 [gentoo] 

Ebuild: /usr/portage/sys-process/htop/htop-0.9.ebuild 
Repository: gentoo 
Homepage: http://htop.sourceforge.net 
Description: interactive process viewer 

 * Scanning: http://switch.dl.sourceforge.net/sourceforge/htop/htop-${PV}.tar.gz 
 * Scanning: http://switch.dl.sourceforge.net/sourceforge/htop 
 * Generating version from 0.9 
 * Brute forcing: http://switch.dl.sourceforge.net/sourceforge/htop/htop-${PV}.tar.gz 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.10.tar.gz ...       [ !! ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.11.tar.gz ...       [ ok ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-1.0.tar.gz ...        [ !! ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-2.0.tar.gz ...        [ !! ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.12.tar.gz ...       [ ok ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.13.tar.gz ...       [ ok ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.14.tar.gz ...       [ !! ] 
 * Trying: http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.15.tar.gz ...       [ !! ] 

Upstream Version: 0.11 http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.11.tar.gz 
Upstream Version: 0.13 http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.13.tar.gz 
Upstream Version: 0.12 http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.12.tar.gz 
  • # Mauvaise numérotation

    Posté par (page perso) . Évalué à 6.

    Ton outil ne fonctionne que si les développeurs nomment leur version correctement. Ça peut paraître évident, mais il y a des cas où ça ne fonctionne pas, parce que la numérotation a été chaotique, comme ... htop, que tu cites comme exemple !

    La dernière version de htop est la 0.9 d'après le site officiel, mais la numérotation du début n'a pas été très cohérente : après la 0.1, ce sont les versions 0.11, 0.12 et 0.13 qui ont été publiées.
    Ils sont revenus à une numérotation plus logique pour la 0.2 (0.2, 0.2.1, 0.3), et sont maintenant arrivés à la 0.9.
    cf http://htop.sourceforge.net/index.php?page=downloads

    Cela risque d'être amusant de voir comment htop va s'en sortir pour ne pas s'emmêler dans les versions supérieures à 0.10.

    En attendant, même si ton outil facilitera la détection des nouvelles versions, rien ne vaut une surveillance humaine. Peut-être qu'il faut développer un standard pour la publication des nouvelles versions des logiciels...

    • [^] # Re: Mauvaise numérotation

      Posté par . Évalué à 3.

      Problème aussi avec les numérotations imprévisibles :

      • chromium 11.0.696.43
      • mplayer 1.0_rc4_p20110322
      • [^] # Re: Mauvaise numérotation

        Posté par (page perso) . Évalué à 2.

        En effet pour htop, "fail".

        Par contre pour chromium, je vois pas trop le problème: http://euscan.iksaif.net/package/www-client/chromium/

        En attendant, oui il y'a des faux positifs (il faudrais les "apprendre" à euscan, donc si vous en trouvez, n'hésitez pas à le signaler).

        Mais dans le cas général, ça marche plutôt pas mal.

        • [^] # Re: Mauvaise numérotation

          Posté par . Évalué à 2.

          Le problème que je soulevais, c'est pour les serveurs qui ne te laissent pas scanner le répertoire, si en plus le nom de la release ne peut pas être deviné. Pour chromium si tu peux scanner le répertoire, pas de problème.

    • [^] # Re: Mauvaise numérotation

      Posté par . Évalué à 3.

      Y aura peut-être moyen de rattraper le coup en comparant les dates de parution ?

  • # sinon utilise urlwatch

    Posté par (page perso) . Évalué à 3.

    En mettant Urlwatch en cron, on obtient un diff des pages entre 2 moments.
    Cela permet de surveiller notament les pages "download" des projets. (independament de leur systeme de version).
    Seul probleme, les sites avec pubs aleatoires et/ou compteur de vistes.

    Ca marche pour surveiller l'upstream de 90% des ebuilds que je maintient.

  • # En moins magique

    Posté par (page perso) . Évalué à 2.

    Il y a cet outil : https://github.com/JNRowe/cupage

    DLFP >> PCInpact > Numerama >> LinuxFr.org

  • # Portscout

    Posté par (page perso) . Évalué à 3.

    Portscout fait ça pour les logiciels portés sous FreeBSD, and potentially other software repositories . À voir ce que ça pourrait donner avec Gentoo.

    http://www.inerd.com/software/portscout/

    • [^] # Re: Portscout

      Posté par (page perso) . Évalué à 2.

      Portscout à l'air de faire à peu près la même chose que euscan, à quelques différences:

      • respects de robots.txt
      • permet d'envoyer un mail aux mainteneurs (sauf que gentoo ne marche pas comme ça, faut passer pas bugs.gentoo.org)
      • supoort des "SiteHandler" pour gérer correctement certains sites spécifiques
      • interface html statique
      • supporte uniquement pgsql et sqlite
      • outil et interface web très liés

      Quelques idées à reprendre donc, mais je pense que portscout n'est pas utilisable tel quel avec gentoo.

  • # Souscription mail ?

    Posté par . Évalué à 2.

    Ton outil est super, mais frustrant : je peux découvrir quels paquets de mon système ne sont pas à jour, mais je ne peux rien faire (enfin, je peux ./configure && make à la main). Pourrais-tu faire de la publicité pour ton système auprès des mainteneurs gentoo ? Dans l'idéal, ils pourraient souscrire et recevoir un mail à chaque mise à jour upstream.

    • [^] # Re: Souscription mail ?

      Posté par (page perso) . Évalué à 3.

      La plupart des ebuilds sont « bumpables » uniquement en les renommant (la version est déterminée par le nom de fichier).

      Si tu veux faire ça proprement tu te crée un overlay avec les copies.

      Sinon, ça n'a pas grand intérêt pour un utilisateur, sauf si tu veux absolument passer aux dernières versions sans qu'elles soient passées par des phases de test / stabilisation.

      DLFP >> PCInpact > Numerama >> LinuxFr.org

      • [^] # Re: Souscription mail ?

        Posté par . Évalué à 2.

        Bon ok je viens de surmonter ma flemme et créer un PORTDIR_OVERLAY pour avoir x11-misc/zim-0.50. En fait je voulais dire que ce serait encore mieux si un post apparaissait dans la planète gentoo (les titres étant repris en page d'accueil gentoo.org), de façon que les mainteneurs souscrivent à d'éventuelles alertes mails. Plusieurs dizaines de mainteneurs maintiennent plusieurs dizaines (voir centaines) de paquets chacun, je comprends qu'ils en oublient certains de temps en temps. Ce serait d'autant plus utile si freshmeat vient à disparaitre[1].

        [1] https://linuxfr.org/users/psychofox/journaux/la-fin-de-freshmeatnet

        • [^] # Re: Souscription mail ?

          Posté par (page perso) . Évalué à 2.

          J'ai posté sur la ml gentoo-dev et ai discuté avec quelques devs sur #gentoo-sunrise.

          Il est prévu d'ajouter de quoi s'inscrire, et surveiller ses/des paquets, mais pas tout de suite par manque de temps. A noter que si quelqu'un veut s'y essayer avant moi, je serais ravis d'en discuter et d'aider à l'implémentation.

          En attendant, en cas de paquet pas à jour, le mieux est de poster en bug sur bugs.gentoo.org, et de rajouter les herd/maintainers en CC (et foutre un lien vers euscan dans le rapport de bug :p).

Suivre le flux des commentaires

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