(1.3), whose webpages are on @uref{http://www.lilypond.org/,the lilypond
site}.
-@subsection source code
-
+@subsection Source code
If you want to compile LilyPond from source, download here:
@itemize @bullet
@uref{http://www.lilypond.org/ftp/} by HTTP.
@end itemize
+Of course, if your platform supports LilyPond, such as Debian GNU/Linux,
+FreeBSD, OpenBSD or NetBSD, you're encouraged to use the native build
+from source drill.
+
+For Red Hat Linux and SuSE Linux, @file{.spec} files are included in the
+tarball; see instructions below.
+
@html
<a name="download-binaries">
@end html
-@subsection Binaries
+@subsection Precompiled binaries
+
+If you want to track bleeding edge development, try:
+
+@itemize @bullet
+@item @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond/, Debian
+GNU/Linux} usually has the latest binaries for the most useful stable
+and development versions, while
+@item @uref{http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/,
+Mandrake Cooker} also provides fairly recent versions.
+@end itemize
+
+Binaries are made available for other popular platforms, but as we need
+to compile them ourselves, they are not updated for every version
+released.
-Binaries are available, but are not updated for every version released.
@itemize @bullet
@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/, Red Hat i386}
-@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/, LinuxPPC}
-@item @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond/, Debian GNU/Linux}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE, SuSE}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/,
+LinuxPPC}
@item
-@c @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
-@c @item @uref{ftp://ftp.lilypond.org/pub/lilypond/gnu-windows, Windows
-@c Testing}
-@uref{http://www.lilypond.org/gnu-windows/, Windows Testing}
-
+@uref{http://www.lilypond.org/gnu-windows/, Windows}
@end itemize
@subsection Upgrading
@subsection Mandrake
Some binaries are available at rpmfind.net. Refer to
-@uref{ftp://ftp.rpmfind.net/linux/Mandrake-devel/cooker/contrib/RPMS/}.
+@uref{http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/}.
+You can also compile a RPM for Mandrake yourself. A spec file is in
+@file{make/out/lilypond.mandrake.spec}, see the instructions for building
+the Red Hat RPM.
@subsection Debian GNU/Linux
A Debian package is also available. You may install it easily by running
@command{apt-get} as root:
-
@example
+
apt-get install lilypond lilypond-doc
@end example
+You can also compile the .deb for Debian yourself, do:
+@example
+
+ apt-get -b source lilypond
+@end example
+
+If you're real impatient, you may even do:
+@example
+
+ cd lilypond-x.y.z # a previous version
+ uscan # download and build latest directly from upstream
+@end example
+
Debian's @TeX{} installation is a bit short on memory, you may want to
increase it like this:
oboes = \notes \relative c'' \context Voice = oboe {
\stemUp s4 g8. b,16 c8 r <e'8.^\p g> <f16 a>
- \grace { <e8( g> } <d4 )f> <c2 e>
+ \grace <e8( g> <d4 )f> <c2 e>
\times 2/3 { <d8 \< f> <e g> <f a> }
<
{ \times 2/3 { a8 g c } \! c2 }
}
>
\stemBoth
- \grace { <c,8( e> } <)b8. d8.-\trill> <c16 e> |
+ \grace <c,8( e> <)b8. d8.-\trill> <c16 e> |
[<d ( f> < )f8. a>] <)b,8 d> r [<d16( f> <f8. )a>] <b,8 d> r |
[<c16( e> < )e8. g>] <c8 e,>
}
defined above.
@separate
@example
-\grace @{ <e8 g> @} < d4 f> <c2 e>
+\grace <e8 g> < d4 f> <c2 e>
@end example
@cindex @code{\grace}
@cindex ornaments
@cindex grace notes
-
-[FIXME]
@code{\grace} introduces grace notes. It takes one argument, in this
case a chord.
it from the other context. Stems go down in this voice.
@separate
@example
-\grace @{
+\grace
@end example
-[FIXME]
@cindex Grace context
When a grace section is processed, a @code{Grace} context is
created. This context acts like a miniature score of its own. It has
@separate
@example
\stemBoth
-\grace @{ <c,8( e> @} <)b8. d8.-\trill> <c16 e> |
+\grace <c,8( e> <)b8. d8.-\trill> <c16 e> |
@end example
@cindex trill
@cindex stemBoth
@item @file{fix-suffixes.sh}
Add @file{.exe} to binary executables, add @file{.py} to Python scripts.
@item @file{python-wrapper.sh}
-All python scripts get a wrapper script to make direct invocation easier
-and to change file paths to DOS style, which is needed by non-Cygwin
-Python, that's currently used.
+All python scripts get a wrapper script to make direct invocation easier.
@item @file{latex-wrapper.sh}
TeX and LaTeX get a wrapper script that changes the TEX path variables
to DOS style, which is needed by non-Cygwin TeX, that's currently used.
@section Windows binary setup
-Apart from LilyPond itself, you need Cygwin, GUILE, Python, and a TeX
+Apart from LilyPond itself, you need Cygwin, GUILE, Python and a TeX
installation, but all this software be installed by running setup.exe:
@table @asis
LilyPond. Make sure to install in the default place, @file{c:/cygwin},
and install everything.
-As of version 1.3.150, you also have the option to install MiKTeX,
-Python and GSView from this installer, which is recommended. If you
-choose to install these by hand (see below), make sure to install them
+As of version 1.3.150, you also have the option to install MiKTeX and
+GSView from this installer, which is recommended. If you choose to
+install these by hand (see below), make sure to install them
@strong{before} you install LilyPond, otherwise your LilyPond setup will
be broken.
or visit the
@uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}.
-@item Python
-Click @uref{http://www.python.org/ftp/python/win32/py152.exe,here} to
-install Python-1.5.2, or visit
-@uref{http://www.python.org,www.python.org}.
-
-We have not tried using newer versions than 1.5.2.
-
@end table
echo
else
cat <<EOF
-Python not found. Install python-1.5.2 from www.python.org.
+Python not found. Install python-2.1-1 from http://cygwin.com
Make sure python.exe in in your PATH
EOF
exit 1
fi
-python "$(cygpath -w ""@prefix@/bin/@name@.py"")" $*
+python "@prefix@/bin/@name@.py" $*
#
SCRIPTS = configure aclocal.m4
-README_FILES = DEDICATION COPYING NEWS CHANGES ROADMAP
+README_FILES = CHANGES COPYING DEDICATION NEWS README.mandrake ROADMAP
README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt FAQ.txt
IN_FILES := $(wildcard *.in)
EXTRA_DIST_FILES = lilypond-font-lock.el lilypond-mode.el lilypond-init.el vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) emacsclient.patch mktexnam.patch lexer-gcc-3.0.patch
--- /dev/null
+README.first
+============
+
+This file created for Linux-Mandrake distribution by Michael Brown
+<mbrown@fensystems.co.uk>
+
+LilyPond is a music typesetter. It produces beautiful sheet music using a
+high level description file as input.
+
+LilyPond is split into two packages. The package "lilypond" provides the
+core package, containing the utilities for converting the music source
+(.ly) files into printable output. The package "lilypond-extras" provides
+the full documentation, example .ly files for various features and the
+Mutopia project files (musical equivalent of the Gutenberg project - see
+http://www.mutopiaproject.org for details).
+
+If you are new to lilypond, you will almost certainly want to install the
+"lilypond-extras" package in addition to the "lilypond" package.
+
+You may also wish to investigate the "denemo" package, which provides a
+graphical front end to lilypond.
+
+
+
+Quick Start Guide
+=================
+
+To run lilypond:
+
+Create a lilypond source (.ly) file in a directory that you can write
+to. (The easiest way to do this is to copy a .ly file from
+/usr/share/doc/lilypond-1.4.2/Examples or one of the Mutopia files
+from /usr/share/doc/lilypond-1.4.2/Mutopia - note that these folders
+are part of the lilypond-extras package).
+
+Run "ly2dvi -P input_file.ly" (replacing input_file as appropriate). This
+will create a file called input_file.ps, which you can then view using
+Ghostscript ("gv input_file.ps").
+
+For an easier way to use lilypond, try the graphical front-end denemo.
+
+
+
+Points to note
+==============
+
+DO NOT use the "lilypond -f ps" option to generate a PostScript file. It
+is included as an experimental feature, or for platforms that do not have
+a working TeX setup (that's not Mandrake).
+Use "ly2dvi -P" instead.
+
+[ Addendum: the "lilypond -f ps" option is now broken in this package,
+ due to the new, improved way of handling the via-LaTeX method. It won't
+ work. Use "ly2dvi -P" instead. ]
topdocs/ sources for the toplevel files (README.txt, INSTALL.txt, etc.)
user/ User manuals
buildscripts/ Scripts used during the build process
- debian/ Files for building .deb packages.
- flower/ A generic library.
+ debian/ Files for building .deb packages
+ flower/ A generic library
include/
input/ Various input files
test/ Test features: one file per feature
bugs/ Show bugs
+ no-notation/ Examples or bugs that do not produce output
+ regression/ Various features for regression test
tutorial/ Examples from the tutorial
lily/ Source code for LilyPond
include/
ports/
ps/ postscript library files
tex/ TeX library files
+ scm/ Scheme initialisation and subroutine files
scripts/ User scripts
stepmake/ Generic make subroutine files
--- /dev/null
+\header {
+texidoc = "grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
+
+}
+\score{
+\notes
+
+{ c''2 { \grace b'16 c''2 } \bar "|." }
+ \paper {
+}
+ }
+
\include "paper16.ly"
-stemdown = \property Voice.Stem \override #'direction = #-1
-stemup = \property Voice.Stem \override #'direction = #1
-stemboth = \property Voice.Stem \revert #'direction
+stemDown = \property Voice.Stem \override #'direction = #-1
+stemUp = \property Voice.Stem \override #'direction = #1
+stemBoth = \property Voice.Stem \revert #'direction
viola = \notes \relative c' \context Voice = viola {
<c4-\f-\arpeggio g' c>
--- /dev/null
+%define name lilypond
+%define version @TOPLEVEL_VERSION@
+%define release 1mdk
+
+Name: %{name}
+Summary: A program for printing sheet music.
+Version: %{version}
+Release: %{release}
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-%{version}.tar.gz
+## Patch0: lilypond-GNUmakefile.in.patch.bz2
+License: GPL
+Group: Publishing
+URL: http://www.lilypond.org/
+BuildRoot: %{_tmppath}/%{name}-buildroot
+BuildRequires: guile guile-devel
+Requires: tetex
+
+%description
+LilyPond is a music typesetter. It produces beautiful sheet music using a
+high level description file as input. Lilypond is part of the GNU project.
+
+LilyPond is split into two packages. The package "lilypond" provides the
+core package, containing the utilities for converting the music source
+(.ly) files into printable output. The package "lilypond-extras" provides
+the full documentation, example .ly files for various features and the
+Mutopia project files (musical equivalent of the Gutenberg project - see
+http://www.mutopiaproject.org for details).
+
+If you are new to lilypond, you will almost certainly want to install the
+"lilypond-extras" package in addition to the "lilypond" package.
+
+You may also wish to investigate the "denemo" package, which provides a
+graphical front end to lilypond.
+
+See the file README.first for more information.
+
+
+%package extras
+Summary: LilyPond documentation, examples and Mutopia files.
+Group: Publishing
+Requires: lilypond
+
+%description extras
+The documentation of LilyPond, both in HTML and PostScript, along with
+example input files and the files from the Mutopia project.
+
+%prep
+%setup -a 1
+## % patch0 -b .orig
+
+%build
+# DO NOT use % { configure } , it hardcodes all paths, runs libtool,
+# so we can't do make prefix=/tmp/ install.
+# -- not sure what this comment means; it's a relic from the PPC spec file -- mbrown@fensystems.co.uk
+./configure --disable-checking --disable-debugging --enable-printing --prefix=%{_prefix} --disable-optimise --enable-shared
+make
+make local-web
+
+%install
+
+# Create installation root folders
+rm -rf $RPM_BUILD_ROOT
+RPM_DOC_ROOT=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+rm -rf $RPM_DOC_ROOT
+mkdir -p $RPM_DOC_ROOT
+
+make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+%{find_lang} %{name}
+
+# Move info and man files into correct locations
+mv $RPM_BUILD_ROOT/usr/info $RPM_BUILD_ROOT%{_infodir}
+mv $RPM_BUILD_ROOT/usr/man $RPM_BUILD_ROOT%{_mandir}
+
+# Move TeX font files into system TeX tree locations
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/texmf/fonts/{afm,source,tfm}
+mv $RPM_BUILD_ROOT%{_datadir}/lilypond/afm $RPM_BUILD_ROOT%{_datadir}/texmf/fonts/afm/lilypond
+mv $RPM_BUILD_ROOT%{_datadir}/lilypond/mf $RPM_BUILD_ROOT%{_datadir}/texmf/fonts/source/lilypond
+mv $RPM_BUILD_ROOT%{_datadir}/lilypond/tfm $RPM_BUILD_ROOT%{_datadir}/texmf/fonts/tfm/lilypond
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/texmf/tex
+mv $RPM_BUILD_ROOT%{_datadir}/lilypond/tex $RPM_BUILD_ROOT%{_datadir}/texmf/tex/lilypond
+
+# Copy emacs mode files into %{_datadir}/lilypond/emacs
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/lilypond/emacs
+cp *.el $RPM_BUILD_ROOT%{_datadir}/lilypond/emacs/
+
+# Create documentation tree in %{_docdir}
+mkdir -p $RPM_DOC_ROOT/HTML
+tar -C $RPM_DOC_ROOT/HTML -xzf out/web.tar.gz
+ln -s HTML/input $RPM_DOC_ROOT/Examples
+ln -s HTML/input/test $RPM_DOC_ROOT/Tricks
+ln -s HTML/mutopia $RPM_DOC_ROOT/Mutopia
+mkdir -p $RPM_DOC_ROOT/Printable
+ln -s ../HTML/Documentation/user/out-www/lilypond.ps.gz $RPM_DOC_ROOT/Printable/Manual.ps.gz
+ln -s ../HTML/Documentation/user/out-www/glossary.ps.gz $RPM_DOC_ROOT/Printable/Glossary.ps.gz
+cp AUTHORS.txt CHANGES COPYING DEDICATION FAQ.txt NEWS README.txt VERSION README.mandrake $RPM_DOC_ROOT/README.first
+
+%post
+touch /tmp/.lilypond-install
+rm `find /var/lib/texmf -name 'feta*pk -print' -or -name 'feta*tfm -print'` /tmp/.lilypond-install
+/usr/bin/mktexlsr
+%_install_info lilypond.info
+%_install_info lilypond-internals.info
+
+%preun
+%_remove_install_info lilypond.info
+%_remove_install_info lilypond-internals.info
+
+%postun
+/usr/bin/mktexlsr
+
+
+%files -f %{name}.lang
+%defattr(-,root,root,0755)
+%{_bindir}/*
+%{_datadir}/lilypond/
+%{_datadir}/texmf/fonts/afm/lilypond
+%{_datadir}/texmf/fonts/source/lilypond
+%{_datadir}/texmf/fonts/tfm/lilypond
+%{_datadir}/texmf/tex/lilypond
+
+%doc %{_infodir}/*
+%doc %{_mandir}/man1/*
+%doc %{_docdir}/%{name}-%{version}/AUTHORS.txt
+%doc %{_docdir}/%{name}-%{version}/CHANGES
+%doc %{_docdir}/%{name}-%{version}/COPYING
+%doc %{_docdir}/%{name}-%{version}/DEDICATION
+%doc %{_docdir}/%{name}-%{version}/FAQ.txt
+%doc %{_docdir}/%{name}-%{version}/NEWS
+%doc %{_docdir}/%{name}-%{version}/README.txt
+%doc %{_docdir}/%{name}-%{version}/VERSION
+%doc %{_docdir}/%{name}-%{version}/README.first
+
+%files extras
+%defattr(-,root,root,0755)
+%doc %{_docdir}/%{name}-%{version}/HTML
+%doc %{_docdir}/%{name}-%{version}/Mutopia
+%doc %{_docdir}/%{name}-%{version}/Printable
+%doc %{_docdir}/%{name}-%{version}/Tricks
+%doc %{_docdir}/%{name}-%{version}/Examples
+
+
+%changelog
+* Fri Jun 01 2001 Lenny Cartier <lenny@mandrakesoft.com> 1.4.2-1mdk
+- updated by Michael Brown <mbrown@linux-mandrake.com> :
+ - Upgraded to 1.4.2
+ - Changed URL
+ - Removed /etc/profile.d scripts: all TeX bits are now located properly
+ - Rearranged documentation
+ - Tidied spec file
+ - Updated README.first
+
+* Mon Feb 26 2001 Lenny Cartier <lenny@mandrakesoft.com> 1.3.129-1mdk
+- added in contribs by Michael Brown <mbrown@fensystems.co.uk> :
+ - Removed info files completely (couldn't get info reader to read them)
+ - TODO: Get this to work at some point (in the meantime, use documentation in lilypond-extras)
+
+* Sat Feb 17 2001 Michael Brown <mbrown@fensystems.co.uk>
+- Moved TeX font folders into the system TeX tree (this ensures that the /var/lib/texmf font cache is used instead of current folder)
+- Added mktexlsr to post-install and post-uninstall scripts
+- Patched scripts in /etc/profile.d to reflect changes to font locations
+- Added QuickStart guide and Points to note sections to README.first (well worth reading)
+- Fixed install-info and uninstall-info sections to use Mandrake's RPM macros :-)
+
+* Tue Feb 13 2001 Michael Brown <mbrown@fensystems.co.uk>
+- First Mandrake package
+- spec file heavily adapted from PowerPC contribs.
+- Note HTML documentation may contain duff links and may be incomplete. Lots of warnings appear when building HTML docs.
+- PostScript documentation is duplicated (how do you get an rpm package to contain a symlink?)
+- Created README.first file
Group: Applications/Publishing
Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz
Summary: Create and print music notation
-URL: http://www.cs.uu.nl/~hanwen/lilypond
+URL: http://www.lilypond.org/
BuildRoot: /tmp/lilypond-install
# add lots of Buildreq: flex, bison, tetex, tetex-devel, tetex-latex, texinfo
# better prereqs: tetex-latex, python, (mpost?) etc.
NO WARRANTY.'''))
sys.stdout.write ('\n')
-if ( os.name == 'posix' ):
- errorport=sys.stderr
-else:
- errorport=sys.stdout
+errorport=sys.stderr
def progress (s):
errorport.write (s + '\n')
Exit status of CMD
"""
- if ( os.name != 'posix' ):
- cmd = re.sub (r'''\\''', r'''\\\\\\''', cmd)
- cmd = "sh -c \'%s\'" % cmd
-
-
if verbose_p:
progress (_ ("Invoking `%s\'") % cmd)
st = os.system (cmd)
cmd = 'latex \\\\nonstopmode \\\\input %s' % latex_fn
- if not verbose_p and os.name == 'posix':
+ if not verbose_p:
progress ( _("Running %s...") % 'LaTeX')
cmd = cmd + ' 1> /dev/null 2> /dev/null'
cmd = 'dvips %s -o%s %s' % (opts, outbase + '.ps', outbase + '.dvi')
- if not verbose_p and os.name == 'posix':
+ if not verbose_p:
progress ( _("Running %s...") % 'dvips')
cmd = cmd + ' 1> /dev/null 2> /dev/null'