Getting started with GNU FM development
This is a guide for developers who want to work on the free software project, GNU FM, which powers Libre.fm. It will give you a run down of the specifics behind Libre.fm and GNU FM, tell you how to get started and give you some ideas of things we need to improve the software for everyone.
GNU FM has two primary elements: the server, and the frontend. The server, GNUkebox (GNU Jukebox) is written in PHP and listens for media applications to report the listening habits of the user. These are submitted as simple HTTP POSTs to the server, which resides at turtle.libre.fm — this replaces post.audioscrobbler.com
For this, the user needs an account. Currently, the only way to get an account is to register in the frontend component, but as the two components should be independent services, this is missing functionality.
Speaking of the frontend, Nixtape (a pun on Mixtape, and Unix… forget it!) is also written in PHP, providing a reasonably attractive user interface to the user, allowing her to navigate among artists, albums, users and groups, and eventually tags and events.
We use git for our version control system. You may need to install this before you can check out the code:
git clone git://gitorious.org/foocorp/gnu-fm.git
This will give you the latest code checkout, too. If you don’t have git, you can download a copy now.
git clone git://gitorious.org/foocorp/librefm
This will give you all the Libre.fm specific stuff, like templates, logos, etc.