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.

Fetching The Code

We use git for our version control system. You may need to install this before you can check out the code:

git clone https://git.gnu.io/gnu/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 https://git.gnu.io/foocorp/librefm.git

This will give you all the Libre.fm specific stuff, like templates, logos, etc.

Installation

For installation instructions, see gnufm_install.txt in the checked-out code (it may have differences from the one linked here).

Help With Installation and Development

See the Support page for details of how to contact the development community and ask questions.

Contributing To The Project

The GNU FM project welcomes new contributors. To get started, grab the code (see above) and join the Libre FM mailing list.

The FSF holds the copyright to GNU FM so they can defend everyone's freedom to use it. This means that if you are making a contribution of code to GNU FM larger than a simple bug fix you'll need to sign copyright assignment papers with the FSF.

This article explains why, and this one explains the process .

To submit code to the project, please make sure that you've matched the existing coding style and tested the code in a clean install, then create a branch of the Git project and submit a merge request against the develop branch.