Finally, 4 years and 5 months after my first contibution to GNOME (the JoinGnome page of the wiki), I did my first commit in the GNOME repositories. It's been quite a nice trip since these old days. I finally applied to an account, so you won't hear me again telling you "no, I can't commit my patch, I don't have commit rights". I hope I won't f*ck things up, especially with my little git knowledge. Now let me grow these stats !
Tag - GNOME
dimanche 14 juin 2009
First commit!
Par liberforce le dimanche 14 juin 2009, 04:29 - Computers / Informatique
mardi 5 mai 2009
Mandriva : thumbs up, GNOME : thumbs down
Par liberforce le mardi 5 mai 2009, 04:25 - Computers / Informatique
Mandriva 2009 Spring has been out for a few days now. Congratulations to
everyone involved ! I did my upgrade this week end, all in graphical mode with
mdkapplet. I had some bad luck, which was
fortunately quickly repaired. What you need to know is that using a 23MB /boot
partition is a bad idea, it's way too small if you keep a few kernels around.
Once things were sorted out, I could enjoy the gorgeous design (Yay for that
tribal-penguin
wallpaper !), and everything went fine.
The new GNOME mixer replaced the old one automagically, and It works great. The only problem I have with it is that it's a notification icon and not an applet anymore. I hope this will change : notification area is not made for permanent things. And I now am unable to have the mixer react to a scroll button action if I put it in the corner of the screen and move my mouse at it. Fitt's law failure. Being able to change the volume without the need to power on my screen was a feature I liked.
Another sad news for GNOME is the choice of Mandriva to stick to navigational nautilus by default instead of GNOME default's spatial nautilus. I like spatial nautilus. Yep. But what sucks is that it was made the defaut, but a major defect was never corrected : left an middle click comportment in opening a new folder should have been inverted. This would have helped remove this bad reputation of "Windows 95"-like mode which does nothing except open a lot of windows. Having to double-middle click to avoid cluttering my screen with windows is also what led me to switch to single click policy. GNOME is supposed to be easy to use even for the beginners. But real beginners have already a hard time to double click without moving the mouse, so asking them to double-middle click is way too difficult. Really. I find it difficult for me and I don't exactly define me as a beginner. Oh, and try that on a laptop or a netbook, you'll love it, especially on those netbooks like the first Acer Aspire One with one button on each side of the touchpad...
One good thing however is the new description for the session manager: I totally agreed with vuntz when he told me that normal people don't know what a session is. I still remember the first time, being a bit lost and unable to guess what that stuff was supposed to do from its name in the menus.
Also, speedboot seems to work nicely : I've bootcharted my system before and
after migration, and gdmgreeter now appears in 20s instead of
26s.
All in all, I'm quite happy with what I see. This time the rough edges are not that rough. This Mandriva release really makes me feel at home. I'll be happy to install it at the next install parties in Paris ;-).
jeudi 11 décembre 2008
Ekiga's saving the world...
Par liberforce le jeudi 11 décembre 2008, 21:25 - Computers / Informatique
Snark, ekiga's been saving a bit of the world for one year now, since GTK 2.10 migration ;-)
jeudi 4 décembre 2008
GNOME Goals, here I come !
Par liberforce le jeudi 4 décembre 2008, 03:02 - Computers / Informatique
A few weeks ago, some new GNOME Goals were open. I've worked on the guidelines of some of them. Some of these goals are paving the road towards GNOME 3.0. My first task has been to detect the deprecated GLib symbols used within the GNOME stack, to let other people submit simple patches. This is a nice way to have newcommers get into the GNOME stuff. This work included basic grep searching in C/C++ source files of each GNOME module, in order to find these symbols.
Tonight, I've been working on using jhbuild and compiling the whole stuff disabling deprecated Glib symbols, and forbiding gtk/gdk/gdk-pixbuf sub-headers direct inclusion. This is easy, but lenghty work. Especialy compiling the whole GNOME stack. gnome-vfs in particular was a pain in the ass to migrate, because it heavily relied on sub-headers inclusion.
Expect a few bug reports and patches until the end of the week. Now if only I could have commit rights... Does anyone know who I'm supposed to contact for this ?
If you want to give it a try too, or just want to check progress, just add
this to your ~/.jhbuildrc file
makeargs='CFLAGS="-g -O2 -DG_DISABLE_DEPRECATED
-DG_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES
-DGTK_DISABLE_SINGLE_INCLUDES"'
The next step towards world domination will be the removal of deprecated GTK+ symbols, wich is longer and more complicated, as it required more testing.
mardi 14 octobre 2008
Level up
Par liberforce le mardi 14 octobre 2008, 11:33 - Computers / Informatique
Merci splinux pour les nouveaux super-pouvoirs ;-) . Ça y est, je suis passé du statut de modérateur à administrateur sur les forums francophones GNOME. Par contre j'aimerais bien savoir pourquoi ils sont aussi déserts O_o ? Les gens traînent sur les forums de distributions ?
samedi 9 août 2008
Go players ?
Par liberforce le samedi 9 août 2008, 11:04 - Gossip / Blabla
samedi 12 juillet 2008
GUADEC: au revoır Istanbul !
Par liberforce le samedi 12 juillet 2008, 23:17 - Life / Vie quotidienne
Hé bien, ces dernıers jours ont fılé comme le vent ! Moı quı voulais faıre un poınt régulıer... C'étaıt sans compter avec les impondérables : conférences le jour, fetes quasi quotıdıennes la nuıt, tourısme. La semaıne a laıssé des traces sur l'organısme ! Alors Aurore et moı partons nous refaıre une santé sur l'ıle de Bozcaada pendant quelques jours.
Sur une poınt technıque, les conférences étaıent assez ınégales. Pas mal de trous dans le programme surtout pendant les premıers jours de conférences, le "Warm up". En revanche, les keynotes ont été tres réussıes. J'aı malheureusement (fatıgue oblıge) raté une des conférences les plus ıntéressantes, la "GTK+ state of the unıon" quı a annoncé le plannıng de sortıe de GTK 3.0". Zut. Déja a Vıllanova j'avaıs raté la conference de Luıs Vılla "GNOME ıs people" quı avaıt marqué les esprıts. Bon, je doıs etre maudıt.
Voıcı donc pour moı le top 5 de ce GUADEC a Istanbul:
- Excellente ambıance, excellent accueıl par les organısateurs locaux et par les stamboulıotes en général
- La croısıere nocturne avec sandwıches et open bar organısée par Collabora, et la soırée sur le toıt de l'unıversıté en bord de mer...
- La keynote sur l'utılısabılıté
- La vılle est magnıfıque et ıl faudraıt bıen plus de temps pour en découvrır toutes les rıchesses...
- La nouvelle clé Mandrıva Flash GNOME spécıale GUADEC, et tous les efforts déployés par Fred Crozat pour rattrapper les ımpondérables ;-)
Et voıcı mon flop 5 des trucs que j'aı trouvé ratés :
- La soırée de cloture organısée par Google. Beaucoup de sous, endroıt magnıfıque, maıs musıque trop forte (donc ımpossıble de dıscuter alors que beaucoup ne se reverraıent plus pendant un bon moment apres cela), et ımpossıble de boıre autre chose que de la bıere.
- Les mauvaıs restos quı fılent la courante (bon, ok, c'est pas la faute du GUADEC ça)
- Les ıntermınables dıscussıons sur gıt/mercurıal/bazaar etc.
- Le marteau pıqueur sous les fenetres de l'hotel a 1h du matın toute la semaıne (mercı les boules quıes - ne partez pas sans elles)
- Le choıx des Canarıes pour l'annee prochaıne (la Fınlande auraıt certes été plus fraıche, maıs plus orıgınale et rıche culturellement...)
mardi 8 juillet 2008
Fin de la premiere journée
Par liberforce le mardi 8 juillet 2008, 00:50 - Life / Vie quotidienne
Finalement tout s'est bien passé aujourd'hui. Nous sommes un peu plus familiarisés avec le réseau de tranports et l'Akbil. C'est une sorte de toute petite cuillere en plastique qui sert de carte de transports rechargeable ici. Arrivés au GUADEC Pascal Terjan nous a présentés a Tuçe et Elvin, deux charmantes stambouliotes avec quı nous avons dıscuté tout l'apres midi (ainsi qu'avec Christian, un allemand de chez Imendıo).
En effet cette année, le GUADEC c'est assez léger coté conférences... Il y a pas mal de "free slots", c'est a dıre de cases vides dans le plannıng. Alors on en a profıté pour refaıre le monde entre européens, et ça a été ma foi tres enrichissant.
Ah, ceux auı ne sont pas venus cette année regretteront peu etre le magnıfıque T-shirt commémoratıf, ainsi que la malette pour PC portable (la classe - c'est ballot, j'aı pas de portable).
Ce soir étaıt organisée la premiere beuverie. Attention, l'alcool n'est pas donné. En demandant une caipirinha au bar, je suis un peu passé pour un extra terrestre, mais elle m'a été facturée au prix fort : 20 YTL (environ 10 €). J'ai profıté de la soirée pour prendre rendez vous avec Reınout pour discuter un peu utilisabilité des drakxtools.
Le retour s'est fait en grande partie a pıed, car vu l'heure seul le funıculaire étaıt encore accessible. Demaın les conférences ne m'ıntéressents pas trop, je vaıs en profıter pour faıre un peu de tourisme avec ma chérie...
PS: ça y est le marteau piqueur pour les travaux du tramway est de retour... Oui, a 01h50 du matın (sic).
lundi 7 juillet 2008
En dırect d'Istanbul
Par liberforce le lundi 7 juillet 2008, 11:07 - Life / Vie quotidienne
Et ouı, c'est le premıer jour du GUADEC ici a Istanbul... Excusez l'orthographe je rısque de mettre un moment a m'habıtuer au clavıer turc... Je suıs arrive hıer: levé a 5h00, arrıvé a 15h00 heure locale, ce fut donc une rude journée. Apres une pause toılettes a l'aéroport, j'aı retrouvé par hasard Lucas Rocha, Chrıstopher Blızzard, Reınout van Shouten (je suıs sur de me gourer sur l'orthographe de son nom) et d'qutres encore.
Hıer, premıere balade nocturne avec Aurore. Istanbul est une vılle magnıfıque sur le plan hıstorıque et les mosquées sont nombreuses et assez ımpressıonnantes. La balade s'est fınıe par un retour en taxı apres 6km de marche: le pont que l'on voulaıt emprunter pour rentrer n'emmenaıt pas la ou on le pensaıt !
La nuıt ausı a été rude a l'hotel Adora: travaux du tramway pendant une bonne partıe de la nuıt, juste sous nos fenetres. Vıve le marteau piqueur a 1h00 du matın ! Bon, sur ce, je fıle, dırectıon l'offıce du tourısme, hıstoıre de récupérer des plans et évıter de se paumer a nouveau ! Ensuıte, on ıra au GUADEC pour l'ınscrıptıon et les premieres conferences. La balade d'hıer nous a permıs de passer devant l'université ou ont lıeu les conferences, maıs je ne saıs pas comment y accéder en transports en commun. En tout cqs le lıeu est tres agréable, en bord de mer. On a meme crus que c'étaıt un bar au départ aue l'on voyait !
mardi 22 avril 2008
Mandriva positioning on the Linux market
Par liberforce le mardi 22 avril 2008, 00:44 - Computers / Informatique
Here's an insightful vision of the current Linux distro's market, from Dave Neary, former member of the GNOME foundation board.
I don’t want to pick on Mandriva, but it’s true that right now they’re aiming for the general consumer, the enterprise desktop and the enterprise server, and are not competing particularly well with the front-runners in any of those markets.
And I agree with him. Even if there was some good progress on the general consumer market, the short/mid/long-term strategy is still unclear...
PS: I also noticed that the free (as in beer) mention about Mandriva One disapeared from the french download page... I'm pretty sure it was there before...
jeudi 21 février 2008
Lazyweb: of the good usage of GSource...
Par liberforce le jeudi 21 février 2008, 19:19 - Computers / Informatique
I'm currently writing an application that has two backends.
- In live mode, I acquire images from several cameras.
- In replay mode, I read pre-recorded images from the hard drive.
As I want to switch between these 2 backends transparently, I thought of using two implementations of a custom GSource. It seemed to be what I need: a way to send and react to asynchonous events. In my case, I want to notify the application that the images are in the memory, and ready to be processed.
However I'm a still a bit puzzled about how GSource works, and I found the documentation a bit obscure to people unfamiliar with the arcanes of the glib main loop. The timeout and idle sources don't give me enough information. The other examples use polling of file descriptors, but I have nothing to poll here. I've even checked out The Official GNOME 2 Developper's Guide, but no GSource there. I had not much result in the gtk-apps-devel mailing list, nor the french GTK forums.
I'm at the point where I'm not even sure that GSource meets my needs, but I wanted to avoid as much as possible exposing the acquisition backend. There will be multi-threaded stuff for live acquisition (the cameras I'm using only provide a blocking API, sigh..), but they're not required for the replay mode.
Do you think a custom GSource is the way to go ? It seems it's the only way I can connect to glib's main loop to receive asynchronous events (excepted from timeout and idle sources). Could someone please explain me a bit in which case(s) using GSource is recommended ? Thanks for reading.
samedi 19 janvier 2008
Long time no blog...
Par liberforce le samedi 19 janvier 2008, 02:49 - Gossip / Blabla
J'ai de mon côté commencé les bonnes résolutions, comme par exemple mettre en application le principe de récompense. En gros, ceux qui font du bon boulot méritent une compensation. C'est le cas pour Jamendo, où je viens de faire mes premiers dons. Alors toi aussi cher lecteur, réfléchis bien à ces heures de musique dont tu as pu profiter gratuitement en 2007. Ne serait-ce pas le moment de mettre la main à la poche pour récompenser ceux que tu souhaites encourager ? Non, pas en envoyant un SMS surtaxé pour voter à la Star'Ac, mais en faisant un don à tes artistes préférés.
Quoi, tu n'as pas écouté de musique (pseudo) libre ? Dans ce cas, tu peux tout de même payer une bière à tes développeurs de logiciel libre préférés, ou bien aider à diffuser leur travail.
mardi 11 décembre 2007
Process wakeups on GNOME 2.18
Par liberforce le mardi 11 décembre 2007, 02:58 - Computers / Informatique
Learning from the past
Yesterday an old (1.5 year) blog entry of Ryan Lortie on cpu and battery consumption came to my mind. He tested some GNOME applications and saw that some of them caused way too many kernel wakeups, which prevents the CPU from entering in low consumption states. So, as just by curiosity (ang ecological concerns), I wanted to see if there's some improvements on this area on the GNOME desktop.
As Ryan talks about Ubuntu Dapper Drake in his post, I suppose he was testing ye old GNOME 2.14. As a comparison, I ran my tests on GNOME 2.18 under Mandriva 2007.1. I then will be able to compare the figures to GNOME 2.20 when I'll install Mandriva 2008.0 (I'm lacking some time for this at the moment).
Some stuff he pointed out:
gnome-power-manager wakes up twice per second to do something
battery applet wakes up once per second to do something
clock-applet wakes up once per second to update the time even when seconds aren’t shown
gajim wakes up 10+ times per second for some unknown reason
at-spi-registryd wakes up more like 20+ times a second (?!?)
gss seems to talk to x11 once per second (presumably to ask if anything has happened). i don’t understand why it has to do this so often.
I don't use some of the stuff he tested. So I tested gnome-power-manager, the clock applet and gnome-screensaver (gss) as he did.
The test method
A test that doesn't explain the test method is irrelevant. What I did is that I used strace for 10 seconds like Ryan did, but using an interesting option of strace (-c) to have a nice summary of the system calls that were used during the observation period. For example the gnome-screensaver process was spied using:
strace -c -p $(pidof gnome-screensaver) & sleep 10; killall
strace
Strace is attached to the spied process in the background. We then wait for 10 seconds and stop strace so that it can give us the amount of systems calls performed during this timeframe. The application were not being actively used while the test was performed, and I stopped mouse/keyboard input during the test, just waiting until it ended.
gnome-screensaver
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
1 ioctl
nan
0.000000
0
2
gettimeofday
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
3
total
We immediately can see that poll is still called once per second, so
either this is a bug that has not been corrected, or this can't really be
worked around.
Update: The previous numbers were wrong it seems (weird, I had tested it twice, but the numbers I get now are completely different). The problems reported by Ryan have already been corrected.
gnome-panel
With the seconds in the clock applet not displayed:
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
1 ioctl
nan
0.000000
0
2
gettimeofday
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
3
total
With the seconds in the clock applet displayed:
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
30 read
nan
0.000000
0
20 write
nan
0.000000
0
20 time
nan
0.000000
0
31 ioctl
nan
0.000000
0
62
gettimeofday
nan
0.000000
0
30 poll
nan
0.000000
0
10 stat64
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
203
total
It's easy to see that enabling the seconds on the applet causes an explosion of the number of calls. That's 3 poll calls per second ! Sound quite abnormal to me, especially the amount of other calls this option generated...
gnome-session
Looks fine.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
1 ioctl
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
1 total
devhelp
It was in the background, but there's still too many calls for an application that was not being used.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
11 read
nan
0.000000
0
1 write
nan
0.000000
0
32 ioctl
nan
0.000000
0
6
gettimeofday
nan
0.000000
0
11 poll
nan
0.000000
0
1 futex
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
62 total
gnome-terminal
Waaaay too many calls. We here have 4 poll calls/second. The blinking
cursor may be a cause (I'm aware a patch for this was made for OLPC). I also know Behdad once committed a patch adding a timer to
prevent gnome-terminal from trying to refresh too many times the screen. The
goal was to accelerate the display of information. Don't know if the extra
calls are related to this, however.
Update: ok, I must have been drinking, everything is
normal.
I tested the gnome-terminal that was running strace, so I was getting the calls
for executing strace... The good way is for example to test it from an xterm.
Another one like this and I jump out of the window.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
1 ioctl
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
1 total
mixer_applet2
The mixer applet is one of the worst offenders! This is a known bug which is being worked on. Hope to see this included in GNOME 2.22.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
99 99 read
nan
0.000000
0
169 ioctl
nan
0.000000
0
296
gettimeofday
nan
0.000000
0
169 poll
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
733 99 total
timer-applet
Even when not used, this applet does way too many calls... There's room for
improvement here.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
34 ioctl
nan
0.000000
0
67
gettimeofday
nan
0.000000
0
34 poll
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
135
total
trashapplet
Looks fine.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
1 ioctl
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
1 total
mdkapplet
Mandriva's memory-hungry updates surveillance applet seems to be CPU friendly...
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
2 ioctl
nan
0.000000
0
4
gettimeofday
nan
0.000000
0
1 poll
nan
0.000000
0
1 1 stat64
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
8 1 total
gnome-power-manager
Ryan saw gnome-power-manager wake up twice per second in GNOME 2.14. It seems things got worse, as I had it wake up thrice per second, on AC power.
% time seconds
usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
nan
0.000000
0
40 read
nan
0.000000
0
40 write
nan
0.000000
0
2 time
nan
0.000000
0
29 ioctl
nan
0.000000
0
53
gettimeofday
nan
0.000000
0
29 poll
------ ----------- ----------- --------- --------- ----------------
100.00
0.000000
193
total
Conclusion
Well, there's quite nothing to conclude. These numbers are just here so that people can easily test and compare with their GNOME version, and eventually find more culprits. I think I'll update them on each GNOME Release, so we can see if the plan to conquer the world with power-friendly software works out. Just as a remark, developers who use timers at the second scale should consider using the g_timeout_add_seconds call that was added in glib 2.14, as it allows to group processing of wakeup requests. So if your application can depend on glib 2.14, go for it.
lundi 26 novembre 2007
Tacle en règle (?)
Par liberforce le lundi 26 novembre 2007, 17:14 - Computers / Informatique
Si vous ne l'avez pas encore lu, lisez le dernier billet de Murray Cumming. J'attends. Bon, il semble qu'il y a réellement un problème entre ces deux là, et le fait que Jeff soit candidat au Foundation Board justifie un peu ce message, bien que la forme est assez "extrême". Ce qui est moins justifié c'est que Murray dit "des gens", sans qu'on sache combien ils sont à trouver que Jeff fait du mauvais boulot, et surtout, que les commentaires soient fermés (ce qui j'imagine va créer un droit de réponse par blog interposé).
Ma question : certains d'entre vous connaissent bien l'un ou l'autre (voire les deux) d'entre ces messieurs (Dodji, Vincent, les autres ?), avez vous un point de vue sur la question, un éclairage particulier ? N'étant pas membre, je n'ai pas le droit de vote à cette élection, donc sur ce plan là je suis neutre. Mais j'aimerais savoir comment l'abcès a pu grossir à ce point avant qu'il ne crève. Le logiciel libre ce n'est pas le monde des bisounours, certes, mais comment peut on en arriver là ? Que les propos de Murray soient justifiés ou pas, je suis choqué...
mercredi 30 mai 2007
Quoi de neuf docteur ?
Par liberforce le mercredi 30 mai 2007, 23:51 - Life / Vie quotidienne
Ensuite, toujours mes problèmes de redirection mail, dûs à ulimit.com, ce qui fait que je n'ai reçu aucune des réponses à mes questions... Je n'ai reçu aucun des mails envoyé sur cette adresse pendant 12 jours ! Bon, je suis allé voir les archives mail en ligne, mais c'est un peu lourd (impossible de répondre à un commentaire précis).
Ma copine s'est aussi installée à la maison, alors ça bouffe pas mal de temps (mais je ne m'en plains pas ;-) ).
Enfin, pas mal de boulot en ce moment. Mais comme c'est intéressant, je ne me plains pas. C'est d'ailleurs l'objet de mon prochain billet.
jeudi 24 mai 2007
Transmission, le client bittorrent pour GNOME
Par liberforce le jeudi 24 mai 2007, 23:53 - Computers / Informatique
Le mois dernier, Adam avait
brêvement parlé de Transmission, un
client bittorrent basé sur GTK. Commençant à être passablement échauffé par les
nombreuses imperfections de l'interface du client bittorrent officiel, je me
suis laissé tenter. Grand bien m'en a pris ! J'en suis presque à me demander
pourquoi il ne fait pas partie du bureau GNOME. D'ailleurs serait-ce possible,
ou le spectre de l'illégalité dans certains pays poserait-t-il problèmes.
Bref.
Si vous cherchez un client bittorrent sous GNOME, n'allez pas plus loin,
Transmission est celui qu'il vous faut !
Je vous rappelle donc comme il l'a
précédemment annoncé que
Transmission pour Mandriva 2007.1 est disponible dans la source
contrib/backports.
mardi 24 avril 2007
GNOME Goal: Install theme-friendly icons
Par liberforce le mardi 24 avril 2007, 19:34 - Computers / Informatique
The "Install
theme-friendly icons" GNOME goal is currently going on. This one had
previously been announced, and partially completed, but the guidelines were
buggy. So if you
are a brave hacker-wanabe, and you are interested in helping the GNOME Desktop
to improve its consistency, then here's a task for you !
Spread the word about this goal !
Hopefully, Brian Pepple has started
to squash these dirty bugs, but he definitely needs your help ! On the best
case, a simple 3 lines patch will be enough, so you can learn how to submit your first
patch. On the (other) best case, the whole task needs to be completed, and
you can then learn how to make an application behave nice with icon themes, so
that a theme can override the application's icon.
So thank you Brian, and if you, reader, have some spare time, help Brian to
improve consistency in the GNOME Desktop !
lundi 16 avril 2007
Re: a way to get more GNOME hackers
Par liberforce le lundi 16 avril 2007, 19:38 - Computers / Informatique
Alberto,
here are some hints if you want to improve this part of GNOME (ie, reduce the
technical level needed by newcommers to just become jhbuild users).
- Create a standard .jhbuildrc for newbies.
Look
at http://live.gnome.org/JhbuildDependencies
But a jhbuildrc is a bit distro dependant... For example, I maintain the
Mandriva subsection:
http://live.gnome.org/JhbuildDependencies/MandrivaLinux
- Create a metapackage
gnome-jhbuild-essentials:
This may not work, as dependencies vary from each GNOME version to build.
You'll need a gnome-2.16-jhbuild-essentials and a
gnome-2.18-jhbuild-essentials.
- Create a page on the wiki for newcomers, explaining howto setup
the enviroment, play with module sets, and create a patch.
I was working on a new jhbuild guide this some
time ago, but didn't finish it, so you can modify it if you want.
For patches, a patch submission guide
exists, but needs some update for the cvs->svn migration:
Relevant content of Elijah's guidelines need also to be imported, as this kind
of info should now be centralized in the wiki (Elijah was ok with this, I
talked to him about that at last GUADEC).
Check also:
http://live.gnome.org/CategoryJhbuild
http://live.gnome.org/CategoryJhbuildIssues
Enjoy ;-)
samedi 7 avril 2007
Number of the day: 185 !
Par liberforce le samedi 7 avril 2007, 19:39 - Computers / Informatique
This is the number of lines in the code shipped with GNOME 2.18 that use a
deprecated
symbol in GLib. The winner, by far, is g_strcasecmp.
at-spi/test/test-simple.c:766: if
(!g_strcasecmp (argv [i], "--poke"))
evolution-data-server/calendar/libecal/e-cal-time-util.c:425: * This is
analogous to g_date_set_time() but takes the timezone into account.
evolution-data-server/libedataserver/e-memory.c:1219:
GMemChunk *gmc;
evolution-data-server/libedataserver/e-memory.c:1273: gmc =
g_mem_chunk_new("memchunk", CHUNK_SIZE, CHUNK_SIZE*CHUNK_COUNT,
G_ALLOC_AND_FREE);
evolution-data-server/libedataserver/e-memory.c:1275:
mem = g_mem_chunk_alloc(gmc);
evolution-data-server/libedataserver/e-memory.c:1277:
g_mem_chunk_free(gmc, mem);
evolution-data-server/libedataserver/e-memory.c:1280:
g_mem_chunk_destroy(gmc);
evolution-data-server/libedataserver/e-memory.c:1293: gmc =
g_mem_chunk_new("memchunk", CHUNK_SIZE, CHUNK_COUNT*CHUNK_SIZE,
G_ALLOC_ONLY);
evolution-data-server/libedataserver/e-memory.c:1295:
mem = g_mem_chunk_alloc(gmc);
evolution-data-server/libedataserver/e-memory.c:1298:
g_mem_chunk_destroy(gmc);
gail/tests/testlib.c:116: if (g_strcasecmp(name,
gtk_widget_get_name(GTK_WIDGET (widget))) == 0)
gail/tests/testlib.c:139:
if (g_strcasecmp(name, gtk_widget_get_name(GTK_WIDGET (widget))) == 0)
gail/tests/testlib.c:185: if (accessible_name &&
(g_strcasecmp(name, accessible_name) == 0))
gail/tests/testlib.c:205: if (accessible_name
&& (g_strcasecmp(name, accessible_name) == 0))
gail/tests/testtable.c:264: g_string_sprintf(out_desc, "new
column description %d", i);
gail/tests/testtable.c:295: g_string_sprintf(out_desc, "new
row description %d", i);
gail/tests/testtextlib.c:543: if
(g_strcasecmp(param_string2, "ATK_XY_SCREEN") == 0)
gail/tests/testtextlib.c:551: else if
(g_strcasecmp(param_string2, "ATK_XY_WINDOW") == 0)
gail/tests/testtextlib.c:573: if
(g_strcasecmp(param_string3, "ATK_XY_SCREEN") == 0)
gail/tests/testtextlib.c:582: else if
(g_strcasecmp(param_string3, "ATK_XY_WINDOW") == 0)
gail/gail/gailtextview.c:1075: if (!g_strcasecmp
(name, atk_text_attribute_get_name (ATK_TEXT_ATTR_LEFT_MARGIN)))
gail/gail/gailtextview.c:1078: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_RIGHT_MARGIN)))
gail/gail/gailtextview.c:1081: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_INDENT)))
gail/gail/gailtextview.c:1084: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_PIXELS_ABOVE_LINES)))
gail/gail/gailtextview.c:1087: else if
(!g_strcasecmp(name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_PIXELS_BELOW_LINES)))
gail/gail/gailtextview.c:1090: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP)))
gail/gail/gailtextview.c:1093: else if
(!g_strcasecmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_SIZE)))
gail/gail/gailtextview.c:1096: else if
(!g_strcasecmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_RISE)))
gail/gail/gailtextview.c:1099: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_WEIGHT)))
gail/gail/gailtextview.c:1102: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_BG_FULL_HEIGHT)))
gail/gail/gailtextview.c:1105:
(g_strcasecmp (value, atk_text_attribute_get_value
(ATK_TEXT_ATTR_BG_FULL_HEIGHT, 0))),
gail/gail/gailtextview.c:1109: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_LANGUAGE)))
gail/gail/gailtextview.c:1112: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_FAMILY_NAME)))
gail/gail/gailtextview.c:1115: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_EDITABLE)))
gail/gail/gailtextview.c:1118:
(g_strcasecmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE,
0))),
gail/gail/gailtextview.c:1122: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_INVISIBLE)))
gail/gail/gailtextview.c:1125:
(g_strcasecmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE,
0))),
gail/gail/gailtextview.c:1129: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_UNDERLINE)))
gail/gail/gailtextview.c:1133:
if (!g_strcasecmp (value, atk_text_attribute_get_value
(ATK_TEXT_ATTR_UNDERLINE, j)))
gail/gail/gailtextview.c:1141: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_STRIKETHROUGH)))
gail/gail/gailtextview.c:1144:
(g_strcasecmp (value, atk_text_attribute_get_value
(ATK_TEXT_ATTR_STRIKETHROUGH, 0))),
gail/gail/gailtextview.c:1148: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_BG_COLOR)))
gail/gail/gailtextview.c:1158: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_FG_COLOR)))
gail/gail/gailtextview.c:1168: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_STRETCH)))
gail/gail/gailtextview.c:1172:
if (!g_strcasecmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH,
j)))
gail/gail/gailtextview.c:1180: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_JUSTIFICATION)))
gail/gail/gailtextview.c:1184:
if (!g_strcasecmp (value, atk_text_attribute_get_value
(ATK_TEXT_ATTR_JUSTIFICATION, j)))
gail/gail/gailtextview.c:1192: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_DIRECTION)))
gail/gail/gailtextview.c:1196:
if (!g_strcasecmp (value, atk_text_attribute_get_value
(ATK_TEXT_ATTR_DIRECTION, j)))
gail/gail/gailtextview.c:1204: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_VARIANT)))
gail/gail/gailtextview.c:1208:
if (!g_strcasecmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT,
j)))
gail/gail/gailtextview.c:1216: else if
(!g_strcasecmp (name, atk_text_attribute_get_name
(ATK_TEXT_ATTR_WRAP_MODE)))
gail/gail/gailtextview.c:1220:
if (!g_strcasecmp (value, atk_text_attribute_get_value
(ATK_TEXT_ATTR_WRAP_MODE, j)))
gail/gail/gailtextview.c:1228: else if
(!g_strcasecmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STYLE)))
gail/gail/gailtextview.c:1232:
if (!g_strcasecmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE,
j)))
gail/gail/gailtextcell.c:261:
g_strcasecmp (text_cell->cell_text, new_cache))
gail/gail/gailcell.c:400: if (!g_strcasecmp
(((ActionInfo *)(list_node->data))->name, action_name))
gconf/gconf/testclient.c:93: loop = g_main_new(TRUE);
gconf/gconf/testclient.c:97: g_main_run(loop);
gconf/gconf/testclient.c:101: g_main_destroy(loop);
gnome-applets/gswitchit/gswitchit-applet.c:530:
g_strcasecmp ("XKB",
gnome-control-center/archiver/archive.c:380: g_tree_traverse
(archive->locations,
gnome-control-center/archiver/archive.c:720: g_tree_traverse
(archive->locations,
gnome-control-center/capplets/url-properties/url-properties.c:192:
if (!g_strcasecmp(key, "default"))
gnome-control-center/capplets/url-properties/url-properties.c:244:
if (!g_strcasecmp(prot, col1)) {
gnome-control-center/capplets/url-properties/url-properties.c:265:
if (!g_strcasecmp(prot, col1)) {
gnome-control-center/capplets/background/gnome-wp-xml.c:33:
if (!g_strcasecmp ((gchar *)prop, "true") || !g_strcasecmp ((gchar *)prop,
"1")) {
gnome-control-center/libslab/document-tile.c:149:
g_date_set_time (time_stamp, modified);
gnome-media/cddb-slave2/iochannel.c:62: if
((error = g_io_channel_write(channel, ptr, nleft, &nwritten))
gnome-media/cddb-slave2/iochannel.c:119: if
((error = g_io_channel_read(channel, ptr, nleft, &nread))
gnome-menus/libmenu/canonicalize.c:238: if (allow_missing_basename
&& retval == NULL)
gnome-netstatus/src/netstatus-sysdeps.c:547: if (g_strncasecmp (iface,
"an", 2) &&
gnome-netstatus/src/netstatus-sysdeps.c:548:
g_strncasecmp (iface, "wi", 2) &&
gnome-netstatus/src/netstatus-sysdeps.c:549:
g_strncasecmp (iface, "ath", 3) &&
gnome-netstatus/src/netstatus-sysdeps.c:550:
g_strncasecmp (iface, "ndis", 4) &&
gnome-netstatus/src/netstatus-sysdeps.c:551:
g_strncasecmp (iface, "ipw", 3) &&
gnome-netstatus/src/netstatus-sysdeps.c:552:
g_strncasecmp (iface, "iwi", 3) &&
gnome-netstatus/src/netstatus-sysdeps.c:553:
g_strncasecmp (iface, "acx", 3))
gnome-netstatus/src/netstatus-sysdeps.c:556: if (g_strncasecmp (iface,
"an", 2) == 0)
gnome-nettool/src/callbacks.c:236: if
(g_strcasecmp (text, "") != 0)
gnome-nettool/src/callbacks.c:246: if
(g_strcasecmp (text, "") != 0)
gnome-session/gnome-session/startup-programs.c:137:
if (g_strcasecmp (only_show_in_list[i], "GNOME") == 0)
gnome-session/gnome-session/startup-programs.c:160:
if (g_strcasecmp (not_show_in_list[i], "GNOME") == 0)
gnome-session/gnome-session/save.c:427:
if (g_strcasecmp (only_show_in_list[i], "GNOME") == 0)
gnome-session/gnome-session/save.c:451:
if (g_strcasecmp (not_show_in_list[i], "GNOME") == 0)
gnome-session/gnome-session/gsm-gsd.c:88: if (!g_strcasecmp (name,
"org.gnome.SettingsDaemon"))
gnome-session/gnome-session/gsm-gsd.c:91: if
(!g_strcasecmp ("", new_owner))
gnome-speech/gnome-speech/speaker.c:107:
if (!g_strcasecmp (name, p->name))
gnome-speech/drivers/eloquence/eloquencespeaker.c:387:
if (!g_strcasecmp (voice_spec->name, name))
gnome-utils/logview/logview.c:250: if (selected!=NULL
&& g_strncasecmp (log->name, selected, -1)==0)
gok/gok/create-branching-keyboard.c:96: g_io_channel_close
(kbd->io);
gok/gok/main.c:527: returncode = g_strcasecmp(a_file,
b_file);
gok/gok/main.c:1662: if
(g_strcasecmp (pKB->Name, NameKeyboard) == 0)
gok/gok/gok-scanner.c:1769: if
(g_strcasecmp (pAccessMethod->Name, NameAccessMethod) == 0)
gst-plugins-good/gst/rtp/gstrtpvorbisdepay.c:302: if (g_strcasecmp
(delivery_method, "inline")) {
gst-plugins-good/gst/rtp/gstrtpvorbisdepay.c:304: } else if (g_strcasecmp
(delivery_method, "in_band")) {
gst-plugins-good/gst/rtp/gstrtpilbcpay.c:133: if (g_strcasecmp
("audio/x-iLBC", payload_name) == 0) {
gst-plugins-good/gst/rtp/gstrtptheoradepay.c:302: if (g_strcasecmp
(delivery_method, "inline")) {
gst-plugins-good/gst/rtp/gstrtptheoradepay.c:304: } else if (g_strcasecmp
(delivery_method, "in_band")) {
gstreamer/tests/old/testsuite/caps/intersection.c:60:
g_mem_chunk_info ();
gstreamer/tests/old/testsuite/caps/intersection.c:65:
g_mem_chunk_info ();
gstreamer/tests/old/testsuite/plugin/loading.c:15: g_mem_chunk_info
();
gstreamer/tests/old/testsuite/plugin/loading.c:33: g_mem_chunk_info
();
gstreamer/tests/old/testsuite/plugin/loading.c:52: g_mem_chunk_info
();
gtk+/gtk/gtkfilechoosersettings.c:57:get_config_dirname (void)
gtk+/gtk/gtkfilechoosersettings.c:566: dirname =
get_config_dirname ();
libbonoboui/tools/browser/oaf-helper.c:41:
if (!g_strcasecmp (property_name, property->property_name) &&
libbonoboui/tools/browser/oaf-helper.c:346:
if (g_strcasecmp (prop->property_name, "repo_ids") == 0)
{
libglade/test/domp.c:50:
g_hash_table_freeze(tree->hash);
libglade/test/domp.c:55:
g_hash_table_thaw(tree->hash);
libglade/test/saxp.c:398:
g_string_sprintfa(state->style_data, " font = "%s"n",
libglade/test/saxp.c:403:
g_string_sprintfa(state->style_data,
libglade/test/saxp.c:412:
g_string_sprintfa(state->style_data,
libglade/test/saxp.c:421:
g_string_sprintfa(state->style_data,
libglade/test/saxp.c:430:
g_string_sprintfa(state->style_data,
libglade/test/saxp.c:437:
g_string_sprintfa(state->style_data, " bg_pixmap[%s] = "%s"n",
libgnomeprint/libgnomeprint/gnome-font-face.c:611:
if (!g_strcasecmp (family, entry->familyname)) {
libgnomeprint/libgnomeprint/gnome-fontmap.c:576: return
g_strcasecmp (((GPFontEntry *) a)->name, ((GPFontEntry *)
b)->name);
libgnomeprint/libgnomeprint/gnome-fontmap.c:587: return
g_strcasecmp (((GPFontEntry *) a)->speciesname, ((GPFontEntry *)
b)->speciesname);
libgnomeprint/libgnomeprint/gnome-fontmap.c:593: return
g_strcasecmp (((GPFamilyEntry *) a)->name, ((GPFamilyEntry *)
b)->name);
librsvg/rsvg-styles.c:1371: data = g_chunk_new (RsvgState,
ctx->state_allocator);
librsvg/rsvg-styles.c:1393: g_mem_chunk_free
(ctx->state_allocator, dead_state);
librsvg/rsvg-base.c:1033: g_mem_chunk_free
(ctx->state_allocator, data);
librsvg/rsvg-base.c:1047: g_mem_chunk_destroy
(handle->state_allocator);
librsvg/rsvg-base.c:1227: ctx->state_allocator =
g_mem_chunk_create (RsvgState, 256, G_ALLOC_AND_FREE);
librsvg/test-display.c:42:_rsvg_basename (const char *file)
librsvg/test-display.c:300: base_name = _rsvg_basename
(info->base_uri);
librsvg/test-display.c:351: base_name = _rsvg_basename
(info->base_uri);
librsvg/gtk-engine/svg-rc-style.c:727:
g_scanner_freeze_symbol_table(scanner);
librsvg/gtk-engine/svg-rc-style.c:732:
g_scanner_thaw_symbol_table(scanner);
librsvg/rsvg-cairo-render.c:96: draw->state_allocator =
g_mem_chunk_create (RsvgState, 256, G_ALLOC_AND_FREE);
libsoup/tests/dict.c:84: g_main_quit (loop);
libsoup/tests/dict.c:160: g_main_run (loop);
libsoup/tests/dns.c:59: g_main_run (loop);
libsoup/tests/get.c:175: g_main_quit
(loop);
libsoup/tests/get.c:303: g_main_run (loop);
libsoup/tests/getbug.c:63: g_main_quit (loop);
libsoup/tests/getbug.c:133: g_main_run (loop);
libsoup/libsoup/soup-session-async.c:218:
g_main_iteration (TRUE);
libsoup/libsoup/soup-server-auth.c:434:
g_string_sprintfa (str,
libsoup/libsoup/soup-server-auth.c:438:
g_string_sprintfa (str,
libsoup/libsoup/soup-server-auth.c:444:
g_string_sprintfa (str, "qop="auth-int", ");
libsoup/libsoup/soup-server-auth.c:446:
g_string_sprintfa (str, "qop="auth,auth-int", ");
libsoup/libsoup/soup-server-auth.c:449:
g_string_sprintfa (str, "algorithm="MD5-sess"");
libsoup/libsoup/soup-server-auth.c:451:
g_string_sprintfa (str, "algorithm="MD5"");
libsoup/libsoup/soup-uri.c:292:
g_string_sprintfa (str, "%s:", soup_protocol_name (uri->protocol));
metacity/src/delete.c:505:
g_strcasecmp (w->res_class, "metacity-dialog") == 0)
nautilus/libnautilus-private/nautilus-file.c:3045:
g_date_set_time (today, time (NULL));
ORBit2/test/echo-local.c:129: g_blow_chunks();
ORBit2/test/everything/client.c:1960:
g_main_iteration (TRUE);
pango/pango-view/viewer-win32.c:499: if (0 ==
g_strcasecmp(pango_font_family_get_name(families[i]), family_name))
pkg-config-0.20/parse.c:1082: pkg->pcfiledir =
g_dirname (path);
seahorse/agent/seahorse-agent-cache.c:85:static GMemChunk *g_memory =
NULL; /* Memory for sa_cache_t's */
seahorse/agent/seahorse-agent-cache.c:217:
g_chunk_free (it, g_memory);
seahorse/agent/seahorse-agent-cache.c:247: g_memory =
g_mem_chunk_create (SeahorseAgentPassReq, 128, G_ALLOC_AND_FREE);
seahorse/agent/seahorse-agent-cache.c:268:
g_mem_chunk_destroy (g_memory);
seahorse/agent/seahorse-agent-cache.c:405:
it = g_chunk_new (sa_cache_t, g_memory);
seahorse/agent/seahorse-agent-actions.c:39:static GMemChunk *g_memory =
NULL; /* Allocator for SeahorseAgentPassReq items
*/
seahorse/agent/seahorse-agent-actions.c:79: g_memory =
g_mem_chunk_create (SeahorseAgentPassReq, 128, G_ALLOC_AND_FREE);
seahorse/agent/seahorse-agent-actions.c:94:
g_mem_chunk_destroy (g_memory);
seahorse/agent/seahorse-agent-actions.c:129: pr = g_chunk_new
(SeahorseAgentPassReq, g_memory);
seahorse/agent/seahorse-agent-actions.c:158: g_chunk_free
(pr, g_memory);
seahorse/agent/seahorse-agent-io.c:70:static GMemChunk *g_memory =
NULL; /* Memory for connections */
seahorse/agent/seahorse-agent-io.c:204: g_chunk_free (cn,
g_memory);
seahorse/agent/seahorse-agent-io.c:643: cn = g_chunk_new0
(SeahorseAgentConn, g_memory);
seahorse/agent/seahorse-agent-io.c:683: g_memory =
g_mem_chunk_create (SeahorseAgentConn, 8, G_ALLOC_AND_FREE);
seahorse/agent/seahorse-agent-io.c:706:
g_mem_chunk_destroy (g_memory);
seahorse/daemon/seahorse-hkp-server.c:322: if (t &&
g_strcasecmp(t, "on") == 0)
seahorse/daemon/seahorse-hkp-server.c:443: else
if(g_strcasecmp(t, "index") == 0)
seahorse/daemon/seahorse-hkp-server.c:446: else
if(g_strcasecmp(t, "vindex") == 0)
seahorse/daemon/seahorse-hkp-server.c:449: else
if(g_strcasecmp(t, "get") == 0)
seahorse/src/seahorse-gkeyring-item.c:70:
if (g_strcasecmp (name, attr->name) == 0 &&
seahorse/src/seahorse-gkeyring-item.c:90: return protocol
&& g_strncasecmp (protocol, match, strlen (match)) == 0;
seahorse/src/seahorse-gkeyring-item.c:534:
if (g_strcasecmp (name, attr->name) == 0 &&
seahorse/plugins/nautilus/seahorse-tool-progress.c:81: else
if (g_strcasecmp (args[0], CMD_BLOCK) == 0)
seahorse/plugins/nautilus/seahorse-tool-progress.c:84: else
if (g_strcasecmp (args[0], CMD_UNBLOCK) == 0) {
seahorse/plugins/nautilus/seahorse-tool-progress.c:89: else
if (g_strcasecmp (args[0], CMD_PROGRESS) == 0) {
seahorse/libseahorse/seahorse-util.c:187: g_date_set_time
(created_date, time);
seahorse/libseahorse/seahorse-dns-sd.c:121:
if (g_strcasecmp (HKP_SERVICE_TYPE, type) != 0)
seahorse/libseahorse/seahorse-dns-sd.c:168: if (g_strcasecmp
(HKP_SERVICE_TYPE, type) != 0)
totem/src/backend/bacon-video-widget-gst-0.10.c:4864:
g_date_set_time (&d, time (NULL));
yelp/src/info2html/html.c:149: if
(g_strcasecmp(ref, "(dir)")) {
zenity/src/tree.c:153: if (strcmp
(g_strdown (zenity_util_strip_newline (string->str)), "true") == 0)
zenity/src/tree.c:231: if (strcmp
(g_strdown ((gchar *) args[i+j]), "true") == 0)
zenity/src/tree.c:305: if (strcmp (g_strdown
(tree_data->print_column), "all") == 0)
mercredi 28 mars 2007
Sysprof sous Mandriva 2007.0
Par liberforce le mercredi 28 mars 2007, 00:58 - Computers / Informatique
Sysprof est un logiciel de
profiling: il permet de voir les fonctions qui utilisent le plus de temps CPU
dans un programme. C'est le logiciel recommandé par GNOME pour vérifier les
performances d'une application. Malheureusement, il semble que le logiciel ne
peut être installé sous Mandriva 2007.0, à causes de problèmes de
dépendances.
Pour ceux que cela intéresse, j'ai recompilé sysprof 1.0.8 à partir du RPM
source de la Mandriva 2007.1, pour qu'il soit utilisable sous Mandriva 2007.0.
N'oubliez pas aussi d'installer dkms, et les sources de
votre version du kernel (kernel-source ou
kernel-source-stripped). Un petit modprobe
sysprof-module en root sera sans doute aussi nécessaire...
Vous trouverez là sysprof
1.0.8 (i586) pour Mandriva 2007.0.
« billets précédents - page 1 de 2