Skip to content

Library Migration - Copyleft removal #61

@howethomas

Description

@howethomas

Critical Notice: The mutagen library (v1.47.0) is licensed under GPL v2 or later, which is a copyleft license. This requires special attention:

⚠️ Critical Notice: The mutagen library (v1.47.0) is licensed under GPL v2 or later, which is a copyleft license. This requires special attention:

  • May require source code disclosure when distributing
  • Could affect commercial distributions
  • Recommended to consider making it an optional dependency or finding MIT/BSD-licensed alternatives

All Other Dependencies:

✅ Are compatible with MIT License (BSD, Apache 2.0, MIT, etc.)
✅ Suitable for both commercial and non-commercial use

The document is production-ready and provides all necessary information for compliance, legal review, and distribution planning.

What is the mutagen library?

⏺ Based on the dependency information and project context, mutagen is a Python library for reading and writing audio file metadata (tags). Here's what you need to know:

What is Mutagen?

Mutagen is a Python library that handles audio metadata for various audio file formats. It allows you to:

  • Read and write ID3 tags (MP3 files)
  • Handle metadata for various formats: MP3, MP4, FLAC, Ogg Vorbis, Ogg Opus, etc.
  • Extract audio file properties (duration, bitrate, sample rate, etc.)
  • Modify audio file tags programmatically

Why is it in vCon Library?

In the vCon Library context, mutagen is used for audio metadata extraction when dealing with audio recordings in dialogs. The vCon specification supports audio/video recordings as part of conversations, and
mutagen helps extract technical details about these audio files.

The GPL License Issue

This is the important part:

  • License: GPL v2 or later (strong copyleft)
  • Issue: GPL requires derivative works to also be GPL-licensed
  • Impact: While the vCon Library is MIT-licensed, including mutagen creates a licensing complication

Alternatives to Consider

If you want to avoid GPL licensing concerns, here are MIT/BSD-licensed alternatives:

  1. tinytag (MIT License) - Lightweight audio metadata reader
  2. mediafile (MIT License) - Audio file metadata handling
  3. eyed3 (GPL - same issue)
  4. Make it optional - Only load mutagen if the user explicitly installs it

Recommendation

You might want to:

  1. Make mutagen an optional dependency (only needed for advanced audio metadata features)
  2. Switch to tinytag (MIT-licensed alternative)
  3. Keep it but clearly document the GPL requirement in your distributions

Metadata

Metadata

Assignees

Labels

dependenciesPull requests that update a dependency file

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions