All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [V4 1/1] python-mutagen: new package
@ 2017-01-25 16:26 Adam Duskett
  2017-01-26  8:08 ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Adam Duskett @ 2017-01-25 16:26 UTC (permalink / raw)
  To: buildroot

Mutagen is a Python module to handle audio metadata.
It supports ASF, FLAC, MP4, Monkey?s Audio, MP3, Musepack, Ogg Opus,
Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack,
OptimFROG, and AIFF audio files. All versions of ID3v2 are supported,
and all standard ID3v2.4 frames are parsed.

It can read Xing headers to accurately calculate the bitrate and
length of MP3s. ID3 and APEv2 tags can be edited regardless of
audio format. It can also manipulate Ogg streams on an individual
packet/page level.

Mutagen works with Python 2.7, 3.3+ (CPython and PyPy) on Linux,
Windows and macOS, and has no dedependencies outside the
Python standard library.

Signed-off-by: Adam Duskett <aduskett@codeblue.com>
Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
---
v3 - v4:
  - Fixed licensing information.
  
v2 - v3: 
  - Readded longer help explination.
  - Added check for python2 or python3 zlib.

v1 - v2:
  - Added BR2_PACKAGE_PYTHON_ZLIB as a requirement.  Without
   this dependency, programs using python-mutagen will
   fail to load with a import error complaining about not
   being able to find zlib in python.
   
   
 package/Config.in                          |  1 +
 package/python-mutagen/Config.in           | 18 ++++++++++++++++++
 package/python-mutagen/python-mutagen.hash |  3 +++
 package/python-mutagen/python-mutagen.mk   | 14 ++++++++++++++
 4 files changed, 36 insertions(+)
 create mode 100644 package/python-mutagen/Config.in
 create mode 100644 package/python-mutagen/python-mutagen.hash
 create mode 100644 package/python-mutagen/python-mutagen.mk

diff --git a/package/Config.in b/package/Config.in
index c7b6862..0023e7b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -724,6 +724,7 @@ menu "External python modules"
 	source "package/python-meld3/Config.in"
 	source "package/python-mistune/Config.in"
 	source "package/python-msgpack/Config.in"
+	source "package/python-mutagen/Config.in"
 	source "package/python-mwclient/Config.in"
 	source "package/python-mwscrape/Config.in"
 	source "package/python-mwscrape2slob/Config.in"
diff --git a/package/python-mutagen/Config.in b/package/python-mutagen/Config.in
new file mode 100644
index 0000000..faaff39
--- /dev/null
+++ b/package/python-mutagen/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_PYTHON_MUTAGEN
+	bool "python-mutagen"
+	select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime
+	select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime
+	select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime
+	select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime
+	help
+	  Mutagen is a Python module to handle audio metadata. 
+	  It supports ASF, FLAC, MP4, Monkey?s Audio, MP3, Musepack, Ogg Opus, 
+	  Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, 
+	  OptimFROG, and AIFF audio files. All versions of ID3v2 are supported, 
+	  and all standard ID3v2.4 frames are parsed. 
+	  
+	  It can read Xing headers to accurately calculate the bitrate and length 
+	  of MP3s. ID3 and APEv2 tags can be edited regardless of audio format. 
+	  It can also manipulate Ogg streams on an individual packet/page level.
+
+	  https://mutagen.readthedocs.io/en/latest/#
diff --git a/package/python-mutagen/python-mutagen.hash b/package/python-mutagen/python-mutagen.hash
new file mode 100644
index 0000000..8970a23
--- /dev/null
+++ b/package/python-mutagen/python-mutagen.hash
@@ -0,0 +1,3 @@
+# md5 from https://pypi.python.org/pypi/mutagen, sha256 locally computed
+md5	2bd50519d64411626fa22d405afbf078  mutagen-1.36.tar.gz
+sha256	d7ee37e33b8c5893c3ebf66edac31241eb9d48e1dc7ec647bbfbc180565a4bcd  mutagen-1.36.tar.gz
diff --git a/package/python-mutagen/python-mutagen.mk b/package/python-mutagen/python-mutagen.mk
new file mode 100644
index 0000000..fa7b34d
--- /dev/null
+++ b/package/python-mutagen/python-mutagen.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-mutagen
+#
+################################################################################
+
+PYTHON_MUTAGEN_VERSION = 1.36
+PYTHON_MUTAGEN_SOURCE = mutagen-$(PYTHON_MUTAGEN_VERSION).tar.gz
+PYTHON_MUTAGEN_SITE = https://pypi.python.org/packages/69/14/4a5c8360a727563291a7159de935ffff2b99ee783928169f0fea7445370f
+PYTHON_MUTAGEN_LICENSE = LGPLv2+
+PYTHON_MUTAGEN_LICENSE_FILES = COPYING
+PYTHON_MUTAGEN_SETUP_TYPE = distutils
+
+$(eval $(python-package))
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [V4 1/1] python-mutagen: new package
  2017-01-25 16:26 [Buildroot] [V4 1/1] python-mutagen: new package Adam Duskett
@ 2017-01-26  8:08 ` Thomas Petazzoni
  2017-01-26  8:15   ` Yegor Yefremov
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2017-01-26  8:08 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 25 Jan 2017 11:26:10 -0500, Adam Duskett wrote:
> +	help
> +	  Mutagen is a Python module to handle audio metadata. 
> +	  It supports ASF, FLAC, MP4, Monkey?s Audio, MP3, Musepack, Ogg Opus, 
> +	  Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, 
> +	  OptimFROG, and AIFF audio files. All versions of ID3v2 are supported, 
> +	  and all standard ID3v2.4 frames are parsed. 
> +	  
> +	  It can read Xing headers to accurately calculate the bitrate and length 
> +	  of MP3s. ID3 and APEv2 tags can be edited regardless of audio format. 
> +	  It can also manipulate Ogg streams on an individual packet/page level.

These lines were too long, and contained some trailing white space. I
fixed that up.

> +PYTHON_MUTAGEN_VERSION = 1.36
> +PYTHON_MUTAGEN_SOURCE = mutagen-$(PYTHON_MUTAGEN_VERSION).tar.gz
> +PYTHON_MUTAGEN_SITE = https://pypi.python.org/packages/69/14/4a5c8360a727563291a7159de935ffff2b99ee783928169f0fea7445370f
> +PYTHON_MUTAGEN_LICENSE = LGPLv2+

Yegor told you the license was GPLv2+, so why do you write LGPLv2+ here?

But in fact, Yegor was wrong I believe, the license is actually
just GPLv2, I haven't seen any "or later" statement anywhere.

So I fixed it as well, and applied.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [V4 1/1] python-mutagen: new package
  2017-01-26  8:08 ` Thomas Petazzoni
@ 2017-01-26  8:15   ` Yegor Yefremov
  2017-01-26  8:35     ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Yegor Yefremov @ 2017-01-26  8:15 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Jan 26, 2017 at 9:08 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> On Wed, 25 Jan 2017 11:26:10 -0500, Adam Duskett wrote:
>> +     help
>> +       Mutagen is a Python module to handle audio metadata.
>> +       It supports ASF, FLAC, MP4, Monkey?s Audio, MP3, Musepack, Ogg Opus,
>> +       Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack,
>> +       OptimFROG, and AIFF audio files. All versions of ID3v2 are supported,
>> +       and all standard ID3v2.4 frames are parsed.
>> +
>> +       It can read Xing headers to accurately calculate the bitrate and length
>> +       of MP3s. ID3 and APEv2 tags can be edited regardless of audio format.
>> +       It can also manipulate Ogg streams on an individual packet/page level.
>
> These lines were too long, and contained some trailing white space. I
> fixed that up.
>
>> +PYTHON_MUTAGEN_VERSION = 1.36
>> +PYTHON_MUTAGEN_SOURCE = mutagen-$(PYTHON_MUTAGEN_VERSION).tar.gz
>> +PYTHON_MUTAGEN_SITE = https://pypi.python.org/packages/69/14/4a5c8360a727563291a7159de935ffff2b99ee783928169f0fea7445370f
>> +PYTHON_MUTAGEN_LICENSE = LGPLv2+
>
> Yegor told you the license was GPLv2+, so why do you write LGPLv2+ here?
>
> But in fact, Yegor was wrong I believe, the license is actually
> just GPLv2, I haven't seen any "or later" statement anywhere.

This is the stuff I still don't really grok. How do I tell whether it
is GPLv2 or GPLv2+?

This passage [1] contains such a sentence:

"either version 2 of the License, or (at your option) any later version."

Is this not enough? This is what our manual states in regard to GPLv2+:

"GPLv2+: GNU General Public License, version 2 or (at your option) any
later version;"

This is what I used to as a rule.

[1] https://github.com/quodlibet/mutagen/blob/master/COPYING#L296

Yegor

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [V4 1/1] python-mutagen: new package
  2017-01-26  8:15   ` Yegor Yefremov
@ 2017-01-26  8:35     ` Thomas Petazzoni
  2017-01-26  8:41       ` Yegor Yefremov
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2017-01-26  8:35 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 26 Jan 2017 09:15:52 +0100, Yegor Yefremov wrote:

> This is the stuff I still don't really grok. How do I tell whether it
> is GPLv2 or GPLv2+?
> 
> This passage [1] contains such a sentence:
> 
> "either version 2 of the License, or (at your option) any later version."

Have you read this part of the license? It is an *example* of what you
can put in the header of your files to indicate what the license is.

So this part of the license is an *example*, it does not tell you at
all what is the license that applies to this package.

To know whether it's GPLv2 or GPLv2+ you have to open an actual source
file, and look at its copyright header. If it says "version 2 or
later", then it's GPLv2+. If it says "version 2", then it's GPLv2 only.

If you look at the mutagen source code, all source files I could see
mention just "version 2", hence GPLv2.

Please read again the text of the GPL around the line you indicated.
You will understand better what it means.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [V4 1/1] python-mutagen: new package
  2017-01-26  8:35     ` Thomas Petazzoni
@ 2017-01-26  8:41       ` Yegor Yefremov
  0 siblings, 0 replies; 5+ messages in thread
From: Yegor Yefremov @ 2017-01-26  8:41 UTC (permalink / raw)
  To: buildroot

On Thu, Jan 26, 2017 at 9:35 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> On Thu, 26 Jan 2017 09:15:52 +0100, Yegor Yefremov wrote:
>
>> This is the stuff I still don't really grok. How do I tell whether it
>> is GPLv2 or GPLv2+?
>>
>> This passage [1] contains such a sentence:
>>
>> "either version 2 of the License, or (at your option) any later version."
>
> Have you read this part of the license? It is an *example* of what you
> can put in the header of your files to indicate what the license is.
>
> So this part of the license is an *example*, it does not tell you at
> all what is the license that applies to this package.
>
> To know whether it's GPLv2 or GPLv2+ you have to open an actual source
> file, and look at its copyright header. If it says "version 2 or
> later", then it's GPLv2+. If it says "version 2", then it's GPLv2 only.
>
> If you look at the mutagen source code, all source files I could see
> mention just "version 2", hence GPLv2.
>
> Please read again the text of the GPL around the line you indicated.
> You will understand better what it means.

I see now. Thanks for your explanations.

Yegor

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-01-26  8:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-25 16:26 [Buildroot] [V4 1/1] python-mutagen: new package Adam Duskett
2017-01-26  8:08 ` Thomas Petazzoni
2017-01-26  8:15   ` Yegor Yefremov
2017-01-26  8:35     ` Thomas Petazzoni
2017-01-26  8:41       ` Yegor Yefremov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.