Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Python

R-autoreview

Pierre-Yves Chibon

source.png

A script to help to review R packages

Un script pour aider à faire des revues de paquets R

English version

There has been a bunch of new R review submitted to the redhat Bugzilla lately and I have been doing some.

R is easy to package (R2spec being of some help on that) and quite boring to review. The package needs to follow the guidelines but after that besides the license, potential warning at build time and the dependencies there isn't much to check.

So in order to make my life easier I have written a small script that automates a number of steps for me.

There is what it does from a srpm:

  • check for the latest version
  • download the src.rpm
  • install the src.rpm
  • download sources
  • sha1sum of the sources
  • sha1sum of the sources from src.rpm
  • check that R-core is in the Requires line
  • check that R-devel is in the BuildRequires line
  • check that tex(latex) is in the BuildRequires line
  • check that %dir */R/library/%{packname} is present
  • check that %doc concerns at least doc, html, DESCRIPTION, NEWS and print the other
  • check the %install
  • check that there is coherence between noarch and datadir
  • check that there is not both datadir and libdir in a spec
  • build locally the rpm and run rpmlint on them
  • start a build on koji for the src.rpm

This output looks like this:

$ python Scripts/R-autoreview.py -s R-caTools-1.10-2.fc12.src.rpm * Latest version packaged
Target is already in the folder, no need to re-download it 
e9f393dbfe3928448ccdc40dd011987d73acce9b  caTools_1.10.tar.gz
e9f393dbfe3928448ccdc40dd011987d73acce9b  /home/pierrey/rpmbuild/SOURCES/caTools_1.10.tar.gz
* sha1sum are equals
* All required Requires are present
! R-core is present more than once
* All required BuildRequires are present
* There is 1 %dir
  %dir is OK
* There is 2 %doc
  %doc is OK
* The rpm installed in _libdir
* The rpm seems to have the required element in %install
* The rpm uses %{_libdir} and is arch
rpmbuild -ba /home/pierrey/rpmbuild/SPECS/R-caTools.spec > R-caTools.spec-build.log 2>&1 
* Build properly under 2.6.33.3-85.fc13.x86_64
* rpmlint:
R-caTools.src: W: spelling-error %description -l en_US cumsum -> cum sum, cum-sum, cums um
R-caTools.x86_64: W: spelling-error %description -l en_US cumsum -> cum sum, cum-sum, cums um
3 packages and 0 specfiles checked; 0 errors, 2 warnings. 
Scratch build on koji for target f14
* Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2184735
  0 free  0 open  3 done  0 failed
  2184735 build (dist-f14, R-caTools-1.10-2.fc12.src.rpm) completed successfully
   TODO:
* Check the sources for license
* Check the build, log for Warning & co

This script is available at: http://pingou.fedorapeople.org/R-autoreview.py

R2rpm on cran

Pierre-Yves Chibon

Building cran RPM via R2rpm

Construire des RPMs du cran avec R2rpm

English format

Using the PACKAGES file from the CRAN I was able to generate a list of 670 packages that do not depend on anything else than R.

This morning I ran R2rpm on the first 100, it took around 3h and there are the results:

89 packages built
['ADGofTest', 'AMORE', 'AlgDesign', 'Animal', 'BGSIMD', 'BMN', 'BPHO', 'BayesValidate', 'Bhat', 'BiasedUrn', 'Biodem', 'Bolstad', 'Bolstad2', 'BootCL', 'CAVIAR', 'CCP', 'CDFt', 'CHsharp', 'CORElearn', 'CTT', 'ClinicalRobustPriors', 
'ComPairWise', 'CompetingRiskFrailty', 'ConvCalendar', 'CreditMetrics', 'CvM2SL1Test', 'CvM2SL2Test', 'DEA', 'DEMEtics', 'DEoptim', 'DTDA', 'DTK', 'Davies', 'Defaults', 'DiversitySampler', 'EMJumpDiffusion', 'EbayesThresh', 
'ElectroGraph', 'ExPD2D', 'FBN', 'FITSio', 'FKBL', 'FNN', 'Flury', 'GPArotation', 'GWRM', 'GeneF', 'GillespieSSA', 'HAPim', 'HI', 'HMM', 'HMR', 'ISOcodes', 'Imap', 'Iso', 'JADE', 'JudgeIt', 'Kendall', 'LDtests', 'LIStest', 'LearnBayes', 
'LearnEDA', 'LogitNet', 'LowRankQP', 'MAMSE', 'MCE', 'MKLE', 'MLDA', 'MLEcens', 'MMG', 'MMIX', 'MPV', 'MSVAR', 'MTSKNN', 'ModelGood', 'Multiclasstesting', 'NMFN', 'NORMT3', 'OPE', 'ORIClust', 'ORMDR', 'Oarray', 'OrdMonReg', 
'PBSddesolve', 'PLIS', 'POT', 'PSAgraphics', 'Peaks', 'PearsonICA']

11 packages failed
['BioStatR', 'BoSSA', 'BradleyTerry', 'BradleyTerry2', 'CPE', 'Cairo', 'FracSim', 'GDD', 'KFAS', 'MImix', 'OAIHarvester']

Damn this is good ! :-)

R2spec / R2rpm

Pierre-Yves Chibon

rpm.pngsource.png

New version of R2spec in the pipes

Une nouvelle version de R2spec dans les tuyaux

English version

There is a new version of R2spec in the pipes, this version fixes some bugs and introduces some new features. The main of these features is the presence of R2rpm now.

R2rpm generate the complete rpm directly from a url, the sources or simply the name of the package. It builds the package twice, once to determine the %file section and once to generate the RPM.

I fixed the length of the %description so that it is not bigger than the mandatory 75 characters, the summary is also corrected if it ends with a dot.

Tonight I have been playing with this new version, I was able to generate in the fly a bit more than 70 RPMs for R libraries in just few minutes (ok maybe it tooks a couple of hours :-)).

All the RPMs work, there are not rpmlint compliant so there would need more work if we want to integrate them into the repository but it is a good basis.

Something that I still want to do before to release officially the version 3.0.0 is the possibility to build the dependencies of a given package. Basically, this would allow to build RPM for one package and all the packages of which it depends.

For those who would like to test you can find the source, srpm and rpm in https://fedorahosted.org/releases/r/2/r2spec/ (latest release so far 3.0.0-0.4).

Do not hesitate to test it and report any issue you find in it :-)

Hope you like it !

Un petit script d'installation/mise à jour pour flashplayer

Mehdi Bahri

Je l'avoue, j'utilise Adobe flashplayer. Oui je sais j'ai honte, je devrais utiliser swfdec ou gnash mais depuis que la version alpha du plugin 64bits fonctionne plutôt bien, j'ai succombé à la tentation de profiter des sites avec du contenu flash 10 :)" class="smiley

Comme tout geek qui se respecte, j'ai mon côté fainéant qui me pousse à par exemple, faire confiance à un gestionnaire de paquets pour la mise à jour des logiciels installés sur mon ordinateur, sauf que cette version alpha n'est pas empaquetée :(" class="smiley Alors plutôt que de passer voir régulièrement sur le site d'Adobe pour voir si une nouvelle version est sortie, la télécharger, installer manuellement le tout après avoir supprimé l'ancien plugin j'ai ouvert mon terminal, lancé Vim et Firefox pointé sur la doc officielle Python et codé un petit programme qui s'occupe des taches suivantes :

  • Vérifie si le plugin est déjà installé et le supprime (ou vous demande de supprimer le rpm)
  • Détermine automatiquement depuis la page d'Adobe le lien de téléchargement de la dernière version du plugin
  • Télécharge l'archive
  • L'extrait
  • Installe le nouveau plugin pour Mozilla Firefox

Par contre il n'est pas capable de vous dire si vous avez déjà la dernière version, le but étant juste de le lancer une fois tous les deux mois pour mettre à jour le truc :D

Par ailleurs : pensez à désinstaller le plugin swfdec ou gnash avant de tester Flashplayer 64bits ils risqueraient d'entrer en conflit.

Télécharger le script

Dépendances : Rien qui ne soit pas dans la lib standart de Python ou sur un système Fedora normal.

Un petit script d'installation/mise à jour pour flashplayer

Mehdi Bahri

Je l'avoue, j'utilise Adobe flashplayer. Oui je sais j'ai honte, je devrais utiliser swfdec ou gnash mais depuis que la version alpha du plugin 64bits fonctionne plutôt bien, j'ai succombé à la tentation de profiter des sites avec du contenu flash 10 :)" class="smiley

Comme tout geek qui se respecte, j'ai mon côté fainéant qui me pousse à par exemple, faire confiance à un gestionnaire de paquets pour la mise à jour des logiciels installés sur mon ordinateur, sauf que cette version alpha n'est pas empaquetée :(" class="smiley Alors plutôt que de passer voir régulièrement sur le site d'Adobe pour voir si une nouvelle version est sortie, la télécharger, installer manuellement le tout après avoir supprimé l'ancien plugin j'ai ouvert mon terminal, lancé Vim et Firefox pointé sur la doc officielle Python et codé un petit programme qui s'occupe des taches suivantes :

  • Vérifie si le plugin est déjà installé et le supprime (ou vous demande de supprimer le rpm)
  • Détermine automatiquement depuis la page d'Adobe le lien de téléchargement de la dernière version du plugin
  • Télécharge l'archive
  • L'extrait
  • Installe le nouveau plugin pour Mozilla Firefox

Par contre il n'est pas capable de vous dire si vous avez déjà la dernière version, le but étant juste de le lancer une fois tous les deux mois pour mettre à jour le truc :D

Par ailleurs : pensez à désinstaller le plugin swfdec ou gnash avant de tester Flashplayer 64bits ils risqueraient d'entrer en conflit.

Télécharger le script

Dépendances : Rien qui ne soit pas dans la lib standart de Python ou sur un système Fedora normal.

Un petit script d'installation/mise à jour pour flashplayer

Mehdi Bahri

Je l'avoue, j'utilise Adobe flashplayer. Oui je sais j'ai honte, je devrais utiliser swfdec ou gnash mais depuis que la version alpha du plugin 64bits fonctionne plutôt bien, j'ai succombé à la tentation de profiter des sites avec du contenu flash 10 :)" class="smiley

Comme tout geek qui se respecte, j'ai mon côté fainéant qui me pousse à par exemple, faire confiance à un gestionnaire de paquets pour la mise à jour des logiciels installés sur mon ordinateur, sauf que cette version alpha n'est pas empaquetée :(" class="smiley Alors plutôt que de passer voir régulièrement sur le site d'Adobe pour voir si une nouvelle version est sortie, la télécharger, installer manuellement le tout après avoir supprimé l'ancien plugin j'ai ouvert mon terminal, lancé Vim et Firefox pointé sur la doc officielle Python et codé un petit programme qui s'occupe des taches suivantes :

  • Vérifie si le plugin est déjà installé et le supprime (ou vous demande de supprimer le rpm)
  • Détermine automatiquement depuis la page d'Adobe le lien de téléchargement de la dernière version du plugin
  • Télécharge l'archive
  • L'extrait
  • Installe le nouveau plugin pour Mozilla Firefox

Par contre il n'est pas capable de vous dire si vous avez déjà la dernière version, le but étant juste de le lancer une fois tous les deux mois pour mettre à jour le truc :D

Par ailleurs : pensez à désinstaller le plugin swfdec ou gnash avant de tester Flashplayer 64bits ils risqueraient d'entrer en conflit.

Télécharger le script

Dépendances : Rien qui ne soit pas dans la lib standart de Python ou sur un système Fedora normal.

Trac, création d'un Egg et ajout de plugin

Guillaume Kulakowski

Comme pas mal d'applications, Trac possède une gestion des plugins. La façon la plus facile d'ajouter un plugin est de passer par RPM (il profitera alors à toutes les instances de Trac) mais malheureusement tous les plugins disponibles sur Trac Hacks ne sont pas packagés en RPM. Depuis sa version 0.10 Trac dispose d'une interface d'administration en plugin, plugin qui a été intégré dans le core de Trac 0.11.

Depuis cette interface d'administration, il est possible d'ajouter un plugin packagé sous la forme d'un Eggs. Malheureusement l'Egg étant dépendant des versions de Python et de Trac, il est conseillé de le construire à partir de la machine cible.

Prenons l'exemple du plugin tracwikitopdfplugin et du serveur spb-box, le serveur hébergeant llaumgui.com, qui est une RHEL 5.3 avec Trac 0.11 et Python 2.4. Il faudra au préalable installer python-devel et python-setuptools :

llaumgui@spb-box ~/python> unzip tracwikitopdfplugin-r5654.zip
llaumgui@spb-box ~/python> cd tracwikitopdfplugin/0.11/
llaumgui@spb-box ~/python/tracwikitopdfplugin/0.11> python setup.py bdist_egg

Il n'y a plus qu'a récupérer le .egg dans le répertoire dist et l'envoyer sur le serveur au travers de l'interface d'administration. Ensuite un petit redémarrage du serveur apache et me voila avec un tracwikitopdfplugin à jour sous la dernière version.

Mes débuts avec Python

Guillaume Kulakowski

Récemment, j'ai entrepris d'apprendre un nouveau langage de programmation. Pour le choix du langage, j'avais plusieurs prérogatives :

  • Un langage open-source
  • Un langage permettant des IHM (PHP-GTK n'est pas satisfaisant en mon sens) mais aussi des scripts (pour le côté sysadmin)
  • Un langage multi-plateforme

C'est donc naturellement que je me suis lancé dans l'apprentissage du Python qui, en plus de remplir toutes ces conditions, est très implanté au sein du projet Fedora et de sa communauté.

Pour cela, j'ai commencé par l'achat de "Programmation Python" de Tarek Ziadé aux éditions Eyrolles, qui est à la fois simple, poussé et pas trop chiant à lire (ce qui est rare pour ce genre de bouquin ;-)).

Ensuite pour rester fidèle à mon IDE favori, j'ai nommé Eclipse, je l'ai enrichi de l'extension Pydev me permettant de développer en php, en Java et maintenant en Python, le tout depuis le même éditeur.

Pydev

J'en ai aussi profité pour tester Poedit qui est hallucinant de simplicité. Poedit parcours les fichiers sources (*.py) à la recherche des strings à traduire (utilisant lang.gettext). Une fois ces derniers trouvés, il les rajoute au fichier .po et vous permet même de les traduire automatiquement. Enfin, lors de la sauvegarde du .po, le .mo est automatiquement généré. Bref, l'outil idéal à tout projet internationalisé.

Pour faire des IHM riches, en GTK (via la librairie PyGTK), je teste en ce moment Gazpacho & Glade. Il est vrai qu'utiliser un designer est bien plus rapide que le codage à la main mais comme les éditeurs de code HTML en WYSIWYG, cela ne me plait guerre : j'aime avoir le contrôle et je préfèrerais me retrouver avec des *.py plutôt que des *.glade...

Pour finir, si tout comme moi vous désirerez apprendre le Python, je vous glisse quelques liens forts pratiques :

Sortie de Python 2.6

Mehdi Bahri

C'est il y a trois jours jour pour jour qu'a été publiée cette nouvelle et probablement dernière version majeure de la branche 2 du langage de développement Python. Avec Python 3 (Python 3000) prévu pour dans environ 1 mois, cette nouvelle release s'inscrit dans une démarche de transition vers le nouveau langage que sera Python 3000.

Et oui, plus qu'une version 3, c'est un à nouveau Python que l'on va avoir droit, apportant son lot de nouveautés, d'améliorations, de changements, de modules et fonctions retirées etc... Alors autant se préparer dès maintenant en corrigeant les erreurs qui pourraient rendre les applications Python 2.x non fonctionnelles avec Python 3000.

La sortie de l'interprêteur CPython et de Python en version 2.6 nous permet de nous y mettre doucement, d'abord l'option -3 qui permet d'indiquer en avertissements à l'éxécution les problèmes de compatibilités (map -> functools.map par exemple) et aussi en supprimant de la bibliothèque standart des modules dépréciés avec la 2.5 et en dépréciant certains modules tels md5 et sha1 remplacés depuis un temps par la hashlib. L'utilitaire 2to3 s'ajoute pour convertir les programmes Python 2 en 3 pour peu qu'ils soient exempts d'erreurs ou de mauvaises pratiques de la part du codeur, ce qui parfois n'est pas évident.

Enfin une nouvelle instruction nommée with simplifiera l'écriture de code de gestion d'erreurs (les try except else finally) exemple la.

Pour ce qui est de la documentation, je ne vais pas m'étendre beaucoup sur le sujet, cependant il est à remarquer que cette dernière n'utilise plus LaTeX mais Sphinx comme le témoigne le pied de page de la doc :

© Copyright 1990-2008, Python Software Foundation. Last updated on Oct 04, 2008. Created using Sphinx 0.5.

Pour ce qui est de l'intégration de cette version dans la Fedora 9 ou 10 je n'ai pour l'instant aucune information dessus mais j'écrirai un billet lorsque j'en aurai (ou pas).

Bon Pythonnage !

Sortie de Python 2.6

Mehdi Bahri

C'est il y a trois jours jour pour jour qu'a été publiée cette nouvelle et probablement dernière version majeure de la branche 2 du langage de développement Python. Avec Python 3 (Python 3000) prévu pour dans environ 1 mois, cette nouvelle release s'inscrit dans une démarche de transition vers le nouveau langage que sera Python 3000.

Et oui, plus qu'une version 3, c'est un à nouveau Python que l'on va avoir droit, apportant son lot de nouveautés, d'améliorations, de changements, de modules et fonctions retirées etc... Alors autant se préparer dès maintenant en corrigeant les erreurs qui pourraient rendre les applications Python 2.x non fonctionnelles avec Python 3000.

La sortie de l'interprêteur CPython et de Python en version 2.6 nous permet de nous y mettre doucement, d'abord l'option -3 qui permet d'indiquer en avertissements à l'éxécution les problèmes de compatibilités (map -> functools.map par exemple) et aussi en supprimant de la bibliothèque standart des modules dépréciés avec la 2.5 et en dépréciant certains modules tels md5 et sha1 remplacés depuis un temps par la hashlib. L'utilitaire 2to3 s'ajoute pour convertir les programmes Python 2 en 3 pour peu qu'ils soient exempts d'erreurs ou de mauvaises pratiques de la part du codeur, ce qui parfois n'est pas évident.

Enfin une nouvelle instruction nommée with simplifiera l'écriture de code de gestion d'erreurs (les try except else finally) exemple la.

Pour ce qui est de la documentation, je ne vais pas m'étendre beaucoup sur le sujet, cependant il est à remarquer que cette dernière n'utilise plus LaTeX mais Sphinx comme le témoigne le pied de page de la doc :

© Copyright 1990-2008, Python Software Foundation. Last updated on Oct 04, 2008. Created using Sphinx 0.5.

Pour ce qui est de l'intégration de cette version dans la Fedora 9 ou 10 je n'ai pour l'instant aucune information dessus mais j'écrirai un billet lorsque j'en aurai (ou pas).

Bon Pythonnage !

Sortie de Python 2.6

Mehdi Bahri

C'est il y a trois jours jour pour jour qu'a été publiée cette nouvelle et probablement dernière version majeure de la branche 2 du langage de développement Python. Avec Python 3 (Python 3000) prévu pour dans environ 1 mois, cette nouvelle release s'inscrit dans une démarche de transition vers le nouveau langage que sera Python 3000.

Et oui, plus qu'une version 3, c'est un à nouveau Python que l'on va avoir droit, apportant son lot de nouveautés, d'améliorations, de changements, de modules et fonctions retirées etc... Alors autant se préparer dès maintenant en corrigeant les erreurs qui pourraient rendre les applications Python 2.x non fonctionnelles avec Python 3000.

La sortie de l'interprêteur CPython et de Python en version 2.6 nous permet de nous y mettre doucement, d'abord l'option -3 qui permet d'indiquer en avertissements à l'éxécution les problèmes de compatibilités (map -> functools.map par exemple) et aussi en supprimant de la bibliothèque standart des modules dépréciés avec la 2.5 et en dépréciant certains modules tels md5 et sha1 remplacés depuis un temps par la hashlib. L'utilitaire 2to3 s'ajoute pour convertir les programmes Python 2 en 3 pour peu qu'ils soient exempts d'erreurs ou de mauvaises pratiques de la part du codeur, ce qui parfois n'est pas évident.

Enfin une nouvelle instruction nommée with simplifiera l'écriture de code de gestion d'erreurs (les try except else finally) exemple la.

Pour ce qui est de la documentation, je ne vais pas m'étendre beaucoup sur le sujet, cependant il est à remarquer que cette dernière n'utilise plus LaTeX mais Sphinx comme le témoigne le pied de page de la doc :

© Copyright 1990-2008, Python Software Foundation. Last updated on Oct 04, 2008. Created using Sphinx 0.5.

Pour ce qui est de l'intégration de cette version dans la Fedora 9 ou 10 je n'ai pour l'instant aucune information dessus mais j'écrirai un billet lorsque j'en aurai (ou pas).

Bon Pythonnage !

Hashme 4 en développement

Mehdi Bahri

Ca faisait longtemps qu'aucun article de programmation n'a été publié et j'ai le plaisir d'annoncer que mon programme Hashme (disparu des ondes depuis mon dernier changement forcé d'hébergeur) voit sa version 4 en développement.

Cette v4 devrait représenter une assez grande évolution pour le programme, de nombreux changements ont été faits dans sa structure même puisqu'il a été entièrement réécrit !

  1. L'algorithme de chargement des fichiers a été optimisé
  2. Le calcul se fait maintenant sur des threads séparés (fonction désactivable sur demande de l'utilisateur)
  3. Le programme devrait profiter de la présence de GIO pour abstraire la gestion des fichiers et donc ouvrir de la même façon un fichier en FTP qu'en local (fonction envisagée)
  4. L'interface graphique devrait être programmée en Qt si possible mais cela demande l'apprentissage de cette bibliothèque et donc un rallongement du délai d'élaboration.
  5. Une interface en Tkinter est également envisagée pour parfaire l'aspect multiplateforme sans demander l'installation de Qt.

J'espère trouver de temps de m'y mettre à fond, certaines parties ont déjà été réécrites, reste maintenant le point des interfaces graphiques et aussi de virtual file system, je réfléchis particulièrement sur la nécessité de cette fonction qui risque de compliquer encore plus le déploiment sur des plateformes non Linux/Unix, de plus GIO est très lié à GNOME et Gtk et bien que j'adore cet environnement de Bureau et que j'ai souvent utilisé la Gtk je pense me tourner vers Qt ce qui ferait au final assez peu homogène et demanderait la présence des Gnome libs et autres + Qt ce qui représente beaucoup :D