My UbuntuOne Yum Repo for Fedora

UPDATE (2012-11-01): updated and rebuilt packages for Fedora 18!
UPDATE (2012-06-21): updated and rebuilt packages for Fedora 17!

Are you a Fedora user? Have any of your friends or colleagues recently tried to share a bunch of files with you via UbuntuOne? I've been in such a situation and, to my surprise, I could not find any working/updated UbuntuOne RPMs on the web, despite the fact that it's all free and open source software used by more than 1 million people. The web interface is really nice, but a local client that performs transparent file-syncing with the cloud is even better. And what about running the UbuntuOne client for Windows on wine? Come on... really??

But, wait a minute! There must be someone who has already packaged the UbuntuOne client for Fedora! Well, there's this article on making it run on Fedora 11 (that's more than 3 years old!). Then there's this detailed tutorial on compiling it from source on Fedora 16 (the current version of Fedora), but I still wanted nicely packaged RPMs: I don't like having old, unknown, orphan and even conflicting files lying around in my filesystem, and yum makes managing packages much easier. (Edit: I've just found this yum repository at fedorapeople.org which unfortunately is outdated and compiled for Fedora 13, but could still serve as a good starting point.)

So I set out to build all the necessary packages from scratch and publish them in a public Yum repository. After all it's all based on Python, so how hard could it be?

The biggest hurdle was the lack of some key python libraries not packaged for Fedora which UbuntuOne requires to run, such as configglue, python-defer, lazr.restfulclient, lazr.uri and wadllib. All these packages are hosted on Launchpad and most of them are developed and maintainted by Canonical to power Launchpad, Landscape, and other applications. I guess these libraries are of little use outside Ubuntu, and that explains why they are not packaged for Fedora.

This caused an even worse challenge: Dependency Hell!! Fortunately my girlfriend was kind enough to grant me access to her Ubuntu box, where I could cheat using apt-cache depends and debtree, with which I could generate this nice dependency graph which helped me get an overall picture. It finally turned out to be around 10 new packages/subpackages.

All RPMs were built for Fedora 16 using a Mock chroot and uploaded to my yum repository. I tried hard to follow the Fedora Packaging Guidelines and the Fedora Guidelines for Python Addon Modules. AFAICT these packages comply with the Fedora Licensing Guidelines, and are not listed as Forbidden Items. I see no legal reason not to include them officially in Fedora in the future, so I'm planning to submit them for review.

I'm still struggling with a couple of bugs building the UbuntuOne Control Panel (UbuntuOne client's configuration GUI), but the basic filesharing functionality is working, though it requires some easy command-line tweaking.

So, head on and read the instructions on how to install UbuntuOne on your Fedora box in 4 easy steps. Enjoy!

Bugs, suggestions, insults? maxiberta at gmail dot com

Comments

Thanks a lot! I prefer Fedora to Ubuntu (for no objective reason), and Ubuntu One to Dropbox (simply because I can, in principle, read the source code). I also prefer to "yum install"s than to manually "./config; make; make install". Given my picky combination of preferences, your repository just solved ALL my problems! Hope your package makes it through the review.

Any news on getting these packages submitted for Fedora? It sounds like if you've been following the guidelines then it shouldn't be too arduous. Thanks!

Thank you for packaging UbuntuOne for Fedora! I could not successfully compile UbuntuOne for some reason and being without UbuntuOne was agony. Thanks again for this big favour you did for Fedora Community!