Name: beets
Version: 1.3.16
Release: 1%{?dist}
Summary: Music library manager and MusicBrainz tagger
License: MIT and ISC
URL: http://beets.radbox.org/
Source0: https://github.com/sampsyo/beets/archive/v%{version}.tar.gz
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: python-sphinx
BuildArch: noarch
Requires: python >= 2.7
Requires: python-enum34 >= 1.0.4
Requires: python-jellyfish
Requires: python-munkres
Requires: python-musicbrainzngs >= 0.4
Requires: python-mutagen >= 1.23
Requires: python-unidecode
Requires: PyYAML
%description
The purpose of beets is to get your music collection right once and for all. It
catalogs your collection, automatically improving its meta-data as it goes using
the MusicBrainz database. Then it provides a bouquet of tools for manipulating
and accessing your music.
Because beets is designed as a library, it can do almost anything you can
imagine for your music collection. Via plugins, beets becomes a panacea:
- Fetch or calculate all the meta-data you could possibly need: album art,
lyrics, genres, tempos, ReplayGain levels, or acoustic fingerprints.
- Get meta-data from MusicBrainz, Discogs, or Beatport. Or guess meta-data using
songs' file names or their acoustic fingerprints.
- Transcode audio to any format you like.
- Check your library for duplicate tracks and albums or for albums that are
missing tracks.
- Browse your music library graphically through a Web browser and play it in
any browser that supports HTML5 Audio.
%package plugins
Summary: Plugins for beets
Requires: beets == %{version}-%{release}
# bpd/
Requires: gstreamer-python >= 0.10
# chroma
Requires: python-acoustid
# fetchart, beatport, lastimport, spotify
Requires: python-requests
# lastgenre/
Requires: pylast
# autotag, mbcollection
Requires: python-musicbrainzngs >= 0.4
# mpdstats
Requires: python-mpd
# **** Disabled plugins ****
# due to missing dependencies or dependencies being in rpmfusion
# convert --> ffmpeg
# discogs --> discogs_client
# echonest --> pyechonest
# echonest_tempo --> pyechonest
# replaygain --> mp3gain (rpmfusion only)
# web/ --> needs jquery (BZ 1078903), also needs js-backbone and js-underscore
# --> needs also python-flask as requires once jquery is in
%description plugins
Contains a number of plugins to improve meta-data, format paths,
inter-operability aids and so on.
%package doc
Summary: Documentation for beets
%description doc
The beets-doc package provides useful information on the
beets Music Library Manager. Documentation is shipped in
both text and html formats.
%prep
%setup -q
%build
%{__python2} setup.py build
pushd docs
# Not using {smp_flags} as sphinx fails with it from time to time
make man html text
popd
%check
# Currently disabled as it is forcing the download of pypi modules
# even when they are installed. Will require python-rarfile if
# enabled
# __python2 setup.py test
%install
%{__python2} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man1
%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man5
%{__install} -p -m 0644 docs/_build/man/beet.1 $RPM_BUILD_ROOT%{_mandir}/man1
%{__install} -p -m 0644 docs/_build/man/beetsconfig.5 $RPM_BUILD_ROOT%{_mandir}/man5
# Remove extra copy of text docs
rm -rf docs/_build/html/_sources
rm -f docs/_build/html/{.buildinfo,objects.inv}
# Remove docs for plugins that were disabled explicitely
for i in convert discogs echonest echonest_tempo replaygain web; do
rm -f docs/_build/html/plugins/"$i.html"
rm -f docs/_build/text/plugins/"$i.txt"
done
# Remove disabled plugins
rm -rf $RPM_BUILD_ROOT%{python2_sitelib}/beetsplug/{echonest.py*,echonest_tempo.py*,replaygain.py*,web,convert.py*,discogs.py*}
%files
%doc LICENSE MANIFEST.in README.rst
%{_bindir}/beet
%{python2_sitelib}/beets/
%{python2_sitelib}/beets*egg-info/
%{_mandir}/*/*
%{python2_sitelib}/beetsplug/__init__.py*
%files plugins
# beetsplug/mbcollection.py is the plugin that has ISC license
%{python2_sitelib}/beetsplug/[a-zA-Z0-9]*
%files doc
%doc docs/_build/html docs/_build/text
%changelog
* Tue Dec 29 2015 Michele Baldessari <michele@acksyn.org> - 1.3.16-1
- New upstream release
* Thu Nov 26 2015 Michele Baldessari <michele@acksyn.org> - 1.3.15-1
- New upstream release
* Sun Aug 09 2015 Michele Baldessari <michele@acksyn.org> - 1.3.14-1
- New upstream release
* Sun Aug 09 2015 Michele Baldessari <michele@acksyn.org> - 1.3.13-4
- Move beetplugs/__init__.py to main packages (BZ#1246799)
* Thu Jul 02 2015 Michele Baldessari <michele@acksyn.org> - 1.3.13-3
- Add brainzngs req as the main program checks for its presence BZ#1236315
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Apr 23 2015 Michele Baldessari <michele@acksyn.org> - 1.3.13-1
- New upstream release (needs additional python-jellyfish dep)
* Wed Apr 08 2015 Michele Baldessari <michele@acksyn.org> - 1.3.11-1
- New upstream release (makes python 2.7 a requirement)
- python-enum34 >= 1.0.4 is now a Requires (RHBZ 1210053)
* Mon Mar 23 2015 Michele Baldessari <michele@acksyn.org> - 1.3.10-4
- Add python-munkres dep (needs RHBZ 1202146 fixed)
* Thu Mar 19 2015 Michele Baldessari <michele@acksyn.org> - 1.3.10-3
- Use python2 macros in preparation of the python3 migration
- Add ISC license for beetsplugs/mbcollection.py
- Add owner for dirs beets-*.egg-info, beetsplug, beets
* Tue Jan 27 2015 Michele Baldessari <michele@acksyn.org> - 1.3.10-2
- Add html and text documentation in a separate -doc package
- Add a comment why we do not use %{?_smp_mflags}
* Tue Jan 27 2015 Michele Baldessari <michele@acksyn.org> - 1.3.10-1
- New upstream
* Thu Dec 25 2014 Michele Baldessari <michele@acksyn.org> - 1.3.9-2
- Split off plugins into a separate package with additional Requires: added
- Disable a few plugins due to missing deps in Fedora
* Mon Dec 15 2014 Michele Baldessari <michele@acksyn.org> - 1.3.9-1
- Initial release