#
# spec file for package lilypond-doc
#
# Copyright (c) 2023 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/
#
%bcond_with docbuild
#Unsatisfied dependency for Factory i586
ExcludeArch: i586
%if 0%{suse_version} <= 1500
#0%%{?is_backports} && 0%%{?sle_version} == 150200
#"%%_project" == "openSUSE:Backports:SLE-15-SP2:Update"
ExcludeArch: i586 aarch64 ppc64le s390x
%endif
Name: lilypond-doc
Version: 2.24.1
Release: 0
Summary: Documentation for the LilyPond Typesetter
License: GFDL-1.3-only
Group: Documentation/HTML
URL: http://lilypond.org/
%if %{without docbuild}
Source0: https://gitlab.com/lilypond/lilypond/-/releases/v%{version}/downloads/lilypond-%{version}-documentation.tar.xz
%else
#Source0: lilypond-%%{version}.tar.gz
# PATCH-FIX-UPSTREAM https://savannah.gnu.org/patch/index.php?9370
Patch0: reproducible.patch
# Patches taken from Debian, see headers for info.
Patch2: add_dircategories_to_documentation.patch
Patch4: use_cstring_and_ctype_includes.patch
BuildRequires: ImageMagick-extra
BuildRequires: autoconf
BuildRequires: bison
BuildRequires: bitstream-vera-fonts
BuildRequires: dblatex
BuildRequires: dejavu
BuildRequires: extractpdfmark
BuildRequires: flex
BuildRequires: fontconfig-devel >= 2.4.0
BuildRequires: fontforge
BuildRequires: fonts-arabic
BuildRequires: freetype2-devel >= 2.1.10
BuildRequires: gcc-c++
BuildRequires: gettext-tools
BuildRequires: ghostscript >= 8.60
BuildRequires: ghostscript-fonts-other
BuildRequires: ghostscript-fonts-std
BuildRequires: gzip
BuildRequires: ifntjapa
BuildRequires: liberation-fonts
BuildRequires: libgnutls-devel
BuildRequires: libtool
BuildRequires: lilypond = %{version}
BuildRequires: lndir
BuildRequires: makeinfo >= 6.1
BuildRequires: mc
BuildRequires: mftrace
BuildRequires: netpbm
BuildRequires: pango-devel >= 1.6.0
BuildRequires: perl
BuildRequires: rsync
BuildRequires: sil-gentium-fonts
BuildRequires: t1utils
BuildRequires: texlive-avantgar-fonts
BuildRequires: texlive-collection-fontsrecommended
BuildRequires: texlive-dejavu-fonts
BuildRequires: texlive-fancybox
BuildRequires: texlive-fontinst-bin
BuildRequires: texlive-fontware-bin
BuildRequires: texlive-gnu-freefont-fonts
BuildRequires: texlive-lh
BuildRequires: texlive-libertine-fonts
BuildRequires: texlive-metafont-bin
BuildRequires: texlive-metapost
BuildRequires: texlive-xetex-bin
BuildRequires: texlive-xltxtra
BuildRequires: ttf-wqy-zenhei
BuildRequires: xfntjp
BuildRequires: xorg-x11-fonts
BuildRequires: zip
BuildRequires: pkgconfig(guile-3.0)
BuildRequires: pkgconfig(python3)
Requires: lilypond = %{version}
%endif
BuildRequires: fdupes
Provides: lilypond-documentation = %{version}
Obsoletes: lilypond-documentation < %{version}
BuildArch: noarch
%if %{with docbuild}
# NOTE: when lilypond documentation build with texinfo 5.x is fixed by upstream remove the 4s from makeinfo,
# NOTE: texinfo and update buildrequires with:
BuildRequires: texi2html
BuildRequires: texinfo
%endif
%description
Common and english documentation files for the
GNU LilyPond music typesetter.
%global rlversion %{version}
%define usrsrcp %{buildroot}
%package cs
Summary: Documentation for the LilyPond Typesetter (cs)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description cs
Czech documentation files for the GNU LilyPond music typesetter.
%package de
Summary: Documentation for the LilyPond Typesetter (de)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description de
German documentation files for the GNU LilyPond music typesetter.
%package es
Summary: Documentation for the LilyPond Typesetter (es)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description es
Spanish documentation files for the GNU LilyPond music typesetter.
%package fr
Summary: Documentation for the LilyPond Typesetter (fr)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description fr
French documentation files for the GNU LilyPond music typesetter.
%package hu
Summary: Documentation for the LilyPond Typesetter (hu)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description hu
Hungary documentation files for the GNU LilyPond music typesetter.
%package it
Summary: Documentation for the LilyPond Typesetter (it)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description it
Italian documentation files for the GNU LilyPond music typesetter.
%package ja
Summary: Documentation for the LilyPond Typesetter (ja)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description ja
Japanese documentation files for the GNU LilyPond music typesetter.
%package nl
Summary: Documentation for the LilyPond Typesetter (nl)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description nl
Dutch documentation files for the GNU LilyPond music typesetter.
%package zh
Summary: Documentation for the LilyPond Typesetter (zh)
Group: Documentation/HTML
Requires: %{name} = %{version}
%description zh
Chinese documentation files for the GNU LilyPond music typesetter.
%prep
%if %{with docbuild}
%setup -q -n lilypond-%{version}
%autopatch -p1
# Convert translations to UTF-8
for file in $(grep -L charset=UTF-8 po/*.po) ; do
msgconv -t UTF-8 $file >$file.new
mv $file.new $file
done
mkdir -p out/examples/
tar -cf - input/ | tar -C out/examples/ -xf- || true
%define _buildir $PWD
pushd scripts
for i in `grep -rl "/usr/bin/python"`;do sed -i '1s@^#!.*@#!/usr/bin/python3@' ${i} ;done
cd ../python
for i in `grep -rl "/usr/bin/python"`;do sed -i '1s@^#!.*@#!/usr/bin/python3@' ${i} ;done
popd
for i in `grep -rl "/usr/bin/env python"`;do sed -i '1s@^#!.*@#!/usr/bin/python3@' ${i} ;done
%else
%setup -q -c
%endif
%build
%if %{with docbuild}
%if 0 == 1
mkdir -p $HOME/bin
export PATH=$HOME/bin:$PATH
echo $PATH
pushd $HOME/bin
for i in `ls -1 %{_bindir}/*texi*4`
do ln -sf ${i} $(basename --suffix 4 ${i})
done
popd
ls -l $HOME/bin
%endif
#chmod 644 Documentation/pictures/*.png
# export GS_LIB="/home/$USER/.fonts" is a work around for bnc#568280
export GS_LIB="$HOME/.fonts:%{_buildir}/mf/out"
export GUILE_AUTO_COMPILE=0
export CFLAGS="%{optflags} -ggdb -fpermissive -fabi-version=4"
export CXXFLAGS="$CFLAGS"
export LILYPOND_EXTERNAL_BINARY="%{_bindir}/lilypond"
export LILYPOND_BINARY=$LILYPOND_EXTERNAL_BINARY
export LILYPOND_LOGLEVEL=DEBUG
export GUILE_FLAVOR=guile-3.0
rm configure
./autogen.sh --noconfigure
%configure \
GUILE_FLAVOR=guile-3.0 \
--with-ncsb-dir=%{_datadir}/ghostscript/fonts/
# build documentation
echo "*********************************"
echo "* Start the documentation build *"
echo "*********************************"
make -C scripts && make -C python
#pushd Documentation
# Don't build documentation in paralell. It fails randomly.
make -e doc LILYPOND_EXTERNAL_BINARY="%{_bindir}/lilypond" LILYPOND_BINARY=$LILYPOND_EXTERNAL_BINARY
#|| (cat out-www/suffix-lyxml.dblatex.log && false)
#|| (lndir -ignorelinks out-www/notation . && \
#LILYPOND_EXTERNAL_BINARY="%%{_bindir}/lilypond" LILYPOND_BINARY=$LILYPOND_EXTERNAL_BINARY make doc)
#popd
#make -j1 out=www WWW-post
%endif
%install
%if %{with docbuild}
mkdir -p "%{buildroot}%{_datadir}/lilypond/%{rlversion}"
# install documentation
make install-doc DESTDIR=%{buildroot} webdir=%{_docdir}/lilypond
cp -a DEDICATION HACKING ROADMAP AUTHORS.txt NEWS.txt \
VERSION %{buildroot}%{_docdir}/lilypond
find %{buildroot}%{_docdir}/lilypond -name *.signature -exec rm {} \;
# Fix any .py files with shebangs and wrong permissions.
if test -z `find %{buildroot}%{_datadir}/lilypond/ -name *.py -perm 0644 -print0|xargs -0r grep -l '#!'`; \
then break;
else chmod -f 0755 `find %{buildroot}%{_datadir}/lilypond/ -name *.py -perm 0644 -print0|xargs -0r grep -l '#!'`; \
fi
LILYPOND_EXTERNAL_BINARY=%{_bindir}/lilypond
# Remove spurious executables rpm lint error
chmod 0644 %{buildroot}%{_docdir}/lilypond/Documentation/pictures/*png || true
#%%find_lang lilypond
texhash %{buildroot}%{_datadir}/lilypond/%{rlversion}
find %{buildroot}%{_docdir}/lilypond/ -type f -empty -delete -print
%fdupes -s %{buildroot}%{_docdir}
%fdupes -s %{buildroot}%{_datadir}/omf
%fdupes -s %{buildroot}%{_datadir}/locale
# remove info pages, they are part of lilypond package
rm %{buildroot}%{_infodir}/*
%else
mkdir -p %{buildroot}%{_docdir}/%{name}
# lilypond main package provides info and man pages
rm -rf share/info
rm -rf share/man
cp -vr share/doc/lilypond/html %{buildroot}%{_docdir}/%{name}/
%endif
rm -f files-*
# create file lists for individual subpackages
for f in `find %{buildroot}%{_docdir}`; do
for l in cs de es fr hu it ja nl zh; do
if [[ $f =~ \.$l\. ]]; then
if [ -d $f ]; then
f="%%dir $f"
fi
echo "$f" | sed "s:%{buildroot}::" >> files-$l
f=""
break
fi
done
if [ -z $f ]; then
continue
fi
if [ -d $f ]; then
f="%%dir $f"
fi
echo "$f" | sed "s:%{buildroot}::" >> files-en
done
for d in '.usr.share' '.usr.share.doc' '.usr.share.info' '.usr.share.doc.packages'; do
sed -i "/^%%dir $d$/d" files-en
done
%if %{with docbuild}
for f in DEDICATION \
HACKING ROADMAP VERSION AUTHORS.txt NEWS.txt; do
echo "%%exclude %{_docdir}/lilypond/$f" >> files-en
done
echo "%%exclude %{_datadir}/lilypond/%{rlversion}/ls-R" >> files-en
%else
%fdupes -s share/doc/lilypond/html/Documentation
%endif
%post
ln -sf %{_docdir}/lilypond-doc/html/Documentation %{_infodir}/lilypond
%postun
rm -f %{_infodir}/lilypond
%files cs -f files-cs
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files de -f files-de
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files es -f files-es
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files fr -f files-fr
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files hu -f files-hu
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files it -f files-it
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files ja -f files-ja
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files nl -f files-nl
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files zh -f files-zh
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%files -f files-en
%defattr(-,root,root)
%license share/doc/lilypond/html/LICENSE.DOCUMENTATION
%changelog