Revision 2 as of 2010-03-27 01:06:43

Clear message

"" Warning, first draft. Still work in progress (project architecture and other questions that I will finish tomorrow.""

Urban Skudnik

Contact information


  • Project Name: Home user backup solution (deja-dup improvements (Was "Home User Backup Spec"))
  • Project Description:

The fundamental idea of the project is that backup should be introduced to home users that still (at least in part) believe that backup and its maintenance are rocket science. Many attemts have been started and many solutions are already available, but Ubuntu has yet to implament backup solution that would be simple enough for home users that do not have time nor experiance with maintanance of Linux operating system (or any operating system for that matter) and at the same time be properly integrated with Ubuntu.

Important factor in the project will be do usage of existing tools since a solution that would be built completly from scratch would take on the order of magnitude of man-years to achieve properly reliability (which is by far the most important factor of a backup). To achieve this I will probably use Deja Dup.

For a proper solution, I will have to work on Deja Dup itself (for example, it still does not support restoring of a single file, it does not check whether or not the disk has space for backup, etc.), but will at the same time have to work with Ubuntus migration asistant (user will have to be presented with an option to create backup at the next Ubuntu upgrade that will support mu backup solution), it will have to be integrated with Ubuntu's GUI, which means that I will probably have to work with Gnome and its file manager (Nautilus).

Deja Dup seems to be particularly well suited since it supports backup to both the external hard drives and to Amazon S3/Ubuntu One. The backup solution should also support quick restore of system settings so that if user looses his hard drive he can be up to speed as quickly as possible and restore his data later on.

  • If you would be willing and able to do other projects instead, which ones?

I haven't done proper reasearch and discuss other ideas with mentors, but my other alternative was "Testdrive Front End" which seems to be taken already. A similar project to which at least a part of my ideas could be applied is "Ubuntu System" Restore and Backup utility".

  • Why did you like this idea?

At todays prices of hard drives and prices of storage in the cloud, it is unbelivable that there are still people that have neither. At least a part of that problem lies in the misconscetion that backup is hard to make and maintain. Apple introduced idea quite effectively to its users and I belive that same can be achieved with such user oriented Linux distribution as Ubuntu.

  • Please describe a tentative project architecture or an approach to it:

My primary choice for the language is Python, which seems ideal since Deja Dup is made with it (and with C, with which I am not familiar as much as with Python, but can still find my way around).

As briefly described in the project description, the project will require work on several components. The backup process itself will be handled by Deja Dup, which, although simple to use and with many features, still lack many and has lots of bugs that will have to be addressed during the project. The good thing is that it supports not only external hard drives but also Ubuntu One, so user can access certain (before selected) files and system settings from anywhere (and, in case he or she has enough space in the cloud, even his larger files). A must is also nice and friendly handling of hard drives - when hard drive is not connected, a backup should silently fail (up to some reasonable time limit, after which user should be notified).

At the same time, backup should be available on the directory and file level as well, which will require integration with Nautilus. One option, which should probably be discussed later with mentor, is that when user click with his right mouse button and opens the menu, he should see if there is an option of backup restore and (in case of text files/directories), what kind of changes were made since. Menu item and other Nautilus hacking would be done with Python-Nautilus. Other options, that should be available in directory, are possible history of the directory (a list of files - "file x deleted 1 minute ago", "file y deleted 3 hours ago", etc.) and the ability to restore such a file.

  • Give us details about the milestones for this project
  • Why will your proposal benefit Ubuntu?

Open Source

  • Please describe any previous Open Source development experience
  • Why are you interested in Open Source?


  • How long will the project take? When can you begin?
  • How much time do you expect to dedicate to this project? (weekly)
  • Where will you based during the summer?

At home in Slovenia

  • Do you have any commitments for the summer? (holidays/work/summer courses)
  • Please designate a back up student (in case you need to withdraw your application)


  • Have you ever participated in a previous GSoC? (describe your project)
  • Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

Not yet, but I am thinking of one or two. If I do, I will make appropriate notifications

  • Why did you apply for the Google Summer of Code ?
  • Why did you choose Ubuntu as a mentoring organisation?
  • Why do you want to participate and why should Ubuntu choose you?