-# TODO:
-# - probably gui bcond is meaningless
#
# Conditional build:
-%bcond_with gui # enable experimental GUI
-%bcond_with doc # build docs
+%bcond_without doc # build docs
#
Summary: Music typesetter
Summary(pl.UTF-8): Program do składania nut
Name: lilypond
-Version: 2.12.2
-Release: 2
-License: GPL
+# note: 2.22.x is stable, 2.23.x devel
+Version: 2.22.2
+Release: 1
+License: GPL v3+ with font exception
Group: Applications/Sound
-Source0: http://lilypond.org/download/v2.12/%{name}-%{version}.tar.gz
-# Source0-md5: 681dfbecf8a3710d1400cf9488be716b
+Source0: https://lilypond.org/download/sources/v2.22/%{name}-%{version}.tar.gz
+# Source0-md5: 677e68e728b24f66be5d20072294f41c
Patch0: %{name}-info.patch
Patch1: %{name}-sh.patch
-Patch3: %{name}-afm.patch
-Patch4: %{name}-aclocal.patch
-Patch5: %{name}-bad_cast.patch
-URL: http://www.lilypond.org/
-%{?with_doc:BuildRequires: ImageMagick-coder-png}
-%{?with_doc:BuildRequires: ImageMagick}
-BuildRequires: autoconf
+Patch2: %{name}-aclocal.patch
+Patch3: %{name}-mf.patch
+Patch4: guile3.0.patch
+URL: https://lilypond.org/
+BuildRequires: autoconf >= 2.60
BuildRequires: automake
-BuildRequires: bison >= 1.29
+BuildRequires: bison >= 2.4.1
BuildRequires: flex >= 2.5.4a
-BuildRequires: fontconfig
-BuildRequires: fontconfig-devel >= 1:2.2.0
-BuildRequires: fontforge >= 20060125
+BuildRequires: fontconfig >= 1:2.4.0
+BuildRequires: fontconfig-devel >= 1:2.4.0
+BuildRequires: fontforge >= 20110222
+BuildRequires: fonts-TTF-DejaVu
BuildRequires: fonts-Type1-urw
-BuildRequires: gettext-devel >= 0.17
-BuildRequires: ghostscript >= 8.15
-%{?with_doc:BuildRequires: ghostscript >= 8.60}
+BuildRequires: freetype >= 1:2.1.10
+BuildRequires: gettext-tools >= 0.17
BuildRequires: ghostscript-fonts-std
-%{?with_gui:BuildRequires: gtk+2-devel >= 2:2.4.0}
+BuildRequires: glib2-devel >= 1:2.38
BuildRequires: guile-devel >= 5:1.8.2
BuildRequires: kpathsea-devel
-BuildRequires: libltdl-devel
BuildRequires: libstdc++-devel >= 5:3.4
-#BuildRequires: mftrace >= 1.1.19
-%{?with_doc:BuildRequires: netpbm-progs}
-BuildRequires: pango-devel >= 1.12.0
+BuildRequires: pango-devel >= 1:1.38.0
BuildRequires: perl-base
BuildRequires: pkgconfig >= 1:0.9.0
-BuildRequires: python-devel >= 2.4
-BuildRequires: python-modules
+BuildRequires: python3-devel >= 1:3.5
+BuildRequires: python3-modules >= 1:3.5
BuildRequires: rpm-pythonprov
-%{?with_doc:BuildRequires: rsync}
-BuildRequires: texinfo >= 4.11
-%{?with_doc:BuildRequires: texinfo-texi2dvi}
-#BuildRequires: texlive-dvips
-#BuildRequires: texlive-fonts-cm
-#BuildRequires: texlive-fonts-cmextra
-#BuildRequires: texlive-fonts-jknappen
-%{?with_doc:BuildRequires: texlive-latex-bibtex}
+BuildRequires: t1utils
+BuildRequires: texinfo >= 6.1
+BuildRequires: texlive-fonts-other
BuildRequires: texlive-metapost
+%if %{with doc}
+BuildRequires: ImageMagick
+BuildRequires: ImageMagick-coder-png
+BuildRequires: dblatex >= 0.1.4
+BuildRequires: ghostscript >= 9.20
+BuildRequires: netpbm-progs
+BuildRequires: rsync
+BuildRequires: texi2html >= 1.82
+BuildRequires: texinfo-texi2dvi >= 6.1
+# `kpsewhich tex epsf`
+BuildRequires: texlive
+# `kpsewhich -format=mf fikparm`
+BuildRequires: texlive-fonts-lh
+BuildRequires: texlive-latex-bibtex
+BuildRequires: texlive-xetex
+BuildRequires: zip
+%endif
BuildConflicts: lilypond < 1.6.0
-Requires: ghostscript >= 8.15
-Requires: guile >= 5:1.8.2
-Requires: python >= 2.4
-Requires: texlive-latex
+Requires: fonts-TTF-DejaVu
+Requires: ghostscript >= 9.20
+Requires: glib2 >= 1:2.38
+Requires: pango >= 1:1.38.0
+Requires: python3-modules >= 1:3.5
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define texmfdir %{_datadir}/texmf
%define texmfdistdir %{texmfdir}-dist
+%if "%{pld_release}" != "th"
+%define texfontsdir %{texmfdir}/fonts
+%else
%define texfontsdir %{texmfdistdir}/fonts
+%endif
%description
LilyPond is a music typesetter. It produces beautiful sheet music
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
%build
-cp -f /usr/share/automake/config.* stepmake/bin
%{__autoconf}
%configure \
+ PYTHON=%{__python3} \
%{?debug:--disable-optimising} \
- %{?with_gui:--enable-gui}
+ --with-texgyre-dir=%{texfontsdir}/opentype/public/tex-gyre/ \
+ %{__enable_disable doc documentation}
%{__make} -j1
-%{?with_doc:%{__make} -j1 web}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{texmfdir}/{dvips,tex},%{texfontsdir}/{source,tfm,type1}}
+install -d $RPM_BUILD_ROOT{%{texmfdir}/{dvips,tex},%{texfontsdir}/{source,tfm/lilypond,type1/lilypond}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-%if %{with doc}
-%{__make} -j1 web-install \
- DESTDIR=$RPM_BUILD_ROOT
-%endif
-cp -aL out/share/lilypond/current/fonts/tfm \
- $RPM_BUILD_ROOT%{texfontsdir}/tfm/lilypond
+
+cp -p mf/out/*.tfm $RPM_BUILD_ROOT%{texfontsdir}/tfm/lilypond
+cp -p mf/out/*.pfb $RPM_BUILD_ROOT%{texfontsdir}/type1/lilypond
find $RPM_BUILD_ROOT -name fonts.cache-1 | xargs rm -f
# ?
-mv -f $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/fonts/source \
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/fonts/source \
$RPM_BUILD_ROOT%{texfontsdir}/source/lilypond
# for latex and dvips
-mv -f $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/tex \
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/tex \
$RPM_BUILD_ROOT%{texmfdir}/tex/lilypond
# both for lilypond and dvips
-ln -sf %{_datadir}/lilypond/%{version}/fonts/type1 \
- $RPM_BUILD_ROOT%{texfontsdir}/type1/lilypond
ln -sf %{_datadir}/lilypond/%{version}/ps \
$RPM_BUILD_ROOT%{texmfdir}/dvips/lilypond
-rm -rf $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/dvips
# vim syntax/etc. files
install -d $RPM_BUILD_ROOT%{_datadir}/vim
-mv -f $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/vim \
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/vim \
$RPM_BUILD_ROOT%{_datadir}/vim/vimfiles
-# lilypond/stepmake build system - not needed at runtime
-rm -rf $RPM_BUILD_ROOT%{_datadir}/lilypond/%{version}/make
-
%find_lang %{name}
%clean
%post
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
-[ ! -x /usr/bin/texhash ] || /usr/bin/texhash 1>&2
-[ ! -x /usr/bin/scrollkeeper-update ] || /usr/bin/scrollkeeper-update
+[ ! -x %{_bindir}/texhash ] || %{_bindir}/texhash 1>&2
+[ ! -x %{_bindir}/scrollkeeper-update ] || %{_bindir}/scrollkeeper-update
%postun
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
-[ ! -x /usr/bin/texhash ] || /usr/bin/texhash 1>&2
-[ ! -x /usr/bin/scrollkeeper-update ] || /usr/bin/scrollkeeper-update
+[ ! -x %{_bindir}/texhash ] || %{_bindir}/texhash 1>&2
+[ ! -x %{_bindir}/scrollkeeper-update ] || %{_bindir}/scrollkeeper-update
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS.txt DEDICATION NEWS.txt README.txt THANKS
+%doc AUTHORS.txt DEDICATION LICENSE* NEWS.txt README.md ROADMAP
%attr(755,root,root) %{_bindir}/abc2ly
%attr(755,root,root) %{_bindir}/convert-ly
%attr(755,root,root) %{_bindir}/etf2ly
%attr(755,root,root) %{_bindir}/lilysong
%attr(755,root,root) %{_bindir}/midi2ly
%attr(755,root,root) %{_bindir}/musicxml2ly
-%dir %{_libdir}/lilypond
-%dir %{_libdir}/lilypond/%{version}
-%dir %{_libdir}/lilypond/%{version}/python
-%attr(755,root,root) %{_libdir}/lilypond/%{version}/python/midi.so
%dir %{_datadir}/lilypond
%dir %{_datadir}/lilypond/%{version}
%{_datadir}/lilypond/%{version}/fonts
%{_datadir}/lilypond/%{version}/ly
%{_datadir}/lilypond/%{version}/ps
-%dir %{_datadir}/lilypond/%{version}/python
-%{_datadir}/lilypond/%{version}/python/*.py
-%{_datadir}/lilypond/%{version}/python/*.pyc
+%{_datadir}/lilypond/%{version}/python
%{_datadir}/lilypond/%{version}/scm
-%{_infodir}/*.info*
-%{_mandir}/man1/*
%{texfontsdir}/source/lilypond
%{texfontsdir}/tfm/lilypond
%{texmfdir}/dvips/lilypond
%{texmfdir}/tex/lilypond
-%{_datadir}/omf/lilypond
-%{?with_doc:/usr/share/doc/lilypond}
+%if %{with doc}
+%{_infodir}/lilypond-*.info*
+%{_infodir}/music-glossary.info*
+%{_mandir}/man1/abc2ly.1*
+%{_mandir}/man1/convert-ly.1*
+%{_mandir}/man1/etf2ly.1*
+%{_mandir}/man1/lilymidi.1*
+%{_mandir}/man1/lilypond.1*
+%{_mandir}/man1/lilypond-book.1*
+%{_mandir}/man1/lilypond-invoke-editor.1*
+%{_mandir}/man1/lilysong.1*
+%{_mandir}/man1/midi2ly.1*
+%{_mandir}/man1/musicxml2ly.1*
+%endif
%files -n emacs-lilypond-mode-pkg
%defattr(644,root,root,755)
-%{_datadir}/emacs/site-lisp/*.el
+%{_datadir}/emacs/site-lisp/lilypond-*.el
%files -n vim-syntax-lilypond
%defattr(644,root,root,755)