Recent blog entries for kov

gksu-polkit gets pipe support

One of the features I really wanted to get into gksu-policykit early was working correctly with pipes. With the current gksu you cannot do something such as echo blah | gksu tr a-z A-Z. It is actually very hard to work correctly with input/output with su and sudo bellow. I do think it also has something to do with me not being too clever in UNIX file descriptors at the time I originally planned how gksu works. I did get an email from someone at Sun offering to write support for that who never mailed me again, but anyway…

gksu-policykit is currently able to get all the input and output forwarded to/from the process by using an interface similar to glib’s g_spawn_async_with_pipes. Here’s what we are able to do already:


$ echo test string | ./gksu/gksu-polkit /usr/bin/tr a-z A-Z
TEST STRING
$

It’s impressive to me that all the input and output goes over DBus quite nicely.

So it is currently possible to use simple library calls in glib-based code to run something as root, by taking advantage of the gksu policykit mechanism:

GksuProcess* gksu_process_new(const gchar *working_directory, const gchar **arguments);
gboolean gksu_process_spawn_async(GksuProcess *process, GError **error);

The DBus service already works; it is able to setup the environment and X authorization correctly. There is still lots to do; startup notification is still not handled, and dealing with the application’s stdandard output and error messages, as well as providing a way for the caller to send stuff into the processe’s standard input. It is already possible to start an application and know that it has been finished, though.

As for the code:

$ git clone git://kov.eti.br/srv/git/gksu-polkit.git/

Criticism is welcome!

In other news… I’d like to ask our dear lazy web if anyone is using some nice way of providing only posts tagged in specific categories in a feed in wordpress. I’d like to use that to provide my posts to planet debian from my wordpress install.

As far as debcamp work plans go, my own has been making me quite happy. I started the week trying to start implementing gksu policykit mostly in vala, and failing miserably. Vala isn't ready to help me do some of the more weird things I had in mind.

The good news is falling back to C worked pretty smoothly, and I have the basic foundation working. There is plenty to be implemented still, but moving forward always feels good. If anyone is interested in discussing the gksu replacement that is being built on top of the PolicyKit framework come talk to me in the hack lab =D. Take a look at this gratuitous screenshot.

First day at debconf8's debcamp! I have published an ical file with the stuff I plan to attend, if anyone is interested: http://people.debian.org/~kov/kov_debconf8.ical.

Btw, dear lazy web, the official ical file is using ART as TZID, and that seems to make Evolution go nuts on the timing of the talks. Anyone has got a clue on what my be happening? I downloaded the file and changed it to use America/Sao_Paulo as TZID and now Evo acts correctly.

So, some interesting things happened since I last reported. TurboGears finally entered experimental, and has received a bit of good feedback from some users; I became sqlobject co-maintainer, and packaged a svn snapshot to experimental to make that happen, too. TG 0.9a8 has just been uploaded, btw. Feedback would be great! I would welcome people willing to help on deciding the best way and doing packaging of TG add-on widgets.

In other news, I've been doing some last feature aditions to libgksu and gksu. The former now ships a gksu-properties capplet that allows users to set up some of the behavior. The gconf options and this capplet surely need some love, but they'll get it in the future. After the "redesign" libgksu now holds almost all the code that does the gksu magic, and should be more secure in some ways.

The application, gksu, ships a nautilus extension, which adds a 'open as administrator' item in the context menu for files and directories in Nautilus. I'd love to receive feedback and buf reports on this new feature. Right now the nautilus extension uses the gksu application, instead of the library, since there seems to be problems with doing async calls of libgksu inside of another main loop, or something, and I could not get it to work.

The gksuexec application, which provided the 'Run as another user' menu item has been removed in these last versions. Will anyone miss it? I'm willing to have this functionality implemented in gksu itself, if needed, but I'm not sure it's that useful.

So, I just finished the first "working draft" of the TurboGears 0.9 packaging. I've uploaded a tarball with all the source and binary packages involved. They should work on unstable; please send comments and error reports to my email (look at the maintainer of the turbogears package).

The packaging for TurboGears 0.8.9 is also available, and in need of comments and testing.

I'm hoping to be able to upload turbogears 0.8.9 and the modules I packaged to unstable this week, and TG 0.9 to experimental. You can see many of the packages are already available in the python-modules team subversion repository.

So, long time no blog entry. Work has been sucking my blood these days, but I managed to do some stuff recently that I feel like sharing.

First of all, I've been enjoying TurboGears a bunch. Unfortunately I didn't get around to playing with it as much as I would have liked. Some time ago I became the maintainer of cherrypy, and that became an important piece of TG some time later.

Now TG has been using something called Python eggs, and its versioning and dependency information. We fought a bunch on the debian-python mailing list trying to figure out how to handle that stuff in Debian packages and it seems like the best solution is the one which ended up on the new python-cherrypy package, which packaged CherryPy 2.1, and right now contains CherryPy 2.2. Most of the efforts of the Debian Python people has been documented on the Debian Python FAQ. Also, let me say that python-support is really cool; Thanks Joss!

Also, I'm now a member of the Debian Python Modules maintainers team! Team maintainership is a really good idea, and I'm happy that it is becoming more and more the rule, not the exception; and I am very happy to be part of many very good teams.

In other news, I've been working on the new version of libgksu/gksu. The API for libgksu has been greatly improved and simplified. The new design also allowed me to handle some situations in a much saner way; some things that bothered me for a long time are now gone. Packages are on their way to experimental, but if you want to take a look at what is happening, and comment on the new API (please, do!), you can look here:

http://people.debian.org/~kov/gksu/libgksu2/

I'll upload some packages to http://people.debian.org/~kov/gksu/debian/ while the packages which are on NEW are not processed.

So, after a looong time with no bloging, here's my updates: I've moved from one apartment to another quite close to the former one.

I've been recently doing some work on getting update-manager to work on Debian, I had a patch to make it work on python2.3, because of Debian's pygtk packages lacking a 2.4 version, but more recently I decided I'd step forward and just have those packages added; I then did that for pygtk, python-gnome and python-gnome-extras, all of which I uploaded 2.12 versions to experimental.

I've done some gksu hacking, and fixed quite a number of bus, added some features, etc, since debconf5. On the APT-HOWTO front, I've releease the 2.0 version finally, which talks about aptitude instead of apt-get where possible and makes some stuff simpler, besides having some newer stuff documented. There's now a mailing list for translator coordination and general development stuff, where all svn commits are to be posted, too. Julien Louis has been doing a nice work of po4a-ize apt-howto, and most of that effort has already been commited to the svn repo.

More recently, I'm trying to keep up with the work on the GNOME Team front. I'm trying to follow the recent discussion on the icon cache problem but did not think there's something I can do to help there. In the meantime I felt the need of some automated way of tracking what's being done and what's todo on our 2.10 and 2.12 efforts.

So I put together a script which generates a page on merkel (because it uses madison) to track what version of the GNOME desktop packages each of our development suites have, what are the upstream versions and what's in our svn.

I've even got a testimonial I'll be using at marketing the "product":

<lool> kov: I'm so happy, you can't imagine how my life jsut changed

One thing I noticed was packages on the archive with versions higher than the ones in our svn repository; people seem to have uploaded and forgot to commit. I'll take a look at those soonish.

Now for the current meme:

  • gustavo needs books to approve
  • I think gustavo needs a user icon with him wearing on of those mickey mouse hats from disneyland with the mouse ears and 'Gustavo' embroidered in script on the front.
  • GUSTAVO NEEDS YOUR HELP!!!!!
  • GUSTAVO NEEDS A SPECIAL, EXPENSIVE MEDICATION. BUT HE CAN'T AFFORD TO BUY IT...
  • Gustavo needs to win.
  • Gustavo needs points.

Debconf5 is almost closing and we're only 5 people hacking at the hacklab right now.

I remembered that I forgot to mention in my last post that the Sauna Cabal also decided that saunas could be the best tools to end flamewars.

The method is simple: every party involved in the flamewar will be put inside a sauna with 110 centigrades heat and be told that they'll only be allowed out whenever a consensus is reached. Sounds interesting? Maybe polygen has just found its main competitor in the 'ending flamewars' "market".

Almost time to leave debconf5... it was a wonderful time. It's always very good for me to be among the amazing people that make this Project's existance possible. Talking, going around, dancing, doing sauna, listening to talks, hacking: it was such a good time.

Last night at sauna I, Herman, Joey Hess and Gunnar Wolf and some other people I can't remember =P set up the Sauna Cabal. We've decided to make sauna a requirement for choosing the place for debconf after 2007. Sauna will need to provide a 'laptop area' with high speed networking so that those who are enjoying the sauna will be able to hack and chat.*

It's sad to feel this 'end of party' feeling. I'm really missing my friends and my home already, though. I'm sure I'll have a really good time when I come back to Brazil and meet two of my best friends for a small trip to Ouro Preto which is going to close my self-given vacation period an amazing closing.

I've been able to do lots of gksu work here and I think I managed to fix some of the long standing design issues. I've uploaded my new code to unstable and expect to get some feedback on what's good and bad about the new features and design.

* Of course this is a joke; there is no cabal.

48 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!