Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mftrace for openSUSE:Factory checked in at 2021-01-30 13:56:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mftrace (Old) and /work/SRC/openSUSE:Factory/.mftrace.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mftrace" Sat Jan 30 13:56:57 2021 rev:19 rq:867894 version:1.2.20 Changes: -------- --- /work/SRC/openSUSE:Factory/mftrace/mftrace.changes 2018-10-31 13:21:49.319036007 +0100 +++ /work/SRC/openSUSE:Factory/.mftrace.new.28504/mftrace.changes 2021-01-30 13:57:54.994412149 +0100 @@ -1,0 +2,11 @@ +Tue Jan 05 04:24:13 UTC 2021 - Wang Jun <[email protected]> + +- Update to version 1.2.20 + * Fix p.add_option() issue + * Fix parsing of italic correction + * Fix FTP_DIR. + * Migrate package to python3 + * Add manpage for gf2pbm + * Quieten fontforge invocation + +------------------------------------------------------------------- Old: ---- mftrace-1.2.18.tar.gz New: ---- gf2pbm.1 mftrace-1.2.20.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mftrace.spec ++++++ --- /var/tmp/diff_new_pack.jK6oCz/_old 2021-01-30 13:57:55.690413322 +0100 +++ /var/tmp/diff_new_pack.jK6oCz/_new 2021-01-30 13:57:55.690413322 +0100 @@ -1,7 +1,7 @@ # # spec file for package mftrace # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,13 +17,14 @@ Name: mftrace -Version: 1.2.18 +Version: 1.2.20 Release: 0 Summary: Scalable PostScript Fonts for MetaFont License: GPL-2.0-only Group: Productivity/Publishing/TeX/Utilities -Url: http://lilypond.org/mftrace/ +URL: http://lilypond.org/mftrace/ Source0: http://lilypond.org/download/sources/mftrace/%{name}-%{version}.tar.gz +Source1: gf2pbm.1 BuildRequires: autoconf BuildRequires: automake BuildRequires: potrace @@ -44,6 +45,7 @@ %setup -q %build +cp %{SOURCE1} . autoreconf -fi %configure \ --with-pic @@ -56,7 +58,8 @@ %files %defattr(-, root, root) -%doc ChangeLog COPYING README.txt +%license COPYING +%doc ChangeLog README.txt %{_bindir}/* %{_datadir}/mftrace %{_mandir}/man1/* ++++++ gf2pbm.1 ++++++ .TH gf2pbm 1 "February 11, 2002" .SH NAME gf2pbm \- convert a character from a GF font file to PBM format .SH SYNOPSIS .B gf2pbm .RI [ options ] " GF-file" .SH DESCRIPTION This manual page documents briefly the .B gf2pbm command. .B gf2pbm is a program that converts a single character from a METAFONT-produced GF font file to PBM format. It is used internally by .BR mftrace (1) to feed to .BR autotrace (1) to create a Postscript outline description of the character. .SH OPTIONS .TP .B \-b Dump a bitmap file. .TP .B \-s Show glyph size. .TP .BI \-n " NUM" Process glyph number .IR NUM . .TP .BI \-o " FILE" Output to .I FILE instead of .IR stdout . .TP .B \-h Show summary of options. .TP .B \-d Display debugging information. .SH "EXIT STATUS" .B gf2pbm exits with status 0 if successful, status 1 if the requested glyph did not exist and status 2 if there was some other error. .SH SEE ALSO .BR mf (1), .BR pktrace (1). .br .SH AUTHOR .B gf2pbm is based on Paul Vojta's Xdvi, and was munged by Han-Wen Nienhuys <[email protected]>. This manual page was written by Julian Gilbey <[email protected]>, for the Debian GNU/Linux system (but may be used by others). ++++++ mftrace-1.2.18.tar.gz -> mftrace-1.2.20.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/GNUmakefile.in new/mftrace-1.2.20/GNUmakefile.in --- old/mftrace-1.2.18/GNUmakefile.in 2011-12-06 01:54:20.000000000 +0100 +++ new/mftrace-1.2.20/GNUmakefile.in 2019-09-16 10:16:45.000000000 +0200 @@ -14,7 +14,7 @@ srcdir=@srcdir@ VPATH=$(srcdir) NAME=mftrace -MANPAGES=mftrace.1 +MANPAGES=mftrace.1 gf2pbm.1 VERSION=@VERSION@ distdir=$(NAME)-$(VERSION) prefix=@prefix@ @@ -27,8 +27,8 @@ ## up/download. [email protected]:www/download/sources/mftrace/ [email protected]:www/mftrace/ [email protected]:www/downloads/sources/mftrace/ [email protected]:www/mftrace/ GIT_MASTER_SITE=git+ssh://[email protected]/hanwen/mftrace.git all: compile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/README.texi new/mftrace-1.2.20/README.texi --- old/mftrace-1.2.18/README.texi 2011-12-06 01:52:57.000000000 +0100 +++ new/mftrace-1.2.20/README.texi 2019-09-16 10:05:39.000000000 +0200 @@ -41,7 +41,7 @@ @section Download @itemize -@item @uref{http://lilypond.org/download/sources/mftrace/mftrace-@mftversion{}.tar.gz} +@item @uref{http://lilypond.org/downloads/sources/mftrace/mftrace-@mftversion{}.tar.gz} @item GIT at @uref{https://github.com/hanwen/mftrace} @end itemize diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/README.txt new/mftrace-1.2.20/README.txt --- old/mftrace-1.2.18/README.txt 2011-12-06 01:54:31.000000000 +0100 +++ new/mftrace-1.2.20/README.txt 2019-09-16 10:17:38.000000000 +0200 @@ -7,64 +7,59 @@ 1.1 Introduction ================ -`mftrace' is a small Python program that lets you trace a TeX bitmap +'mftrace' is a small Python program that lets you trace a TeX bitmap font into a PFA or PFB font (A PostScript Type1 Scalable Font) or TTF (TrueType) font. It is licensed under the GNU GPL. Scalable fonts offer many advantages over bitmaps, as they allow -documents to render correctly at many printer resolutions. Moreover, +documents to render correctly at many printer resolutions. Moreover, Ghostscript can generate much better PDF, if given scalable PostScript fonts. - Versions prior to 1.0.5 were called `pktrace'. + Versions prior to 1.0.5 were called 'pktrace'. 1.2 Download ============ - * - `http://lilypond.org/download/sources/mftrace/mftrace-1.2.18.tar.gz' - - * GIT at `https://github.com/hanwen/mftrace' + * + <http://lilypond.org/downloads/sources/mftrace/mftrace-1.2.20.tar.gz> + * GIT at <https://github.com/hanwen/mftrace> 1.3 Required ============ -`mftrace' is a thin Python wrapper around some other programs that do +'mftrace' is a thin Python wrapper around some other programs that do the real work: a tracing program and t1asm. To run mftrace you need: - * A tracing program: autotrace >= 0.30 (see - `http://autotrace.sourceforge.net' or potrace (see - `http://potrace.sourceforge.net'). + * A tracing program: autotrace >= 0.30 (see + <http://autotrace.sourceforge.net> or potrace (see + <http://potrace.sourceforge.net>). Potrace is recommended as it runs quicker than autotrace. - * Python-2.2 or later. See `http://www.python.org/' - - * t1utils. See `http://www.lcdf.org/~eddietwo/type/' - + * Python-2.2 or later. See <http://www.python.org/> + * t1utils. See <http://www.lcdf.org/~eddietwo/type/> * TeX-your tex installation should include * kpsewhich, - * MetaFont 1.4 Recommended =============== * A recent version (040215 or newer) of FontForge - (http://fontforge.sourceforge.net). Some of `mftrace' + (http://fontforge.sourceforge.net). Some of 'mftrace' functionality requires FontForge to be present on user's system. - This includes rounding to integer, simplifying and autohinting - font outlines, as well as generating any output formats except - PFA, PFB and AFM. You should not request any of these features - using `mftrace' options if you don't like your font to be run - through FontForge (note that in this case you also have to - explicitly specify `--noround' to disable rounding to integer). + This includes rounding to integer, simplifying and autohinting font + outlines, as well as generating any output formats except PFA, PFB + and AFM. You should not request any of these features using + 'mftrace' options if you don't like your font to be run through + FontForge (note that in this case you also have to explicitly + specify '--noround' to disable rounding to integer). - * Alternatively, you need GhostScript with its `printafm' utility, - available somethere in your PATH. `mftrace' uses `printafm' to + * Alternatively, you need GhostScript with its 'printafm' utility, + available somethere in your PATH. 'mftrace' uses 'printafm' to generate AFM files in case there is no need to process the font with FontForge. - 1.5 Red Hat =========== @@ -72,6 +67,7 @@ rpmbuild -tb mftrace-VERSION.tar.gz + 1.6 Debian GNU/Linux ==================== @@ -79,77 +75,73 @@ install all requirements by running (as root): apt-get install mftrace + If you wish to also install the FontForge package to simplify and autohint the font, then run the command apt-get install fontforge + 1.7 Install =========== -Install the prerequite packages. Then run +Install the prerequite packages. Then run ./configure make install - in the mftrace directory. Run as follows: + + in the mftrace directory. Run as follows: mftrace cmr10 + 1.8 Invoking mftrace. ===================== Command line options: -`--formats=LIST' - A comma-separated list of formats to generate. Choices include: - AFM, PFA, PFB, TTF and SVG. Default is to generate a PFA file. - Note that `fontforge' (formerly called `pfaedit') needs to be - installed in order to generate any format except PFA or PFB. For - generating AFM you need either `fontforge' or `ghostscript'. - -`-e,--encoding=ENC' - Use encoding file ENC. Encoding files used by `mftrace' are - basically in the GhostScript/dvips format, but you may use a - special `.notavail' glyph name in order to tell mftrace not to - process a specific glyph. If this option is not specified, - mftrace will try to determine the encoding file automatically, - from the encoding specified in the TFM file. - -`--glyphs=LIST' - Only process glyphs in LIST, which is a comma-delimited list of +'--formats=LIST' + A comma-separated list of formats to generate. Choices include: + AFM, PFA, PFB, TTF and SVG. Default is to generate a PFA file. + Note that 'fontforge' (formerly called 'pfaedit') needs to be + installed in order to generate any format except PFA or PFB. For + generating AFM you need either 'fontforge' or 'ghostscript'. +'-e,--encoding=ENC' + Use encoding file ENC. Encoding files used by 'mftrace' are + basically in the GhostScript/dvips format, but you may use a + special '.notavail' glyph name in order to tell mftrace not to + process a specific glyph. If this option is not specified, mftrace + will try to determine the encoding file automatically, from the + encoding specified in the TFM file. +'--glyphs=LIST' + Only process glyphs in LIST, which is a comma-delimited list of decimal numbers or ranges. --glyphs 1-10,50,55,90-100 - -`--gffile=NAME' - = Take glyphs from file NAME. - -`--grid GRIDSIZE' +'--gffile=NAME' + = Take glyphs from file NAME. +'--grid GRIDSIZE' Set reciprocal grid size in em units multiplied by ratio - magnification/1000. For example `--grid 10 --magnification 1000' + magnification/1000. For example '--grid 10 --magnification 1000' will round coordinates of control points to 1/10 of em unit. - Useful simultaneously with `--noround' option. Default GRIDSIZE - value is 1, i. e. round to integer. - -`-h,--help' + Useful simultaneously with '--noround' option. Default GRIDSIZE + value is 1, i. e. round to integer. +'-h,--help' help on options. - -`-k,--keep' - Retain all temporary files in the directory `mftrace.dir/'. This +'-k,--keep' + Retain all temporary files in the directory 'mftrace.dir/'. This is useful for debugging problems. - -`--keep-trying' - Try to continue if external programs called by mftrace fail. If - METAFONT crashes with overflow errors, but nevertheless outputs a - GF file, try to process its output as is (useful for some buggy - fonts, see below). If potrace/autotrace fails to trace a specific - character, first try it with a less smoothed curve, and if that +'--keep-trying' + Try to continue if external programs called by mftrace fail. If + METAFONT crashes with overflow errors, but nevertheless outputs a + GF file, try to process its output as is (useful for some buggy + fonts, see below). If potrace/autotrace fails to trace a specific + character, first try it with a less smoothed curve, and if that fails, skip the character. - By default mftrace outputs `trace-bug-FONTNAME-NUMBER.pbm' and + By default mftrace outputs 'trace-bug-FONTNAME-NUMBER.pbm' and stops the process with a request to file a bugreport. - -`--magnification' - The magnification to use for the PFA file. The default is 1000. The - larger the more precise the PFA file will be. However, when +'--magnification' + The magnification to use for the PFA file. The default is 1000. + The larger the more precise the PFA file will be. However, when magnification is too large METAFONT can crash with overflow errors. Sadly, many MF fonts contain resolution checks @@ -160,81 +152,72 @@ if dots_per_inch > (1500 / design_size): ... -`--noround' +'--noround' Don't round coordinates of control points to integer values. - Useful simultaneously with `--grid' option. Disabled by default. + Useful simultaneously with '--grid' option. Disabled by default. -`-o,--output-base=FILE' +'-o,--output-base=FILE' Output to FILE.pfa or FILE.pfb. - -`--simplify' - Pass the font through FontForge for automatic simplification and +'--simplify' + Pass the font through FontForge for automatic simplification and hinting. - -`--tfmfile=FILE' +'--tfmfile=FILE' Use FILE for the TFM file. This file is needed to determine at what resolution to run MetaFont. - -`-V,--verbose' - Be verbose: print all commands as they are invoked. This is useful +'-V,--verbose' + Be verbose: print all commands as they are invoked. This is useful for debugging. - -`-v,--version' +'-v,--version' Print version number - -`--dos-kpath' +'--dos-kpath' Try to kludge up the paths coming from MikTeX for a cygwin - environment. If this doesn't work, specify `--tfmfile' and - `--encoding' manually. - -`-w,--warranty' + environment. If this doesn't work, specify '--tfmfile' and + '--encoding' manually. +'-w,--warranty' show warranty and copyright - -`--potrace' +'--potrace' use Potrace (default). - -`--autotrace' +'--autotrace' use AutoTrace. -`-D,--define=SYMBOL=VALUE' - Set the font info SYMBOL to the given VALUE. For example - `-DFamilyName=Foo' sets the font family name to `Foo'. +'-D,--define=SYMBOL=VALUE' + Set the font info SYMBOL to the given VALUE. For example + '-DFamilyName=Foo' sets the font family name to 'Foo'. Mftrace tries to fill in sensible values for the FontName, - FamilyName, FullName and Weight fields. It does so by guessing - values for the CM font series. For other fonts, it tries to read - an AFM file (which is not likely to exist). Suggestions for a more + FamilyName, FullName and Weight fields. It does so by guessing + values for the CM font series. For other fonts, it tries to read + an AFM file (which is not likely to exist). Suggestions for a more generic way to handle this are welcome. - Mftrace uses kpathsea for finding fonts, so any kpathsea variable can -be used to fine-tune which files should be loaded. For example, you -can set `MFINPUTS' to specify which paths to search for `.mf' files. +be used to fine-tune which files should be loaded. For example, you can +set 'MFINPUTS' to specify which paths to search for '.mf' files. Additional options may be passed to the backend program (potrace or -autotrace) with the `MFTRACE_BACKEND_OPTIONS' environment variable. +autotrace) with the 'MFTRACE_BACKEND_OPTIONS' environment variable. 1.9 Discussion ============== -Why use `mftrace' over textrace (http://textrace.sourceforge.net)? -Textrace and mftrace are functionally similar. However, mftrace is +Why use 'mftrace' over textrace (http://textrace.sourceforge.net)? +Textrace and mftrace are functionally similar. However, mftrace is quicker, more cleanly written and can be installed using standard -methods. Additionally, textrace requires perl, ghostscript and dvips. +methods. Additionally, textrace requires perl, ghostscript and dvips. - How about MetaFog (http://www.truetex.com)? MetaFog operates + How about MetaFog (http://www.truetex.com)? MetaFog operates directly on the curves that generate the bitmap font, its outlines will -probably be smaller and better. However, MetaFog is a proprietary +probably be smaller and better. However, MetaFog is a proprietary product: its source code is not available, and it will only run on a limited number of platforms. - How about MetaType1 (ftp://bop.eps.gda.pl/pub/metatype1/)? -MetaType1 is an approach that puts severe constraints on what may be -done in a font program. It does not work for fonts containing overlaps -and shaped pens. + How about MetaType1 (ftp://bop.eps.gda.pl/pub/metatype1/)? MetaType1 +is an approach that puts severe constraints on what may be done in a +font program. It does not work for fonts containing overlaps and shaped +pens. How about FontForge (http://fontforge.sourceforge.net/) itself? -FontForge is an interactive editor, but it can be scripted. Since it +FontForge is an interactive editor, but it can be scripted. Since it supports bitmap tracing and TeX bitmap fonts, it is possible to duplicate the functionality of mftrace. However, out of the box, FontForge does not recognize TeX encodings. @@ -242,13 +225,12 @@ 1.10 Bugs and todo ================== - * Environment variables containing relative directories, such as + * Environment variables containing relative directories, such as MFINPUTS or TFMINPUTS, are not handled correctly. * Discuss fonts & copyright. - - * Submit `tfm.py' to www.python.org. `tfm.py' is a python module - to parse Tex Font Metric file. + * Submit 'tfm.py' to www.python.org. 'tfm.py' is a python module to + parse Tex Font Metric file. Should you encounter any bug or problem, then please send a bugreport to Han-Wen Nienhuys <[email protected]>. @@ -262,14 +244,14 @@ ============ Gf2pbm, the utility to convert a MetaFont GF file to a PBM file was -based on Paul Vojta's Xdvi. The license notice is reproduced below. +based on Paul Vojta's Xdvi. The license notice is reproduced below. Thanks to all bughunters and contributors: Andrey V. Panov, Geoffrey Alan Washburn, Julian Gilbey (http://www.maths.qmul.ac.uk/~jdg/) Gu"nther Spahlinger, Richard Mahoney, Stanislav Brabec, and Thomas Bushnell BSG. - Copyright (c) 1990-1999 Paul Vojta + Copyright (c) 1990-1999 Paul Vojta Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation @@ -285,12 +267,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL PAUL VOJTA BE LIABLE FOR ANY + NONINFRINGEMENT. IN NO EVENT SHALL PAUL VOJTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - The rest of the package mftrace script itself is licensed under the + The rest of the package mftrace script itself is licensed under the GNU General Public License (http://www.gnu.org/licenses/gpl.txt). 1.13 See also @@ -298,7 +280,6 @@ * Type1 font specification (http://partners.adobe.com/asn/developer/pdfs/tn/T1Format.pdf) - * Supplement to the Type1 specification (http://partners.adobe.com/asn/developer/pdfs/tn/5015.Type1_Supp.pdf). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/afm.py new/mftrace-1.2.20/afm.py --- old/mftrace-1.2.18/afm.py 2006-12-21 01:55:38.000000000 +0100 +++ new/mftrace-1.2.20/afm.py 2019-09-16 10:05:39.000000000 +0200 @@ -48,5 +48,5 @@ if __name__ == '__main__': i = read_afm_file (sys.argv[1]) - print i, i.FullName, i.FontName + print(i, i.FullName, i.FontName) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/configure new/mftrace-1.2.20/configure --- old/mftrace-1.2.18/configure 2011-12-06 01:49:10.000000000 +0100 +++ new/mftrace-1.2.20/configure 2019-09-16 10:14:24.000000000 +0200 @@ -1,11 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68. +# Generated by GNU Autoconf 2.69. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -167,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -212,21 +236,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -328,6 +356,14 @@ } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -449,6 +485,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -483,16 +523,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -504,28 +544,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -1121,8 +1141,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1348,9 +1366,9 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.68 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1513,7 +1531,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.68. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1863,8 +1881,8 @@ ac_config_headers="$ac_config_headers config.h:config.h.in" -# Extract the first word of "${PYTHON:-python}", so it can be a program name with args. -set dummy ${PYTHON:-python}; ac_word=$2 +# Extract the first word of "${PYTHON3:-python3}", so it can be a program name with args. +set dummy ${PYTHON3:-python3}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : @@ -1881,7 +1899,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -1890,7 +1908,7 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="-echo no python" + test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="-echo no python3" ;; esac fi @@ -1922,7 +1940,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_AUTOTRACE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -1963,7 +1981,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_POTRACE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -1988,7 +2006,7 @@ -export VERSION="1.2.18" +export VERSION="1.2.20" @@ -2015,7 +2033,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2055,7 +2073,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2108,7 +2126,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2149,7 +2167,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2207,7 +2225,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2251,7 +2269,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2697,8 +2715,7 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -2938,7 +2955,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -3004,7 +3021,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -3816,16 +3833,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -3885,28 +3902,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -3928,7 +3933,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.68. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -3990,10 +3995,10 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.68, +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -4081,7 +4086,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/configure.in new/mftrace-1.2.20/configure.in --- old/mftrace-1.2.18/configure.in 2011-12-06 01:48:57.000000000 +0100 +++ new/mftrace-1.2.20/configure.in 2019-09-16 10:14:11.000000000 +0200 @@ -1,12 +1,12 @@ AC_INIT(mftrace.py) AC_CONFIG_HEADER(config.h:config.h.in) -AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python) +AC_PATH_PROG(PYTHON, ${PYTHON3:-python3}, -echo no python3) AC_PATH_PROG(AUTOTRACE, autotrace, none) AC_PATH_PROG(POTRACE, potrace, none) AC_SUBST(PYTHON) -export VERSION="1.2.18" +export VERSION="1.2.20" AC_SUBST(VERSION) AC_SUBST(EXEEXT) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/mftrace.py new/mftrace-1.2.20/mftrace.py --- old/mftrace-1.2.18/mftrace.py 2011-03-12 16:00:52.000000000 +0100 +++ new/mftrace-1.2.20/mftrace.py 2019-09-16 10:11:14.000000000 +0200 @@ -21,7 +21,6 @@ # Copyright (c) 2001--2006 by # Han-Wen Nienhuys, Jan Nieuwenhuizen -import string import os import optparse import sys @@ -36,11 +35,11 @@ libdir = '@libdir@' exec_prefix = '@exec_prefix@' -def interpolate (str): - str = string.replace (str, '{', '(') - str = string.replace (str, '}', ')s') - str = string.replace (str, '$', '%') - return str +def interpolate (strng): + strng = strng.replace ('{', '(') + strng = strng.replace ('}', ')s') + strng = strng.replace ('$', '%') + return strng if prefix != '@' + 'prefix@': exec_prefix = interpolate (exec_prefix) % vars () @@ -73,9 +72,9 @@ def _ (s): return s -def shell_escape_filename (str): - str = re.sub ('([\'" ])', r'\\\1', str) - return str +def shell_escape_filename (strng): + strng = re.sub ('([\'" ])', r'\\\1', strng) + return strng def identify (port): port.write ('%s %s\n' % (program_name, program_version)) @@ -227,7 +226,7 @@ if options.dos_kpath: orig = p - p = string.lower (p) + p = p.lower () p = re.sub ('^([a-z]):', '/cygdrive/\\1', p) p = re.sub ('\\\\', '/', p) sys.stderr.write ("Got `%s' from kpsewhich, using `%s'\n" % (orig, p)) @@ -310,17 +309,17 @@ def read_encoding (file): sys.stderr.write (_ ("Using encoding file: `%s'\n") % file) - str = open (file).read () - str = re.sub ("%.*", '', str) - str = re.sub ("[\n\t \f]+", ' ', str) - m = re.search ('/([^ ]+) \[([^\]]+)\] def', str) + strng = open (file).read () + strng = re.sub ("%.*", '', strng) + strng = re.sub ("[\n\t \f]+", ' ', strng) + m = re.search ('/([^ ]+) \[([^\]]+)\] def', strng) if not m: error ("Encoding file is invalid") name = m.group (1) cod = m.group (2) cod = re.sub ('[ /]+', ' ', cod) - cods = string.split (cod) + cods = cod.split () return (name, cods) @@ -341,8 +340,8 @@ def autotrace_path_to_type1_ops (at_file, bitmap_metrics, tfm_wid, magnification): inv_scale = 1000.0 / magnification - (size_y, size_x, off_x, off_y) = map (lambda m, s = inv_scale: m * s, - bitmap_metrics) + (size_y, size_x, off_x, off_y) = list(map (lambda m, s = inv_scale: m * s, + bitmap_metrics)) ls = open (at_file).readlines () bbox = (10000, 10000, -10000, -10000) @@ -361,15 +360,15 @@ ell = ls[0] ls = ls[1:] - toks = string.split (ell) + toks = ell.split () if len (toks) < 1: continue cmd = toks[-1] - args = map (lambda m, s = inv_scale: s * float (m), - toks[:-1]) + args = list(map (lambda m, s = inv_scale: s * float (m), + toks[:-1])) if options.round_to_int: - args = zip_to_pairs (map (round, args)) + args = zip_to_pairs (list(map (round, args))) else: args = zip_to_pairs (args) commands.append ((cmd, args)) @@ -402,15 +401,13 @@ a = na c = expand[c] if options.round_to_int: - a = map (lambda x: '%d' % int (round (x)), - unzip_pairs (a)) + a = ['%d' % int (round (x)) for x in unzip_pairs (a)] else: - a = map (lambda x: '%d %d div' \ + a = ['%d %d div' \ % (int (round (x * options.grid_scale/inv_scale)), - int (round (options.grid_scale/inv_scale))), - unzip_pairs (a)) + int (round (options.grid_scale/inv_scale))) for x in unzip_pairs (a)] - t1_outline = t1_outline + ' %s %s\n' % (string.join (a), c) + t1_outline = t1_outline + ' %s %s\n' % (' '.join (a), c) t1_outline = t1_outline + ' endchar ' t1_outline = '{\n %s } |- \n' % t1_outline @@ -421,9 +418,9 @@ def potrace_path_to_type1_ops (at_file, bitmap_metrics, tfm_wid, magnification): inv_scale = 1000.0 / magnification - (size_y, size_x, off_x, off_y) = map (lambda m, + (size_y, size_x, off_x, off_y) = list(map (lambda m, s = inv_scale: m * s, - bitmap_metrics) + bitmap_metrics)) ls = open (at_file).readlines () bbox = (10000, 10000, -10000, -10000) @@ -442,13 +439,13 @@ if ell == 'fill\n': continue - toks = string.split (ell) + toks = ell.split () if len (toks) < 1: continue cmd = toks[-1] - args = map (lambda m, s = inv_scale: s * float (m), - toks[:-1]) + args = list(map (lambda m, s = inv_scale: s * float (m), + toks[:-1])) args = zip_to_pairs (args) commands.append ((cmd, args)) @@ -461,8 +458,8 @@ z = (0.0, size_y - off_y - 1.0) for (c, args) in commands: - args = map (lambda x: (x[0] * (1.0 / options.grid_scale), - x[1] * (1.0 / options.grid_scale)), args) + args = [(x[0] * (1.0 / options.grid_scale), + x[1] * (1.0 / options.grid_scale)) for x in args] if c == 'moveto': args = [(args[0][0] - z[0], args[0][1] - z[1])] @@ -505,15 +502,13 @@ t1_outline += ' closepath ' if options.round_to_int: - args = map (lambda x: '%d' % int (round (x)), - unzip_pairs (args)) + args = ['%d' % int (round (x)) for x in unzip_pairs (args)] else: - args = map (lambda x: '%d %d div' \ + args = ['%d %d div' \ % (int (round (x*options.grid_scale/inv_scale)), - int (round (options.grid_scale/inv_scale))), - unzip_pairs (args)) + int (round (options.grid_scale/inv_scale))) for x in unzip_pairs (args)] - t1_outline = t1_outline + ' %s %s\n' % (string.join (args), c) + t1_outline = t1_outline + ' %s %s\n' % (' '.join (args), c) t1_outline = t1_outline + ' endchar ' t1_outline = '{\n %s } |- \n' % t1_outline @@ -521,8 +516,8 @@ return (bbox, t1_outline) def read_gf_dims (name, c): - str = popen ('%s/gf2pbm -n %d -s %s' % (bindir, c, name)).read () - m = re.search ('size: ([0-9]+)+x([0-9]+), offset: \(([0-9-]+),([0-9-]+)\)', str) + strng = popen ('%s/gf2pbm -n %d -s %s' % (bindir, c, name)).read () + m = re.search ('size: ([0-9]+)+x([0-9]+), offset: \(([0-9-]+),([0-9-]+)\)', strng) return tuple (map (int, m.groups ())) @@ -588,14 +583,14 @@ to_type1 (t1os, font_bbox, fontname, encoding, magnification, fontinfo) def ps_encode_encoding (encoding): - str = ' %d array\n0 1 %d {1 index exch /.notdef put} for\n' \ + strng = ' %d array\n0 1 %d {1 index exch /.notdef put} for\n' \ % (len (encoding), len (encoding)-1) for i in range (0, len (encoding)): if encoding[i] != ".notavail": - str = str + 'dup %d /%s put\n' % (i, encoding[i]) + strng = strng + 'dup %d /%s put\n' % (i, encoding[i]) - return str + return strng def gen_unique_id (dict): @@ -677,7 +672,7 @@ # need one extra entry for .notdef 'CharStringsLen': len (outlines) + 1, - 'CharStrings': string.join (outlines), + 'CharStrings': ' '.join (outlines), 'CharBBox': '0 0 0 0', } @@ -705,7 +700,7 @@ return (llx, lly, urx, ury) def get_binary (name): - search_path = string.split (os.environ['PATH'], ':') + search_path = os.environ['PATH'].split (':') for p in search_path: nm = os.path.join (p, name) if os.path.exists (nm): @@ -721,11 +716,11 @@ stat = 1 if fontforge_cmd: - stat = system ("%s -usage > pfv 2>&1 " % fontforge_cmd, + stat = system ("%s --help > pfv 2>&1 " % fontforge_cmd, ignore_error = 1) if stat != 0: - warning ("Command `%s -usage' failed. Cannot simplify or convert to TTF.\n" % fontforge_cmd) + warning ("Command `%s --help' failed. Cannot simplify or convert to TTF.\n" % fontforge_cmd) return '' if fontforge_cmd == 'pfaedit' \ @@ -864,8 +859,8 @@ open ('to-ttf.pe', 'w').write (pe_script) if options.verbose: - print 'Fontforge script', pe_script - system ("%s -script to-ttf.pe %s %s" % (ff_command, + print ('Fontforge script', pe_script) + system ("%s -quiet -script to-ttf.pe %s %s" % (ff_command, shell_escape_filename (raw_name), shell_escape_filename (options.tfm_file))) elif ff_needed and (options.simplify or options.round_to_int or 'ttf' in formats or 'svg' in formats): error(_ ("fontforge is not installed; could not perform requested command")) @@ -882,11 +877,11 @@ if get_binary("printafm"): get_afm (t1_path, options.tfm_file, encoding, fontname + '.afm') else: - error(_ ("Neither fontforge nor ghostscript is not installed; could not perform requested command")) + error(_ ("Neither fontforge nor ghostscript is installed; could not perform requested command")) def getenv (var, default): - if os.environ.has_key (var): + if var in os.environ: return os.environ[var] else: return default @@ -974,7 +969,7 @@ action="store_true", dest="keep_temp_dir", help=_ ("Keep all output in directory %s.dir") % program_name) - p.add_option ('','--magnification', + p.add_option ('--magnification', dest="magnification", metavar="MAG", default=1000.0, @@ -989,11 +984,12 @@ dest="formats", default=[], help=_("Which formats to generate (choices: AFM, PFA, PFB, TTF, SVG)")) - p.add_option ('', '--simplify', + p.add_option ('--simplify', action="store_true", dest="simplify", + default=False, help=_ ("Simplify using fontforge")) - p.add_option ('', '--gffile', + p.add_option ('--gffile', dest="gffile", help= _("Use gf FILE instead of running Metafont")) p.add_option ('-I', '--include', @@ -1001,24 +997,23 @@ action="append", default=[], help=_("Add to path for searching files")) - p.add_option ('','--glyphs', + p.add_option ('--glyphs', default=[], action="append", dest="glyphs", metavar="LIST", help= _('Process only these glyphs. LIST is comma separated')) - p.add_option ('', '--tfmfile', + p.add_option ('--tfmfile', metavar='FILE', action='store', dest='tfm_file') - p.add_option ('-e', '--encoding', metavar="FILE", action='store', dest="encoding_file", default="", help= _ ("Use encoding file FILE")) - p.add_option ('','--keep-trying', + p.add_option ('--keep-trying', dest='keep_trying', default=False, action="store_true", @@ -1026,26 +1021,29 @@ p.add_option ('-w', '--warranty', action="store_true", help=_ ("show warranty and copyright")) - p.add_option ('','--dos-kpath', + p.add_option ('--dos-kpath', + action='store_true', dest="dos_kpath", help=_("try to use Miktex kpsewhich")) - p.add_option ('', '--potrace', + p.add_option ('--potrace', + action='store_true', dest='potrace', help=_ ("Use potrace")) - p.add_option ('', '--autotrace', + p.add_option ('--autotrace', + action='store_true', dest='autotrace', help=_ ("Use autotrace")) - p.add_option ('', '--no-afm', + p.add_option ('--no-afm', action='store_false', dest="read_afm", default=True, help=_("Don't read AFM file")) - p.add_option ('','--noround', - action="store_false", + p.add_option ('--noround', + action='store_false', dest='round_to_int', default=True, - help= ("Do not round coordinates of control points to integer values (use with --grid)")) - p.add_option ('','--grid', + help=_("Do not round coordinates of control points to integer values (use with --grid)")) + p.add_option ('--grid', metavar='SCALE', dest='grid_scale', type='float', @@ -1059,7 +1057,7 @@ global options (options, files) = p.parse_args () - + if not files: sys.stderr.write ('Need argument on command line \n') p.print_help () @@ -1092,9 +1090,9 @@ glyph_range = [] for r in options.glyphs: - glyph_subrange = map (int, string.split (r, '-')) + glyph_subrange = list(map (int, r.split('-'))) if len (glyph_subrange) == 2 and glyph_subrange[0] < glyph_subrange[1] + 1: - glyph_range += range (glyph_subrange[0], glyph_subrange[1] + 1) + glyph_range += list(range(glyph_subrange[0], glyph_subrange[1] + 1)) else: glyph_range.append (glyph_subrange[0]) @@ -1346,7 +1344,7 @@ if tfm_try: options.tfm_file = tfm_try - if not os.environ.has_key ("MFINPUTS"): + if "MFINPUTS" not in os.environ: os.environ["MFINPUTS"] = os.getcwd () + ":" ## must change dir before calling mktextfm. @@ -1377,7 +1375,7 @@ if not encoding_file: codingfile = 'tex256.enc' - if not coding_dict.has_key (metric.coding): + if metric.coding not in coding_dict: sys.stderr.write ("Unknown encoding `%s'; assuming tex256.\n" % metric.coding) else: codingfile = coding_dict[metric.coding] @@ -1389,7 +1387,7 @@ (enc_name, encoding) = read_encoding (encoding_file) if not len (options.glyphs): - options.glyphs = range (0, len (encoding)) + options.glyphs = list(range(0, len (encoding))) if not options.gffile: # run mf @@ -1415,11 +1413,15 @@ afmfile = '' backend_options = getenv ('MFTRACE_BACKEND_OPTIONS', '') def main (): + global temp_dir + files = parse_command_line () identify (sys.stderr) for filename in files: do_file (filename) + if temp_dir: + del temp_dir sys.exit (exit_value) if __name__ =='__main__': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/mftrace.spec new/mftrace-1.2.20/mftrace.spec --- old/mftrace-1.2.18/mftrace.spec 2011-12-06 01:54:31.000000000 +0100 +++ new/mftrace-1.2.20/mftrace.spec 2019-09-16 10:17:37.000000000 +0200 @@ -1,7 +1,7 @@ #-*-RPM-SPEC-*- Summary: Generate scalable fonts for TeX Name: mftrace -Version: 1.2.18 +Version: 1.2.20 Release: 1 URL: http://www.cs.uu.nl/~hanwen/mftrace Source0: %{name}-%{version}.tar.gz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/tfm.py new/mftrace-1.2.20/tfm.py --- old/mftrace-1.2.18/tfm.py 2006-12-21 01:55:38.000000000 +0100 +++ new/mftrace-1.2.20/tfm.py 2019-09-16 10:05:39.000000000 +0200 @@ -21,9 +21,9 @@ def compose_tfm_number (seq): shift = (len (seq)-1)*8 - cs = 0L + cs = 0 for b in seq: - cs = cs + (long (ord (b)) << shift) + cs = cs + (int (b) << shift) shift = shift - 8 return cs @@ -34,15 +34,15 @@ # class Tfm_reader: def get_string (self): - b = ord (self.left[0]) - s =self.left[1:1 + b] + b = self.left[0] + s = (self.left[1:1 + b]).decode('ascii') self.left = self.left[1+b:] return s def get_byte (self): b = self.left [0] self.left= self.left[1:] - return ord(b) + return b def extract_fixps (self, count): fs = [0.0] * count @@ -63,10 +63,9 @@ d = (b & 0x0f) b = self.get_byte () - - # huh? why >> 6 ? - i = (b & 0xfc) >> 6 + i = (b & 0xfc) >> 2 tag = (b & 0x3) + rem = self.get_byte () # rem is used as index for the ligature table. @@ -83,7 +82,6 @@ return None def __init__ (self, f): - self.string = f self.left = f self.file_length = self.get_number (2); @@ -159,7 +157,7 @@ return 0 tup = self.chars[code - self.start_code] - return tup[0] <> 0 + return tup[0] != 0 def get_char (self,code): tup = self.chars[code - self.start_code] @@ -176,10 +174,10 @@ def read_tfm_file (fn): - reader =Tfm_reader (open (fn).read ()) + reader =Tfm_reader (open (fn, 'rb').read ()) return reader.get_tfm () if __name__=='__main__': t = read_tfm_file (sys.argv[1]) - print t, t.design_size, t.coding + print(t, t.design_size, t.coding)
