diff mbox

gnu: beets: Update to 1.3.19.

Message ID 1469831979.401650.680828161.4A5CCB9D@webmail.messagingengine.com
State New
Headers show

Commit Message

Alex Griffin July 29, 2016, 10:39 p.m. UTC
This patch just updates beets to 1.3.19.

With the new pypi URLs, are we updating the long hash portion? I did in
this patch, but it seemed to work either way.

(I'm also working on a few more patches to enable more beets plugins.
They'll probably be ready sometime this weekend.)

Comments

Leo Famulari July 29, 2016, 11:24 p.m. UTC | #1
On Fri, Jul 29, 2016 at 05:39:39PM -0500, Alex Griffin wrote:
> This patch just updates beets to 1.3.19.

Awesome, thank you for paying attention :)

> With the new pypi URLs, are we updating the long hash portion? I did in
> this patch, but it seemed to work either way.

I changed it to use pypi-uri, and pushed as 23319ed674. The "long hash" URLs
were a temporary workaround when PyPi changed their URL schema.

> (I'm also working on a few more patches to enable more beets plugins.
> They'll probably be ready sometime this weekend.)

Doubly awesome!

By the way, Beets says that the next version will be compatible with
Python 3:
https://twitter.com/b33ts/status/746871072436289537

When that release comes, let's take the opportunity to update Beets's
entire dependency graph.
Alex Griffin Aug. 3, 2016, 10:38 p.m. UTC | #2
On Fri, Jul 29, 2016, at 06:24 PM, Leo Famulari wrote:
> > (I'm also working on a few more patches to enable more beets plugins.
> > They'll probably be ready sometime this weekend.)
> 
> Doubly awesome!

The most important plugin that I'm missing is the replaygain plugin, and
I've got it working on my system now. There are multiple replaygain
backends, and I wanted the bs1770gain backend, so I created a package
for that. I started to make some related changes in the beets package
too, but I'm not sure if it's worth the trouble.

If a user (1) installs bs1770gain into their profile, and (2) edits
their config file to use that backend, then the replaygain plugin works
fine. The nix package does a lot of patching to make both of those step
unnecessary, but it seems like overkill to me.

The 'convert' plugin is similar in that it doesn't work OOTB, but it can
be fixed by the user without modifying beets (just install ffmeg or
configure it to use other commands for conversion).

WDYT?

> By the way, Beets says that the next version will be compatible with
> Python 3:
> https://twitter.com/b33ts/status/746871072436289537
> 
> When that release comes, let's take the opportunity to update Beets's
> entire dependency graph.

Nice! Sounds good to me.
Leo Famulari Aug. 7, 2016, 2:39 a.m. UTC | #3
On Wed, Aug 03, 2016 at 05:38:40PM -0500, Alex Griffin wrote:
> The most important plugin that I'm missing is the replaygain plugin, and
> I've got it working on my system now. There are multiple replaygain
> backends, and I wanted the bs1770gain backend, so I created a package
> for that. I started to make some related changes in the beets package
> too, but I'm not sure if it's worth the trouble.
> 
> If a user (1) installs bs1770gain into their profile, and (2) edits
> their config file to use that backend, then the replaygain plugin works
> fine. The nix package does a lot of patching to make both of those step
> unnecessary, but it seems like overkill to me.
> 
> The 'convert' plugin is similar in that it doesn't work OOTB, but it can
> be fixed by the user without modifying beets (just install ffmeg or
> configure it to use other commands for conversion).
> 
> WDYT?

I don't know how we've handled plugins, in general, so far. I think
there is an interesting approach to ALSA plugins on this branch:
https://notabug.org/Jookia/guix/commits/WIP_av

In the meantime, asking users to configure them manually seems fine. But
maybe I'm biased — I literally only use Beets to copy new music into my
library based on the music metadata tags. No plugins for me :)

Do you know how it works for Beets on "traditional" distros?
Alex Griffin Aug. 8, 2016, 7:55 p.m. UTC | #4
Thanks for the feedback Leo!

On Sat, Aug 6, 2016, at 09:39 PM, Leo Famulari wrote:
> Do you know how it works for Beets on "traditional" distros?

In Debian, some plugins' dependencies are optional, and the user has to
install them explicitly. That's sort of what we're doing, except Guix
doesn't have optional dependencies so you can't look at the package
metadata to figure out what to install.

I don't think this approach works with python dependencies though,
because you'll need to mess with the package description to get those
working. If someone wanted to use the replaygain plugin with the
gstreamer backend instead, for example, they couldn't just install
python-gst.

I have one more patch coming to enable the acoustic fingerprinting
plugin, then all the plugins I use will work. I think I'm just going to
hard-code its dependencies for now, but we may need to use another
approach if anyone wants to enable a bunch of other plugins.
Leo Famulari Aug. 9, 2016, 2:48 a.m. UTC | #5
On Mon, Aug 08, 2016 at 02:55:33PM -0500, Alex Griffin wrote:
> Thanks for the feedback Leo!
> 
> On Sat, Aug 6, 2016, at 09:39 PM, Leo Famulari wrote:
> > Do you know how it works for Beets on "traditional" distros?
> 
> In Debian, some plugins' dependencies are optional, and the user has to
> install them explicitly. That's sort of what we're doing, except Guix
> doesn't have optional dependencies so you can't look at the package
> metadata to figure out what to install.
> 
> I don't think this approach works with python dependencies though,
> because you'll need to mess with the package description to get those
> working. If someone wanted to use the replaygain plugin with the
> gstreamer backend instead, for example, they couldn't just install
> python-gst.
> 
> I have one more patch coming to enable the acoustic fingerprinting
> plugin, then all the plugins I use will work. I think I'm just going to
> hard-code its dependencies for now, but we may need to use another
> approach if anyone wants to enable a bunch of other plugins.

Thanks for the explanation. I guess we will decide what to do when we
need to make a decision :)
diff mbox

Patch

From 3e6c158530d3c024402db51dac459f11733f6f30 Mon Sep 17 00:00:00 2001
From: Alex Griffin <a@ajgrf.com>
Date: Fri, 29 Jul 2016 10:39:47 -0500
Subject: [PATCH] gnu: beets: Update to 1.3.19.

* gnu/packages/music.scm (beets): Update to 1.3.19.
[source]: Remove patch to skip failing tests. It's handled upstream now.

* gnu/packages/patches/beets-image-test-failure.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                       |  1 -
 gnu/packages/music.scm                             |  8 ++--
 .../patches/beets-image-test-failure.patch         | 46 ----------------------
 3 files changed, 4 insertions(+), 51 deletions(-)
 delete mode 100644 gnu/packages/patches/beets-image-test-failure.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index a0d9b8f..9c115fa 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -445,7 +445,6 @@  dist_patch_DATA =						\
   %D%/packages/patches/avidemux-install-to-lib.patch		\
   %D%/packages/patches/awesome-reproducible-png.patch		\
   %D%/packages/patches/bash-completion-directories.patch	\
-  %D%/packages/patches/beets-image-test-failure.patch		\
   %D%/packages/patches/bigloo-gc-shebangs.patch			\
   %D%/packages/patches/binutils-ld-new-dtags.patch		\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 5d73790..74c3e2a 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -7,6 +7,7 @@ 
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
+;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1518,17 +1519,16 @@  websites such as Libre.fm.")
 (define-public beets
   (package
     (name "beets")
-    (version "1.3.18")
+    (version "1.3.19")
     (source (origin
               (method url-fetch)
               (uri (string-append
                      "https://pypi.python.org/packages/"
-                     "14/6f/c9c79c5339ab3ecced265ca18adbf5bae3d4058bae737b6164d738fb4d2c/"
+                     "46/a0/b72a980dc56990d51cee1dcaa9fb76b472ef6430978997e58bff48a23b78/"
                      name "-" version ".tar.gz"))
-              (patches (search-patches "beets-image-test-failure.patch"))
               (sha256
                (base32
-                "09pgyywa5llbc36y0lrr21ywgsp8m2zx6p8ncf8hxik28knd5kld"))))
+                "1vi1dh3fr554bnm8y9pjy09hblw18v6cl2jppzwlp72afri1w93b"))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2 ; only Python 2 is supported
diff --git a/gnu/packages/patches/beets-image-test-failure.patch b/gnu/packages/patches/beets-image-test-failure.patch
deleted file mode 100644
index 360d7d3..0000000
--- a/gnu/packages/patches/beets-image-test-failure.patch
+++ /dev/null
@@ -1,46 +0,0 @@ 
-Fix test failure due to missing image library backend.
-
-Cherry-picked from upstream:
-https://github.com/beetbox/beets/commit/07c95a1bf16bf86c640436208dda828cc7df0181
-
-From 07c95a1bf16bf86c640436208dda828cc7df0181 Mon Sep 17 00:00:00 2001
-From: Adrian Sampson <adrian@radbox.org>
-Date: Thu, 2 Jun 2016 11:39:05 -0700
-Subject: [PATCH] Require an imaging backend for fuzzy ratio tests
-
-These fail outright if we don't have a way to get image sizes (e.g.,
-ImageMagick).
----
- test/test_art.py | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/test/test_art.py b/test/test_art.py
-index 02d26f4..1b12b76 100644
---- a/test/test_art.py
-+++ b/test/test_art.py
-@@ -561,21 +561,25 @@ def test_respect_enforce_ratio_no(self):
-         self._assertImageIsValidArt(self.IMG_500x490, True)
- 
-     def test_respect_enforce_ratio_px_above(self):
-+        self._require_backend()
-         self.plugin.enforce_ratio = True
-         self.plugin.margin_px = 5
-         self._assertImageIsValidArt(self.IMG_500x490, False)
- 
-     def test_respect_enforce_ratio_px_below(self):
-+        self._require_backend()
-         self.plugin.enforce_ratio = True
-         self.plugin.margin_px = 15
-         self._assertImageIsValidArt(self.IMG_500x490, True)
- 
-     def test_respect_enforce_ratio_percent_above(self):
-+        self._require_backend()
-         self.plugin.enforce_ratio = True
-         self.plugin.margin_percent = (500 - 490) / 500 * 0.5
-         self._assertImageIsValidArt(self.IMG_500x490, False)
- 
-     def test_respect_enforce_ratio_percent_below(self):
-+        self._require_backend()
-         self.plugin.enforce_ratio = True
-         self.plugin.margin_percent = (500 - 490) / 500 * 1.5
-         self._assertImageIsValidArt(self.IMG_500x490, True)
-- 
2.9.2