DX Hackfest, Berlin – Boxes

GNOME DX Hackfest - Berlin
Image taken by Jakub Steiner

Prelude

This blog post will cover the progress of my GSOC project as well as some experiences of mine from the DX hackfest in Berlin. This post will contain especially information about my Boxes project. For more information about the project you can read my initial post about it.

On Friday I had the opportunity of attending the hackfest in Berlin for one day spontaneously. This was the first experience of this kind for me. For the first time I had the chance to meet other gnome developers (including my mentor zeenix) in person – and this was really great!

Community Bonding

The first two weeks of the community bonding phase are over, two weeks are left until the coding phase begins.

On the hackfest in Berlin I was very warmly welcomed by all the attendees. It was really great to meet all these open minded persons and to discuss issues with them. Discussion points for me were especially things affecting Boxes but not limited to this. You will read about the most important things below.

Boxes – Project Status

ISO Downloading – Design

During the hackfest I had the chance to discuss my project with jimmc and zeenix in person. We discussed especially about the ISO downloading feature and decided on the following workflow:

Boxes will try to recognize the ISO to download as soon as possible (URL, if not possible with only a part of the ISO already downloaded) so that the user will hopefully don’t have to wait long for recognition and can be put on the setup or review page (for non-express installable medias).

After exiting the wizard a dummy icon will be shown instead of the new VM indicating that the download is running with a progress bar on the bottom like epiphany has one. For consistency downloads will have the ability to be paused and continued just like a normal VM can be paused and continued. If the download finished the VM will be installed/executable normally.

Design Mockup - ISO Downloading
Design Mockup – ISO Downloading

Additional OS support for express installation

During the last 2 weeks I read a lot of code. Especially the hackfest made things concerning the support for express installation clearer:

I will probably replace the use of runtime dependencies like mcopy or mkisofs by the libarchive library which already has vala bindings [0]. This is good since the mcopy dependency has made some problems with users/distributors not knowing it is needed for the express installation feature. With using libarchive we will have some objects handling the archive, less runtime dependencies and be able to perform the initrd injection for express installation for Debian based systems:

For Ubuntu and Debian there already is an installation script in libosinfo. Since it is a minimal one I will have to create a script for a normal installation based on the existing work. The installation script (a preseed file) will then be injected into the initrd via libarchive.

A quick warning for everyone trying to do similar things and reading the “official installation guide” [1]:

According to zeenix the guide provides wrong information. He and a previous GSOC student as well as another developer working on another project spend lots of time trying to inject the preseed file via some boot parameters. It just doesn’t work, the documentation seems wrong.

Making Boxes More Stable

I did not fix many bugs during these weeks. I filed a few patches that hopefully make coding easier for people hacking Boxes. There are some patches which are work in progress bug at the given time I concentrate my efforts on the other two goals.

I am also currently reading through all the bugs in Boxes in order to get a better overview, comment some of them and hopefully help to solve them this way.

IRC Nick

You may notice that I changed my nickname from sils1297 to sils. Sils1297 has kind of historical reasons and is hard to memorize. I think sils will also be recognized and can be memorized better.

If you find a GNOME related location where I didn’t update it yet, feel free to ping me.

Conclusion

All in all the community bonding phase was a success for me right now. I have done some preliminary work for my project and bonded well to the community in my eyes. I am looking forward to meet even more GNOME people on GUADEC – I’ll definitely be there, tickets are booked.

If you have any comments (be it on the design decisions for my project or something else) feel free to mention them.

Appendix

Fixed Bugs

Since last update.

https://bugzilla.gnome.org/show_bug.cgi?id=729258#c1

https://bugzilla.gnome.org/show_bug.cgi?id=728930#c3

https://bugzilla.gnome.org/show_bug.cgi?id=728948#c1

Resources

[0] https://gitorious.org/vala/mainline/source/9cd33f5d14677bcb6ae1846f8efa99a8e019edc5:vapi/libarchive.vapi

[1] http://www.debian.org/releases/stable/i386/apbs02.html.en#preseed-loading

Leave a Reply