diff options
author | wiz <wiz@pkgsrc.org> | 2022-12-16 17:49:09 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2022-12-16 17:49:09 +0000 |
commit | 0a56919130c4f6999415abfb6fddf29b542c4f9f (patch) | |
tree | 9c0e5cf6732f5dd5186c0c2b9e91f23b67be269d | |
parent | 3c2ff127df8c4209a5848c33026f86a3d5728b4b (diff) | |
download | pkgsrc-0a56919130c4f6999415abfb6fddf29b542c4f9f.tar.gz |
audio/puddletag: import puddletag-2.0.1
puddletag is an audio tag editor (primarily created) for GNU/Linux
similar to the Windows program, Mp3tag. Unlike most taggers for
GNU/Linux, it uses a spreadsheet-like layout so that all the tags
you want to edit by hand are visible and easily editable.
The usual tag editor features are supported like extracting tag
information from filenames, renaming files based on their tags by
using patterns and basic tag editing.
Then there're Functions, which can do things like replace text,
trim it, do case conversions, etc. Actions can automate repetitive
tasks. Doing web lookups using Amazon (including cover art), Discogs
(does cover art too!), FreeDB and MusicBrainz is also supported.
-rw-r--r-- | audio/puddletag/DESCR | 13 | ||||
-rw-r--r-- | audio/puddletag/Makefile | 32 | ||||
-rw-r--r-- | audio/puddletag/PLIST | 207 | ||||
-rw-r--r-- | audio/puddletag/distinfo | 6 | ||||
-rw-r--r-- | audio/puddletag/patches/patch-puddlestuff_audio__filter.py | 16 |
5 files changed, 274 insertions, 0 deletions
diff --git a/audio/puddletag/DESCR b/audio/puddletag/DESCR new file mode 100644 index 00000000000..db141dd1d61 --- /dev/null +++ b/audio/puddletag/DESCR @@ -0,0 +1,13 @@ +puddletag is an audio tag editor (primarily created) for GNU/Linux +similar to the Windows program, Mp3tag. Unlike most taggers for +GNU/Linux, it uses a spreadsheet-like layout so that all the tags +you want to edit by hand are visible and easily editable. + +The usual tag editor features are supported like extracting tag +information from filenames, renaming files based on their tags by +using patterns and basic tag editing. + +Then there're Functions, which can do things like replace text, +trim it, do case conversions, etc. Actions can automate repetitive +tasks. Doing web lookups using Amazon (including cover art), Discogs +(does cover art too!), FreeDB and MusicBrainz is also supported. diff --git a/audio/puddletag/Makefile b/audio/puddletag/Makefile new file mode 100644 index 00000000000..1fe8dc45c27 --- /dev/null +++ b/audio/puddletag/Makefile @@ -0,0 +1,32 @@ +# $NetBSD: Makefile,v 1.1 2022/12/16 17:49:09 wiz Exp $ + +DISTNAME= puddletag-2.0.1 +CATEGORIES= audio python +MASTER_SITES= ${MASTER_SITE_GITHUB:=puddletag/} +GITHUB_RELEASE= ${PKGVERSION_NOREV} +GITHUB_PROJECT= puddletag + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://puddletag.sourceforge.net/ +COMMENT= Simple, powerful audio tag editor +LICENSE= gnu-gpl-v2 + +DEPENDS+= chromaprint>=0.4:../../audio/chromaprint +DEPENDS+= quodlibet-[0-9]*:../../audio/quodlibet +DEPENDS+= ${PYPKGPREFIX}-configobj-[0-9]*:../../devel/py-configobj +DEPENDS+= ${PYPKGPREFIX}-pyparsing>=1.5.1:../../devel/py-pyparsing +DEPENDS+= ${PYPKGPREFIX}-mutagen>=1.45:../../audio/py-mutagen +DEPENDS+= ${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5 + +USE_LANGUAGES= # none + +PYTHON_SELF_CONFLICT= yes +PYTHON_VERSIONS_INCOMPATIBLE= 27 37 + +INSTALLATION_DIRS= ${PKGMANDIR}/man1 + +post-install: + ${MV} ${DESTDIR}${PREFIX}/share/man/man1/* ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 + +.include "../../lang/python/egg.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/audio/puddletag/PLIST b/audio/puddletag/PLIST new file mode 100644 index 00000000000..a465cb49585 --- /dev/null +++ b/audio/puddletag/PLIST @@ -0,0 +1,207 @@ +@comment $NetBSD: PLIST,v 1.1 2022/12/16 17:49:09 wiz Exp $ +bin/puddletag +${PYSITELIB}/puddlestuff/__init__.py +${PYSITELIB}/puddlestuff/__init__.pyc +${PYSITELIB}/puddlestuff/__init__.pyo +${PYSITELIB}/puddlestuff/about.py +${PYSITELIB}/puddlestuff/about.pyc +${PYSITELIB}/puddlestuff/about.pyo +${PYSITELIB}/puddlestuff/action_shortcuts.py +${PYSITELIB}/puddlestuff/action_shortcuts.pyc +${PYSITELIB}/puddlestuff/action_shortcuts.pyo +${PYSITELIB}/puddlestuff/actiondlg.py +${PYSITELIB}/puddlestuff/actiondlg.pyc +${PYSITELIB}/puddlestuff/actiondlg.pyo +${PYSITELIB}/puddlestuff/audio_filter.py +${PYSITELIB}/puddlestuff/audio_filter.pyc +${PYSITELIB}/puddlestuff/audio_filter.pyo +${PYSITELIB}/puddlestuff/audioinfo/__init__.py +${PYSITELIB}/puddlestuff/audioinfo/__init__.pyc +${PYSITELIB}/puddlestuff/audioinfo/__init__.pyo +${PYSITELIB}/puddlestuff/audioinfo/_compatid3.py +${PYSITELIB}/puddlestuff/audioinfo/_compatid3.pyc +${PYSITELIB}/puddlestuff/audioinfo/_compatid3.pyo +${PYSITELIB}/puddlestuff/audioinfo/apev2.py +${PYSITELIB}/puddlestuff/audioinfo/apev2.pyc +${PYSITELIB}/puddlestuff/audioinfo/apev2.pyo +${PYSITELIB}/puddlestuff/audioinfo/constants.py +${PYSITELIB}/puddlestuff/audioinfo/constants.pyc +${PYSITELIB}/puddlestuff/audioinfo/constants.pyo +${PYSITELIB}/puddlestuff/audioinfo/id3.py +${PYSITELIB}/puddlestuff/audioinfo/id3.pyc +${PYSITELIB}/puddlestuff/audioinfo/id3.pyo +${PYSITELIB}/puddlestuff/audioinfo/mp4.py +${PYSITELIB}/puddlestuff/audioinfo/mp4.pyc +${PYSITELIB}/puddlestuff/audioinfo/mp4.pyo +${PYSITELIB}/puddlestuff/audioinfo/tag_versions.py +${PYSITELIB}/puddlestuff/audioinfo/tag_versions.pyc +${PYSITELIB}/puddlestuff/audioinfo/tag_versions.pyo +${PYSITELIB}/puddlestuff/audioinfo/util.py +${PYSITELIB}/puddlestuff/audioinfo/util.pyc +${PYSITELIB}/puddlestuff/audioinfo/util.pyo +${PYSITELIB}/puddlestuff/audioinfo/vorbis.py +${PYSITELIB}/puddlestuff/audioinfo/vorbis.pyc +${PYSITELIB}/puddlestuff/audioinfo/vorbis.pyo +${PYSITELIB}/puddlestuff/confirmations.py +${PYSITELIB}/puddlestuff/confirmations.pyc +${PYSITELIB}/puddlestuff/confirmations.pyo +${PYSITELIB}/puddlestuff/constants.py +${PYSITELIB}/puddlestuff/constants.pyc +${PYSITELIB}/puddlestuff/constants.pyo +${PYSITELIB}/puddlestuff/findfunc.py +${PYSITELIB}/puddlestuff/findfunc.pyc +${PYSITELIB}/puddlestuff/findfunc.pyo +${PYSITELIB}/puddlestuff/funcprint.py +${PYSITELIB}/puddlestuff/funcprint.pyc +${PYSITELIB}/puddlestuff/funcprint.pyo +${PYSITELIB}/puddlestuff/functions.py +${PYSITELIB}/puddlestuff/functions.pyc +${PYSITELIB}/puddlestuff/functions.pyo +${PYSITELIB}/puddlestuff/functions_dialogs.py +${PYSITELIB}/puddlestuff/functions_dialogs.pyc +${PYSITELIB}/puddlestuff/functions_dialogs.pyo +${PYSITELIB}/puddlestuff/genres.py +${PYSITELIB}/puddlestuff/genres.pyc +${PYSITELIB}/puddlestuff/genres.pyo +${PYSITELIB}/puddlestuff/helperwin.py +${PYSITELIB}/puddlestuff/helperwin.pyc +${PYSITELIB}/puddlestuff/helperwin.pyo +${PYSITELIB}/puddlestuff/libraries/__init__.py +${PYSITELIB}/puddlestuff/libraries/__init__.pyc +${PYSITELIB}/puddlestuff/libraries/__init__.pyo +${PYSITELIB}/puddlestuff/libraries/quodlibetlib.py +${PYSITELIB}/puddlestuff/libraries/quodlibetlib.pyc +${PYSITELIB}/puddlestuff/libraries/quodlibetlib.pyo +${PYSITELIB}/puddlestuff/loadshortcuts.py +${PYSITELIB}/puddlestuff/loadshortcuts.pyc +${PYSITELIB}/puddlestuff/loadshortcuts.pyo +${PYSITELIB}/puddlestuff/logger.py +${PYSITELIB}/puddlestuff/logger.pyc +${PYSITELIB}/puddlestuff/logger.pyo +${PYSITELIB}/puddlestuff/m3u.py +${PYSITELIB}/puddlestuff/m3u.pyc +${PYSITELIB}/puddlestuff/m3u.pyo +${PYSITELIB}/puddlestuff/mainwin/__init__.py +${PYSITELIB}/puddlestuff/mainwin/__init__.pyc +${PYSITELIB}/puddlestuff/mainwin/__init__.pyo +${PYSITELIB}/puddlestuff/mainwin/action_dialogs.py +${PYSITELIB}/puddlestuff/mainwin/action_dialogs.pyc +${PYSITELIB}/puddlestuff/mainwin/action_dialogs.pyo +${PYSITELIB}/puddlestuff/mainwin/artwork.py +${PYSITELIB}/puddlestuff/mainwin/artwork.pyc +${PYSITELIB}/puddlestuff/mainwin/artwork.pyo +${PYSITELIB}/puddlestuff/mainwin/dirview.py +${PYSITELIB}/puddlestuff/mainwin/dirview.pyc +${PYSITELIB}/puddlestuff/mainwin/dirview.pyo +${PYSITELIB}/puddlestuff/mainwin/filterwin.py +${PYSITELIB}/puddlestuff/mainwin/filterwin.pyc +${PYSITELIB}/puddlestuff/mainwin/filterwin.pyo +${PYSITELIB}/puddlestuff/mainwin/funcs.py +${PYSITELIB}/puddlestuff/mainwin/funcs.pyc +${PYSITELIB}/puddlestuff/mainwin/funcs.pyo +${PYSITELIB}/puddlestuff/mainwin/logdialog.py +${PYSITELIB}/puddlestuff/mainwin/logdialog.pyc +${PYSITELIB}/puddlestuff/mainwin/logdialog.pyo +${PYSITELIB}/puddlestuff/mainwin/patterncombo.py +${PYSITELIB}/puddlestuff/mainwin/patterncombo.pyc +${PYSITELIB}/puddlestuff/mainwin/patterncombo.pyo +${PYSITELIB}/puddlestuff/mainwin/previews.py +${PYSITELIB}/puddlestuff/mainwin/previews.pyc +${PYSITELIB}/puddlestuff/mainwin/previews.pyo +${PYSITELIB}/puddlestuff/mainwin/storedtags.py +${PYSITELIB}/puddlestuff/mainwin/storedtags.pyc +${PYSITELIB}/puddlestuff/mainwin/storedtags.pyo +${PYSITELIB}/puddlestuff/mainwin/tagpanel.py +${PYSITELIB}/puddlestuff/mainwin/tagpanel.pyc +${PYSITELIB}/puddlestuff/mainwin/tagpanel.pyo +${PYSITELIB}/puddlestuff/mainwin/tagtools.py +${PYSITELIB}/puddlestuff/mainwin/tagtools.pyc +${PYSITELIB}/puddlestuff/mainwin/tagtools.pyo +${PYSITELIB}/puddlestuff/masstag/__init__.py +${PYSITELIB}/puddlestuff/masstag/__init__.pyc +${PYSITELIB}/puddlestuff/masstag/__init__.pyo +${PYSITELIB}/puddlestuff/masstag/config.py +${PYSITELIB}/puddlestuff/masstag/config.pyc +${PYSITELIB}/puddlestuff/masstag/config.pyo +${PYSITELIB}/puddlestuff/masstag/dialogs.py +${PYSITELIB}/puddlestuff/masstag/dialogs.pyc +${PYSITELIB}/puddlestuff/masstag/dialogs.pyo +${PYSITELIB}/puddlestuff/musiclib.py +${PYSITELIB}/puddlestuff/musiclib.pyc +${PYSITELIB}/puddlestuff/musiclib.pyo +${PYSITELIB}/puddlestuff/pluginloader.py +${PYSITELIB}/puddlestuff/pluginloader.pyc +${PYSITELIB}/puddlestuff/pluginloader.pyo +${PYSITELIB}/puddlestuff/plugins/__init__.py +${PYSITELIB}/puddlestuff/plugins/__init__.pyc +${PYSITELIB}/puddlestuff/plugins/__init__.pyo +${PYSITELIB}/puddlestuff/puddleobjects.py +${PYSITELIB}/puddlestuff/puddleobjects.pyc +${PYSITELIB}/puddlestuff/puddleobjects.pyo +${PYSITELIB}/puddlestuff/puddlesettings.py +${PYSITELIB}/puddlestuff/puddlesettings.pyc +${PYSITELIB}/puddlestuff/puddlesettings.pyo +${PYSITELIB}/puddlestuff/puddletag.py +${PYSITELIB}/puddlestuff/puddletag.pyc +${PYSITELIB}/puddlestuff/puddletag.pyo +${PYSITELIB}/puddlestuff/releasewidget.py +${PYSITELIB}/puddlestuff/releasewidget.pyc +${PYSITELIB}/puddlestuff/releasewidget.pyo +${PYSITELIB}/puddlestuff/resource.py +${PYSITELIB}/puddlestuff/resource.pyc +${PYSITELIB}/puddlestuff/resource.pyo +${PYSITELIB}/puddlestuff/shortcutsettings.py +${PYSITELIB}/puddlestuff/shortcutsettings.pyc +${PYSITELIB}/puddlestuff/shortcutsettings.pyo +${PYSITELIB}/puddlestuff/tagmodel.py +${PYSITELIB}/puddlestuff/tagmodel.pyc +${PYSITELIB}/puddlestuff/tagmodel.pyo +${PYSITELIB}/puddlestuff/tagsources/CDDB.py +${PYSITELIB}/puddlestuff/tagsources/CDDB.pyc +${PYSITELIB}/puddlestuff/tagsources/CDDB.pyo +${PYSITELIB}/puddlestuff/tagsources/__init__.py +${PYSITELIB}/puddlestuff/tagsources/__init__.pyc +${PYSITELIB}/puddlestuff/tagsources/__init__.pyo +${PYSITELIB}/puddlestuff/tagsources/_acoustid.py +${PYSITELIB}/puddlestuff/tagsources/_acoustid.pyc +${PYSITELIB}/puddlestuff/tagsources/_acoustid.pyo +${PYSITELIB}/puddlestuff/tagsources/acoust_id.py +${PYSITELIB}/puddlestuff/tagsources/acoust_id.pyc +${PYSITELIB}/puddlestuff/tagsources/acoust_id.pyo +${PYSITELIB}/puddlestuff/tagsources/amazon.py +${PYSITELIB}/puddlestuff/tagsources/amazon.pyc +${PYSITELIB}/puddlestuff/tagsources/amazon.pyo +${PYSITELIB}/puddlestuff/tagsources/discogs.py +${PYSITELIB}/puddlestuff/tagsources/discogs.pyc +${PYSITELIB}/puddlestuff/tagsources/discogs.pyo +${PYSITELIB}/puddlestuff/tagsources/freedb.py +${PYSITELIB}/puddlestuff/tagsources/freedb.pyc +${PYSITELIB}/puddlestuff/tagsources/freedb.pyo +${PYSITELIB}/puddlestuff/tagsources/mp3tag/__init__.py +${PYSITELIB}/puddlestuff/tagsources/mp3tag/__init__.pyc +${PYSITELIB}/puddlestuff/tagsources/mp3tag/__init__.pyo +${PYSITELIB}/puddlestuff/tagsources/mp3tag/funcs.py +${PYSITELIB}/puddlestuff/tagsources/mp3tag/funcs.pyc +${PYSITELIB}/puddlestuff/tagsources/mp3tag/funcs.pyo +${PYSITELIB}/puddlestuff/tagsources/musicbrainz.py +${PYSITELIB}/puddlestuff/tagsources/musicbrainz.pyc +${PYSITELIB}/puddlestuff/tagsources/musicbrainz.pyo +${PYSITELIB}/puddlestuff/tagsources/parse_html.py +${PYSITELIB}/puddlestuff/tagsources/parse_html.pyc +${PYSITELIB}/puddlestuff/tagsources/parse_html.pyo +${PYSITELIB}/puddlestuff/translations.py +${PYSITELIB}/puddlestuff/translations.pyc +${PYSITELIB}/puddlestuff/translations.pyo +${PYSITELIB}/puddlestuff/util.py +${PYSITELIB}/puddlestuff/util.pyc +${PYSITELIB}/puddlestuff/util.pyo +${PYSITELIB}/puddlestuff/webdb.py +${PYSITELIB}/puddlestuff/webdb.pyc +${PYSITELIB}/puddlestuff/webdb.pyo +${PYSITELIB}/${EGG_INFODIR}/PKG-INFO +${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt +${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt +${PYSITELIB}/${EGG_INFODIR}/top_level.txt +man/man1/puddletag.1 +share/applications/puddletag.desktop +share/pixmaps/puddletag.png diff --git a/audio/puddletag/distinfo b/audio/puddletag/distinfo new file mode 100644 index 00000000000..583148f9025 --- /dev/null +++ b/audio/puddletag/distinfo @@ -0,0 +1,6 @@ +$NetBSD: distinfo,v 1.1 2022/12/16 17:49:09 wiz Exp $ + +BLAKE2s (puddletag-2.0.1.tar.gz) = 1175e9a0f9868e2c37d1227cb70bdbf0810b778db4693980447f5fa852aa8b4c +SHA512 (puddletag-2.0.1.tar.gz) = d84ba360a6cd8c3ddb6628e30276df58d059d9e8cbb2d1255320ca273436c69f05584059c2e768a15871d3f56dc08d7ac96fef9a9c7c077811bb9fdfde444610 +Size (puddletag-2.0.1.tar.gz) = 1227152 bytes +SHA1 (patch-puddlestuff_audio__filter.py) = ddd6508a902a5105471819d5feb9ce04e300db2c diff --git a/audio/puddletag/patches/patch-puddlestuff_audio__filter.py b/audio/puddletag/patches/patch-puddlestuff_audio__filter.py new file mode 100644 index 00000000000..c7aee57732b --- /dev/null +++ b/audio/puddletag/patches/patch-puddlestuff_audio__filter.py @@ -0,0 +1,16 @@ +$NetBSD: patch-puddlestuff_audio__filter.py,v 1.1 2022/12/16 17:49:09 wiz Exp $ + +Stop using deprecated function. +https://github.com/puddletag/puddletag/issues/643 + +--- puddlestuff/audio_filter.py.orig 2020-08-29 13:19:47.992420700 +0000 ++++ puddlestuff/audio_filter.py +@@ -180,7 +180,7 @@ bool_exprs = [ + field_expr = Combine('%' + Word(alphanums + '_') + '%') + tokens = QuotedString('"', unquoteResults=False) \ + | field_expr | Word(alphanums + '_') +-bool_expr = operatorPrecedence(tokens, bool_exprs) ++bool_expr = infixNotation(tokens, bool_exprs) + bool_expr.enablePackrat() + + |