Yes, finally after nearly 3 years of development and work, The Snail Tales project is finished. I had actually finished it late last year but decided to get christmas and new year out of the way before releasing to Snail Tales.
Here’s the finished film:
I will be collating all the character and background files and creating a public repository for them
On paper it seems an awful long time to make a piece of animation. But as well as the games I made as part of my job I moved house, got engaged, had to learn hot to use Synfig, and get S-Cargo and the continuous integration system working.
I recorded my presentation at OggCamp late last year – I will upload that shortly. In the meantime, here’s the presentation I did the year before, detailing how Synfig Stage and continuous integration will work:
This afternoon Dave gave his talk at #OggCamp – you can find his talk here – and a video will be uploaded as soon as we can get it rendered.
It’s that time again when thoughts turn to OggCamp. It’s happening in Liverpool 31 Oct – 1st November. Hoping to screen Snail Tales, and go through the scargo project.
Chuck Norris is watching you build code – careful now!
For the last few days, I have been playing with the Jenkins Continuous Integration server and python, and I have reached the following conclusion: Writing python code without an effective IDE makes the job of software development harder than it needs to be. I’ve been developing a lot on Ubuntu as well lately, so I’ve found the joy that is Wingware IDE
So – I think a bit of a recap is in order.
I have been working on synfig stage, and have logged the following bug on the Synfig forum, and in the bug tracker.
Synfig has a rather nifty mechanism for creating reference object – this is great if you want to create parts of a character, and re-use them throughout the life of the animation. Creating a reference canvas is pretty simple, and the nice thing about it is that once the reference canvas is created, you can swap and change the referenced element from your model through a nice canvas picker. Except that the feature is a bit broken.
Dave has just installed PresenterServer on his laptop – but here’s some of the steps we had to go through to get it to work:
- Extract the tag.gz file – no great shakes here, but running the installation script can only really be done from the terminal. Attempting to “Execute in terminal” just presented a black screen. I think the script was waiting for the sudo password to progress – but it’s not obvious.
- I had to install a Java run time – a quick sudo apt-get install default-jre soon had me rocking a JRE – Dave already had a JRE running, so didn’t have to do anything here.
- On executing I received the obscure message that the BlueCove library bluecove was not available. Installing required the following : sudo apt-get install libbluetooth-dev
- Dave ran it – it worked.
Now to many of us in the linux community this may be simple items to fix – but present users with those sort of issues and it becomes much more difficult for the average to simply install software. This is why I personally found it surprising that this project is not available from the Software-centre – the phone app required is available from the Android Marketplace.
The Linux Reality podcast produced a little over 100 episodes during it’s 2 year existence. The podcast featured content covering topics as diverse as servers through to desktops and everything in between.
The episodes exist on Archive.org, but the plan for Whobuntu is to create a package of linux reality content with descriptions covering the content.
Software centre provides a mechanism by which this content can be found. Therefore if a user were to search in software centre for DNSMasq then they would be able to find the package – but equally importantly they would be able to locate the episode of Linux Reality with a review and discussion of DNS Masq and some of the alternatives.
Using Software centre you would be able to locate the package Gnumeric, but you would also be able to locate the Episode 23 of LR where Chess Giffin talked about Gnumeric.
How to package static content.
To start with the Linux Reality content was downloaded from archive.org. To make it easy a script was developed which automatically downloaded all the episodes via wget
The process to then package a podcast is as follows :
- Execute the getlr script to retrieve all episodes of Linux reality.
- Create a tarball of all the episodes by executing tar -cvf linuxreality_0.1.tar.gz *.ogg
I then created a tar.gz file containing the episodes. I created a Linux reality folder. Named the same as the tarball I created earlier. From here I ran dh_make and a standard package folder was set up for me. The longest most time consuming job during this process was to index all the episodes. Luckily archive.org had all the original notes which I was able to cut and paste into the control file.
The next question was whether a package is installed for everyone, or just the current user. Daniel Hollenbach confirmed that a package is installed at the system level. This makes supporting a multiuser system more complicated, as Linuxreality would show as installed. The next question was whether new users should have it installed as part of the new user process. My thoughts on that are that we should only be providing what is asked for.If I install linuxreality then I shouldn’t mess with other users music?
To that end I created a postinst script. This executes once the package is installed. The purpose of this script is to create a link between /etc/share/linuxreality and ~/Music/LinuxReality.
When installing an application from software centre, software centre does a fairly good job of presenting a very professional looking user inteface but for applications stored in a PPA, the interface isn’t quite in the same league as the applications provided by the ubuntu repositories.
So what can we do about it? How can we make the packages in our PPA look more like the packages in the main repository?
There are 2 parts of the interface which need more investigation if we want our app to look and feel like an Ubuntu application.
The Packaging Icon, and the Package Screenshot.
The package screenshot is downloaded by software centre from screenshots.ubuntu.com. Debian has a similar screnshots server. Debshots works by allowing users to upload screenshots. The screenshots are only allowed for packages within the repositories configured within debshots. Our choices are to either get our PPA added to the list of acceptable PPA’s or we can host our own server.
In order to make this work we’ll need to modify the software centre to make it look at a new server. To accomplish this I packaged a replacement software centre, which replaces the ubuntu software centre.
When software centre loads a package it checks in /usr/share/app-install/icons for an icon – any file matchng the package name. Typically these icons are added by Ubuntu. The whobuntu.applicationicons package adds a series of whobuntu icons to the folder, and as it’s a package we can pass updates before we publish any new packages to the PPA.
sudo apt-get install build-essential devscripts ubuntu-dev-tools debhelper dh_make diff patch cdbs
For upload to launchpad you’ll need a gpg key.
- Download the Nightmares by design album from http://www.severedfifth.com
- wget http://audio.lugradio.org/severedfifth/nightmaresbydesign/severedfifth-nightmaresbydesign-2010-ogg.zip
- Re-package just the content in a tar.gz file – called severed severedfifth_nightmaresbydesign-2010.orig.tar.gz
- unzip severedfifth-nightmaresbydesign-2010-ogg.zip
- tar -cvf severedfifth-nightmaresbydesign-2010.orig.tar.gz severedfifth-nightmaresbydesign-2010-ogg.zip
- make a folder names the same as the tar file (minus the .orig.gz part) severedfifth_nightmaresbydesign-2010
- from the severedfifth_nightmaresbydesign-2010 folder, issue the dh_make command.
- Edit the Control file.
- Set the section – I chose sound
- set the priority – for this build chose optional
- Update the packager name (if required) and website addresses.
- Add any description elements – in my example I took the blurb from the website.
- Add a package for each track to be packaged.
- Edit the Copyright file
- Update the packager name (if required) and website addresses.
- Update the upstream author(s) and email addresses
- Update the upstream licence information
- Update your licence
- Update Changelog
- Update the packager name (if required).
- Change unstable to an ubuntu release ‘animal’ – for example maverick
- Update the change log line – typically for new packages I leave it as * Initial release.
- Update README.source – or delete it if nothing is applicable
- Update README.debian – or delete it if nothing is applicable
- Delete *.ex files from the folder
Building the source package :
issue the command
to build a deb issue the command
sudo pbuilder --build severedfifth.nightmaresbydesign_2010-1.dsc
the resulting deb file wll be in /var/cache/pbuilder/result
Uploading to Launchpad
Uploading large files can cause problems with lauchpad – there is a work around noted here.