Files
beets/beets.spec
Takashi Iwai fb8167e7bc - Update to 2.2.0
* New features
    * /plugins/substitute: Allow the replacement string to use capture groups
      from the match. It is thus possible to create more general rules,
      applying to many different artists at once.
  * Bug fixes
    * Bring back test files and the manual to the source distribution tarball.
    * Fix bug where matcher doesn't consider medium number when importing. This
      makes it difficult to import hybrid SACDs and other releases with
      duplicate tracks.
    * Check if running python from the Microsoft Store and provide feedback to
      install from python.org.
  * Other changes
    * Changed bitesize label to good first issue. Our contribute page is now
      automatically populated with these issues.
- Update to 2.1.0
  * New features
    * Ability to query albums with track db fields and vice-versa, for example
      beet list -a title:something or beet list artpath:cover. Consequently
      album queries involving path field have been sped up, like beet list -a
      path:/path/.
    * Beets now uses platformdirs to determine the default music directory.
      This location varies between systems -- for example, users can configure
      it on Unix systems via user-dirs.dirs(5).
    * New template function added: %capitalize. Converts the first letter of
      the text to uppercase and the rest to lowercase.
    * Plugin autobpm: Add new configuration option beat_track_kwargs which
      enables adjusting keyword arguments supplied to librosa's beat_track
      function call.
    * Plugin ftintitle: New keep_in_artist option for the plugin, which allows
      keeping the "feat." part in the artist metadata while still changing the
      title.
  * Bug fixes
    * Album flexible fields are now correctly saved. For instance MusicBrainz
      external links such as bandcamp_album_id will be available on albums in
      addition to tracks. For albums already in your library, a re-import is
      required for the fields to be added. Such a re-import can be done with,
      in this case, beet import -L data_source:=MusicBrainz.
    * Fix lyrics plugin only getting part of the lyrics from Genius.com
    * Fix the TypeError when set_fields is provided non-string values.
    * Fix the auto value for the reflink config option.
    * Improve naming of temporary files by separating the random part with the
      file extension.
    * Plugin autobpm: Fix the TypeError where tempo was being returned as a
      numpy array. Update librosa dependency constraint to prevent similar
      issues in the future.
    * Plugin convert: Fixed the convert plugin no_convert option so that it no
      longer treats "and" and "or" queries the same. To maintain previous
      behaviour add commas between your query keywords. For help see
      combiningqueries.
    * Plugin discogs: Fix the TypeError when there is no description.
    * Plugin ftintitle: The detection of a "feat. X" part in a song title does
      not produce any false positives caused by words like "and" or "with"
      anymore.
    * Plugin ftintitle: The detection of a "feat. X" part now also matches such
      parts if they are in parentheses or brackets.
    * Plugin lyrics: Update tekstowo backend to fetch lyrics directly since
      recent updates to their website made it unsearchable.
    * Use single quotes in all SQL queries
  * For packagers
    * The beet script has been removed from the repository.
    * The typing_extensions is required for Python 3.10 and below.
    * The minimum supported Python version is now 3.8.
  * Other changes
    * Added caching for dependency installation in all CI jobs which speeds
      them up a bit, especially the tests.
    * GitHub workflows have been reorganised for clarity: style, linting, type
      and docs checks now live in separate jobs and are named accordingly.
    * Installation instructions have been made consistent across plugins
      documentation. Users should simply install beets with an extra of the
      corresponding plugin name in order to install extra dependencies for that
      plugin.
    * Plugin autobpm: Add plugin dependencies to pyproject.toml under the
      autobpm extra and update the plugin installation instructions in the
      docs. Since importing the bpm calculation functionality from librosa
      takes around 4 seconds, update the plugin to only do so when it actually
      needs to calculate the bpm. Previously this import was being done
      immediately, so every beet invocation was being delayed by a couple of
      seconds.
    * The linting workflow has been made to run only when Python files or
      documentation is changed, and they only check the changed files. When
      dependencies are updated (poetry.lock), then the entire code base is
      checked.
    * The long-deprecated beets.util.confit module has been removed. This may
      cause extremely outdated external plugins to fail to load.
    * contributing: Since poetry now manages local virtual environments, tox
      has been replaced by a task runner poethepoet. This change affects beets
      developers and contributors. Please see updates in the development-tools
      section for more details. Type poe while in the project directory to see
      the available commands.
    * contributing: The project now uses poetry for packaging and dependency
      management. This change affects project management and mostly affects
      beets developers. Please see updates in getting-the-source and testing
      for more information.

OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/beets?expand=0&rev=25
2025-02-03 12:11:37 +00:00

134 lines
4.3 KiB
RPMSpec

#
# spec file for package beets
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if 0%{?suse_version} > 1500
# Build only one time
%define pythons %{primary_python}
%else
# Build only with python 3.11
%{?sle15_python_module_pythons}
%endif
Name: beets
Version: 2.2.0
Release: 0
Summary: Music tagger and library organizer
License: MIT
Group: Productivity/Multimedia/Sound/Players
URL: http://beets.io/
Source: https://github.com/beetbox/beets/archive/refs/tags/v%{version}.tar.gz
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-PyYAML
BuildRequires: python3-Unidecode
BuildRequires: python3-confuse >= 1.5.0
BuildRequires: python3-devel >= 3.8.0
BuildRequires: python3-jellyfish
BuildRequires: python3-mediafile >= 0.12.0
BuildRequires: python3-munkres
BuildRequires: python3-musicbrainzngs >= 0.4
BuildRequires: python3-pip
BuildRequires: python3-poetry-core
BuildRequires: python3-setuptools
# test requirements
BuildRequires: python3-Flask
BuildRequires: python3-beautifulsoup4
BuildRequires: python3-discogs-client
%if 0%{?suse_version} <= 1320
BuildRequires: python3-pathlib
%endif
BuildRequires: python3-pylast
BuildRequires: python3-python-mpd2 >= 0.4.2
BuildRequires: python3-pyxdg
BuildRequires: python3-rarfile
BuildRequires: python3-responses
BuildRequires: python3-testsuite
Requires: python3-PyYAML
Requires: python3-Unidecode
Requires: python3-confuse >= 1.5.0
Requires: python3-jellyfish
Requires: python3-mediafile >= 0.12.0
Requires: python3-munkres
Requires: python3-musicbrainzngs >= 0.4
Requires: python3-musicbrainzngs >= 0.4
Requires: python3-platformdirs
Recommends: ffmpeg
Recommends: python3-Flask
Recommends: python3-Flask-Cors
Recommends: python3-dbus-python
Recommends: python3-discogs-client >= 2.3.15
Recommends: python3-pyacoustid
Recommends: python3-pylast
Recommends: python3-python-mpd2
Recommends: python3-pyxdg
Recommends: python3-rarfile
Recommends: python3-requests
Recommends: python3-requests
Recommends: python3-requests-oauthlib >= 0.6.1
Suggests: flac
Suggests: mp3val
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
Beets is a media library management system for obsessive-compulsive music
geeks.
The purpose of beets is to get a music collection right once and for all.
It catalogs the collection, automatically improving its metadata as it goes.
It then provides a bouquet of tools for manipulating and accessing the music.
beets is designed as a library, has a number of plugins which
support these actions:
- Fetch or calculate all the metadata that could possibly be needed:
album art, lyrics, genres, tempos, ReplayGain levels, or acoustic
fingerprints.
- Get metadata from MusicBrainz, Discogs, and Beatport, or guess
metadata using songs' filenames or their acoustic fingerprints.
- Transcode audio to any format.
- Check your library for duplicate tracks and albums or for albums that
are missing tracks.
- Clean up crufty tags left behind by other tools.
- Embed and extract album art from files' metadata.
- Browse the music library graphically through a Web browser and play it in any
browser that supports HTML5 Audio.
- Analyze music files' metadata from the command line.
- Listen to your library with a music player that speaks the MPD protocol
and works with a variety of interfaces.
Writing additional plugins for beets is possible using Python.
%prep
%setup -q -n beets-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%fdupes %{buildroot}
%files
%defattr(-,root,root,-)
%doc README.rst
%license LICENSE
%{_bindir}/beet
%{python3_sitelib}/*
%changelog