beets: Move into its own package directory.

The primary use of beets is not as a Python library and users usually
would expect to install it into the env using "nix-env -i beets" rather
than "nix-env -i pythonX.Y-beets".

Having beets in its own package directory also allows for better
customization, where we're going to implement attributes that can be
used to turn on/off various features and plugins.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Update to new upstream version 1.3.9.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Add myself to maintainers.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
mp3gain: Fix output path bin directory.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
python/mutagen: Update to upstream version 1.27.

Also now comes with a few more build dependencies in order to run tests,
which for this version now succeed.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
python: Add pyacoustid and dependencies.

We're going to need this for fingerprinting support in beets.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
python: Add new package discogs_client.

Needed in order to fetch Discogs album information in beets.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
python: Add new package audiotools.

This is needed for the replaygain plugin in beets.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Switch to using fetchFromGitHub.

The reason for doing this is because the package on PyPI is missing some
files needed for running the test suite (for example:
test/test_completion.sh).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Allow to configure plugin dependencies.

This also fleshes out/fixes the unit tests, which I've used for
gathering the individual requirements.

Along various Python dependencies we now also have a build-time
dependency on bashInteractive and a runtime dependency on
bashCompletion, which is needed for command line completion to work
correctly.

However, some tests for the shell completion fail at the moment, so I've
disabled them for now.

The patch for fixing mediafile codec info is a modified version of
sampsyo/beets@903e88a, where I just dropped the second hunk modifying
the changelog. It is already merged to master and thus expected to be in
the next upstream version.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Use audiotools backend for replaygain.

Using commands such as mp3gain and aacgain is only the default for
backwards-compatible reasons. However, on Nix(OS), we would have to
either patch those tools into beets or rely on an impurity, so let's
depend on audiotools and also default to that backend.

Of course, there is also a GStreamer backend, but it comes with a hell
of additional dependencies (which not only cover audio files), which is
why I decided against defaulting to GStreamer and package audiotools
instead (in eecd932).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Check plugin definitions against package.

The reason for doing this is in order to not forget about possible
dependencies in new upstream releases, so if upstream is introducing a
new plugin where we're lacking dependencies, the build will fail on our
side and we can check whether we'll need those.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
beets: Check dependencies on activated plugins.

Beets tries to load oll activated plugins on "beet config -e" (however
only on the second run, thus the dummy), so we just pass all activated
plugins into a generated config file and bail out on any errors.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Merge branch 'better-beets'.

Makes beets actually usable (and configurable) on Nix(OS), if you want
to use more plugins rather than just plain lookup of tracks based on
(fuzzy) string matching.

This also changes the derivation name from "python2.7-beets" to just
"beets".

* Commit summary:
  beets: Check dependencies on activated plugins.
  beets: Check plugin definitions against package.
  beets: Use audiotools backend for replaygain.
  beets: Allow to configure plugin dependencies.
  beets: Switch to using fetchFromGitHub.
  python: Add new package audiotools.
  python: Add new package discogs_client.
  python: Add pyacoustid and dependencies.
  python/mutagen: Update to upstream version 1.27.
  mp3gain: Fix output path bin directory.
  beets: Add myself to maintainers.
  beets: Update to new upstream version 1.3.9.
  beets: Move into its own package directory.