Blob Blame History Raw
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