How far are we porting Ubuntu One to windows?
As some of you may know I am the person that is currently working on the port of Ubuntu One to Windows. Recently a colleague asked me how to install Ubuntu One in its current alpha state on Windows, and I though that posting the instructions for the adventurous would be a nice thing to do (I might get someone interested to help me too ).
Setting the build environment
Because the .msi that we generate does not have the digital signature of Canonical we do not distribute it yet. But you shall not worry since all the code is open source are you are more than able to compile, test and create the installer by yourself. To do that you have to set up your environment (I should create an msi or script for this….). In order to set everything, follow this steps:
- Install python 2.6 for windows and extensions (installer)
- Install py2exe
- Patch py2exe with this
- Add the following implementation of XDG for windows.
Install this python packages:
It is important that if you use easy_install to install the packages you need to use the -Z option so that the dependecies are not isntalled as eggs. Py2exe cannot work with eggs and by using the -Z option the egss will be automatically extracted for you.
Creating the .msi
As usual everything in the build process has been automated. To automate the process we have used Nant which will build, test and create the .msi to be used.
A list of the commands can be found in the ubuntu wiki, nevertheless here they are:
- Creates a bootstrapper that will allow to install in the users machine the Ubuntu One solution plus a number of useful applications (Tomboy + GtkSharp)
- Compiles the different projects that are part of the solution.
- Removes the different results from the last compilation/task .
- Compiles the application using the build task, runs the unit tests usint the tests task and creates a msi installer that can be used to install Ubuntu One in the users machine (do not confuse with the bootstrapper, it only installes Ubuntu One)
- Compiles the solution using the build task and runs the different unit tests. The output of the tests can be found in the test-results dir.
In order to build the msi you will have to execute the following from the root of the directory:
Once you have done that you will be able to find the msi in the install directory that you will be able to use to install the app in your machine.
Well it is an .msi, so double click
As I mentioned, this is an alpha, an very very early alpha and it means that there is some work to get it running. Currently the most blocking issue is the fact that we do not have an implementation of Ubuntu SSO on windows an therefore we cannot retrieve the OAuth tokens required by Ubuntu One. Here are the instructions to get them:
- 1. Get credentials from Linux
The first step is to get your credentials from a machine that you already have paired. To do so, launch seahorse (the image might help)
Once you have opened seahorse you should be able to find an UbuntuOne token (if not, you will need to pair your machine to Ubuntu One). Right click on it and selected the properties options which should open a dialog like the following:
At this point simple click on the + sign and select “Show password” so that you can copy paste the Oauth tokens.
- 2. Set you OAuth in Windows
Currently the OAuth in Windows are read from an env variable. To be able to start syncing in your Windows machine you will have to set the env variable with the tokens you just retrieved from your Linux box. This example will be using Windows XP but it should be the same in other Windows versions.
To access to the env vars in Windows XP right click in “My Computer” and select “Properties”:
This will launch the system properties dialog. Select the “Advance” tab where you will find the option of “Enviroment Variables”:
Once the “Enviroment Variables” dialog is launched you will have to create a new env variable in the “User Variables” section:
The data to be used in the following:
- Variable Name
- Variable value
- Your OAuth token from Linux.
- If you did not restart your machine after the installer, do it. In the next boot time you will have the following:
Not all the actions of the menu are yet there, but for sure you can use the “Synchronize Now” option.
How can I help
Well the easiest way to help is to file bugs, secondly join #ubuntuone on freenode and look for mandel (me ) and I will happily explain the C# code as well as the python code and the work we have to do. This is not an easy project so do not get scared by the amount of code done so far or were to start, I’m here for that