Affichage des articles dont le libellé est red hat. Afficher tous les articles
Affichage des articles dont le libellé est red hat. Afficher tous les articles

jeudi 9 août 2012

¿ Qué estabas haciendo ?

9 years after my first and only GUADEC, I've finally been able to go back to GUADEC, and guess what? It was amazing to be there!

This was a great opportunity to meet plenty of people I only knew from IRC, in particular seb128 whom I have known for 10 years and never met. And let's not forget all our amazing interns from the OPW and GSoC programs, this was very refreshing to see how enthusiastic they all were about GUADEC.

Quick memory drop of the main highlights for this week :

  • Summer evenings in A Coruña can get cold, don't forget to take some kind of sweater with you when you travel there!
  • In the end, I've done a lot more talking with people in the lobby and sitting in the sunny grass than actual talk attendance
  • It's getting harder and harder to keep the existence of the French cabal secret, we'll have to do something about this!
  • Huge kudos to the organizers, everything was perfectly organized, network was great (save for the unexpected flood ;), and also thanks to the sponsors for the various parties and for making that event possible
 As for the talks, here are the things I've done/attended during this week:
  • I've been to Nathan Willis "How to fix a font" talk, interesting overview of various font issues. He was also looking for ways to get native speakers feedback since he is sometimes designing cyrillic fonts, and it can be hard to know what looks good or not. One possible way of achieving this would be to get the various GNOME language teams involved
  • Zeeshan made a presentation about GNOME Boxes, cool as usual, but he could have done better on the photos of me he used ;)
  • Marc-André and I gave a talk about building Windows applications from your linux application using MinGW, attendance was on the low side (about 15 people), but everyone seemed very interested in building for Windows. Quick spoiler for the talk: mingw32-configure && make -j4, all the other gory details can be found in our slides
  • Together with some members of the French cabal GNOME-fr, I attended a meeting with the board to defend a Strasbourg bid for GUADEC 2013, it was more of a session to discuss about the most important items to have in the bid rather than an actual defence, I summed up my notes in a (French) email. Now we've got work to do :)
  • We also had a 2 hour meeting about GNOME Boxes design. Marc-André, Zeeshan and Jonathan were present as well as our designers (Jakub and Jon), our Summer of Code students, Fidêncio and Jovanka, and other members of the SPICE team (Alon and Hans). This was a pretty productive meeting where we could go over the various small issues in Boxes design that were uncovered during development, and discuss with the designers how to best fix them
  • Last but not least, on Sunday all the GSoC and OPW interns who could attend GUADEC gave lightning talks to present their work. All the talks went well, and some very cool stuff was presented. It was just great to meet all these new heads and to feel all this energy around GNOME and free software

Fidêncio and Jovanka giving their lightning talks

All in all, this GUADEC was a wonderful experience, I'm very happy to have been there. See you all next year! Hopefully in Strasbourg ;)

The last 3 photos in this post were taken by Ana Rey and are shared under a CC BY-SA 2.0 licence

lundi 23 juillet 2012

Outside Boxes


Let's start this post with a quick presentation of oVirt (you'll understand why in a few paragraphs...).
oVirt is a free project providing management, monitoring and provisioning of KVM virtual machines on multiple hosts. It comes with a web interface to create and manage virtual machines, hypervisor nodes, storage, ... and with a user portal for those who just want to connect to an already existing virtual machine.
The way the user portal works is that you log into the portal from your browser, then you choose the virtual machine you want to connect to, and a browser plugin will take over and spawn an external binary (these days it's remote-viewer)
oVirt also comes with an extensive REST API which lets you do programmatically the same thing as you can do from oVirt web UIs. Moreover, it has an extensive documentation.

But what about GNOME?

And now we are finally coming as to why I'm talking about all of this :) Lately, I've been hacking on Boxes, and since one of its goals is to view, access, and use shared connection / machine, I've decided it would be fun to make it support oVirt connections! This would make it easier for Boxes users to connect to oVirt virtual machines without having to go through their browser.

librest already provides a good low-level GObject library to access REST services (though it was missing authentication support), so I used it to build a higher level library which wraps the oVirt REST accesses: libgovirt. This library uses GObject and gobject-introspection, which gives bindings to several other languages for free (including vala which is needed for Boxes). It also provides asynchronous methods for all its remote operations.
The library is still young and only implements the few REST operations I needed (list oVirt virtual machines, get VM connection details, generate temporary VM display password, ...), but this is enough for Boxes needs ;)

Once this library was in good shape, using it in Boxes was quite easy as the existing code was modular enough. All I had to do was to add a new URI type (ovirt://), and add a new Machine subclass to handle oVirt VMs, but most of the work is done by the libgovirt library.

This work is not yet merged upstream but can be seen in my personal git repository. After some small cleanups and a libgovirt release, it should be in good shape for an upstream review and integration. As for libgovirt, there is a lot of API to bind (help welcome!), but binding this new 3.1 API will be mandatory to be able to connect to all oVirt-managed VMs. One possible way forward for libgovirt would be to leverage the python oVirt REST binding generator from ovirt-engine-sdk.

And before ending this blog post, mandatory screenshots!

Authentication to an oVirt broker

Boxes from the oVirt broker

mardi 31 janvier 2012

Going to FOSDEM!

This is this time of the year again, FOSDEM will take place in Brussels next week-end. This is one of my favourite free software event, lots of interesting talks, lots of interesting people, and lots of energy everywhere. This year, it looks like it will be the best FOSDEM ever! More devrooms, more than 400 talks, more everything!

I've helped again organizing the crossdesktop devroom. Among these talks, I can only recommend the gnome-boxes presentation that Marc-André and Zeeshan will be giving :) While I'm at it, here are a few more shameless plugs: Hans de Goede will be giving 2 SPICE talks in the Virtualization devroom, one general presentation of SPICE, and one where he will describe the USB redirection support in SPICE. And Alon Levy will present his work to interact with an X server through SPICE without using a virtual machine.

Last but not least, there will also be a GNOME booth with some goodies...

See you all there in a few days!

vendredi 17 juin 2011

Spicy apples

It has been a few months since I've  been hired by Red Hat to hack on Spice, and I realized I haven't blogged as much as I should have :)


First, let me introduce Spice quickly. Spice is a protocol which then gets implemented in clients such as Vinagre (using the spice-gtk widget) and in servers (QEMU or the experimental X11 driver). Using this protocol, the video, sound, keyboard, mouse inputs and ouputs can be abstracted away from a virtual machine. This means you can run a Spice client application on one box to get the display of a QEMU virtual machine running on another box. Or you can have a big server running dozens of virtual machines, and connect to the VM you're interested in from your laptop. Or you use it in a VDI setup where you'll have N different PCs connecting to a single server running N virtual machines.

One of the thing I've done during these few months at Red Hat is to look into building a Mac client for Spice. Indeed, so far we have a linux client (as well as a GTK widget if you want to embed Spice in your applications, a Windows client, but nothing on Mac OS X. Since I was the only one in the team with a functional OS X install, I was volunteered to look into this port ;)

The long way toward Vinagre on OS X

I started by building the gtk+ OS X port. Using these build instructions, it was quite straightforward even though it took some time since there were a few bugs to fix here and there in the stack. Then I realized I needed gtk3 and that I had only built gtk2, so I started again, and fixed some more bugs (the glib maintainers really didn't want me to succeed :-) )

Once I had gtk-demo running, it was time to start thinking about my real goal, getting spice-gtk and vinagre to compile. Luckily, I had made a jhbuild moduleset for these, which I could reuse (after adapting it) for the OS X build since gtk-osx is using jhbuild too. This way, I could focus on the real porting work. The easy bits were tweaking spice-gtk build options to use gstreamer instead of pulse-audio, gthreads instead of coroutines, ... And then I finally had to do some actual porting work ;) This ranged from small fixes due to OS X BSD roots, or to older libraries on OS X, to new code to write because there was some linux/Windows specific code to handle screen detection/resolution changes. And after that, lo and behold, I could connect to my remote VM from my Mac!

Then, with the help of Marc-André, I could tackle Vinagre. This mainly meant making some Vinagre dependencies optional (namely gtk-vnc, gnome-keyring and GtkApplication) because I didn't want to compile/use dbus. After some confusion because of a regression in glib causing Vinagre to crash on startup, I was really thrilled to connect to finally connect to a virtual machine running on my work laptop from my Mac OS X laptop!

While this was great, things were far from being over :) In order for this work to be usable by other people, I had to build an application bundle, this basically means making Vinagre relocatable at runtime. Thanksfully, the work from the people porting gtk+ to OS X came to the rescue once again! They provide an ige-mac-bundler to help generate application bundles for gtk+ applications. I had to tweak it since it's not fully ready for gtk3 yet, and to figure out how to get it to change the location of libpeas plugins, typelibs, pango modules, gdk-pixbuf modules at runtime. The good new is that all these modules provide handy environment variables which help with that (PEAS_PLUGIN_LOADERS_DIR, GI_TYPELIB_PATH, PANGO_SYSCONFDIR and GDK_PIXBUF_MODULE_FILE), but it took quite a bit of trial and error to figure out all of these :) Last but not least, I wrote a few patches for Vinagre to add similar environment variables to locate its data files.

The reward

And here is the final result (disclaimer: it's still a work in progress) :


As you can see in the video above (bigger ogg version here), it's already working pretty well, you can connect to a VM, go fullscreen, sound is working, ... But as always, there are still some improvements to be done...
The most important one is to upstream the various changes I had to make in Vinagre, spice-gtk and ige-mac-bundler. For spice-gtk, this is mostly done, for Vinagre and ige-mac-bundler, I have to clean up the changes first. I also have to make building Vinagre on OS X much easier  And then, there is more work to do to polish the OS X integration, like looking at GtkOSXApplication to get the usual OS X top menu bar, finding a better looking theme, having a native GtkApplication backend, and developing native OS X code for things like monitor detection/resolution changes/... (which is currently not implemented/not working). And obviously, it also needs lots of testing :)

All in all, I'm pleased with the result so far, it's a really good basis for a rocking Spice OS X client! Any takers for working on an iOS Spice client next ?

mercredi 30 mars 2011

Public Announcements

GNOME 3 in Paris

Thanks to YoBoY, there will be a GNOME 3 release party in Paris. It will happen on Friday, April 8th, registration is mandatory, and the number of available seats is limited, so register now for the party! There will be some GNOME 3 goodies ;)

Summer of Code

If you are a student, you can now apply for this year Google Summer of Code! GNOME is a mentoring organization this year again, this means you can be paid to hack on GNOME for a whole summer. Just browse our list of ideas for potential projects, or you can just write a proposal for any idea that you care about and would make GNOME even cooler!

Personal Life

I'm really happy to announce that I've started working at Red Hat last week. I have joined the Spice team and I'm looking forward to do great stuff (take over the world, this kind of things ;) with the people working there. Hopefully I'll get my own red hat soon!