It is often observed that attempting to undertake one task begets another, with the corollary that two days later you’ve built a bikeshed painted in a multitude of colours.
So, dear readers, this tale of woe begins with the need to update my blog to something useful after 18 months of neglect and more. I had been writing a travel blog from when I took some leave off work to wander the globe. For this task, a new more generic DNS entry and an upgrade to the WordPress installation and syndication with my Advogato blog. Easily accomplished and a sense of progress.
This blog entry is going to be mostly a technical one. I’ll try incorporating more of real life in other entries.
Great, now I can tell the world about my little project toying with Vagrant and Puppet.
It is called “Browser In A Box”. It is up on Github https://github.com/mtearle/browser-in-a-box
It is very simple, a Vagrant file and a set of Puppet manifests/modules to launch Chromium in kiosk mode inside a VM to hit a certain URL. This is part of planned later work to look at creating a Vagrant development environment for Concerto.
At this point, I got distracted … aside from the liberal upgrades of bash on various machines to address Shellshock
Then I accidentally purchased a new Ultrabook. My previous netbook had been getting long in the tooth and it was time to upgrade. I ended up purchasing a Toshiba Satellite NB10, a reasonable processor Intel N2830, 4 Gig of RAM and 500 Gigs of spinning rust. Those are the nice bits.
On the negatives, Crappy Toshiba keyboard layout with the ~ key in a stupid spot and a UEFI bios. It is now blatantly apparent why Matthew Garrett drinks copious quantities of gin.
Special brickbats go to the Ubuntu installer for repartitioning and eating my Windows installation and recovery partition. (The option to install over my test Debian installation got over enthusiastic). The wireless chipset (Atheros) has a known problem where it confuses the access point.
The next distraction ended up being a fit of procastination in terms of rearranging my tiny apartment. I’ve now modelled it in a program called Sweet Home 3D. Easy and straight forward to use. Needs a few more furniture models, but perfectly functional. I shall use it again next time I move.
Finally, we arrive at the the original task. I want to start syncing my calendars between various locations (written here for my benefit later).
- Work stream – From my Work (Exchange) to my private host (Radicale) to Google Calendar (which will get to my Android phone)
- Personal stream – From my private host (Radicale) to Google Calendar (and back again)
- Party stream – From Facebook’s ical export to my private host and Google Calendar
In addition, various syncing of contacts but not my primary focus at the moment.
It appears that syncevolution will do most of what I want here. The challenge revolves around how to get it working. Ultimately, I want to have this live headless hosted on a virtual machine not running a desktop.
In a fit of enthusiasm, I decided upon attempting to build it from source as opposed to using the packages provided from the upstream (to avoid dragging in unnecessary dependencies.
I need to build from HEAD due to recent code added to syncevolution to support the change in Google’s CALDAV API to be behind OAuth V2.
This was not an overly successful exercise, I ended up getting something built but it didn’t ultimately work.
Problems encountered were:
- libwbxml2 – The upstream at opensync.org is down. There appears to be forks, so playing the game of guessing the current head/release version.
- activesyncd – Build system is currently broken in parts. There appears to be bit rot around the evolution bindings as the evolution API has changed
I gave up at that point. I’ve since spun up a different virtual machine with Debian Jessie and an install of Gnome. The packages from the syncevolution upstream installed cleanly, but have yet to work out the incarnations to make it work. However, that my friends is a story for a later blog entry…