## START: Set by rpmautospec
## (rpmautospec version 0.6.0)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 7;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

Name:           python-music21
Version:        9.1.0
Release:        %autorelease
Summary:        Toolkit for computational musicology

License:        BSD or LGPLv3
URL:            http://web.mit.edu/music21/
Source0:        https://github.com/cuthbertLab/music21/releases/download/v%{version}/music21-%{version}.tar.gz

BuildRequires:  lilypond
BuildRequires:  mscore
BuildRequires:  xorg-x11-server-Xvfb

BuildArch:      noarch
# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
# Also, musescore is not built on i686.
ExcludeArch:    %{ix86}

# Use the same directory of the main package for subpackage licence and docs
%global _docdir_fmt %{name}

# Non-standard locations that should be byte-compiled are handled below
%global _python_bytecompile_extra 0

%global _description %{expand:
Music21 is a set of tools for helping scholars and other active listeners answer
questions about music quickly and simply. It supports input of melodies in
shorthand notation, printing of musical scores, etc.}

%description %_description

%package -n python3-music21
Summary:        %{summary}
%{?python_provide:%python_provide python3-music21}

BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
BuildRequires:  python3-jsonpickle
BuildRequires:  python3-chardet
BuildRequires:  python3-webcolors
BuildRequires:  python3-xlrd
BuildRequires:  python3-six
BuildRequires:  python3-pillow
BuildRequires:  python3-matplotlib
BuildRequires:  python3-chardet
BuildRequires:  python3-numpy
BuildRequires:  python3-scipy
BuildRequires:  python3-Levenshtein
BuildRequires:  python3-more-itertools
Requires:       python3-chardet
Requires:       python3-jsonpickle
Requires:       python3-mock
Requires:       python3-webcolors
Requires:       python3-xlrd
Requires:       python3-six
Requires:       python3-pillow
Requires:       python3-matplotlib
# Requires:       python3-pyaudio
Requires:       python3-numpy
Requires:       python3-scipy
Requires:       lilypond
Requires:       mscore
Requires:       %{name}-common = %{version}-%{release}

%description -n python3-music21 %_description

%package common
Summary: Music corpus and other shared files for music21
Provides:       %{name}-doc = %{version}-%{release}
Obsoletes:      %{name}-doc < 6.7

%description common
%{summary}.

%prep
%autosetup -n music21-%{version} -p1

%generate_buildrequires
%pyproject_buildrequires -t

%build
%pyproject_wheel

%install
%pyproject_install

mkdir -p %{buildroot}%{_datadir}/music21/corpus \
         %{buildroot}%{_datadir}/music21/scale/scala
mv -v %{buildroot}%{python3_sitelib}/music21/corpus/[a-z]*/ \
      %{buildroot}%{_datadir}/music21/corpus/
mv -v %{buildroot}%{python3_sitelib}/music21/scale/scala/scl \
      %{buildroot}%{_datadir}/music21/scale/scala/

ln -sv --relative %{buildroot}%{_datadir}/music21/corpus/* %{buildroot}%{python3_sitelib}/music21/corpus/
ln -sv --relative %{buildroot}%{_datadir}/music21/scale/scala/scl %{buildroot}%{python3_sitelib}/music21/scale/scala/

%py_byte_compile %{__python3} %{buildroot}%{_datadir}/music21/

%check
mkdir -p ~/Desktop

# disable test that requires network
sed -r -i 's/testParseURL\(self\):/__disabled__\0/' music21/converter/__init__.py

PYTHONPATH=%{buildroot}%{python3_sitelib} \
LC_ALL=C.utf8 \
    xvfb-run -a \
    %{python3} -c 'import sys; from music21.test.multiprocessTest import mainPoolRunner as tm; sys.exit(tm())'

%files -n python3-music21
%{python3_sitelib}/music21/
%exclude %{python3_sitelib}/music21/LICENSE
%{python3_sitelib}/music21-%{version}.dist-info/

%files common
%license LICENSE
%doc README.md
%{_datadir}/music21/

%changelog
## START: Generated by rpmautospec
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.1.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Sun Jun 09 2024 Python Maint <python-maint@redhat.com> - 9.1.0-6
- Rebuilt for Python 3.13

* Thu Feb 22 2024 Michel Lind <salimma@fedoraproject.org> - 9.1.0-5
- Remove unnecessary and deprecated python3-mock BR

* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Dec 13 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.0-2
- Drop i686 support

* Sat Sep 02 2023 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 9.1.0-1
- Version 9.1.0 (rhbz#2128221)

* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.3.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Tue Jul 04 2023 Python Maint <python-maint@redhat.com> - 7.3.3-5
- Rebuilt for Python 3.12

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.3.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Wed Jun 22 2022 Python Maint <python-maint@redhat.com> - 7.3.3-2
- Rebuilt for Python 3.11

* Fri Apr 29 2022 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 7.3.3-1
- Version 7.3.3 (rhbz#2079332)

* Mon Apr 25 2022 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 7.3.1-1
- Version 7.3.1 (rhbz#2068942)

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Wed Sep 29 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 7.1.0-2
- Disable tests that require network

* Wed Sep 29 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 7.1.0-1
- Version 7.1.0 (#2002895)

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Fri Jul  2 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 6.7.1-1
- Update to latest version (#1926611, #1697091)

* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.2.1-22
- Rebuilt for Python 3.10

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2.2.1-19
- Rebuilt for Python 3.9

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2.2.1-17
- Rebuilt for Python 3.8.0rc1 (#1748018)

* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.2.1-16
- Rebuilt for Python 3.8

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Wed Oct 17 2018 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.2.1-13
- Subpackage python2-music21 has been removed
  See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal

* Thu Jul 26 2018 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.2.1-12
- Byte-compile the shared dir explicitly

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.2.1-10
- Rebuilt for Python 3.7

* Fri Feb 09 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.2.1-9
- Update Python 2 dependency declarations to new packaging standards
  (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 2.2.1-5
- Rebuild for Python 3.6

* Mon Sep 26 2016 Dominik Mierzejewski <rpm@greysector.net> - 2.2.1-4
- rebuilt for matplotlib-2.0.0

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.1-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Sat Dec  5 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.2.1-1
- Update to latest version

* Sat Dec  5 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.1.2-2
- Use Suggests for documentation
- Move common files to python3 directory
- Fix some encodings and file headers

* Mon Oct  5 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.1.2-1
- Update to latest version
- Use new python packaging macros

* Fri Jul 10 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.0.5-2
- Switch to pypi tarball
- Untabify and escape macros in comments

* Fri Jun 19 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.0.5-1
- Initial packaging

## END: Generated by rpmautospec