Playing with fire, well, mesa…

I've been playing with drm, xorg and mesa. Mesa is really fun to build, with the most unusual build system I've used in a long time. You actually have to add and remove stuff from the Makefiles to actually get git to build. I've sent four patches the the mailing list just for build fixes.

I've got a nice shiny SRPM of current mesa git, although I'm getting some interesting hard crashes using the new nouveau_dri. It's amazing the nouveau guys have got so much working in such a short amount of time, although I think I need to read some more code before I can contribute even fixes to the 3D stuff.

Ohh, and for other GeForce Go 7300 owners the driver now works really well for 2D (use drm from git), but run a journaling file system if you want to try 3D… Would there be any interest if I set up a Fedora 7 repository for git snapshots of drm, dri and ddx for nouveau testing?

Copying code from Linux to OpenBSD

I've just seen this article. I have read the entire thread, and am really horrified with the response of a couple of OpenBSD developers, especially Theo de Raadt who seems very, well, I'll leave the the adjective up to you.

I would be really angry if somebody copied chunks of my GPL code and then re-licensed it without my name on it. I would say Michael Buesch took a very aggressive stance, but I think I would do exactly the same in that situation.

I really hope Theo de Raadt doesn't represent the majority of OpenBSD developers.

Lots of profiles should use GConf?

GNOME Power Manager stores different profiles depending on the serial numbers of the batteries inserted into the laptop. This means we can profile separately, and still provide accurate times when the user only has the second battery inserted “some of the time“.

At the moment, I'm creating two 4Kb comma separated value files for each profile, one for discharge and one for charge, e.g. :
$HOME/.gnome2/gnome-power-manager/profile-3658Q-charging.csv
$HOME/.gnome2/gnome-power-manager/profile-3658Q-discharging.csv

The filename thus becomes profile-3658Q-1234A-charging.csv if we have two batteries inserted.

So, quick question: Should I be using GConf for this? I was under the impression that creating gconf keys with no schema is frowned upon. Is it quicker or more efficient to use GConf over direct file access?

Facebook

Andre Klapper added me on facebook. I've spoken to him loads on bugzilla and once at GUADEC – but didn't put a name to a face. This morning I saw his photo and had a “Name to a face” gasp moment. I'm generally really rubbish at remembering names when people introduce themselves.
So if I know you online, and I've met you in real-life please add me so I can gasp some more. I'm the first “Richard Hughes” in the Surrey '07 network. Cheers!

Breaking down

Gahh. My car engine stopped half way from my girlfriends to my grandparents. I coasted about 40 meters until I could pull over, and then checked the usual: oil, diesel, water and fuses. I guessed it was some sort of fuel issue, either a blocked filter, blocked injectors or broken fuel pump. Without tools, it was difficult to debug, so I called out the AA. The bloke confirmed it was probably a fuel pump problem but couldn't fix the problem there and there. I'm stuck in the middle of nowhere with a broken car. 85 quid later and I get towed home.

Long shot: Anybody ever fitted a new fuel pump in a 1.7 litre turbo diesel 2002 Vauxhaul Corsa?

Pretty print make output

Is there any way I can still use gcc and make, but print:

[ok] gpm-backlight.o
[ok] gpm-tray-icon.o
[ok] gnome-power-manager

rather than the pages of incomprehensible gibberish:

gcc -DHAVE_CONFIG_H -I. -I.. -I../../src -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -DDBUS_API_SUBJECT_TO_CHANGE -I/usr/include/hal -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include   -pthread -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -DDBUS_VERSION_MAJOR=1 -DDBUS_VERSION_MINOR=0 -DDBUS_VERSION_MICRO=2 -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/gnome-keyring-1 -I/usr/include/orbit-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/libwnck-1.0 -I/usr/include/panel-2.0   -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12   -I/usr/include/gtkunique-1.0 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12   -DBINDIR=\”/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst/bin\” -DGNOMELOCALEDIR=\””/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst/share/locale”\” -DDATADIR=\”/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst/share\” -DPREFIX=\””/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst”\” -DSYSCONFDIR=\””/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst/etc”\” -DLIBDIR=\””/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst/lib”\” -DVERSION=”\”2.19.1\”” -DGPM_DATA=\””/home/hughsie/Code/gnome-power-manager/trunk/gnome-power-manager-2.19.1/_inst/share/gnome-power-manager/”\” -I../.. -I../../libhal-glib -I../../libgpm-glib -I../../libdbus-glib   -Werror -Wall -Wcast-align -Wno-uninitialized -g -fexceptions  -g -O2 -MT gpm-prefs.o -MD -MP -MF .deps/gpm-prefs.Tpo -c -o gpm-prefs.o ../../src/gpm-prefs.c

I have a feeling there's a random patch floating around, but I wondered if there was anything upstream. Cheers!

Power Management Specification – getting there….

Everybody who has reviewed and commented on the power-management specification – THANKS.
I've got a pre-release here which will become version 0.1 assuming nobody finds any glaring errors.

One thing that bothers me is that I can't seem to attach a DBUS path more than once, i.e. just change the interface rather than the interface and the path. I'm pretty sure this is a limitation of the glib bindings of DBUS, which may mean the paths will have to be scoped (/org/freedesktop/PowerManagement/Inhibit) for the spec as well as the interfaces. Urh.

I've also got a crack-infested version of the spec with all the crazy stuff put back in, like Inhibit and Statistics and that sort of thing. I've uploaded a copy here and would appreciate some initial feedback before I pester the XDG list again.

Cheers!

org.freedesktop.PowerManagement

I've proposed the org.freedesktop.PowerManagement specification on XDG list a few days ago, and the feedback has been generally very good. I've renamed a few things, cut some stuff out and generally tried to make it as cross desktop as possible.

I've put the first version here for comments. This is NOT the 0.1 version, this is a pre-release sample.

The statistics, inhibit and UI interfaces that are already being used in g-p-m – please ignore for now. I want to get the base stuff standardized and then we can discuss new optional interfaces for any new functionality.

One thing I'm not sure about: Reboot vs. Restart. I favour the latter, but I'm not sure which is best. My spelling and grammar are also pretty rubbish, so I would appreciate some help on that as well.

Comments or flames, directed as usual to the blog. Thanks!