Server Updates

This release adds support for data replication, makes others’ votes more visible, and allows moderation notes to be e-mailed to other voters, not just the moderator.

Changes mainly of interest to MusicBrainz Users

Votes on open moderations are no longer as “aggressively hidden” as they
used to be.  Now you can always see the voting on any mod, regardless
of status etc, by going to the Moderation Detail
page.  On the main voting pages
you’ll only not be able to see the vote counts as long as you haven’t voted;
as soon as you vote (or when the mod closes, or if it’s your mod anyway)
then the vote counts are shown.

All URLs in moderation notes are now hyperlinked, not just ones that link to
other MusicBrainz pages.  See
(Technically there are limitations to this – only http, https and ftp URLs
are detected, and finding where the URL ends is a bit of a fuzzy science –
but it gets it right most of the time).

From now on, whenever you add a note to a moderation, you’ll get mailed all
future notes added to that moderation.  If you don’t like this new
behaviour, you can disable it via a new preference.  In that case
you’ll only get mailed notes which were added to your own mods.

Each entry in the Style Guide is now “linkable”,
so you can refer style guide entries to other users just by posting a link.

For new Tagger users, it’s now much more obvious that you have to copy your
username / password into the relevant part of the “Options” window.

Previously it was possible to add artists, albums etc with trailing
whitespace in their names.  This caused problems with artists
especially, where the name is meant to be unique.  The system now tries
much harder to remove such whitespace before the data is written to the
database.  As a one-off exercise for this release, all
trailing-whitespace data should now have been removed.

Previously, strange side-effects could have occurred in various places if the
names of artists, etc. contained the “_” or “%” characters.  These
potential side-effects have now been fixed.

The Top Moderators page has been revamped; the
moderator names listed there are now links to their profile pages.

On the Browse Releases page, there is now
a “title” attribute (which in most browsers is shown as a “tooltip”) which
shows the track, disc id and TRM id counts for each release.

If there is an error when adding a track, previously the system just
reported “Error”.  Now it shows you the full error message, as
originally intended.

Changes mainly of interest to MusicBrainz Programmers

The TRM “gateway” on the server has now been reimplemented in
mod_perl.  For the most part this shouldn’t make much difference to
you; but it does mean for example that you can use any URL at,
and that we can get
on use of the signature server. 
There are also some new “special” TRMs
which can be returned to indicate various exceptional conditions.

New and Changed Documentation

The documentation for the client
and TunePimp have been
extended and reorganised.

Changes mainly of interest to MusicBrainz Server Programmers


The server now supports one-way data replication, for most (but not all)
tables.  (The tables excluded are the moderation and moderator tables
– nine tables in all).  The replication is based on the “dbmirror” code
contributed to the Postgres codebase.

Every hour, the ExportAllTables script
runs and exports the changed rows into a “replication packet” file (a
compressed “tar” file).  Those files are then made available on our
FTP site
Every so often (for example, once a week) a complete database export is
run, and this too is made available on our FTP site.  By initially
importing one of these full databases (minus the moderation tables),
then applying each replication packet, a slave database can keep up-to-date
with the master.

The RDF Dump

We no longer perform regular RDF exports (the “mbdump.rdf.bz2” file). 
The script which did the exports still exists, however.  If you want RDF
then one way to do it would be to set yourself up as a Postgres mirror, and
run the RDF export script against your database.


The "cron" scripts
have been rewritten; they are now configured via, and the
INSTALL file now mentioned the existence of
these scripts.

Other Changes

Text::Unaccent version 1.05 couldn’t handle non-string data safely
(including “undef”).  We’re now running a patched version of this
module; the relevant patch is available on our FTP site.

There is a new “cleanup” script,
some old scripts have been removed.

Various database write operations have been moved into more appropriate places
in the code, as have some read operations.  Lots of SQL has been
rewritten, and some unused methods have been removed from
now complains and shows the error message in the event of failure. 
There were miscellaneous HTML fixes.
was changed to allow false values; “remove” was renamed to “delete”.

Bugs and RFEs Closed

Dave Evans

MusicBrainz Tagger 0.10.4

The 0.10.4 version of the tagger fixes a number of problems related to saving tracks.

This version contains the following bug fixes:

  • VBR MP3 files that have no ID3v2 tag, but have an ID3v1 tag may have had
    their Xing header corrupted, which could cause these MP3 files to show up with
    incorrect durations in audio players.
  • The tagger now reads the release year from the TYER ID3v2 tag, which means that
    if the ID3v2 tag has the right year, but MB does not, the release year from the ID3v2
    tag will be used when renaming the files.
  • Some files that were previously saved and then saved again, may have had an erroneous (1) appended to the filename.
  • Don Redman provided two improved bitmaps for the save and submit buttons, so that they look better when they are disabled.
  • Don also provided a new animation for the ‘page loading’ animation in the tagger. Thanks Don!

Robert Kaye

MusicBrainz Tagger 0.10.3

The 0.10.3 version of the tagger fixes a number of bugs and provides new options for configuring the file names.

This bug fix version fixes problems in the id3v2 tags generated by the
0.10.2 version. This version also supports logging, removing id3v2 tags
from ogg files, sports new toolbar icons, shows special too short
and silence trms.

With the increased load on the TRM signature server tagging clients may encounter
TRM server busy messages and the tagger now captures those and reminds the user
to donate money to MusicBrainz when the TRM server becomes busy. The tagger also
supports the new %type (album type), %status (album status), %year, $month, %date
(for first release date of the album) and %country (first release country)
variables for the saving tagged files. These values are now also written to
the metadata tags.

Bugs and RFEs Closed

Robert Kaye


The 2.1.1 version of libmusicbrainz improves support for dealing with and overloaded TRM server that occaisonally returns 503 Resource Busy to prevent the sigserver from taking over the entire site.

The following changes were made for 2.1.1:

  • Return special TRMs for special conditions for TRM generation:

    c457a4a8-b342-4ec9-8f13-b6bd26c0e400 — Sigserver busy and overloaded
    f9809ab1-2b0f-4d78-8862-fb425ade8ab9 — Source file is too short to calculate TRM
    7d154f52-b536-4fae-b58b-0666826c2bac — File is silence

  • If the TRM signature server becomes overloaded, it will now start
    returning HTTP 503 error codes and the TRM generator will catch that
    and return the Sigserver busy TRM shown above.

Robert Kaye

Server Updates

A bug fix when adding albums, additions to the RDF web service.

Changes mainly of interest to MusicBrainz Users

Bug #874401 has been fixed.  This bug meant that when you added
“Various Artist” albums, any sortnames you specified for new artists
were ignored.  Now you can specify both the name and sortname as
you create the artist, as you’d expect.

Changes mainly of interest to MusicBrainz Programmers

Web service changes: release dates, and release type and status have been
added to the QuickTrackInfoFromTrackId query.  This query uses
the same RDF prepresentation that the GetAlbumFromGlobalId function
returns.  This query will be deprecated for the next version of the web
service; the QuickTrackInfoFromTRMId function has also been

Changes mainly of interest to MusicBrainz Server Programmers

We’re switching over to use
Memcached for our cacheing
implementation (after a short spell with Cache::SizeAwareFileCache at the
last release).  Of course this means you’ll probably want to install
Memcached on your machine if you want to run a MusicBrainz server.

Some obsolete cleanup scripts have been ditched, and “” has
been completely rewritten (and renamed).

_FindFreeDBEntry has been removed – it wasn’t used any more, and if
we had happened to invoke it there was a nasty bug in there waiting to bite,
which would have caused data corruption of the TOC table.

Bugs and RFEs Closed

Dave Evans

Server Updates

A miscellaneous collection of bug fixes, and some back-end changes, and integrated Amazon cover art.

Changes mainly of interest to MusicBrainz Users

Amazon Cover Art

MusicBrainz now matches its database against the catalog. 
For each match found we display the album cover art in the album detail
page.  We’ve also added links for more information on the albums at
Amazon, and a “buy” link that lets you purchase the album from your
preferred Amazon store.

Associated with this are two new preferences: one lets you choose your
preferred Amazon store (e.g. the one closest to you); the other one
turns off both the cover art and the links to Amazon.  One of the
conditions under which this content is licensed from Amazon is that we
must display the “buy” link whenever we display the cover art —
so don’t ask us to show cover art without the “buy” links, because we can’t
do that.  It’s both, or neither.

Once we have a non-profit corporation for MusicBrainz, we will be able
start using our associate IDs and start earning a small percentage on albums
sold via MusicBrainz.  In the process of adding the Amazon cover art,
we’ve also reworked the way that artist, album and moderation links are
shown to make the album page less cluttered.


These changes only affect “FreeDB moderations” — i.e. when
a web service client requests album information based on
a MusicBrainz disc ID (and TOC) that we’ve not seen before,
causing the corresponding album to be automatically imported from FreeDB.

Firstly, the code used to turn the TOC into a FreeDB ID was flawed;
sometimes it yielded the correct FreeDB ID, and sometimes it didn’t. 
Of course, this has now been fixed.  However it is likely that there
are now some albums which have been automatically imported into MusicBrainz
but which were then associated with the wrong disc ID and TOC. 
It should be possible to write a “fix” script to identify and remove such
broken data; however that script so far has not been written.

Secondly, the minimum number of tracks need for an automatic import to
proceed has been raised from 2 to 5 (bug #800776).

Finally, the logic that tries to prevent the automated import of “Various
Artists” albums has been considerably strengthened; this should mean that
the FreeDB Moderations page will
tend to contain less junk in future.

Edit Artist Name bug fix

Previously, when an “Edit Artist Name” moderation was applied, the artist’s
page index (used for browsing) would be changed, when it should have
remained unchanged.

For example, if there was an artist “Bob Price”
(sortname: “Price, Bob”), then changing the name to “Bob Pryce” would have
moved that artist from the “P” page to the “B” page.  Since the “Edit
Artist Sortname” moderation also (correctly) modified the page index value,
the page which Bob ended up on would depend on whether the most recently
applied moderation was the “Name” or the “Sortname” moderation.

This bug has now been fixed, but it is likely that there are still some artists in
the database who are on the wrong index page as a result.  Editing
their sortnames will fix the error.  At some point a “fix” script needs to
be written to find and correct such broken data.


Previously, by using the “I forgot my password” feature, it was possible to
discover the e-mail address of any user.  This (bug #893529) was fixed
on the live server the day it was reported (so it falls between the previous
release and this one).

You’ll know if someone abused this flaw to find
your address, because you will have received the “this is your password”
reminder e-mail, even though you didn’t ask for it to be sent.  As far
as I am aware, the only person this happened to was me, and that was because
the bug finder was testing
out the bug on me before he reported it ๐Ÿ™‚

Other Changes

“Add Track” moderations on “Various Artists” albums previously showed a
blank artist name/sortname (on the voting pages, for example).  From
now on newly entered “Add Track” moderations will show the correct artist;
moderations which were already in the database before this release will just
not show the artist name (bug #868238).

When selecting an “inline moderation” to display on a “Various Artists” page,
the server no longer first picks a moderation “by the same artist”,
since it is very unlikely that
the selected moderation will have anything to do with the page you’re
looking at.

Many more timezones have been added to the allowed list, as seen on the
preferences page (bug #757534).  Also a few extra
date/time display formats have been added.

You can now choose your preferred Google domain (e.g. 
The MusicBrainz logo on the Google results pages is much nicer too ๐Ÿ™‚

Some dates were being incorrectly displayed as being Jan 1st, 1970 (or
maybe Dec 31st, 1969, depending on your time zone).  These dates
are now correctly displayed as “never”.

The cache expiration of the sidebar panel content (server stats, top
moderators, top voters) became broken during
the move to the new Mason
It’s fixed now.

New and Changed Documentation

A couple of typos have been fixed on the MM page
Another has been fixed on the mq_examples page.

Added the mb_server codebase.

Added release number / CVS Tag information to the
CVS modules page.

Changes mainly of interest to MusicBrainz Programmers

The database dumps
will now be performed every other day, instead of every day.

Changes mainly of interest to MusicBrainz Server Programmers


The MusicBrainz scripts now look for the Perl binary at
/home/httpd/musicbrainz/mb_server/cgi-bin/perl instead of
/usr/bin/perl.  Thus, you can now easily run your mb_server
from one installation of Perl, but have your system-wide Perl (which maybe
your operating system depends on extensively) be kept separate. 
All you’ll probably have to do is copy the Perl binary you were previously
using into the new path.

This change is described in the INSTALL file.


A cacheing layer has been added: MusicBrainz::Server::Cache
Currently this is based on Cache::SizeAwareFileCache (from the
Cache::Cache distribution).  There are new options in to control this.  In
the future the implementation of the cache might change; code using the
cache should neither care nor notice if it does.

So far the following things are cached in this way: user data
(; FreeDB responses; and user voting history statistics (as
displayed on the “profile” page).

Discid / FreeDB

As noted above, the FreeDB ID algorithm has been fixed — previously it
would sometimes give the wrong answer.  In fact much of
have been tidied up and revamped:

  • Discid->GenerateAlbumFromDiscid has been tidied up,
    as has Insert and InsertTOC.
  • Discid->GetAlbumAndIdFromDiscid has been removed.
  • Discid->ParseTOC has been added – this takes a TOC and returns
    lots of useful things from it, including the track count, lengths,
    MusicBrainz disc ID, and FreeDB ID.
  • In, _lba_to_msf and IsNumber have been removed,
    and Lookup has been greatly simplified.
  • Finally, now caches query responses from the FreeDB server.

Other Changes

Other changes include:

  • XML::DOM is not required,
    so it has been removed from the dependency list in the
    INSTALL file.
  • A hack has been added to
    to avoid re-executing the same SQL again and again for every page,
    when it only needs to be done once (when the database connection is first
    made).  However this is a hack! — it’s not
    done using proper DBI techniques, and it may break things, somewhere, some
    day.  Let us know if it causes you any trouble!
  • now logs the authenticated user
    (if known) into the access log.  The URL logged is now of the form
    /mm-2.0/QUERYNAME, like has been doing for a while
    now.  Also these two scripts have been tweaked in various small,
    cosmetic ways so as to make them as similar as possible.

Bugs and RFEs Closed

Dave Evans


The 2.1.0 version of libmusicbrainz improves mp3 duration checking, adds query strings for release dates and amazon asins.

The following changes were made for 2.1.0:

  • Moved the python bindings into a new seperate project
  • rewrote the mp3 duration detection code to be more robust by making it vastly easier. In the process the bitzi related code has been tossed. This should make the libary smaller and the mp3 duration checking faster.
  • Due to the bitzi code being removed, the SHA1 and Bitprint related functions have been removed.
  • Added query items for Release Dates/Countries, Amazon Asins and Amazon cover art URLs
  • Move include files into include/musicbrainz so that the example files will compile outside of the libmusicbrainz client source tree.

Robert Kaye

Server Updates

Two new moderation suggestion reports – duplicate albums, and more duplicate artists.

Not many changes today.  Well, we did have a main release only
two days ago!

Changes mainly of interest to MusicBrainz Users

Matthias Friedrich and Wendell T. Hicken have created two new reports:
one listing
duplicate albums
and another one with
more duplicate artists.

“Guess Case” will now put “(bonus disc)” (or “disk”) in lower case.

Changes mainly of interest to MusicBrainz Server Programmers

The database import script is now potentially much faster
(down from 2 hours to 20 minutes).  It also no longer asks two
questions at the start, so it’s easier to run it completely unattended.

The unused “” script has been removed.

Dave Evans