Generated by (address unknown), >From = lilypond-1.4.13.mb1, To = lilypond-1.4.13.mb2 usage cd lilypond-source-dir; patch -E -p1 < lilypond-1.4.13.mb2.diff Patches do not contain automatically generated files or (urg) empty directories, i.e., you should rerun autoconf, configure diff -purN ../lilypond-1.4.13.mb1/CHANGES ./CHANGES --- ../lilypond-1.4.13.mb1/CHANGES Thu May 23 12:32:44 2002 +++ ./CHANGES Mon May 27 10:54:41 2002 @@ -1,3 +1,12 @@ +1.4.13.mb2 +========== + +* Backport feta font symbol documentation in the manual. + +* Backport Python 2.2 compatibility in lilypond-book. + +* Backport new font installation strategy and its documentation. + 1.4.13.mb1 ========== diff -purN ../lilypond-1.4.13.mb1/Documentation/misc/GNUmakefile ./Documentation/misc/GNUmakefile --- ../lilypond-1.4.13.mb1/Documentation/misc/GNUmakefile Mon May 14 18:00:51 2001 +++ ./Documentation/misc/GNUmakefile Mon May 27 10:59:30 2002 @@ -4,7 +4,7 @@ NAME = documentation STEPMAKE_TEMPLATES=documentation texinfo -TEXTS =AIMS $(wildcard CHANGES-*[0-9]) $(wildcard ANNOUNCE-*[0-9]) $(wildcard NEWS-*[0-9]) interview +TEXTS =AIMS $(wildcard CHANGES-*[0-9]) $(wildcard ANNOUNCE-*[0-9]) $(wildcard NEWS-*[0-9]) interview fontinstallation EXTRA_DIST_FILES = $(TEXTS) include $(depth)/make/stepmake.make diff -purN ../lilypond-1.4.13.mb1/Documentation/misc/fontinstallation ./Documentation/misc/fontinstallation --- ../lilypond-1.4.13.mb1/Documentation/misc/fontinstallation Thu Jan 1 01:00:00 1970 +++ ./Documentation/misc/fontinstallation Mon May 27 10:59:48 2002 @@ -0,0 +1,89 @@ +The font installation in LilyPond. + +Background + +This is a short overview of the installation of the Feta fonts +in LilyPond. This structure is used by default from version +1.5.37. + +Let $DATADIR denote the Lilypond data installation directory, +typically /usr/local/share/lilypond/ or /usr/share/lilypond/. +A non-default path can be specified using 'configure --prefix' +or 'configure --datadir'. + +The trick used is to let $DATADIR be the root of an additional +texmf tree, where the TeX tools can search just as it searches +the default texmf tree of the teTeX distribution. We follow +the official TeX Directory Structure (see `texdoc tds`). + +The main advantage of putting the font files in a teTeX +system tree is that generated font files (such as .*pk files) +will automatically be stored in "the right place", i.e. you +should never end up in your current working directory - something +that was a common problem in previous Lilypond installations. +What is then considered "the right place" in teTeX? If the user +has write permissions in $DATADIR (for example if the installation +is done locally in a home directory), then the generated files +will also appear in subdirectories of $DATADIR. This means that +you can keep several LilyPond versions installed in parallel +as long as $DATADIR is set separately for each version and you +have write permissions in (at least all but one) of the installation +directories. For ordinary installations in /usr/share/ or +/usr/local/share/, where the user does not have write permission, +the generated font files will instead appear in the directory +specified by `kpsexpand \$VARTEXFONTS`, often /var/tmp/texfonts/ +or /var/spool/texmf/ depending on your teTeX distribution. + +Details + +The files are installed in the following subdirectories: + +$DATADIR/fonts/source/: all *.mf files +$DATADIR/fonts/afm/: all *.afm files +$DATADIR/fonts/tfm/: all *.tfm files +$DATADIR/fonts/type1/: all *.pfa and/or *.pfb files +$DATADIR/tex/: all *.tex files +$DATADIR/dvips/: the lilypond.map file + +To make teTeX aware of the files, the directory is added +to the list of texmf trees by setting the single variable +$TEXMF. + +In Bourne shell/bash: +TEXMF="{$DATADIR,"`kpsexpand \\$TEXMF`"}" +export TEXMF + +In csh/tcsh: +set noglob +setenv TEXMF "{$DATADIR,"`kpsexpand \$TEXMF`"}" +unset noglob + +If $TEXMF was set previously, kpsexpand will use that value, +otherwise it is read from texmf.cnf (`kpsewhich texmf.cnf` +tells you where to find the file). + + +Creating nice-looking PDF files + +If you have generated and installed the so-called Type1 versions +of the fonts, and have Ghostscript version 6.0 or later, you can +make PDF versions of your scores that look nice both on screen +and on paper. You just have to tell dvips to use the Type1 +version of the fonts: + +dvips -ulilypond.map -Ppdf myscore.dvi +ps2pdf myscore.ps + +If you want top quality printouts, it is recommended to stick +to the bitmap fonts, i.e. to call dvips directly without +any extra flags. The resulting PDF files will then unfortunately +look fuzzy on screen. + +This will work well with ly2dvi output, however if you +use lilypond-book or write a LaTeX wrapper file yourself, +do NOT include the line \usepackage[T1]{fontenc} since +the Type1 text fonts included in the free TeX distributions +only include TC encoded fonts, not T1 encoded. However, +add \usepackage[latin1]{inputenc} if you use any non- +anglosaxian characters. + diff -purN ../lilypond-1.4.13.mb1/Documentation/user/appendices.itely ./Documentation/user/appendices.itely --- ../lilypond-1.4.13.mb1/Documentation/user/appendices.itely Sun May 5 17:48:13 2002 +++ ./Documentation/user/appendices.itely Mon May 27 10:19:40 2002 @@ -6,6 +6,7 @@ * American Chords :: * Jazz chords:: * MIDI instruments:: +* The Feta font:: @end menu @node Lyrics mode definition @@ -200,3 +201,12 @@ scheme = \chords { "viola" "lead 5 (charang)" "gunshot" "cello" "lead 6 (voice)" @end example + address@hidden The Feta font address@hidden The Feta font +The following symbols are available in the Feta font and may be +accessed directly using text markup such as address@hidden'(music "scripts-segno")}, see @ref{Text markup}. + address@hidden + diff -purN ../lilypond-1.4.13.mb1/VERSION ./VERSION --- ../lilypond-1.4.13.mb1/VERSION Thu May 23 12:32:57 2002 +++ ./VERSION Mon May 27 10:19:57 2002 @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=4 PATCH_LEVEL=13 -MY_PATCH_LEVEL=mb1 +MY_PATCH_LEVEL=mb2 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff -purN ../lilypond-1.4.13.mb1/buildscripts/lilypond-login.sh ./buildscripts/lilypond-login.sh --- ../lilypond-1.4.13.mb1/buildscripts/lilypond-login.sh Sun May 5 19:17:45 2002 +++ ./buildscripts/lilypond-login.sh Mon May 27 11:07:09 2002 @@ -4,39 +4,38 @@ # # Red Hat-like systems should install this in /etc/profile.d/ +# If run by hand or from you .login, run as follows +# source lilypond-profile + + + # strange shell, this C set datadir="@datadir@" -setenv GS_FONTPATH "$datadir/afm:@datadir@/pfa:$GS_FONTPATH" -setenv GS_LIB "$datadir/ps:$GS_LIB" + if ( $?GS_LIB ) then + setenv GS_LIB "$datadir/ps:$GS_LIB" + else + setenv GS_LIB "$datadir/ps" + endif + + # setenv LILYPONDPREFIX "$datadir" # bit silly. for ly2dvi, overrules compiled-in datadir... # setenv LILYPONDPREFIX "@datadir@" -# include an empty path component for the system wide includes. -if ($?MFINPUTS) then - setenv MFINPUTS "$datadir/mf:${MFINPUTS}::" -else - setenv MFINPUTS "$datadir/mf::" -endif -if ($?TEXINPUTS) then - setenv TEXINPUTS "$datadir/tex:${TEXINPUTS}::" -else - setenv TEXINPUTS "$datadir/tex::" -endif -if ($?TFMFONTS) then - setenv TFMFONTS "$datadir/tfm:$TFMFONTS" -else - setenv TFMFONTS "$datadir/tfm::" -endif - -if ($?DVIPSHEADERS) then - setenv DVIPSHEADERS "$datadir/pfa:$DVIPSHEADERS" -else - setenv DVIPSHEADERS "$datadir/pfa::" -endif - +# Add the installation directory to the teTeX system tree, +# see Documentation/misc/fontinstallation +set noglob +setenv TEXMF "{$datadir,"`kpsexpand \$TEXMF`"}" +unset noglob + +# Add all available TeX Type1 fonts (including Feta) to Ghostscript: +if ( $?GS_FONTPATH ) then + setenv GS_FONTPATH `kpsewhich -expand-path=\$T1FONTS`:$GS_FONTPATH" + else + setenv GS_FONTPATH `kpsewhich -expand-path=\$T1FONTS` + endif diff -purN ../lilypond-1.4.13.mb1/buildscripts/lilypond-profile.sh ./buildscripts/lilypond-profile.sh --- ../lilypond-1.4.13.mb1/buildscripts/lilypond-profile.sh Sun May 5 19:17:06 2002 +++ ./buildscripts/lilypond-profile.sh Mon May 27 13:08:46 2002 @@ -4,35 +4,31 @@ # Red Hat-like systems should install this in /etc/profile.d/ -# This is a bit of a kludge. Ideally, lilypond's tex, afm, pfa, ps -# directories should be installed into their location in the texmf/gs -# trees, rather than messing around with environment variables (eg, -# see Debian or SuSE package). +# If run by hand or from you .profile, run as follows +# . lilypond-profile -datadir="@datadir@" +datadir=`echo "@datadir@" | sed 's!//!/!g'` -# For direct ps output fonts -GS_FONTPATH="$datadir/afm:$datadir/pfa" # For direct ps output: ps/lilyponddefs.ps GS_LIB="$datadir/ps:"${GS_LIB:=""} +export GS_LIB # bit silly. for ly2dvi, overrules compiled-in datadir... # Better comment this out. Compiled-in datadir serves exactly the # same purpose, but is more likely to be correct (think multiple # versions of lilypond). # LILYPONDPREFIX="$datadir" - -# include an empty path component for the system wide includes. -MFINPUTS="$datadir/mf:"${MFINPUTS:=":"} -TEXINPUTS="$datadir/tex:$datadir/ps:"${TEXINPUTS:=":"} -TFMFONTS="$datadir/tfm:"${TFMFONTS:=":"} -DVIPSHEADERS="$datadir/pfa:"${DVIPSHEADERS:=":"} - -# LILYPONDPREFIX="$datadir" # export LILYPONDPREFIX -export DVIPSHEADERS MFINPUTS TEXINPUTS TFMFONTS GS_LIB GS_FONTPATH +# Add the installation directory to the teTeX system tree, +# see Documentation/misc/fontinstallation +TEXMF="{$datadir,"`kpsexpand \\$TEXMF`"}" +export TEXMF + +# For direct ps output fonts. Add all available TeX Type1 fonts +GS_FONTPATH=`kpsewhich -expand-path=\\$T1FONTS`:${GS_FONTPATH:=""} +export GS_FONTPATH diff -purN ../lilypond-1.4.13.mb1/buildscripts/mf-to-table.py ./buildscripts/mf-to-table.py --- ../lilypond-1.4.13.mb1/buildscripts/mf-to-table.py Fri May 11 01:57:13 2001 +++ ./buildscripts/mf-to-table.py Mon May 27 10:33:22 2002 @@ -119,6 +119,35 @@ def write_tex_defs (file, global_info, c for m in charmetrics: file.write (r'''\def\%s%s{\char%d}%s''' % (nm, m['tex'], m['code'],'\n')) +def write_fontlist (file, global_info, charmetrics): + nm = global_info['FontFamily'] + file.write (r""" +% Lilypond file to list all font symbols and the corresponding names +% Automatically generated by mf-to-table.py +\score{\notes{\fatText +""") + for m in charmetrics: + escapedname=re.sub('_','\\\\\\\\_', m['name']) + file.write ('s^#\'(lines (music \"%s\") \"%s\")\n' % (m['name'], escapedname)) + file.write (r""" +} + \paper{ + \translator{ + \ScoreContext + \remove "Bar_number_engraver" + TextScript \override #'extra-extent-X = #'(-1 . 1) + } + \translator{ + \StaffContext + \remove "Clef_engraver" + \remove "Key_engraver" + \remove "Time_signature_engraver" + \remove "Staff_symbol_engraver" + } + } +} +""") + def write_deps (file, deps, targets): for t in targets: @@ -146,12 +175,13 @@ Options: (options, files) = getopt.getopt( sys.argv[1:], 'a:d:hl:o:p:t:', - ['afm=', 'outdir=', 'dep=', 'tex=', 'debug', 'help', 'package=']) + ['afm=', 'outdir=', 'dep=', 'tex=', 'ly=', 'debug', 'help', 'package=']) texfile_nm = ''; depfile_nm = '' afmfile_nm = '' +lyfile_nm = '' outdir_prefix = '.' for opt in options: @@ -163,6 +193,8 @@ for opt in options: outdir_prefix = a elif o == '--tex' or o == '-t': texfile_nm = a + elif o == '--ly' or o == '-': + lyfile_nm = a elif o== '--help' or o == '-h': help() elif o=='--afm' or o == '-a': @@ -185,5 +217,7 @@ for filenm in files: write_afm_metric (afm, g,m) write_tex_defs (open (texfile_nm, 'w'), g, m) write_deps (open (depfile_nm, 'wb'), deps, [texfile_nm, afmfile_nm]) + if lyfile_nm != '': + write_fontlist(open (lyfile_nm, 'w'), g, m) diff -purN ../lilypond-1.4.13.mb1/make/lilypond-vars.make ./make/lilypond-vars.make --- ../lilypond-1.4.13.mb1/make/lilypond-vars.make Sun May 5 19:13:38 2002 +++ ./make/lilypond-vars.make Mon May 27 10:30:38 2002 @@ -34,7 +34,7 @@ ABC2LY = $(script-dir)/abc2ly.py CONVERT_LY = $(script-dir)/convert-ly.py LILYPOND = $(depth)/$(builddir)/lily/$(outconfbase)/lilypond LILYPOND_BOOK = $(script-dir)/lilypond-book.py -LILYPOND_BOOK_INCLUDES = -I $(pwd) -I $(outdir) -I$(input-dir) -I $(input-dir)/tricks/ -I $(input-dir)/regression/ -I $(input-dir)/test/ -I $(input-dir)/tutorial/ +LILYPOND_BOOK_INCLUDES = -I $(pwd) -I $(outdir) -I$(input-dir) -I $(input-dir)/tricks/ -I $(input-dir)/regression/ -I $(input-dir)/test/ -I $(input-dir)/tutorial/ -I $(topdir)/mf/$(outdir)/ LY2DVI = $(script-dir)/ly2dvi.py PS_TO_GIFS = $(buildscript-dir)/ps-to-gifs.sh PS_TO_PNGS = $(buildscript-dir)/ps-to-pngs.sh diff -purN ../lilypond-1.4.13.mb1/mf/GNUmakefile ./mf/GNUmakefile --- ../lilypond-1.4.13.mb1/mf/GNUmakefile Sun May 5 19:11:59 2002 +++ ./mf/GNUmakefile Mon May 27 13:00:53 2002 @@ -32,7 +32,7 @@ TFM_FILES = $(addprefix $(outdir)/, $(FO ALL_GEN_FILES= $(TFM_FILES) $(TEXTABLES) $(AFM_FILES) $(TFM_FILES) $(LOG_FILES) #PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)" -INSTALLATION_DIR=$(datadir)/mf/ +INSTALLATION_DIR=$(datadir)/fonts/source INSTALLATION_FILES=$(MF_FILES) $(AF_FILES) INSTALLATION_OUT_SUFFIXES=1 2 3 4 5 @@ -40,32 +40,26 @@ INSTALLATION_OUT_SUFFIXES=1 2 3 4 5 INSTALLATION_OUT_DIR1=$(datadir)/tex INSTALLATION_OUT_FILES1=$(TEXTABLES) -INSTALLATION_OUT_DIR2=$(datadir)/afm +INSTALLATION_OUT_DIR2=$(datadir)/fonts/afm INSTALLATION_OUT_FILES2=$(AFM_FILES) -INSTALLATION_OUT_DIR3=$(datadir)/tfm +INSTALLATION_OUT_DIR3=$(datadir)/fonts/tfm INSTALLATION_OUT_FILES3=$(TFM_FILES) # comment this out if you don't want pfa's to be generated -# -#MAKE_PFA_FILES=1 -# # making pfas takes a lot of CPU time. Let's skip it for now. - +#MAKE_PFA_FILES=1 PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa)) ifdef MAKE_PFA_FILES - ALL_GEN_FILES += $(PFA_FILES) $(outdir)/lilypond.map -INSTALLATION_OUT_DIR4=$(datadir)/pfa +INSTALLATION_OUT_DIR4=$(datadir)/fonts/type1 INSTALLATION_OUT_FILES4=$(PFA_FILES) INSTALLATION_OUT_DIR5=$(datadir)/dvips/ INSTALLATION_OUT_FILES5=$(outdir)/lilypond.map pfa: $(PFA_FILES) endif $(outdir)/lilypond.map: @@ -80,7 +74,7 @@ default: $(ALL_GEN_FILES) ## ## todo: this also depends on .tfm, FIXME. $(outdir)/%.afm $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log - $(PYTHON) $(buildscript-dir)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$( DO NOT USE """ for docstrings. @@ -357,9 +351,6 @@ fields = layout_fields + extra_fields include_path = ['.'] lily_p = 1 paper_p = 1 -cache_pks_p = 1 - -PK_PATTERN='feta.*\.[0-9]+pk' output_name = '' targets = { @@ -373,29 +364,41 @@ track_dependencies_p = 0 dependency_files = [] -# -# Try to cater for bad installations of LilyPond, that have -# broken TeX setup. Just hope this doesn't hurt good TeX -# setups. Maybe we should check if kpsewhich can find -# feta16.{afm,mf,tex,tfm}, and only set env upon failure. -# + +kpse = os.popen ('kpsexpand \$TEXMF').read() +kpse = re.sub('[ \t\n]+$','', kpse) +type1_paths = os.popen ('kpsewhich -expand-path=\$T1FONTS').read () + environment = { - 'MFINPUTS' : datadir + '/mf' + ':', - 'TEXINPUTS': datadir + '/tex:' + datadir + '/ps:' + '.:' - + os.getcwd() + ':', - 'TFMFONTS' : datadir + '/tfm' + ':', - 'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa', + ## todo: prevent multiple addition. + 'TEXMF' : "{%s,%s}" % (datadir, kpse) , + 'GS_FONTPATH' : type1_paths, 'GS_LIB' : datadir + '/ps', } +# tex needs lots of memory, more than it gets by default on Debian +non_path_environment = { + 'extra_mem_top' : '1000000', + 'extra_mem_bottom' : '1000000', + 'pool_size' : '250000', +} def setup_environment (): + # $TEXMF is special, previous value is already taken care of + if os.environ.has_key ('TEXMF'): + del os.environ['TEXMF'] + + for key in environment.keys (): val = environment[key] if os.environ.has_key (key): val = os.environ[key] + os.pathsep + val os.environ[key] = val + for key in non_path_environment.keys (): + val = non_path_environment[key] + os.environ[key] = val + #what a name. def set_setting (dict, key, val): try: @@ -834,9 +837,6 @@ if files and files[0] != '-': setup_environment () tmpdir = setup_temp () - if cache_pks_p : - os.chdir (outdir) - cp_to_dir (PK_PATTERN, tmpdir) # to be sure, add tmpdir *in front* of inclusion path. #os.environ['TEXINPUTS'] = tmpdir + ':' + os.environ['TEXINPUTS'] @@ -901,9 +901,6 @@ if files and files[0] != '-': elif verbose_p: warning (_ ("can't find file: `%s'") % outname) - if cache_pks_p: - cp_to_dir (PK_PATTERN, outdir) - os.chdir (original_dir) cleanup_temp ()