X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=INSTALL.txt;h=176a50e06294a188b13bc3f047654e60773d3ee2;hb=c3f1e9e806a3d386f82439130f9593c3537ed08c;hp=c7fcd32855643e5d37beeb38623daf5b4e464755;hpb=bc1e5cfa4aef13a1b9bd2d251dd9cb25dbaf9d03;p=lilypond.git diff --git a/INSTALL.txt b/INSTALL.txt index c7fcd32855..176a50e062 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,395 +1,537 @@ +Table of Contents +***************** + + + + +INSTALL - compiling and installing GNU LilyPond + Downloading + Source code + Precompiled binaries + Upgrading + Requirements + Compilation + Running requirements + Website requirements + Building LilyPond + Configuring for multiple platforms + Emacs mode + Compiling for distributions + Red Hat Linux + LinuxPPC + SuSE + Slackware + Mandrake + Debian GNU/Linux + Problems + FLex-2.5.4a and gcc-3.0 + Linux-2.4.0, Guile-1.4 -with-threads + NetBSD + Solaris: + AIX + + INSTALL - compiling and installing GNU LilyPond *********************************************** -Abstract -======== + This document describes how to build LilyPond on Unix platforms. It +is also known to run and compile on Windows NT/95/98 as well. More +information on this topic can be found at the LilyPond on Windows page +(http://www.lilypond.org/gnu-windows/). + +Downloading +=========== + + Even numbered versions are `stable'. The webpages for the stable +version (1.2) reside on the GNU servers +(http://www.gnu.org/software/lilypond). Big enhancements go into the +latest odd numbered version (1.3), whose webpages are on the lilypond +site (http://www.lilypond.org/). + +Source code +----------- + + If you want to compile LilyPond from source, download here: + * Download development releases from + `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/' by FTP and + `http://ftp.cs.uu.nl/pub/GNU/LilyPond/', by HTTP. + + * `ftp://sca.uwaterloo.ca/pub/' by FTP (Canadian mirror) + + * at `lilypond.org' `ftp://ftp.lilypond.org/pub/LilyPond/' by FTP and + `http://www.lilypond.org/ftp/' by HTTP. + + 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, `.spec' files are included in the +tarball; see instructions below. + +Precompiled binaries +-------------------- - This document explains what you need to install LilyPond, and what -you should do. If you are going to compile and install LilyPond often, -e.g. when doing development, you might want to check out the -`buildscripts/set-lily.sh' script. It sets some environment variables -and symlinks, which comes in handy when you have to compile LilyPond -more often. + If you want to track bleeding edge development, try: -Obtaining -========= + * Debian GNU/Linux + (ftp://ftp.debian.org/debian/pool/main/l/lilypond/) usually has + the latest binaries for the most useful stable and development + versions, while - You can get the latest version of LilyPond at -ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/ -(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/). + * Mandrake Cooker + (http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/) also + provides fairly recent versions. - _If you upgrade by patching do remember to rerun autoconf after -applying the patch_. + Binaries are made available for other popular platforms, but as we +need to compile them ourselves, they are not updated for every version +released. - If you do not want to download the entire archive for each version, -the safest method for upgrading is to use `xdelta', see -`ftp://ftp.xcf.berkeley.edu/pub/xdelta/'. + * Red Hat i386 + (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/) - The following command produces `lilypond-1.1.55.tar.gz' from -`lilypond-1.1.54' identical (up to compression dates) to the .55 on the -FTP site. - xdelta patch lilypond-1.1.54-1.1.55.xd lilypond-1.1.54.tar.gz + * SuSE (ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE) -Prerequisites -============= + * LinuxPPC (ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/) - For compilation you need: + * Windows (http://www.lilypond.org/gnu-windows/) - * A GNU system: GNU LilyPond is known to run on these GNU systems: - Linux (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix - and Solaris. +Upgrading +--------- - * Lots of disk space: LilyPond takes between 30 and 100 mb to - compile if you use debugging information. If you are short on - disk-space run configure with `--disable-debugging'. + There are two options for upgrading sources. - * Although we recommend to use Unix, LilyPond is known to run on - Windows NT/95/98 as well. See Section Windows NT/95,es. + * if you have an unpacked source tree of a previous version, you may + the patches. - * EGCS 1.1 or newer. Check out `ftp://ftp.gnu.org/gnu/gcc/'. + _If you upgrade by patching do remember to rerun autoconf after + applying the patch_. - * Python 1.5, Check out `ftp://ftp.python.org' or - `ftp://ftp.cwi.nl/pub/python'. + * if you have the `.tar.gz' file of a previous release, you can use + xdelta (ftp://ftp.xcf.berkeley.edu/pub/xdelta/). This is much + safer than using patches, and is the recommended way. - * GUILE 1.3.4 or newer, check out - http://www.gnu.org/software/guile/guile.html + The following command produces `lilypond-1.4.3.tar.gz' from + `lilypond-1.4.2.tar.gz' identical (up to compression dates) to the + .3 on the FTP site. + xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz + +Requirements +============ + +Compilation +----------- + + You need the following packages to compile Lilypond. + + * A reasonably new C++ compiler: EGCS 1.1, GCC 2.95.2 or newer. + Check out the gcc site (ftp://ftp.gnu.org/gnu/gcc/). + + * Python 1.5, Check out the python website (http://www.python.org). + + * GUILE 1.3.4 or newer, check out the GUILE webpage (http://www.gnu.org/software/guile/guile.html). Version 1.4 is recommended for better performance. - * GNU Make. Check out ftp://ftp.gnu.org/gnu/make/ + * GNU Make. Check out the GNU make FTP directory (ftp://ftp.gnu.org/gnu/make/). - * Flex (version 2.5.4 or newer). Check out - ftp://ftp.gnu.org/gnu/flex/ (ftp://ftp.gnu.org/gnu/flex/). + * Flex (version 2.5.4a or newer). Check out the Flex webpage + (http://www.gnu.org/software/flex/). - * Bison (version 1.25 or newer). Check out - ftp://ftp.gnu.org/gnu/bison/ (ftp://ftp.gnu.org/gnu/bison/). + * Bison (version 1.25 or newer). Check out the bison webpage + (http://www.gnu.org/software/bison/) - * Texinfo (version 4.0 or newer). Check out - ftp://ftp.gnu.org/gnu/texinfo/ (ftp://ftp.gnu.org/gnu/texinfo/). - Most documentation is in texinfo. + * TeX. - * The geometry package for LaTeX is needed to use ly2dvi. Available - at - ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry - (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry) - or at mirror site ftp://ftp.dante.de (ftp://ftp.dante.de) + TeX is used as an output backend. - * MetaPost, needed for generating PostScript fonts. Please note that - tetex-0.4pl8 (included with Redhat 5.x) does not include - `mfplain.mp', which is needed for producing the scalable font - files. + Also, TeX's libkpathsea is used to find the fonts (`.mf', `.afm', + `.tfm'). Make sure you have tetex 1.0 or newer (1.0.6 is known to + work). You may need to install a tetex-devel or tetex-dev package + too. - If you do not want to use PostScript output, edit `mf/GNUmakefile'. + * Texinfo (version 4.0 or newer). The documentation of lily is + written in texinfo. Check out the texinfo FTP directory + (ftp://ftp.gnu.org/gnu/texinfo/). + + * The geometry package for LaTeX is needed to use ly2dvi. It is + available at the FTP directory for `geometry' + (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry). + This package is normally included with the TeX distribution. * kpathsea, a library for searching (TeX) files. `kpathsea' is - usually included with your installation of TeX. + usually included with your installation of TeX. You may need to + install a tetex-devel or tetex-dev package too. + + In the very unlikely case that kpathsea is not available for your + platform (ie, you're not running GNU/Linux, Windows, or any recent + UNIX), you can compile LilyPond without kpathsea support. In that + case, you'll probably have to indicate where TeX's tfm files live. + Invoke configure something like: + ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols -Running -======= + * pktrace, [OPTIONAL], needed for generating PostScript Type1 fonts. + Get it from `http://www.cs.uu.nl/~hanwen/pktrace/' + + * autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1 + fonts. `http://autotrace.sourceforge.net'. + + * MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts. + Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not + include `mfplain.mp', which is needed for producing the scalable + font files. + + If you don't have MetaPost and don't want to use PostScript + output, then edit `mf/GNUmakefile', removing the line saying + `PFA_FILES='. + + +Running requirements +-------------------- GNU LilyPond does use a lot of resources. For operation you need the following software - * TeX + * TeX. - * A PostScript printer and/or viewer (such as Ghostscript) is - strongly recommended. Xdvi will show all embedded PostScript - too if you have Ghostscript installed. + * Xdvi and Ghostscript - * GUILE 1.3.4, check out http://www.gnu.org/software/guile/ - (http://www.gnu.org/programs/guile.html) + * GUILE 1.3.4, or newer. Check out the GUILE webpage + (http://www.gnu.org/software/guile.html) For running LilyPond successfully you have to help TeX and MetaFont find various files. The recommended way of doing so is adjusting the -environment variables in the start-up scripts of your shell. An -example is given here for the Bourne shell: - export MFINPUTS="/usr/local/share/lilypond/mf:" - export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:" - - The empty path component represents TeX and MetaFont's default -search paths. Scripts with the proper paths for the bourne and C-shell -respectively are generated in `buildscripts/out/lilypond-profile' and -`buildscripts/out/lilypond-login' during compilation. +environment variables in the start-up scripts of your shell. Appropriate +Csh and bourne sh scripts are left in +`buildscripts/out/lilypond-profile' and +`buildscripts/out/lilypond-login' after compilation. - LilyPond is a hiddeously big, slow and bloated program. A fast CPU -and plenty of RAM is recommended for comfortable use. + LilyPond is a big and slow program. A fast CPU and plenty of RAM is +recommended for comfortable use. -Website -======= +Website requirements +-------------------- - The website is the most convenient form to use for reading the -documentation on-line documentation. It is made by entering + The documentation comes in the form of a website. You can view this +website on the internet, but you can also build it locally. This process +requires a successful compile of lilypond. The website is built by +issuing - make htmldoc - This does require a functioning LilyPond. The binary doesn't have -to be installed. + make web-doc - If you want to auto-generate Lily's website, you'll need some -additional conversion tools. + Building the website requires some additional tools: - * xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux - users: it is included within the package libgr-progs). - the original is at - ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz + * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities). + The original is at the netpbm FTP site (ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz) - * pnmtopng, which is also in libgr-progs for RedHat. The original is - at - ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz - (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).i + * pnmtopng. The original is at in the pnmtopng FTP site + (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz). - The version of `pnmtopng' that is distributed with RedHat 5.1 and - 5.2 contains a bug: pnmtopng is dynamically linked to the wrong - version of libpng, which results in cropped images. Recompile it - from source, and make sure that the pnmtopng binary is linked - statically to the libpng that is included in libgr. RedHat 6.0 - does not have this problem. + * texinfo (a development release) The documentation will build with + texinfo-4.0, but if you want split html pages, you're best off + using the lates pretest version from texinfo-4.0b + (ftp://texinfo.org/texinfo/pretests/texinfo-4.0b.tar.gz) or + texinfo-4.0b (ftp://alpha.gnu.org/gnu/texinfo-4.0b.tar.gz) - tar xzf libgr-2.0.13.tar.gz - make - cd png - rm libpng.so* - make pnmtopng +Building LilyPond +================== - You can then install the new pnmtopng into `/usr/local/bin/' + to install GNU LilyPond, type: + gunzip -c lilypond-x.y.z | tar xf - + cd lilypond-x.y.z + ./configure # run with --help to see appropriate options + make + make install + sh buildscripts/clean-fonts.sh - * Bib2html (http://pertsserver.cs.uiuc.edu/~hull/bib2html). - Which, in turn depends on man2html for proper installation. - man2html can be had from - http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05 - (http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05). + If you are doing an upgrade, you should remove all `feta' `.pk' and +`.tfm' files. A script has been provided to do the work for you, see +`buildscripts/clean-fonts.sh'. - The website will build without this utility, but you will not see - our hypertextified bibliography. + If you are not root, you should choose a `--prefix' argument that +points into your home directory, eg. - * DOC++ (http://www.zib.de/Visual/software/doc++/index.html) A - documentation system for C++ sources, which is used for the - LilyPond sources. + ./configure --prefix=$HOME/usr -Configuring and compiling -========================= + In this case, you have to insert the contents of +`buildscripts/out/lilypond-login' or +`buildscripts/out/lilypond-profile' into your start up scripts by hand. - to install GNU LilyPond, simply type: +Configuring for multiple platforms +---------------------------------- - gunzip -c lilypond-x.y.z | tar xf - - cd lilypond-x.y.z - ./configure # fill in your standard prefix with --prefix - make - make install + If you want to build multiple versions of LilyPond with different +configuration settings, you can use the `--enable-config=CONF' option +of configure. You should use `make conf=CONF' to generate the output +in `out-CONF'. Example: suppose I want to build with and without +profiling. Then I'd use the following for the normal build, - This will install a number of files, something close to: + ./configure --prefix=~ --enable-checking + make + make install - /usr/local/man/man1/mi2mu.1 - /usr/local/man/man1/convert-mudela.1 - /usr/local/man/man1/mudela-book.1 - /usr/local/man/man1/lilypond.1 - /usr/local/bin/lilypond - /usr/local/bin/mi2mu - /usr/local/bin/convert-mudela - /usr/local/bin/mudela-book - /usr/local/bin/abc2ly - /usr/local/share/lilypond/* - /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo + and for the profiling version, I specify a different configuration. - The above assumes that you are root and have the GNU development -tools, and your make is GNU make. If this is not the case, you can -adjust your environment variables to your taste: + ./configure --prefix=~ --enable-profiling --enable-config=prof --disable-checking + make conf=prof + make conf=prof install - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - ./configure +Emacs mode +========== - `CPPFLAGS' are the preprocessor flags. + An Emacs mode for entering music and running LilyPond is included +with the source archive as `lilypond-mode.el' and +`lilypond-font-lock.el'. You should install these files somewhere in +your LOAD-PATH. If you have installed a precompiled LilyPond package, +these files can be found in `/usr/share/doc/lilypond-x.y.z/'. - The configure script is Cygnus configure, and it will accept -`--help'. If you are not root, you will probably have to make it with a -different `--prefix' option. Our favourite location is + Add this to your `~/.emacs' or `~/.emacs.el', or install this file +in Emacs' `site-start.d': + ;;; lilypond-init.el --- Startup code for LilyPond mode + + (load-library "lilypond-mode.el") + (setq auto-mode-alist + (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist)) + (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock))) + If you have the latest LilyPond-1.4.x Debian package, LilyPond-mode +is automatically loaded, you not even need to modify your `~/.emacs' +file. - ./configure --prefix=$HOME/usr +Compiling for distributions +=========================== - In this case, you will have to set up MFINPUTS, and TEXINPUTS -accordingly. +Red Hat Linux +------------- - Since GNU LilyPond currently is beta, you are advised to also use + Red Hat 7.0 i386 RPMS are available from +`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/'. + You can also compile them yourself. A spec file is in +`make/out/lilypond.redhat.spec'. This file is distributed along with +the sources. You can make the rpm by issuing - --enable-debugging - --enable-checking + tar xfz lilypond-x.y.z.tar.gz + rpm -bb lilypond-x.y.z/make/out/lilypond.redhat.spec + rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z - Options to configure include: + For running on a Red Hat system you need these packages: guile, +tetex, tetex-latex, tetex-dvips, libstdc++, python, ghostscript. -``--enable-printing'' - Enable debugging print routines (lilypond `-D' option) + For compilation on a Red Hat system you need these packages, in +addition to the those needed for running: glibc-devel, gcc-c++, +libstdc++-devel, guile-devel, flex, bison, texinfo, tetex-devel, groff, +libgr-progs. -``--enable-optimise'' - Set maximum optimisation: compile with `-O2'. This can be - unreliable on some compiler/platform combinations (eg, DEC Alpha - and PPC) +LinuxPPC +-------- -``--enable-profiling'' - Compile with support for profiling. + Some LinuxPPC RPMS should available from +`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/'. -``--enable-config'' - Output to a different configuration file. Needed for - multi-platform builds + A LinuxPPC RPM can be made using the `lilypond.redhat.spec' file. - All options are documented in the `configure' help The option -`--enable-optimise' is recommended for Real Life usage. +SuSE +---- - If you do + Some SUSE RPMS should available from +`ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE'. + You can also compile a RPM for SUSE yourself. A spec file is in +`make/out/lilypond.suse.spec', see the instructions for building the +Red Hat RPM. - make all + You must have the following packages: guile tcsh tetex te_latex +te_kpath te_mpost libpng python gpp libgpp gettext autoconf netpbm +libnetpb gs_serv gs_lib gs_fonts guile - everything will be compiled, but nothing will be installed. The -resulting binaries can be found in the subdirectories `out/' (which -contain all files generated during compilation). +Slackware +--------- -Configuring for multiple platforms -================================== + No precompiled packages for Slackware are available. - If you want to compile LilyPond with different configuration -settings, then, you can use the `--enable-config' option. Example: -suppose I want to build with and without profiling. Then I'd use the -following for the normal build, + Problems have been reported with Slackware 7.0; apparently, it ships +with a faulty compiler. Do not compile LilyPond with -O2 on this +platform. +Mandrake +-------- - ./configure --prefix=~ --disable-optimise --enable-checking - make - make install + Some binaries are available at rpmfind.net. Refer to +`http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/'. - and for the profiling version, I specify a different configuration. + You can also compile a RPM for Mandrake yourself. A spec file is in +`make/out/lilypond.mandrake.spec', see the instructions for building +the Red Hat RPM. +Debian GNU/Linux +---------------- - ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking - make config=optprof - make config=optprof install + A Debian package is also available. You may install it easily by +running `apt-get' as root: -Installing -========== + apt-get install lilypond lilypond-doc - if you have done a successful `make', then a simple + You can also compile the .deb for Debian yourself, do: + apt-get -b source lilypond - make install + If you're real impatient, you may even do: - should do the trick. + cd lilypond-x.y.z # a previous version + uscan # download and build latest directly from upstream - If you are doing an upgrade, please remember to remove obsolete -`.pk' and `.tfm' files of the fonts. A script has been provided to do -the work for you, see `bin/clean-fonts.sh'. + Debian's TeX installation is a bit short on memory, you may want to +increase it like this: + --- /etc/texmf/texmf.cnf.dpkg Sun Jan 28 14:12:14 2001 + +++ /etc/texmf/texmf.cnf Fri Apr 27 11:09:35 2001 + @ -384,8 +384,8 @ + main_memory.context = 1500000 + main_memory.mpost = 1000000 + main_memory = 263000 % words of inimemory available; also applies to inimf&mp + -extra_mem_top = 0 % extra high memory for chars, tokens, etc. + -extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc. + +extra_mem_top = 100000 % extra high memory for chars, tokens, etc. + +extra_mem_bot = 100000 % extra low memory for boxes, glue, breakpoints, etc. + + obj_tab_size.context = 256000 -Redhat linux -============ + You could also export `extra_mem_top' and `extra_mem_bot' as +environment variables if you do not want to or cannot modify +`/etc/texmf/texmf.cnf'. - RedHat Linux users can compile an RPM. A spec file is in -`make/out/lilypond.spec', it is distributed along with the sources. + Alternatively, visit - You can make the rpm by issuing + * http://packages.debian.org/lilypond + (http://packages.debian.org/lilypond) - rpm -tb lilypond-x.y.z.tar.gz - rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z + * http://people.debian.org/~foka/lilypond/ + (http://people.debian.org/~foka/lilypond/) for latest + semi-unofficial build of LilyPond 1.4.2 for Debian 2.2 (potato) + users. The official stable Debian 2.2 is stuck with the old + LilyPond-1.3.24. Since LilyPond-1.4 has been released, the older + lilypond1.3 Debian package is now obsolete. - Precompiled i386 RedHat RPMS are available from -ftp://freshmeat.net/pub/rpms/lilypond/ -(ftp://freshmeat.net/pub/rpms/lilypond/) and -http://linux.umbc.edu/software/lilypond/rpms/ -(http://linux.umbc.edu/software/lilypond/rpms/). + Please contact Anthony Fok for more +information. - For compilation on a RedHat system you need these packages, in -addition to the those needed for running: - * glibc-devel + The build scripts are in the subdirectory `debian/'; you can make +the .deb by doing, for example: - * libstdc++-devel + $ su - root + # dpkg --purge lilypond lilypond1.3 + # exit + $ tar xzf lilypond-1.4.3.tar.gz + $ cd lilypond-1.4.3 + $ dch -p -v 1.4.3-0.local.1 "Local build." + $ debuild -B + $ su - root + # dpkg -i ../lilypond_1.4.3*.deb + # exit + $ - * guile-devel + Use command `debuild' instead of `debuild -B' if you have a very +fast machine and want to build the HTML, PS and DVI documentation too. - * flex + For compilation on a Debian GNU/Linux system you need these packages, +in addition to the those needed for running: - * bison + * g++, cpp, libc6-dev, libstdc++-dev - * texinfo + * libguile-dev -Debian GNU/linux -================ + * make, m4, flex, bison - A Debian package is also available; see -http://packages.debian.org/lilypond -(http://packages.debian.org/lilypond) or contact Anthony Fok - for more information. The build scripts are in the -subdirectory `debian/'. + * gettext -Windows NT/95 -============= + * groff, texinfo - Separate instructions on building for W32 are available; See the -files in `Documentation/ntweb/', included with the sources. + * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev -Problems -======== + * dpkg-dev, debhelper, fakeroot + + * gs, netpbm - For help and questions use and -. Please consult the faq before mailing -your problems. + * pnmtopng (only in Debian 2.2; pnmtopng has been merged with netpbm + in Debian testing/unstable.) - If you find bugs, please send bug reports to . + Most of these are listed on the `Build-Depends' line in the +`debian/control' file. To ensure the creation of the lilypond deb is +trouble-free, we recommend that you first install the following packages +by running \`apt-get' as root before building the package: - Known bugs that are LilyPond's fault are listed in `TODO', or -demonstrated in `input/bugs/'. + For Debian 2.2: + + apt-get install task-debian-devel task-c++-dev \ + python-base libguile6-dev tetex-bin tetex-dev \ + tetex-extra flex bison texinfo groff gs \ + netpbm pnmtopng m4 gettext + + For Debian in development ("unstable", the future 2.3 or 3.0): + + apt-get install binutils cpp gcc libc6-dev \ + g++ libstdc++2.10-dev \ + python-base libguile-dev tetex-bin libkpathsea-dev \ + tetex-extra flex bison texinfo groff gs \ + netpbm m4 gettext + + And, just so that old fonts from previous versions of LilyPond won't +interfere with your build, you may want to do this before the build too: + + dpkg --purge lilypond lilypond1.3 + +Problems +======== - Known bugs that are not LilyPond's fault are documented here. + For help and questions use . Please consult +the FAQ before mailing your problems. If you find bugs, please send +bug reports to . -LinuxPPC Bugs: -************** + Bugs that are not fault of LilyPond are documented here. - * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to - fixed in egcs-1.1.2-12f or gcc-2.95-0a, - `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/' +FLex-2.5.4a and gcc-3.0 +----------------------- - * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in - particular guile-1.3, and Lily herself will break. + Flex 2.5.4a does not produce g++-3.0 compliant C++ code. To compile +LilyPond with gcc-3.0 you may do: -Linux-i386 -********** + CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0 + make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc + patch -p1 < lexer-gcc-3.0.patch + make conf=gcc-3.0 -C lily - * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0) + Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13. - Lily will crash during parsing (which suggests a C++ library - incompatibility). Precise cause, precise platform description or - solution are not known. +Linux-2.4.0, Guile-1.4 -with-threads +------------------------------------ - Note that this only happens on some computers with the said - platform. + There's a bug in certain kernels around version 2.4.0, that is +triggered when using Guile 1.4 compiled with pthreads. You'll see +random segmentation fault crashes of LilyPond. Upgrade to a newer +version of Linux. If you can't do that, you may try to recompiling +Guile without threads (YMMV): - * libg++ 2.7 + guile-1.4$ ./configure --without-threads; make all install - LilyPond occasionally crashes while parsing the initialisation - files. This is a very obscure bug, and usually entering the - commandline differently "fixes" it. +NetBSD +------ - lilypond input.ly + * The flex precompiled in NetBSD-1.4.2 is broken. Download + flex-2.5.4a, build, install. - and - lilypond -I. ./input.ly - makes a difference + * The configuration of Gcc (egcs-2.91.60 19981201 (egcs-1.1.1 + release)) does not include `/usr/pkg' paths. Configure using: - Typical stacktrace: - SIGSEGV - __libc_malloc (bytes=16384) - ?? () - yyFlexLexer::yy_create_buffer () - Includable_lexer::new_input (this=0x8209a00, s={strh_ = { + CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure - This behaviour has been observed with machines that have old libg++ - versions (LinuxPPC feb '98, RedHat 4.x). Solaris: -******** +-------- * Sparc64/Solaris 2.6, GNU make-3.77 @@ -401,7 +543,7 @@ Solaris: Not yet resolved. AIX -*** +--- * AIX 4.3 ld @@ -409,7 +551,7 @@ AIX Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link GCC-produced object files into an - executable that overflows the TOC. A fix for APAR IX75823 + executable that overflows the TOC. A fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is available from IBM Customer Support and from its 27service.boulder.ibm.com website as PTF U455193.