diff --git a/SOURCES/a2ps-4.13-autoenc.patch b/SOURCES/a2ps-4.13-autoenc.patch new file mode 100644 index 0000000..5e3e08f --- /dev/null +++ b/SOURCES/a2ps-4.13-autoenc.patch @@ -0,0 +1,40 @@ +--- a2ps-4.13.rh/src/main.c Fri Feb 23 17:39:02 2001 ++++ a2ps-4.13.euc/src/main.c Fri Feb 23 23:07:40 2001 +@@ -31,6 +31,8 @@ + /* */ + /************************************************************************/ + #include ++#include ++#include + + #include "a2ps.h" + #include "argmatch.h" +@@ -925,6 +927,7 @@ + main (int argc, char *argv[]) + { + int argn; ++ char *locale; + + /* Architecture specific initialization. */ + #ifdef __EMX__ +@@ -947,6 +950,9 @@ + setlocale (LC_CTYPE, ""); + setlocale (LC_PAPER, ""); + ++ locale = setlocale (LC_ALL, ""); ++ /* fprintf(stderr, "locale : %s\n", locale); */ ++ + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + +@@ -1013,6 +1019,10 @@ + yet read sheets. */ + sheets_map = sheets_map_new (); + style_sheets = new_style_sheets (); ++ ++ /* Process special case: Japanese Document */ ++ if (! strncmp (locale, "ja", 2) ) ++ job->requested_encoding_name = xstrdup ("euc-jp"); + + /* Process the command line options. */ + argn = a2ps_handle_options (job, argc, argv); diff --git a/SOURCES/a2ps-4.13-conf.patch b/SOURCES/a2ps-4.13-conf.patch new file mode 100644 index 0000000..9504283 --- /dev/null +++ b/SOURCES/a2ps-4.13-conf.patch @@ -0,0 +1,35 @@ +diff -up a2ps-4.14/configure.conf a2ps-4.14/configure +--- a2ps-4.14/configure.conf 2008-04-27 01:01:04.000000000 +0200 ++++ a2ps-4.14/configure 2008-04-27 01:04:12.000000000 +0200 +@@ -30758,9 +30758,13 @@ fi + echo $ECHO_N "checking for PostScript fonts path... $ECHO_C" >&6; } + # Try to find some PostScript fonts. + # Find out if ghostscript is installed ++# for ac_dir in /usr/local/ghostscript/fonts \ ++# /usr/local/share/ghostscript/fonts; + ac_psfont_path= +-for ac_dir in /usr/local/ghostscript/fonts \ +- /usr/local/share/ghostscript/fonts; ++for ac_dir in /usr/share/fonts/default/Type1 \ ++ /usr/share/fonts/default/ghostscript \ ++ /usr/share/X11/fonts/Type1 \ ++ /usr/share/fonts/culmus ; + do + if test "cd $ac_dir 2>/dev/null && echo *.afm"; then + ac_psfont_path="$ac_psfont_path:$ac_dir"; +diff -up a2ps-4.14/configure.in.conf a2ps-4.14/configure.in +--- a2ps-4.14/configure.in.conf 2008-04-27 01:00:54.000000000 +0200 ++++ a2ps-4.14/configure.in 2008-04-27 01:03:52.000000000 +0200 +@@ -207,8 +207,10 @@ AC_MSG_CHECKING(for PostScript fonts pat + # Try to find some PostScript fonts. + # Find out if ghostscript is installed + ac_psfont_path= +-for ac_dir in /usr/local/ghostscript/fonts \ +- /usr/local/share/ghostscript/fonts; ++for ac_dir in /usr/share/fonts/default/Type1 \ ++ /usr/share/fonts/default/ghostscript \ ++ /usr/share/X11/fonts/Type1 \ ++ /usr/share/fonts/culmus ; + do + if test "cd $ac_dir 2>/dev/null && echo *.afm"; then + ac_psfont_path="$ac_psfont_path:$ac_dir"; diff --git a/SOURCES/a2ps-4.13-etc.patch b/SOURCES/a2ps-4.13-etc.patch new file mode 100644 index 0000000..fa692ff --- /dev/null +++ b/SOURCES/a2ps-4.13-etc.patch @@ -0,0 +1,59 @@ +diff -up a2ps-4.14/etc/a2ps_cfg.in.etc a2ps-4.14/etc/a2ps_cfg.in +--- a2ps-4.14/etc/a2ps_cfg.in.etc 2007-12-29 02:38:58.000000000 +0100 ++++ a2ps-4.14/etc/a2ps_cfg.in 2008-04-27 01:27:55.000000000 +0200 +@@ -73,6 +73,7 @@ LibraryPath: @libpath@ + # It may be useful to extend it so that a2ps can see some + # TeX or X11 resources: it likes AFM files and PF[AB] files. + #AppendLibraryPath: foo ++AppendLibraryPath: @apppath@ + + + ################################################################# +diff -up a2ps-4.14/etc/Makefile.am.etc a2ps-4.14/etc/Makefile.am +--- a2ps-4.14/etc/Makefile.am.etc 2002-07-19 14:07:27.000000000 +0200 ++++ a2ps-4.14/etc/Makefile.am 2008-04-27 01:27:55.000000000 +0200 +@@ -2,7 +2,7 @@ + ## Makefile for a2ps' etc library directory. + + ogonkifydir=$(datadir)/ogonkify +-libpath = $(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir) ++libpath = $(sysconfdir)/$(PACKAGE):$(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir) + + pkgdata_DATA = README + +@@ -40,7 +40,9 @@ DISTCLEANFILES = a2ps.cfg README + + # Building the correct a2ps.cfg + a2ps.cfg: a2ps_cfg Makefile +- sed "s!@libpath@!$(libpath)!" a2ps_cfg > a2ps.cfg ++ sed -e "s!@libpath@!$(libpath)!" \ ++ -e "s!@apppath@!$(PSFONT_PATH)!" \ ++ a2ps_cfg > a2ps.cfg + + # Building a time stamp to know the version. + README: README.in Makefile +diff -up a2ps-4.14/etc/Makefile.in.etc a2ps-4.14/etc/Makefile.in +--- a2ps-4.14/etc/Makefile.in.etc 2007-12-29 04:28:07.000000000 +0100 ++++ a2ps-4.14/etc/Makefile.in 2008-04-27 01:30:55.000000000 +0200 +@@ -262,7 +262,7 @@ sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + tex = @tex@ + ogonkifydir = $(datadir)/ogonkify +-libpath = $(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir) ++libpath = $(sysconfdir)/$(PACKAGE):$(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir) + pkgdata_DATA = README + dsysconf = $(DESTDIR)$(sysconfdir) + EXTRA_DIST = README.in +@@ -482,7 +482,9 @@ uninstall-local: + + # Building the correct a2ps.cfg + a2ps.cfg: a2ps_cfg Makefile +- sed "s!@libpath@!$(libpath)!" a2ps_cfg > a2ps.cfg ++ sed -e "s!@libpath@!$(libpath)!" \ ++ -e "s!@apppath@!$(PSFONT_PATH)!" \ ++ a2ps_cfg > a2ps.cfg + + # Building a time stamp to know the version. + README: README.in Makefile +diff -up a2ps-4.14/Makefile.am.etc a2ps-4.14/Makefile.am +diff -up a2ps-4.14/Makefile.in.etc a2ps-4.14/Makefile.in diff --git a/SOURCES/a2ps-4.13-eucjp.patch b/SOURCES/a2ps-4.13-eucjp.patch new file mode 100644 index 0000000..e94834a --- /dev/null +++ b/SOURCES/a2ps-4.13-eucjp.patch @@ -0,0 +1,1417 @@ +diff -up a2ps-4.14/config.h.in.euc a2ps-4.14/config.h.in +--- a2ps-4.14/config.h.in.euc 2007-12-29 04:28:05.000000000 +0100 ++++ a2ps-4.14/config.h.in 2008-04-27 10:39:24.000000000 +0200 +@@ -24,6 +24,9 @@ + /* Define if TIOCGWINSZ requires sys/ioctl.h */ + #undef GWINSZ_IN_SYS_IOCTL + ++/* Define if you want to support japanese */ ++#undef ENABLE_KANJI ++ + /* Define to 1 if you have the `alarm' function. */ + #undef HAVE_ALARM + +diff -up a2ps-4.14/configure.euc a2ps-4.14/configure +--- a2ps-4.14/configure.euc 2008-04-27 10:39:24.000000000 +0200 ++++ a2ps-4.14/configure 2008-04-27 10:41:39.000000000 +0200 +@@ -1587,7 +1587,8 @@ Optional Packages: + --with-medium=medium specify the default medium (A4, Letter, Legal, etc.) + default=A4 + --with-encoding=enc specify the default encoding (ascii, latin1, +- latin2... latin6, hp etc.) default=latin1 ++ latin2... latin6, euc-jp, hp etc.) default=latin1 ++ --enable-kanji support Japanese (default=yes) + + Some influential environment variables: + CC C compiler command +@@ -22521,7 +22522,7 @@ fi + + for ac_header in sys/time.h sys/stat.h sys/types.h sys/ioctl.h \ + math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \ +- memory.h errno.h fcntl.h stdbool.h fnmatch.h ++ memory.h errno.h fcntl.h stdbool.h fnmatch.h iconv.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` + if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then +@@ -30947,6 +30948,22 @@ fi + + + ++# Check whether --enable-kanji or --disable-kanji was given. ++if test "${enable_kanji+set}" = set; then ++ enableval="$enable_kanji" ++ SUPPORT_KANJI=$enableval ++else ++ SUPPORT_KANJI=yes ++fi ++ ++if test "$SUPPORT_KANJI" = "yes"; then ++ cat >> confdefs.h <<\EOF ++#define ENABLE_KANJI 1 ++EOF ++# ENCODING=euc-jp ++fi ++ ++ + ######################## + # Nice special printers + ######################## +diff -up a2ps-4.14/configure.in.euc a2ps-4.14/configure.in +--- a2ps-4.14/configure.in.euc 2008-04-27 10:39:24.000000000 +0200 ++++ a2ps-4.14/configure.in 2008-04-27 10:39:24.000000000 +0200 +@@ -72,7 +72,7 @@ AC_HEADER_SYS_WAIT + AC_HEADER_DIRENT + AC_CHECK_HEADERS(sys/time.h sys/stat.h sys/types.h sys/ioctl.h \ + math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \ +- memory.h errno.h fcntl.h stdbool.h fnmatch.h) ++ memory.h errno.h fcntl.h stdbool.h fnmatch.h iconv.h) + + ## --------------------- ## + ## Checks for typedefs. ## +@@ -276,11 +276,23 @@ AC_SUBST(MEDIUM) + # + AC_ARG_WITH(encoding, + AC_HELP_STRING([--with-encoding=enc], +- [specify the default encoding (ascii, latin1, latin2... latin6, hp etc.) [default=latin1]]), ++ [specify the default encoding (ascii, latin1, latin2... latin6, euc-jp, hp etc.) [default=latin1]]), + ENCODING=$with_encoding, + ENCODING=latin1) + AC_SUBST(ENCODING) + ++# ++# use libjcode ++# ++AC_ARG_ENABLE(kanji, ++ [ --enable-kanji support Japanese/kanji (default: yes)], ++ SUPPORT_KANJI=$enableval, SUPPORT_KANJI=yes) ++if test "$SUPPORT_KANJI" = "yes"; then ++ AC_DEFINE(ENABLE_KANJI) ++ dnl ENCODING=euc-jp ++fi ++ ++ + ######################## + # Nice special printers + ######################## +diff -up a2ps-4.14/encoding/encoding.map.euc a2ps-4.14/encoding/encoding.map +--- a2ps-4.14/encoding/encoding.map.euc 2007-12-29 02:39:21.000000000 +0100 ++++ a2ps-4.14/encoding/encoding.map 2008-04-27 10:39:24.000000000 +0200 +@@ -93,6 +93,12 @@ koi8r koi8 + koi8 koi8 + koi koi8 + ++euc-jp euc-jp ++eucjp euc-jp ++japanese euc-jp ++ja euc-jp ++jp euc-jp ++ + ######################################################################## + # Some architectures specific char sets + ######################################################################## +diff -up /dev/null a2ps-4.14/encoding/euc-jp.edf +--- /dev/null 2008-04-27 11:55:27.307012118 +0200 ++++ a2ps-4.14/encoding/euc-jp.edf 2008-04-27 10:39:24.000000000 +0200 +@@ -0,0 +1,109 @@ ++# Description of the EUC-JP encoding ++# Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana ++# Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana ++# ++ ++# ++# This file is part of a2ps. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING. If not, write to ++# the Free Software Foundation, 59 Temple Place - Suite 330, ++# Boston, MA 02111-1307, USA. ++# ++ ++Name: EUC-JP ++ ++# This text is reproduced by a courtesy of Roman Czyborra ++# http://czyborra.com/charsets/iso8859.html ++Documentation ++The EUC-JP character set, often simply referred to as Latin 1, ++covers most West European languages, such as French, Spanish, Catalan, ++Basque, Portuguese, Italian, Albanian, Rhaeto-Romanic, Dutch, German, ++Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, ++Scottish, and English, incidentally also Afrikaans and Swahili, thus ++in effect also the entire American continent, Australia and the ++southern two-thirds of Africa. The lack of the ligatures Dutch IJ, ++French OE and ,,German`` quotation marks is considered tolerable. ++ ++The lack of the new C=-resembling Euro currency symbol U+20AC has ++opened the discussion of a new Latin0. ++EndDocumentation ++ ++# If there is an unknown font requested, use Courier ++Default: Courier ++ ++# Automatic spell checking :) ++Substitute: Times Times-Roman ++Substitute: Helvetica-Italic Helvetica-Oblique ++Substitute: Helvetica-BoldItalic Helvetica-BoldOblique ++ ++ ++# SlantFont for Japanese Italic Kanji font ++# new font source font value ++SlantFont: Ryumin-Light-EUC-H-Italic Ryumin-Light-EUC-H 0.2 ++SlantFont: GothicBBB-Medium-EUC-H-Italic GothicBBB-Medium-EUC-H 0.2 ++ ++# Compose font for japanese EUC code ++# target font additional font width size rate ++DefaultComposite: Ryumin-Light-EUC-H 1.0 1.1 ++ ++# 1:2 fixed ++#DefaultComposite: Ryumin-Light-EUC-H 1.0 0.8333 ++ ++# 1:1 fixed ++#DefaultComposite: Ryumin-Light-EUC-H 1.0 1.6666 ++ ++Composite: Helvetica GothicBBB-Medium-EUC-H 1.0 1.1 ++Composite: Helvetica-Oblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1 ++Composite: Helvetica-Bold GothicBBB-Medium-EUC-H 1.0 1.1 ++Composite: Helvetica-BoldOblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1 ++ ++Composite: Courier-Oblique Ryumin-Light-EUC-H-Italic 1.0 1.1 ++Composite: Courier-Bold GothicBBB-Medium-EUC-H 1.0 1.1 ++Composite: Courier-BoldOblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1 ++Composite: Times-Bold GothicBBB-Medium-EUC-H 1.0 1.1 ++ ++Vector: ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++space exclam quotedbl numbersign dollar percent ampersand quoteright ++parenleft parenright asterisk plus comma minus period slash ++zero one two three four five six seven ++eight nine colon semicolon less equal greater question ++at A B C D E F G ++H I J K L M N O ++P Q R S T U V W ++X Y Z bracketleft backslash bracketright asciicircum underscore ++quoteleft a b c d e f g ++h i j k l m n o ++p q r s t u v w ++x y z braceleft bar braceright asciitilde .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++space exclamdown cent sterling currency yen brokenbar section ++dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron ++degree plusminus twosuperior threesuperior acute mu paragraph bullet ++cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown ++Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla ++Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis ++Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply ++Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls ++agrave aacute acircumflex atilde adieresis aring ae ccedilla ++egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis ++eth ntilde ograve oacute ocircumflex otilde odieresis divide ++oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis +diff -up a2ps-4.14/encoding/Makefile.am.euc a2ps-4.14/encoding/Makefile.am +--- a2ps-4.14/encoding/Makefile.am.euc 2007-12-29 02:39:27.000000000 +0100 ++++ a2ps-4.14/encoding/Makefile.am 2008-04-27 10:39:24.000000000 +0200 +@@ -16,7 +16,7 @@ major_encodings = ascii.edf iso1.edf + minor_encodings = \ + ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ + iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ +-iso15.edf koi8.edf ms-cp1251.edf ++iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf + + if EXTENSIONS + encodings_DATA = encoding.map $(major_encodings) $(minor_encodings) +diff -up a2ps-4.14/encoding/Makefile.in.euc a2ps-4.14/encoding/Makefile.in +--- a2ps-4.14/encoding/Makefile.in.euc 2007-12-29 04:28:07.000000000 +0100 ++++ a2ps-4.14/encoding/Makefile.in 2008-04-27 10:39:24.000000000 +0200 +@@ -270,7 +270,7 @@ major_encodings = ascii.edf iso1.edf + minor_encodings = \ + ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ + iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ +-iso15.edf koi8.edf ms-cp1251.edf ++iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf + + @EXTENSIONS_FALSE@encodings_DATA = encoding.map $(major_encodings) + @EXTENSIONS_TRUE@encodings_DATA = encoding.map $(major_encodings) $(minor_encodings) +diff -up a2ps-4.14/lib/encoding.c.euc a2ps-4.14/lib/encoding.c +--- a2ps-4.14/lib/encoding.c.euc 2007-12-29 02:37:54.000000000 +0100 ++++ a2ps-4.14/lib/encoding.c 2008-04-27 10:39:24.000000000 +0200 +@@ -37,6 +37,9 @@ + #include "document.h" + #include "quotearg.h" + #include "strverscmp.h" ++#ifdef ENABLE_KANJI ++int use_jcode = false; ++#endif + + /* Suffix of the Encoding Description Files */ + #define EDF_SUFFIX ".edf" +@@ -389,15 +392,25 @@ font_entry_set_used (struct hash_table_s + * Association of suffixes rules, and corresponding style sheet + * (The hashing is upon `alias') + */ ++struct slantfont_info { ++ char * name; ++ char * src; ++ float raito; ++}; ++ + struct encoding { + char * key; /* e.g. latin1 */ + char * name; /* e.g. ISO Latin 1 */ ++ int composite_flag; /* flag for composite font */ + uchar * documentation; /* Useful pieces of text */ + + char * default_font; /* When a font can't be used + define the font to use */ + struct pair_htable * substitutes; /* e.g. in latin2, don't use + * Courier, but Courier-Ogonki */ ++ struct pair_htable * composite; ++ ++ struct slantfont_info slantfont[NB_FACES]; + + char * vector[256]; /* Define the char set */ + struct darray * font_names_used; +@@ -407,6 +420,9 @@ struct encoding { + struct hash_table_s * fonts; /* Contains cells that are + * 1. name of font, 2. int wx[256] */ + unsigned int * faces_wx[NB_FACES]; ++ ++ unsigned int composite_wx[NB_FACES]; /* fixed length font width*/ ++ float composite_raito[NB_FACES]; /* size raito of additonal and orinal font */ + }; + + /* +@@ -423,9 +439,12 @@ encoding_new (const char * key) + res->name = NULL; + res->default_font = NULL; + res->documentation = NULL; ++ res->composite_flag = false; + + /* Vector will be set by setup */ + res->substitutes = pair_table_new (); ++ res->composite = pair_table_new (); ++ res->slantfont[0].name = NULL; + res->font_names_used = da_new ("List of font names", 10, + da_linear, 10, + (da_print_func_t) da_str_print, +@@ -471,6 +490,34 @@ encoding_add_font_substitute (struct enc + } + + /* ++ * Add a composite font in the current encoding ++ */ ++static void ++encoding_add_composite_font (struct encoding * encoding, ++ const char * orig, const char * subs, ++ int wx, float raito) ++{ ++ encoding->composite_flag = true; ++ pair_add2 (encoding->composite, orig, subs, wx, raito); ++} ++ ++/* ++ * Add a composite font in the current encoding ++ */ ++static void ++encoding_add_slant_font (struct encoding * encoding, ++ const char * new, const char * src, ++ float raito) ++{ ++ static num = 0; ++ encoding->slantfont[num].name = strdup(new); ++ encoding->slantfont[num].src = strdup(src); ++ encoding->slantfont[num].raito = raito; ++ encoding->slantfont[num+1].name = NULL; ++ num++; ++} ++ ++/* + * When FONT_NAME is used with ENCODING, return the + * real font name to use (e.g., in latin2, Courier-Ogonki + * should be returned when asked for Courier). +@@ -514,6 +561,77 @@ encoding_resolve_font_substitute (struct + } + + message (msg_enc, ++ (stderr, "In encoding %s, composite font for %s is resolved as %s\n", ++ encoding->key, font_name, res)); ++ return res; ++} ++ ++/* ++ * Get composite font size and raito ++ */ ++static int ++composite_font_info_get_wx(struct a2ps_job * job, ++ struct encoding * encoding, ++ const char * font_list) ++{ ++ int wx= -1; ++ char * font_list_copy; ++ char * font_name; ++ astrcpy (font_list_copy, font_list); ++ font_name = strtok (font_list_copy, ",<>;"); ++ ++ wx = pair_get_wx (encoding->composite, font_name); ++ if (wx<0) ++ wx = pair_get_wx (encoding->composite, "default_composite__"); ++ ++ return wx; ++} ++ ++static float ++composite_font_info_get_raito(struct a2ps_job * job, ++ struct encoding * encoding, ++ const char * font_list) ++{ ++ float raito= -1; ++ char * font_list_copy; ++ char * font_name; ++ ++ astrcpy (font_list_copy, font_list); ++ font_name = strtok (font_list_copy, ",<>;"); ++ ++ raito = pair_get_raito (encoding->composite, font_name); ++ if (raito<0) ++ raito = pair_get_raito (encoding->composite, "default_composite__"); ++ return raito; ++} ++ ++const char * ++encoding_resolve_composite_font (struct a2ps_job * job, ++ struct encoding * encoding, ++ const char * font_list) ++{ ++ const char * res = NULL; ++ char * font_list_copy; ++ char * font_name; ++ ++ astrcpy (font_list_copy, font_list); ++ font_name = strtok (font_list_copy, ",<>;"); ++ ++ /* Find if there is a substitute for that font */ ++ res = pair_get (encoding->composite, font_name); ++ ++ /* We've found nothing interesting. Last chance is the default ++ * font */ ++ if (!res) ++ { ++ res = pair_get (encoding->composite, "default_composite__"); ++ ++ if (!res) ++ error (1, 0, "Cannot find font %s, nor any composite font", ++ font_name); ++ } ++ ++ message (msg_enc, + (stderr, "In encoding %s, font %s is resolved as %s\n", + encoding->key, font_name, res)); + return res; +@@ -585,6 +703,12 @@ load_encoding_description_file (a2ps_job + { + token2 = GET_TOKEN (NULL); + CHECK_TOKEN (); ++#ifdef ENABLE_KANJI ++ if( strcmp(token2, "EUC-JP")== 0) ++ use_jcode = true; ++ else ++ use_jcode = false; ++#endif + encoding->name = xstrdup (token2); + } + else if (strequ (token, "Default:")) +@@ -633,6 +757,66 @@ load_encoding_description_file (a2ps_job + subs = token2; + encoding_add_font_substitute (encoding, orig, subs); + } ++ else if (strequ (token, "DefaultComposite:")) ++ { ++ char * orig, * subs; ++ int wx; ++ float raito; ++ ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ subs = token2; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ wx = (int)atof(token2)*1000; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ raito = atof(token2); ++ encoding_add_composite_font(encoding, "default_composite__", ++ subs, wx, raito); ++ } ++ else if (strequ (token, "Composite:")) ++ { ++ char * orig, * subs; ++ int wx; ++ float raito; ++ ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ orig = token2; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ subs = token2; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ wx = (int)atof(token2)*1000; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ raito = atof(token2); ++ encoding_add_composite_font(encoding, orig, subs, wx, raito); ++ } ++ else if (strequ (token, "SlantFont:")) ++ { ++ char * new, * src; ++ float raito; ++ unsigned int num; ++ ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ new = token2; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ src = token2; ++ token2 = GET_TOKEN (NULL); ++ CHECK_TOKEN (); ++ raito = atof(token2); ++ for (num = 0 ; encoding->slantfont[num].name ; num ++ ); ++ if (num > sizeof encoding->slantfont - 1){ ++ error_at_line (1, 0, fname, firstline, ++ _("too many slant font: `%s'"), new); ++ } ++ encoding_add_slant_font(encoding, new, src, raito); ++ } + else + error_at_line (1, 0, fname, firstline, + _("invalid option `%s'"), quotearg (token)); +@@ -754,6 +938,15 @@ encoding_char_exists (struct encoding * + } + + /* ++ * Return the flag of composite flag ++ */ ++int ++encoding_get_composite_flag (struct encoding * enc) ++{ ++ return enc->composite_flag; ++} ++ ++/* + * Prepare the environment (a dictionary) for the support + * of ENCODING, dump it into STREAM. + * +@@ -766,9 +959,11 @@ dump_encoding_setup (FILE * stream, + struct encoding * encoding) + { + size_t i, nb; ++ size_t ns; + const char * real_font_name; /* After subsitution */ + char ** font_names = (char **) encoding->font_names_used->content; + ++ + /* How many fonts are there? */ + da_qsort (encoding->font_names_used); + da_unique (encoding->font_names_used, (da_map_func_t) free); +@@ -787,15 +982,46 @@ dump_encoding_setup (FILE * stream, + * in the current ENCODING */ + nb = encoding->font_names_used->len; + ++ /* The number of slant fonts */ ++ for (i= 0, ns=0 ; encoding->slantfont[i].name ; i++ ) ++ ns++; ++ + /* Create the dictionary and fill it */ + fprintf (stream, "%% Dictionary for %s support\n", + encoding->name); +- fprintf (stream, "/%sdict %d dict begin\n", encoding->key, nb); ++ fprintf (stream, "/%sdict %d dict begin\n", encoding->key, ++ (encoding->composite_flag == true)? nb+nb+ns:nb+ns); + for (i = 0 ; i < nb ; i++) + fprintf (stream, " /f%s %sEncoding /%s reencode_font\n", + font_names [i], + encoding->name, + encoding_resolve_font_substitute (job, encoding, font_names [i])); ++ ++ /* Slant font setting */ ++ for (i = 0 ; encoding->slantfont[i].name ; i++ ) ++ fprintf (stream, " /%s /%s %f slantfont definefont pop\n", ++ encoding->slantfont[i].name, ++ encoding->slantfont[i].src, ++ encoding->slantfont[i].raito); ++ ++ /* ++ * Composite font setting. ++ * If kanji font size is larger than alphabet character, ++ * set base font size to kanji charactor size. ++ */ ++ if (encoding->composite_flag == true) { ++ for (i = 0 ; i < nb ; i++) ++ fprintf (stream, " /f%s /f%s /%s %f %f false compositefont " ++ "%f scalefont def\n", ++ font_names [i], ++ font_names [i], ++ encoding_resolve_composite_font (job, encoding, font_names [i]), ++ encoding->composite_raito[i], ++ (encoding->composite_raito[i] > 1.0)? ++ 0: (1-encoding->composite_raito[i])/2.0, ++ (encoding->composite_raito[i] > 1.0)? ++ 1.0/encoding->composite_raito[i]: 1.0 ); ++ } + fputs ("currentdict end def\n", stream); + } + +@@ -939,6 +1165,22 @@ encoding_build_faces_wx (a2ps_job * job, + true_font_name, + encoding->vector, + encoding->faces_wx [face]); ++ ++ if (encoding->composite_flag) ++ { ++ encoding->composite_raito[i] = ++ composite_font_info_get_raito(job, encoding, ++ job->face_eo_font [face]); ++ ++ encoding->composite_wx[i] = ++ composite_font_info_get_wx(job, encoding, ++ job->face_eo_font [face]); ++ ++ /* If kanji font size is larger than alphabet character, ++ fit kanji charactor size to base font size */ ++ if (encoding->composite_raito[i] < 1.0) ++ encoding->composite_wx[i] *= encoding->composite_raito[i]; ++ } + } + } + +@@ -1073,6 +1315,13 @@ char_WX (a2ps_job * job, uchar c) + return 0; /* For -Wall */ + } + ++unsigned int ++char_composite_WX (a2ps_job * job, uchar c) ++{ ++ return (job->encoding->composite_wx[job->status->face]/ ++ job->encoding->composite_raito[job->status->face]); ++} ++ + /* + * Returns the WX of a string (including M- and ^) + */ +diff -up a2ps-4.14/lib/encoding.h.euc a2ps-4.14/lib/encoding.h +--- a2ps-4.14/lib/encoding.h.euc 2007-12-29 02:58:17.000000000 +0100 ++++ a2ps-4.14/lib/encoding.h 2008-04-27 10:39:24.000000000 +0200 +@@ -43,6 +43,7 @@ struct a2ps_job; /* Declared in jobs.h w + */ + unsigned int char_WX PARAMS ((struct a2ps_job * job, uchar c)); + unsigned int string_WX PARAMS ((struct a2ps_job * job, uchar * string)); ++unsigned int char_composite_WX PARAMS ((struct a2ps_job * job, uchar c)); + + + /************************************************************************/ +@@ -56,6 +57,7 @@ void encoding_self_print PARAMS ((struct + FILE * stream)); + int encoding_char_exists PARAMS ((struct encoding * enc, + enum face_e face, uchar c)); ++int encoding_get_composite_flag (struct encoding * enc); + struct encoding * + get_encoding_by_alias PARAMS ((struct a2ps_job * job, + char *string)); +@@ -71,6 +73,12 @@ const char * encoding_resolve_font_subst + struct encoding * encoding, + const char * font_name)); + ++ ++const char * encoding_resolve_composite_font ++ PARAMS ((struct a2ps_job * job, ++ struct encoding * encoding, ++ const char * font_name)); ++ + /* + * Have a struct encoding determine the faces_wx + */ +diff -up a2ps-4.14/lib/pair_ht.c.euc a2ps-4.14/lib/pair_ht.c +--- a2ps-4.14/lib/pair_ht.c.euc 2007-12-29 02:58:21.000000000 +0100 ++++ a2ps-4.14/lib/pair_ht.c 2008-04-27 10:39:24.000000000 +0200 +@@ -49,6 +49,8 @@ struct pair + { + char * key; + char * value; ++ float raito; ++ int wx; + }; + + /* +@@ -165,6 +167,37 @@ pair_add (struct hash_table_s * table, + } + + /* ++ * Add a pair, with your own allocation for them. ++ * It KEY is yet used, override its value with VALUE ++ */ ++void ++pair_add2 (struct hash_table_s * table, ++ const char * key, const char * value, int wx, float raito) ++{ ++ struct pair * item, token; ++ ++ token.key = (char *) key; ++ item = (struct pair *) hash_find_item (table, &token); ++ ++ if (item) { ++ if (item->value) ++ free (item->value); ++ } else { ++ item = XMALLOC (struct pair, 1); ++ item->key = xstrdup(key); ++ item->wx = wx; ++ item->raito = raito; ++ } ++ ++ if (value) ++ item->value = xstrdup (value); ++ else ++ item->value = NULL; ++ ++ hash_insert (table, item); ++} ++ ++/* + * Remove a pair and free it. + * It KEY is yet used, override its value with VALUE + */ +@@ -201,6 +234,34 @@ pair_get (struct hash_table_s * table, c + return NULL; + } + ++int ++pair_get_wx (struct hash_table_s * table, const char * key) ++{ ++ struct pair * item, token; ++ ++ token.key = (char *) key; ++ item = (struct pair *) hash_find_item (table, &token); ++ ++ if (item) ++ return item->wx; ++ else ++ return -1; ++} ++ ++float ++pair_get_raito (struct hash_table_s * table, const char * key) ++{ ++ struct pair * item, token; ++ ++ token.key = (char *) key; ++ item = (struct pair *) hash_find_item (table, &token); ++ ++ if (item) ++ return item->raito; ++ else ++ return -1; ++} ++ + /* + * Return the content of the hash table, ordered + */ +diff -up a2ps-4.14/lib/pair_ht.h.euc a2ps-4.14/lib/pair_ht.h +--- a2ps-4.14/lib/pair_ht.h.euc 2007-12-29 02:58:21.000000000 +0100 ++++ a2ps-4.14/lib/pair_ht.h 2008-04-27 10:39:24.000000000 +0200 +@@ -56,6 +56,10 @@ void pair_table_free PARAMS ((struct pai + void pair_add PARAMS ((struct pair_htable * table, + const char * key, const char * value)); + ++void pair_add2 PARAMS ((struct pair_htable * table, ++ const char * key, const char * value, ++ int wx, float raito)); ++ + /* + * The key and value of the matching item will be free'd + * (No problem if KEY matches nothing) +@@ -68,6 +72,10 @@ void pair_delete PARAMS ((struct pair_ht + */ + char * pair_get PARAMS ((struct pair_htable * table, + const char * key)); ++int pair_get_wx PARAMS ((struct pair_htable * table, ++ const char * key)); ++float pair_get_raito PARAMS ((struct pair_htable * table, ++ const char * key)); + + void pair_table_list_short PARAMS ((struct pair_htable * table, + FILE * stream)); +diff -up a2ps-4.14/lib/psgen.c.euc a2ps-4.14/lib/psgen.c +--- a2ps-4.14/lib/psgen.c.euc 2007-12-29 02:58:22.000000000 +0100 ++++ a2ps-4.14/lib/psgen.c 2008-04-27 10:39:24.000000000 +0200 +@@ -875,6 +875,7 @@ ps_print_char (a2ps_job * job, int c, en + print: + default: + { ++ static mb_flag= 0; + uchar buf[256]; + int nchars; + *buf = '\0'; +@@ -889,6 +890,29 @@ ps_print_char (a2ps_job * job, int c, en + job->status->face_declared = false; + } + ++ if (c > 127 && encoding_get_composite_flag (job->encoding) && ++ job->status->face != Symbol) { ++ if (mb_flag) { ++ nchars = ps_escape_char (job, mb_flag, buf) + ++ ps_escape_char (job, c, buf); ++ job->status->wx += char_composite_WX(job, c); ++ job->status->column += nchars; ++ if (line_full) { ++ if (job->folding) { ++ fold_line (job, new_face); ++ job->status->column = nchars*2; ++ job->status->wx = char_composite_WX(job, c); ++ } else { ++ job->status->is_in_cut = true; ++ return; ++ } ++ } ++ mb_flag = 0; ++ } else { ++ mb_flag = c; ++ return; ++ } ++ } else { + nchars = ps_escape_char (job, c, buf); + job->status->wx += char_WX (job, c); + job->status->column += nchars; +@@ -902,8 +926,9 @@ ps_print_char (a2ps_job * job, int c, en + return; + } + } ++ } + output (jdiv, "%s", buf); +- job->status->chars++; ++ job->status->chars+=nchars; + } + break; + } +diff -up a2ps-4.14/ps/base.ps.euc a2ps-4.14/ps/base.ps +--- a2ps-4.14/ps/base.ps.euc 2007-12-29 02:58:26.000000000 +0100 ++++ a2ps-4.14/ps/base.ps 2008-04-27 10:39:24.000000000 +0200 +@@ -153,7 +153,11 @@ + % Return the y size of the current font + % - => fontsize + /currentfontsize { +- currentfont /FontMatrix get 3 get 1000 mul ++ currentfont /FontType get 0 eq { ++ currentfont /FontMatrix get 3 get ++ }{ ++ currentfont /FontMatrix get 3 get 1000 mul ++ } ifelse + } bind def + + % reencode the font +@@ -200,6 +204,144 @@ + end + } bind def + ++% composite fonts for ASCII-EUC mixed string ++% Version 1.2 1/31/1990 ++% Orignal Ken'ichi HANDA (handa@etl.go.jp) ++% Modified Norio Katayama (katayama@rd.nacsis.ac.jp),1998 ++% Extend & Fix Koji Nakamaru (maru@on.cs.keio.ac.jp), 1999 ++% Anyone can freely copy, modify, distribute this program. ++ ++/copyfont { % font-dic extra-entry-count copyfont font-dic ++ 1 index maxlength add dict begin ++ { 1 index /FID ne 2 index /UniqueID ne and ++ {def} {pop pop} ifelse ++ } forall ++ currentdict ++ end ++} bind def ++ ++/compositefont { % ASCIIFontName EUCFontName RomanScale RomanOffset Rot(T/F) compositefont font ++ /RomanRotation exch def ++ /RomanOffset exch def ++ /RomanScale exch def ++ userdict /fixeucfont_dict known not { ++ userdict begin ++ /fixeucfont_dict 2 dict begin ++ /UpperByteEncoding [ ++ 16#00 1 16#20 { pop 0 } for ++ 16#21 1 16#28 { 16#20 sub } for ++ 16#29 1 16#2F { pop 0 } for ++ 16#30 1 16#74 { 16#27 sub } for ++ 16#75 1 16#FF { pop 0 } for ++ ] def ++ /LowerByteEncoding [ ++ 16#00 1 16#A0 { pop /.notdef } for ++ 16#A1 1 16#FE { 16#80 sub 16 2 string cvrs ++ (cXX) dup 1 4 -1 roll ++ putinterval cvn } for ++ /.notdef ++ ] def ++ currentdict ++ end def ++ end ++ } if ++ findfont dup /FontType get 0 eq { ++ 14 dict begin ++ % ++ % 7+8 bit EUC font ++ % ++ 12 dict begin ++ /EUCFont exch def ++ /FontInfo (7+8 bit EUC font) readonly def ++ /PaintType 0 def ++ /FontType 0 def ++ /FontMatrix matrix def ++ % /FontName ++ /Encoding fixeucfont_dict /UpperByteEncoding get def ++ /FMapType 2 def ++ EUCFont /WMode known ++ { EUCFont /WMode get /WMode exch def } ++ { /WMode 0 def } ifelse ++ /FDepVector [ ++ EUCFont /FDepVector get 0 get ++ [ 16#21 1 16#28 {} for 16#30 1 16#74 {} for ] ++ { ++ 13 dict begin ++ /EUCFont EUCFont def ++ /UpperByte exch 16#80 add def ++ % /FontName ++ /FontInfo (EUC lower byte font) readonly def ++ /PaintType 0 def ++ /FontType 3 def ++ /FontMatrix matrix def ++ /FontBBox {0 0 0 0} def ++ /Encoding ++ fixeucfont_dict /LowerByteEncoding get def ++ % /UniqueID ++ % /WMode ++ /BuildChar { ++ gsave ++ exch dup /EUCFont get setfont ++ /UpperByte get ++ 2 string ++ dup 0 4 -1 roll put ++ dup 1 4 -1 roll put ++ dup stringwidth setcharwidth ++ 0 0 moveto show ++ grestore ++ } bind def ++ currentdict ++ end ++ /lowerbytefont exch definefont ++ } forall ++ ] def ++ currentdict ++ end ++ /eucfont exch definefont ++ exch ++ findfont 1 copyfont dup begin ++ RomanRotation { ++ /FontMatrix FontMatrix ++ [ 0 RomanScale neg RomanScale 0 RomanOffset neg 0 ] ++ matrix concatmatrix def ++ }{ ++ /FontMatrix FontMatrix ++ [ RomanScale 0 0 RomanScale 0 RomanOffset ] matrix concatmatrix ++ def ++ /CDevProc ++ {pop pop pop pop 0 exch -1000 exch 2 div 880} def ++ } ifelse ++ end ++ /asciifont exch definefont ++ exch ++ /FDepVector [ 4 2 roll ] def ++ /FontType 0 def ++ /WMode 0 def ++ /FMapType 4 def ++ /FontMatrix matrix def ++ /Encoding [0 1] def ++ /FontBBox {0 0 0 0} def ++% /FontHeight 1.0 def % XXXX ++ /FontHeight RomanScale 1.0 ge { RomanScale }{ 1.0 } ifelse def ++ /Descent -0.3 def % XXXX ++ currentdict ++ end ++ /tmpfont exch definefont ++ pop ++ /tmpfont findfont ++ }{ ++ pop findfont 0 copyfont ++ } ifelse ++} def ++ ++/slantfont { % FontName slant-degree slantfont font' ++ exch findfont 1 copyfont begin ++ [ 1 0 4 -1 roll 1 0 0 ] FontMatrix exch matrix concatmatrix ++ /FontMatrix exch def ++ currentdict ++ end ++} def ++ + % Function print line number ( # -) + /# { + gsave +diff -up /dev/null a2ps-4.14/README.eucJP +--- /dev/null 2008-04-27 11:55:27.307012118 +0200 ++++ a2ps-4.14/README.eucJP 2008-04-27 10:39:24.000000000 +0200 +@@ -0,0 +1,100 @@ ++a2ps euc-jp kanji supported patch: ++by SATO Satoru ++ ++These patches enables a2ps to support the files written in EUC-JP (and other ++Japanese encodings). I only arranged patches created by FURUKAWA Yasuyuki, ++KATAYAMA Yukio, and replaced libjcode by customized jcode.[ch] (by KITAME ++Takuo). ++ ++Notes from the orginal patch by FURUKAWA Yukihiro is follows. ++(sorry, it is written in japanese only): ++ ++a2ps 4.12で漢字を印刷するためのパッチ ++ 慶應大学大学院 ++ 古川 泰之 ++ ++composite font を使って漢字を表示するためのパッチです。 ++composite fontには、片山 紀夫さん(はじめて日本語ghostscriptを作成した ++人)のfixeucfont をベースにa2ps用に多少手をいれております。これを利用す ++ることで、2バイトEUC+ASCIIの文字列のPostscriptの扱いがぐっと簡単にな ++ります。 ++ ++●Compositeフォントの設定方法について ++最低限の設定はパッチに含まれていますので、とりあえず大丈夫だとは思いま ++す。一応メモしておきます。 ++ ++encodingファイル($prefix/share/a2ps/encoding/の下のファイル)には ++『Composite:』および、『DefaultComposite:』が新たに指定できます。たと ++えば、英語フォントに対応するEUCエンコーディングの日本語フォントを書い ++て行きます。また、この際、フォント幅と半角と漢字の比も指定しなくてはな ++りません。手抜きによって、漢字は固定幅フォントしか指定してはいけません。 ++ ++-------------------------------------------------- ++# 日本語フォント フォン横幅 半角と漢字の比 ++DefaultComposite: Ryumin-Light-EUC-H 1 1.1 ++# 英語フォント 日本語フォント フォン横幅 半角と漢字の比 ++Composite: Helvetica GothicBBB-Medium-EUC-H 1 1.1 ++-------------------------------------------------- ++ ++また、これだと斜体漢字がなく、さみしいので、SlantFontを使い、斜体の漢 ++字フォントも作成できます。 ++ ++-------------------------------------------------- ++# 新規斜体日本語フォント名 ソース日本語フォント 傾き度 ++SlantFont: Ryumin-Light-EUC-H-Italic Ryumin-Light-EUC-H 0.2 ++-------------------------------------------------- ++ ++SlantFontで生成した斜体フォントはCompositeフォント(第2引数)で利用でき ++ます。 ++ ++●このパッチの詳細データ ++ ・残念ながら2バイトEUCコードを前提としたコーディングをしています。 ++ そのため、あまり漢字以外の言語を考えておりません…。 ++ ・倉光 君郎氏のlibjcodeを使って内部で入力ファイルの漢字エンコーディ ++ ングをすべてEUCに変換して処理するようにしています。ただし、オリジ ++ ナルのlibjcodeは、SJISおよびEUCの判定が甘かったので多少カスタムし ++ ております。 ++ ・また、texのdelegate(contrib/texi2dvi4a2ps)中、TeXドライバにはpTeX ++ と決めうちしています。これがいやなら、例えばNTT-jTeXを使用したい場 ++ 合、環境変数TEXに『jtex』を、LATEXには『jlatex』を指定してください。 ++ ・compositefontをa2ps用に多少カスタマイズしていますが、フォントの高 ++ さなどの情報を完全に固定で決め打ちしている箇所があります(XXXでメモ ++ しています)。そのためあまり応用性が低いと思います。 ++ ++●半角を全角の1/2の大きさにしたい ++パッチデフォルトでは全角文字と半角文字の大きさのバランスは、見た感じが ++(個人的なセンスで)安定するようにチューニングしています。もし、テキスト ++で表を作成していて、そのため、半角文字を全角のちょうど半分にそろえたい ++という場合の対処方法を書いておきます。 ++ ++インストール後、$prefix/share/a2ps/encoding/euc-jp中に、 ++ ++-------------------------------------------------- ++DefaultComposite: Ryumin-Light-EUC-H 1.0 1.1 ++-------------------------------------------------- ++ ++というのがあると思います。最後の『1.1』を『0.8342』あたりに変更して下 ++さい。ノーマル固定文字に関してはこれで望みの結果が得られると思います。 ++ ++他の太字フォントなども、例えば ++ ++-------------------------------------------------- ++Composite: Courier-Bold GothicBBB-Medium-EUC-H 1.0 0.8342 ++-------------------------------------------------- ++ ++のように変更すればいいと思います。なお、Courierがつかないフォント ++(Helvetica等)はもともとプロポーショナルフォントなので、固定幅にはでき ++ません。 ++ ++ ++ ++●再配布について ++なんだかんだいって、このパッチは、 ++ ++倉光 君郎さんのlibjcode + 片山 紀夫さんのfixeucfont ++ ++を組み合わてできたもので私自身のコードは実はほとんどありません…。 ++ ++私自身のコードは再配付/改造に関してなんら制限を設けるつもりはありませ ++ん。ただし、私以外のコードの方が多いため、一応それだけは御了承お願い致 ++します。 +diff -up a2ps-4.14/src/buffer.c.euc a2ps-4.14/src/buffer.c +--- a2ps-4.14/src/buffer.c.euc 2007-12-29 02:58:34.000000000 +0100 ++++ a2ps-4.14/src/buffer.c 2008-04-27 10:39:24.000000000 +0200 +@@ -41,6 +41,21 @@ + #include "argmatch.h" + #include "buffer.h" + #include ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#ifdef ENABLE_KANJI ++# include ++# include ++# include ++# include ++# include ++# include ++extern use_jcode; ++#endif ++ + + /****************************************************************/ + /* Handling of the various eol styles */ +@@ -526,3 +541,278 @@ buffer_test (const char *filename) + buffer_release (&buffer); + } + #endif ++ ++/** ++ * from jcode.c by Takuo KITAME ++ */ ++#ifdef ENABLE_KANJI ++ ++enum { ++ JCODE_ASCII, ++ JCODE_EUC, ++ JCODE_JIS, ++ JCODE_SJIS, ++ EUCORSJIS }; ++ ++#define ESC 0x1b ++#define SS2 0x8e ++ ++#define JCODE_LOCALE_EUC "ja", "ja_JP", "ja_JP.ujis", "ja_JP.EUC", "ja_JP.eucJP" ++#define JCODE_LOCALE_JIS "ja_JP.JIS", "ja_JP.jis", "ja_JP.iso-2022-jp" ++#define JCODE_LOCALE_SJIS "ja_JP.SJIS", "ja_JP.sjis" ++ ++/****************************************************************************/ ++/* Japanese string code detector */ ++/****************************************************************************/ ++int ++detect_kanji(unsigned char *str) ++{ ++ int expected = JCODE_ASCII; ++ register int c; ++ int c1, c2; ++ int euc_c = 0, sjis_c = 0; ++ unsigned char *ptr = str; ++ ++ while((c = (int)*ptr)!= '\0') { ++ if(c == ESC) { ++ if((c = (int)*(++ptr)) == '\0') ++ break; ++ if(c == '$') { ++ if((c = (int)*(++ptr)) == '\0') ++ break; ++ if(c == 'B' || c == '@') ++ return JCODE_JIS; ++ } ++ ptr++; ++ continue; ++ } ++ if((c >= 0x81 && c <= 0x8d) || (c >= 0x8f && c <= 0x9f)) ++ return JCODE_SJIS; ++ ++ if(c == SS2) { ++ if((c = (int)*(++ptr)) == '\0') ++ break; ++ if((c >= 0x40 && c <= 0x7e) || ++ (c >= 0x80 && c <= 0xa0) || ++ (c >= 0xe0 && c <= 0xfc)) ++ return JCODE_SJIS; ++ if(c >= 0xa1 && c <= 0xdf) ++ break; ++ ++ ptr++; ++ continue; ++ } ++ if(c >= 0xa1 && c <= 0xdf) { ++ if((c = (int)*(++ptr)) == '\0') ++ break; ++ ++ if (c >= 0xe0 && c <= 0xfe) ++ return JCODE_EUC; ++ if (c >= 0xa1 && c <= 0xdf) { ++ expected = EUCORSJIS; ++ ptr++; ++ continue; ++ } ++#if 1 ++ if(c == 0xa0 || (0xe0 <= c && c <= 0xfe)) ++ return JCODE_EUC; ++ else { ++ expected = EUCORSJIS; ++ ptr++; ++ continue; ++ } ++#else ++ if(c <= 0x9f) ++ return JCODE_SJIS; ++ if(c >= 0xf0 && c <= 0xfe) ++ return JCODE_EUC; ++#endif ++ ++ if(c >= 0xe0 && c <= 0xef) { ++ expected = EUCORSJIS; ++ while(c >= 0x40) { ++ if(c >= 0x81) { ++ if(c <= 0x8d || (c >= 0x8f && c <= 0x9f)) ++ return JCODE_SJIS; ++ else if(c >= 0xfd && c <= 0xfe) { ++ return JCODE_EUC; ++ } ++ } ++ if((c = (int)*(++ptr)) == '\0') ++ break; ++ } ++ ptr++; ++ continue; ++ } ++ ++ if(c >= 0xe0 && c <= 0xef) { ++ if((c = (int)*(++ptr)) == '\0') ++ break; ++ if((c >= 0x40 && c <= 0x7e) || (c >= 0x80 && c <= 0xa0)) ++ return JCODE_SJIS; ++ if(c >= 0xfd && c <= 0xfe) ++ return JCODE_EUC; ++ if(c >= 0xa1 && c <= 0xfc) ++ expected = EUCORSJIS; ++ } ++ } ++#if 1 ++ if (0xf0 <= c && c <= 0xfe) ++ return JCODE_EUC; ++#endif ++ ptr++; ++ } ++ ++ ptr = str; ++ c2 = 0; ++ while((c1 = (int)*ptr++) != '\0') { ++ if(((c2 > 0x80 && c2 < 0xa0) || (c2 >= 0xe0 && c2 < 0xfd)) && ++ ((c1 >= 0x40 && c1 < 0x7f) || (c1 >= 0x80 && c1 < 0xfd))) ++ sjis_c++, c1 = *ptr++; ++ c2 = c1; ++ } ++ if(sjis_c == 0) ++ expected = JCODE_EUC; ++ else { ++ ptr = str, c2 = 0; ++ while((c1 = (int)*ptr++) != '\0') { ++ if((c2 > 0xa0 && c2 < 0xff) && ++ (c1 > 0xa0 && c1 < 0xff)) ++ euc_c++, c1 = *ptr++; ++ c2 = c1; ++ } ++ if(sjis_c > euc_c) ++ expected = JCODE_SJIS; ++ else ++ expected = JCODE_EUC; ++ } ++ return expected; ++} ++ ++int ++int_detect_JCode(char *str) ++{ ++ int detected; ++ ++ if(!str) ++ return 0; ++ ++ detected = detect_kanji((unsigned char *)str); ++ ++ if(detected == JCODE_ASCII) ++ return JCODE_ASCII; ++ ++ switch(detected) { ++ case JCODE_EUC: ++ return JCODE_EUC; ++ break; ++ case JCODE_JIS: ++ return JCODE_JIS; ++ break; ++ case JCODE_SJIS: ++ return JCODE_SJIS; ++ break; ++ default: ++ return JCODE_ASCII; ++ break; ++ } ++ ++ /* not reached */ ++ return 0; ++} ++ ++const char * ++detect_JCode(char *str) ++{ ++ int detected; ++ ++ if(!str) ++ return NULL; ++ ++ detected = detect_kanji((unsigned char *)str); ++ ++ if(detected == JCODE_ASCII) ++ return "ASCII"; ++ ++ switch(detected) { ++ case JCODE_EUC: ++ return "EUC-JP"; ++ break; ++ case JCODE_JIS: ++ return "ISO-2022-JP"; ++ break; ++ case JCODE_SJIS: ++ return "SJIS"; ++ break; ++ default: ++ return "ASCII"; ++ break; ++ } ++ ++ /* not reached */ ++ return 0; ++} ++ ++char * ++kanji_conv_auto(char *str, const char *dstset) ++{ ++ unsigned char *buf, *ret; ++ iconv_t cd; ++ size_t insize = 0; ++ size_t outsize = 0; ++ size_t nconv = 0; ++ char *inptr; ++ char *outptr; ++ char srcset[16]; ++ ++ if(!str) ++ return NULL; ++ ++ switch (int_detect_JCode(str)) { ++ case JCODE_EUC: ++ strcpy(srcset, "EUC-JP"); ++ break; ++ case JCODE_JIS: ++ strcpy(srcset, "ISO-2022-JP"); ++ break; ++ case JCODE_SJIS: ++ strcpy(srcset, "SJIS"); ++ break; ++ default: ++ return strdup(str); ++ break; ++ } ++ ++ buf = (unsigned char *)malloc(strlen(str)* 4 + 1); ++ if(!buf) ++ return NULL; ++ ++ insize = strlen(str); ++ inptr = str; ++ outsize = strlen(str) * 4 ; ++ outptr = buf; ++ ++ cd = iconv_open(dstset, srcset); ++ if(cd == (iconv_t) -1) { ++ if(errno == EINVAL) ++ return strdup(str); ++ } ++ ++ nconv = iconv(cd, (const char **)&inptr, &insize, &outptr, &outsize); ++ if(nconv == (size_t) -1) { ++ if (errno == EINVAL) ++ memmove (buf, inptr, insize); ++ } else ++ iconv(cd, NULL, NULL, &outptr, &outsize); ++ ++ *outptr = '\0'; ++ iconv_close(cd); ++ ++ ret = strdup(buf); ++ free(buf); ++ ++ return ret; ++} ++ ++#endif ++ +diff -up a2ps-4.14/src/buffer.h.euc a2ps-4.14/src/buffer.h +--- a2ps-4.14/src/buffer.h.euc 2007-12-29 02:58:35.000000000 +0100 ++++ a2ps-4.14/src/buffer.h 2008-04-27 10:39:24.000000000 +0200 +@@ -104,4 +104,15 @@ void buffer_sample_get PARAMS ((buffer_t + void buffer_save PARAMS ((buffer_t * buffer, const char * filename)); + + #define buffer_is_empty(Buf) (Buf->curr >= Buf->len) ++ ++ ++/** ++ * from jcode.h by Takuo KITAME ++ */ ++ ++char *kanji_conv_auto(char *str, const char *dstset); ++ ++const char *detect_JCode(char *str); ++int int_detect_JCode(char *str); ++ + #endif +diff -up a2ps-4.14/src/Makefile.am.euc a2ps-4.14/src/Makefile.am +--- a2ps-4.14/src/Makefile.am.euc 2007-12-29 02:36:09.000000000 +0100 ++++ a2ps-4.14/src/Makefile.am 2008-04-27 10:39:24.000000000 +0200 +@@ -33,13 +33,13 @@ DEFS = @DEFS@ -DLOCALEDIR=\"$(datadir)/l + a2ps_SOURCES = main.c \ + read.c sshread.c ssheet.c select.c generate.c \ + delegate.c regex.c buffer.c versions.c ffaces.c \ +-version-etc.c long-options.c \ ++version-etc.c long-options.c jcode.c \ + parsessh.y lexssh.l lexps.l sheets-map.l + + noinst_HEADERS = main.h \ + read.h sshread.h ssheet.h select.h generate.h \ + delegate.h regex.h buffer.h versions.h ffaces.h \ +-version-etc.h long-options.h \ ++version-etc.h long-options.h jcode.h \ + yy2ssh.h lexps.h + + BUILT_SOURCES = parsessh.c parsessh.h diff --git a/SOURCES/a2ps-4.13-euckr.patch b/SOURCES/a2ps-4.13-euckr.patch new file mode 100644 index 0000000..40df372 --- /dev/null +++ b/SOURCES/a2ps-4.13-euckr.patch @@ -0,0 +1,148 @@ +diff -up a2ps-4.14/encoding/encoding.map.euckr a2ps-4.14/encoding/encoding.map +--- a2ps-4.14/encoding/encoding.map.euckr 2008-04-27 01:46:59.000000000 +0200 ++++ a2ps-4.14/encoding/encoding.map 2008-04-27 01:46:59.000000000 +0200 +@@ -100,6 +100,12 @@ japanese euc-jp + ja euc-jp + jp euc-jp + ++euc-kr euc-kr ++euc-kr euc-kr ++korean euc-kr ++ko euc-kr ++kr euc-kr ++ + ######################################################################## + # Some architectures specific char sets + ######################################################################## +diff -up /dev/null a2ps-4.14/encoding/euc-kr.edf +--- /dev/null 2008-04-26 20:48:40.298012400 +0200 ++++ a2ps-4.14/encoding/euc-kr.edf 2008-04-27 01:46:59.000000000 +0200 +@@ -0,0 +1,104 @@ ++# Description of the EUC-KR encoding ++# Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana ++# Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana ++# Copyright (c) 2003 Red Hat Inc. ++# ++ ++# ++# This file is part of a2ps. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING. If not, write to ++# the Free Software Foundation, 59 Temple Place - Suite 330, ++# Boston, MA 02111-1307, USA. ++# ++ ++# ++# This file is derived from euc-jp.edf. ++# Just font is renamed. ++# The bug should go into our bugilla. http://bugzilla.redhat.com/ ++# ++ ++Name: EUC-KR ++ ++Documentation ++EUC-KR is Korean charset. ++EndDocumentation ++ ++# If there is an unknown font requested, use Courier ++Default: Courier ++ ++# Automatic spell checking :) ++Substitute: Times Times-Roman ++Substitute: Helvetica-Italic Helvetica-Oblique ++Substitute: Helvetica-BoldItalic Helvetica-BoldOblique ++ ++ ++# SlantFont for Korean font ++# new font source font value ++SlantFont: Baekmuk-Gulim--KSC-EUC-H-Italic Baekmuk-Gulim--KSC-EUC-H 0.2 ++SlantFont: Baekmuk-Dotum--KSC-EUC-H-Italic Baekmuk-Dotum--KSC-EUC-H 0.2 ++ ++# Compose font for Korean EUC code ++# target font additional font width size rate ++DefaultComposite: Baekmuk-Gulim--KSC-EUC-H 1.0 1.1 ++ ++# 1:2 fixed ++#DefaultComposite: Baekmuk-Gulim--KSC-EUC-H 1.0 0.8333 ++ ++# 1:1 fixed ++#DefaultComposite: Baekmuk-Gulim--KSC-EUC-H 1.0 1.6666 ++ ++Composite: Helvetica Baekmuk-Dotum--KSC-EUC-H 1.0 1.1 ++Composite: Helvetica-Oblique Baekmuk-Dotum--KSC-EUC-H-Italic 1.0 1.1 ++Composite: Helvetica-Bold Baekmuk-Dotum--KSC-EUC-H 1.0 1.1 ++Composite: Helvetica-BoldOblique Baekmuk-Dotum--KSC-EUC-H-Italic 1.0 1.1 ++ ++Composite: Courier-Oblique Baekmuk-Gulim--KSC-EUC-H-Italic 1.0 1.1 ++Composite: Courier-Bold Baekmuk-Dotum--KSC-EUC-H 1.0 1.1 ++Composite: Courier-BoldOblique Baekmuk-Dotum--KSC-EUC-H-Italic 1.0 1.1 ++Composite: Times-Bold Baekmuk-Dotum--KSC-EUC-H 1.0 1.1 ++ ++Vector: ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++space exclam quotedbl numbersign dollar percent ampersand quoteright ++parenleft parenright asterisk plus comma minus period slash ++zero one two three four five six seven ++eight nine colon semicolon less equal greater question ++at A B C D E F G ++H I J K L M N O ++P Q R S T U V W ++X Y Z bracketleft backslash bracketright asciicircum underscore ++quoteleft a b c d e f g ++h i j k l m n o ++p q r s t u v w ++x y z braceleft bar braceright asciitilde .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++space exclamdown cent sterling currency yen brokenbar section ++dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron ++degree plusminus twosuperior threesuperior acute mu paragraph bullet ++cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown ++Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla ++Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis ++Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply ++Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls ++agrave aacute acircumflex atilde adieresis aring ae ccedilla ++egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis ++eth ntilde ograve oacute ocircumflex otilde odieresis divide ++oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis +diff -up a2ps-4.14/encoding/Makefile.am.euckr a2ps-4.14/encoding/Makefile.am +--- a2ps-4.14/encoding/Makefile.am.euckr 2008-04-27 01:46:59.000000000 +0200 ++++ a2ps-4.14/encoding/Makefile.am 2008-04-27 01:47:58.000000000 +0200 +@@ -16,7 +16,7 @@ major_encodings = ascii.edf iso1.edf + minor_encodings = \ + ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ + iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ +-iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf ++iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf euc-kr.edf + + if EXTENSIONS + encodings_DATA = encoding.map $(major_encodings) $(minor_encodings) +diff -up a2ps-4.14/encoding/Makefile.in.euckr a2ps-4.14/encoding/Makefile.in +--- a2ps-4.14/encoding/Makefile.in.euckr 2008-04-27 01:46:59.000000000 +0200 ++++ a2ps-4.14/encoding/Makefile.in 2008-04-27 01:48:09.000000000 +0200 +@@ -270,7 +270,7 @@ major_encodings = ascii.edf iso1.edf + minor_encodings = \ + ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ + iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ +-iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf ++iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf euc-kr.edf + + @EXTENSIONS_FALSE@encodings_DATA = encoding.map $(major_encodings) + @EXTENSIONS_TRUE@encodings_DATA = encoding.map $(major_encodings) $(minor_encodings) diff --git a/SOURCES/a2ps-4.13-glibcpaper.patch b/SOURCES/a2ps-4.13-glibcpaper.patch new file mode 100644 index 0000000..23ab881 --- /dev/null +++ b/SOURCES/a2ps-4.13-glibcpaper.patch @@ -0,0 +1,86 @@ +--- a2ps-4.13/lib/jobs.c.glibcpaper Sat Jan 15 18:15:07 2000 ++++ a2ps-4.13/lib/jobs.c Tue Feb 20 18:44:48 2001 +@@ -138,6 +138,7 @@ + setlocale (LC_MESSAGES, ""); + #endif + setlocale (LC_CTYPE, ""); ++ setlocale (LC_PAPER, ""); + + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); +--- a2ps-4.13/lib/options.c.glibcpaper Tue Aug 31 13:42:41 1999 ++++ a2ps-4.13/lib/options.c Tue Feb 20 18:44:48 2001 +@@ -54,6 +54,8 @@ + #include "argv.h" + #include "quotearg.h" + #include "filalign.h" ++#include ++#include + + #define MAN_LINES 66 /* no lines for a man */ + extern char *program_name; +@@ -281,7 +283,8 @@ + struct opt_optarg *opt_optarg_head = NULL; + struct opt_optarg *opt_optarg = NULL; + int res; +- ++ unsigned int paper_height=0; ++ + /* Reset optind so that getopt is reinitialized. */ + optind = 0; + +@@ -545,7 +548,14 @@ + break; + + case 'M': /* select a medium */ +- xstrcpy (job->medium_request, optarg); ++ if(strcasecmp("_glibc",optarg)==0){ ++ paper_height = ((union { char *string; unsigned int word; })nl_langinfo(_NL_PAPER_HEIGHT)).word; ++ if(paper_height==279) /* US Letter */ ++ strcpy(optarg,"letter"); ++ else /* Everyone else */ ++ strcpy(optarg,"a4"); ++ } ++ xstrcpy (job->medium_request, optarg); + break; + + case 'n': /* n copies */ +--- a2ps-4.13/src/main.c.glibcpaper Wed Jan 26 19:29:15 2000 ++++ a2ps-4.13/src/main.c Tue Feb 20 18:45:18 2001 +@@ -945,6 +945,7 @@ + setlocale (LC_MESSAGES, ""); + #endif + setlocale (LC_CTYPE, ""); ++ setlocale (LC_PAPER, ""); + + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); +--- a2ps-4.13/doc/a2ps.texi.glibcpaper Wed Jan 23 12:36:30 2002 ++++ a2ps-4.13/doc/a2ps.texi Wed Jan 23 12:40:08 2002 +@@ -1363,6 +1363,12 @@ + ask the library @code{libpaper} for the medium to use. This choice is + valid only if @code{libpaper} was available when @pack{} was configured. + See the man page of @code{paperconf} for more information. ++ ++The special @var{medium} @samp{_glibc} (which, in this Red Hat Linux ++version of @samp{a2ps}, is the default) means that you want the medium ++to be determined by the locale category @samp{LC_PAPER}. Note that this ++information is obtained from environment variables which may not be set ++up in non-interactive environments (such as in a cron job). + @end defvr + + @defvr {Option} -r +--- a2ps-4.13/man/a2ps.1.glibcpaper Wed Jan 23 12:42:36 2002 ++++ a2ps-4.13/man/a2ps.1 Wed Jan 23 12:45:05 2002 +@@ -60,6 +60,11 @@ + .TP + \fB\-M\fR, \fB\-\-medium\fR=\fINAME\fR + use output medium NAME ++ ++The default behaviour is to use the locale category ++\fBLC_PAPER\fR to determine the medium to use. Note that this ++information is obtained from environment variables which may not be set ++up in non-interactive environments (such as in a cron job). + .TP + \fB\-r\fR, \fB\-\-landscape\fR + print in landscape mode diff --git a/SOURCES/a2ps-4.13-gnusource.patch b/SOURCES/a2ps-4.13-gnusource.patch new file mode 100644 index 0000000..5e75fbb --- /dev/null +++ b/SOURCES/a2ps-4.13-gnusource.patch @@ -0,0 +1,18 @@ +--- a2ps-4.13/src/main.c.gnusource 2003-10-17 17:07:05.000000000 +0100 ++++ a2ps-4.13/src/main.c 2003-10-17 17:07:17.000000000 +0100 +@@ -30,6 +30,7 @@ + /* I n c l u d e f i l e s */ + /* */ + /************************************************************************/ ++#define _GNU_SOURCE + #include + #include + #include +@@ -105,7 +106,6 @@ + defined twice, see lib/confg.gperf, handling of `Options:'. */ + + char *program_name; +-const char *program_invocation_name; + + /* Stores the data of liba2ps. */ + diff --git a/SOURCES/a2ps-4.13-hebrew.patch b/SOURCES/a2ps-4.13-hebrew.patch new file mode 100644 index 0000000..b8fbd6e --- /dev/null +++ b/SOURCES/a2ps-4.13-hebrew.patch @@ -0,0 +1,118 @@ +diff -up a2ps-4.14/encoding/encoding.map.hebrew a2ps-4.14/encoding/encoding.map +--- a2ps-4.14/encoding/encoding.map.hebrew 2008-04-27 01:50:14.000000000 +0200 ++++ a2ps-4.14/encoding/encoding.map 2008-04-27 01:50:14.000000000 +0200 +@@ -65,6 +65,9 @@ iso-8859-5 iso5 + iso7 iso7 + iso-8859-7 iso7 + ++iso8 iso8 ++iso-8859-8 iso8 ++ + # The following lines _are_not_an_error_. + # This is the right correspondance between ISO-8859 names + # and the Latin n nick name. +diff -up /dev/null a2ps-4.14/encoding/iso8.edf +--- /dev/null 2008-04-26 20:48:40.298012400 +0200 ++++ a2ps-4.14/encoding/iso8.edf 2008-04-27 01:50:14.000000000 +0200 +@@ -0,0 +1,77 @@ ++# Description of the ISO-8859-8 encoding ++# Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana ++# Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana ++# ++ ++# ++# This file is part of a2ps. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING. If not, write to ++# the Free Software Foundation, 59 Temple Place - Suite 330, ++# Boston, MA 02111-1307, USA. ++# ++ ++Name: ISO-8859-8 ++ ++# This text is reproduced by a courtesy of Roman Czyborra ++# http://czyborra.com/charsets/iso8859.html ++Documentation ++The Hebrew (8bit) encoding ++EndDocumentation ++ ++# This file has been specifically adapted for use with Hebrew Culmus fonts ++ ++# If there is an unknown font requested, use Courier ++Default: MiriamMonoCLM-Book ++ ++# Automatic spell checking :) ++Substitute: Times DavidCLM-Medium ++Substitute: Helvetica NachlieliCLM-Light ++Substitute: Helvetica-Bold NachlieliCLM-Bold ++Substitute: Courier MiriamMonoCLM-Book ++Substitute: Courier-Bold MiriamMonoCLM-Bold ++ ++Vector: ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++space exclam quotedbl numbersign dollar percent ampersand quotesingle ++parenleft parenright asterisk plus comma hyphen period slash ++zero one two three four five six seven ++eight nine colon semicolon less equal greater question ++at A B C D E F G ++H I J K L M N O ++P Q R S T U V W ++X Y Z bracketleft backslash bracketright asciicircum underscore ++grave a b c d e f g ++h i j k l m n o ++p q r s t u v w ++x y z braceleft bar braceright asciitilde .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++space exclamdown cent sterling currency yen brokenbar section ++dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron ++degree plusminus twosuperior threesuperior acute mu paragraph bullet ++cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ++notdef .notdef .notdef .notdef .notdef .notdef .notdef underscoredbl ++afii57664 afii57665 afii57666 afii57667 afii57668 afii57669 afii57670 afii57671 ++afii57672 afii57673 afii57674 afii57675 afii57676 afii57677 afii57678 afii57679 ++afii57680 afii57681 afii57682 afii57683 afii57684 afii57685 afii57686 afii57687 ++afii57688 afii57689 afii57690 .notdef .notdef .notdef .notdef .notdef +diff -up a2ps-4.14/encoding/Makefile.am.hebrew a2ps-4.14/encoding/Makefile.am +--- a2ps-4.14/encoding/Makefile.am.hebrew 2008-04-27 01:51:14.000000000 +0200 ++++ a2ps-4.14/encoding/Makefile.am 2008-04-27 01:52:11.000000000 +0200 +@@ -15,7 +15,7 @@ encodingsdir = $(pkgdatadir)/encoding + major_encodings = ascii.edf iso1.edf + minor_encodings = \ + ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ +-iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ ++iso3.edf iso4.edf iso5.edf iso7.edf iso8.edf iso9.edf iso10.edf iso13.edf \ + iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf euc-kr.edf + + if EXTENSIONS +diff -up a2ps-4.14/encoding/Makefile.in.hebrew a2ps-4.14/encoding/Makefile.in +--- a2ps-4.14/encoding/Makefile.in.hebrew 2008-04-27 01:50:14.000000000 +0200 ++++ a2ps-4.14/encoding/Makefile.in 2008-04-27 01:52:01.000000000 +0200 +@@ -269,7 +269,7 @@ encodingsdir = $(pkgdatadir)/encoding + major_encodings = ascii.edf iso1.edf + minor_encodings = \ + ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ +-iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ ++iso3.edf iso4.edf iso5.edf iso7.edf iso8.edf iso9.edf iso10.edf iso13.edf \ + iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf euc-kr.edf + + @EXTENSIONS_FALSE@encodings_DATA = encoding.map $(major_encodings) diff --git a/SOURCES/a2ps-4.13-security.patch b/SOURCES/a2ps-4.13-security.patch new file mode 100644 index 0000000..cff6225 --- /dev/null +++ b/SOURCES/a2ps-4.13-security.patch @@ -0,0 +1,65 @@ +--- a2ps-4.13/lib/routines.c.security Sat Oct 16 05:46:37 1999 ++++ a2ps-4.13/lib/routines.c Mon Feb 12 17:45:15 2001 +@@ -242,3 +242,50 @@ + /* Don't complain if you can't unlink. Who cares of a tmp file? */ + unlink (filename); + } ++ ++/* ++ * Securely generate a temp file, and make sure it gets ++ * deleted upon exit. ++ */ ++static char ** tempfiles; ++static unsigned ntempfiles; ++ ++static void ++cleanup_tempfiles() ++{ ++ while (ntempfiles--) ++ unlink(tempfiles[ntempfiles]); ++} ++ ++char * ++safe_tempnam(const char *pfx) ++{ ++ char *dirname, *filename; ++ int fd; ++ ++ if (!(dirname = getenv("TMPDIR"))) ++ dirname = "/tmp"; ++ ++ tempfiles = (char **) realloc(tempfiles, ++ (ntempfiles+1) * sizeof(char *)); ++ if (tempfiles == NULL) ++ return NULL; ++ ++ filename = malloc(strlen(dirname) + strlen(pfx) + sizeof("/XXXXXX")); ++ if (!filename) ++ return NULL; ++ ++ sprintf(filename, "%s/%sXXXXXX", dirname, pfx); ++ ++ if ((fd = mkstemp(filename)) < 0) { ++ free(filename); ++ return NULL; ++ } ++ close(fd); ++ ++ if (ntempfiles == 0) ++ atexit(cleanup_tempfiles); ++ tempfiles[ntempfiles++] = filename; ++ ++ return filename; ++} +--- a2ps-4.13/lib/routines.h.security Mon Oct 18 21:24:41 1999 ++++ a2ps-4.13/lib/routines.h Mon Feb 12 17:39:30 2001 +@@ -255,7 +255,8 @@ + /* If _STR_ is not defined, give it a tempname in _TMPDIR_ */ + #define tempname_ensure(Str) \ + do { \ +- (Str) = (Str) ? (Str) : tempnam (NULL, "a2_"); \ ++ (Str) = (Str) ? (Str) : safe_tempnam("a2_"); \ + } while (0) ++char * safe_tempnam(const char *); + + #endif diff --git a/SOURCES/a2ps-4.13b-attr.patch b/SOURCES/a2ps-4.13b-attr.patch new file mode 100644 index 0000000..c157604 --- /dev/null +++ b/SOURCES/a2ps-4.13b-attr.patch @@ -0,0 +1,92 @@ +--- a2ps-4.13/lib/fonts.c.attr Wed Jan 9 14:41:27 2002 ++++ a2ps-4.13/lib/fonts.c Wed Jan 9 14:42:01 2002 +@@ -2173,7 +2173,7 @@ + * in the encoding specific dictionary + */ + int +-font_is_to_reencode (PARAM_UNUSED struct a2ps_job * job, const char * key) ++font_is_to_reencode (struct a2ps_job * job PARAM_UNUSED, const char * key) + { + return !strequ (key, "Symbol"); + } +--- a2ps-4.13/lib/lister.c.attr Wed Jan 9 14:41:30 2002 ++++ a2ps-4.13/lib/lister.c Wed Jan 9 14:42:28 2002 +@@ -333,7 +333,7 @@ + } + + void +-lister_fprint_vertical (struct lister * lister, PARAM_UNUSED FILE *unused, ++lister_fprint_vertical (struct lister * lister, FILE *unused PARAM_UNUSED, + void **items, size_t item_number, + lister_width_t item_width_fn, + lister_print_t item_print_fn) +@@ -483,7 +483,7 @@ + /* FIXME: document */ + + void +-lister_fprint_horizontal (struct lister * lister, PARAM_UNUSED FILE *unused, ++lister_fprint_horizontal (struct lister * lister, FILE *unused PARAM_UNUSED, + void **items, size_t item_number, + lister_width_t item_width_fn, + lister_print_t item_print_fn) +@@ -577,7 +577,7 @@ + */ + + void +-lister_fprint_separated (struct lister * lister,PARAM_UNUSED FILE *unused, ++lister_fprint_separated (struct lister * lister,FILE *unused PARAM_UNUSED, + void **items, size_t item_number, + lister_width_t item_width_fn, + lister_print_t item_print_fn) +--- a2ps-4.13/lib/media.c.attr Wed Jan 9 14:41:33 2002 ++++ a2ps-4.13/lib/media.c Wed Jan 9 14:42:35 2002 +@@ -190,7 +190,7 @@ + + /* Is libpaper used? */ + bool +-a2ps_medium_libpaper_p (PARAM_UNUSED a2ps_job * job, const char * name) ++a2ps_medium_libpaper_p (a2ps_job * job PARAM_UNUSED, const char * name) + { + return strequ (name, LIBPAPER_MEDIUM) ? true : false; + } +--- a2ps-4.13/lib/pathwalk.c.attr Wed Jan 9 14:41:38 2002 ++++ a2ps-4.13/lib/pathwalk.c Wed Jan 9 14:42:47 2002 +@@ -425,14 +425,14 @@ + /* Helping functions for pw_glob. */ + + static bool +-pw_filter_fnmatch (PARAM_UNUSED const char * dir, const char *file, ++pw_filter_fnmatch (const char * dir PARAM_UNUSED, const char *file, + const char *pattern) + { + return !fnmatch (pattern, file, 0); + } + + static void +-pw_filter_da_append (PARAM_UNUSED const char * dir, const char *file, ++pw_filter_da_append (const char * dir PARAM_UNUSED, const char *file, + struct darray *da) + { + da_append (da, xstrdup (file)); +--- a2ps-4.13/lib/routines.c.attr Wed Jan 9 14:41:42 2002 ++++ a2ps-4.13/lib/routines.c Wed Jan 9 14:42:54 2002 +@@ -235,7 +235,7 @@ + * Unlink the file FILENAME. + */ + void +-unlink2 (PARAM_UNUSED void * dummy, const char * filename) ++unlink2 (void * dummy PARAM_UNUSED, const char * filename) + { + message (msg_tool | msg_file, (stderr, "Unlinking file `%s'\n", filename)); + +--- a2ps-4.13/lib/fonts.l.attr Wed Jan 9 14:58:38 2002 ++++ a2ps-4.13/lib/fonts.l Wed Jan 9 14:58:52 2002 +@@ -585,7 +585,7 @@ + * in the encoding specific dictionary + */ + int +-font_is_to_reencode (PARAM_UNUSED struct a2ps_job * job, const char * key) ++font_is_to_reencode (struct a2ps_job * job PARAM_UNUSED, const char * key) + { + return !strequ (key, "Symbol"); + } diff --git a/SOURCES/a2ps-4.13b-encoding.patch b/SOURCES/a2ps-4.13b-encoding.patch new file mode 100644 index 0000000..d4337b6 --- /dev/null +++ b/SOURCES/a2ps-4.13b-encoding.patch @@ -0,0 +1,50 @@ +--- a2ps-4.13/etc/a2ps-site.cfg.in.encoding 2000-01-15 23:39:36.000000000 +0000 ++++ a2ps-4.13/etc/a2ps-site.cfg.in 2002-08-05 10:22:20.000000000 +0100 +@@ -11,7 +11,7 @@ + ################################################################# + + # Default encoding +-Options: --encoding=@ENCODING@ ++#Options: --encoding=@ENCODING@ + + # Default medium + Options: --medium=@MEDIUM@ +--- a2ps-4.13/src/main.c.encoding 2002-08-05 10:22:20.000000000 +0100 ++++ a2ps-4.13/src/main.c 2002-08-05 10:22:20.000000000 +0100 +@@ -32,6 +32,7 @@ + /************************************************************************/ + #include + #include ++#include + #include + + #include "a2ps.h" +@@ -1021,9 +1022,8 @@ + sheets_map = sheets_map_new (); + style_sheets = new_style_sheets (); + +- /* Process special case: Japanese Document */ +- if (! strncmp (locale, "ja", 2) ) +- job->requested_encoding_name = xstrdup ("euc-jp"); ++ /* Use locale to set default encoding. */ ++ job->requested_encoding_name = xstrdup (nl_langinfo (CODESET)); + + /* Process the command line options. */ + argn = a2ps_handle_options (job, argc, argv); +--- a2ps-4.13/encoding/encoding.map.encoding 2002-08-05 10:22:20.000000000 +0100 ++++ a2ps-4.13/encoding/encoding.map 2002-08-05 10:38:55.000000000 +0100 +@@ -45,6 +45,7 @@ + latin1 iso1 + iso1 iso1 + iso-8859-1 iso1 ++ansi_x3.4-1968 iso1 + + latin2 iso2 + iso2 iso2 +@@ -128,3 +129,6 @@ + # Apple' Macintosh + mac mac + macintosh mac ++ ++# We don't handle UTF-8 at all yet. Sometimes latin1 will work... ++utf-8 iso1 diff --git a/SOURCES/a2ps-4.13b-numeric.patch b/SOURCES/a2ps-4.13b-numeric.patch new file mode 100644 index 0000000..b7d0990 --- /dev/null +++ b/SOURCES/a2ps-4.13b-numeric.patch @@ -0,0 +1,10 @@ +--- a2ps-4.13/src/main.c.numeric Wed Jan 9 14:59:46 2002 ++++ a2ps-4.13/src/main.c Wed Jan 9 15:03:52 2002 +@@ -951,6 +951,7 @@ + setlocale (LC_PAPER, ""); + + locale = setlocale (LC_ALL, ""); ++ setlocale (LC_NUMERIC, "C"); + /* fprintf(stderr, "locale : %s\n", locale); */ + + bindtextdomain (PACKAGE, LOCALEDIR); diff --git a/SOURCES/a2ps-4.13b-tilde.patch b/SOURCES/a2ps-4.13b-tilde.patch new file mode 100644 index 0000000..2a5d37b --- /dev/null +++ b/SOURCES/a2ps-4.13b-tilde.patch @@ -0,0 +1,11 @@ +--- a2ps-4.13/encoding/koi8.edf.tilde 2002-06-21 12:59:41.000000000 +0100 ++++ a2ps-4.13/encoding/koi8.edf 2002-06-21 13:00:02.000000000 +0100 +@@ -60,7 +60,7 @@ + greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y + Z bracketleft backslash bracketright asciicircum underscore quoteleft + a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar +-braceright tilde .notdef .notdef .notdef .notdef .notdef guillmotleft ++braceright asciitilde .notdef .notdef .notdef .notdef .notdef guillmotleft + guillmotright afii61352 .notdef .notdef .notdef .notdef .notdef + .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef + .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef diff --git a/SOURCES/a2ps-4.14-texinfo-nodes.patch b/SOURCES/a2ps-4.14-texinfo-nodes.patch new file mode 100644 index 0000000..47c2001 --- /dev/null +++ b/SOURCES/a2ps-4.14-texinfo-nodes.patch @@ -0,0 +1,128 @@ +diff -up a2ps-4.14/doc/regex.texi_old a2ps-4.14/doc/regex.texi +--- a2ps-4.14/doc/regex.texi_old 2002-03-04 19:46:24.000000000 +0100 ++++ a2ps-4.14/doc/regex.texi 2008-05-16 11:34:42.000000000 +0200 +@@ -121,7 +121,7 @@ Regular Expression Syntax + + * Syntax Bits:: + * Predefined Syntaxes:: +-* Collating Elements vs. Characters:: ++* Collating Elements vs Characters:: + * The Backslash Character:: + + Common Operators +@@ -305,7 +305,7 @@ In the following sections, we describe t + @menu + * Syntax Bits:: + * Predefined Syntaxes:: +-* Collating Elements vs. Characters:: ++* Collating Elements vs Characters:: + * The Backslash Character:: + @end menu + +@@ -470,7 +470,7 @@ operator (based on how @code{RE_NO_BK_PA + @end table + + +-@node Predefined Syntaxes, Collating Elements vs. Characters, Syntax Bits, Regular Expression Syntax ++@node Predefined Syntaxes, Collating Elements vs Characters, Syntax Bits, Regular Expression Syntax + @section Predefined Syntaxes + + If you're programming with Regex, you can set a pattern buffer's +@@ -552,8 +552,8 @@ The predefined syntaxes--taken directly + | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) + @end example + +-@node Collating Elements vs. Characters, The Backslash Character, Predefined Syntaxes, Regular Expression Syntax +-@section Collating Elements vs.@: Characters ++@node Collating Elements vs Characters, The Backslash Character, Predefined Syntaxes, Regular Expression Syntax ++@section Collating Elements vs@: Characters + + @sc{posix} generalizes the notion of a character to that of a + collating element. It defines a @dfn{collating element} to be ``a +@@ -577,7 +577,7 @@ collating element. For example, the Spa + Since @sc{posix}'s ``collating element'' preserves the essential idea of + a ``character,'' we use the latter, more familiar, term in this document. + +-@node The Backslash Character, , Collating Elements vs. Characters, Regular Expression Syntax ++@node The Backslash Character, , Collating Elements vs Characters, Regular Expression Syntax + @section The Backslash Character + + @cindex @samp{\} +diff -up a2ps-4.14/doc/a2ps.texi_old a2ps-4.14/doc/a2ps.texi +--- a2ps-4.14/doc/a2ps.texi_old 2008-05-16 11:34:21.000000000 +0200 ++++ a2ps-4.14/doc/a2ps.texi 2008-05-16 11:42:11.000000000 +0200 +@@ -371,11 +371,11 @@ Contributions + + Frequently asked questions + +-* Why Does ...?:: Questions on Error +-* How Can I ...?:: a2ps' How-To +-* Please tell me...:: Existential Questions on a2ps ++* Why Does?:: Questions on Error ++* How Can I?:: a2ps' How-To ++* Please tell me:: Existential Questions on a2ps + +-Why Does...? ++Why Does? + + * It Prints Nothing:: The printer issues nothing + * It Prints in Simplex:: While I asked for Duplex +@@ -385,7 +385,7 @@ Why Does...? + * It Says my File is Binary:: And refuses to print it + * It Refuses to Change the Font Size:: + +-How Can I ...? ++How Can I? + + * Leave Room for Binding:: Specifying Margins + * Print stdin:: Using a2ps in a pipe chain +@@ -395,7 +395,7 @@ How Can I ...? + * Non PostScript Printers:: Using GhostScript + * Man Pages with Underlines:: Now it Prints With Italics + +-Please tell me... ++Please tell me + + * Is a2ps Y2K compliant?:: Printing dates in short format + * The Options Have Changed:: Respect The Users +@@ -6198,13 +6198,13 @@ question about the options, etc. It has + suggestions, not to contact the authors. + + @menu +-* Why Does ...?:: Questions on Error +-* How Can I ...?:: a2ps' How-To +-* Please tell me...:: Existential Questions on a2ps ++* Why Does?:: Questions on Error ++* How Can I?:: a2ps' How-To ++* Please tell me:: Existential Questions on a2ps + @end menu + +-@node Why Does ...? +-@section Why Does...? ++@node Why Does? ++@section Why Does? + + Error related questions. + +@@ -6426,8 +6426,8 @@ Note that the `pure' options (no side-ef + virtual pages are @samp{--columns} and @samp{--rows}. + + @c -----------------------------How can I ? ------------------------------ +-@node How Can I ...? +-@section How Can I ...? ++@node How Can I? ++@section How Can I? + + A mini how-to on @pack{}. + +@@ -6561,8 +6561,8 @@ Use @samp{a2ps --pro=ul}. + + + @c -------------------------- Please Tell me ? ------------------------------ +-@node Please tell me... +-@section Please tell me... ++@node Please tell me ++@section Please tell me + + Wondering something? + diff --git a/SOURCES/a2ps-CVE-2014-0466.patch b/SOURCES/a2ps-CVE-2014-0466.patch new file mode 100644 index 0000000..b857019 --- /dev/null +++ b/SOURCES/a2ps-CVE-2014-0466.patch @@ -0,0 +1,24 @@ +diff -up a2ps-4.14/contrib/fixps.in.CVE-2014-0466 a2ps-4.14/contrib/fixps.in +--- a2ps-4.14/contrib/fixps.in.CVE-2014-0466 2014-04-01 15:35:04.168904356 +0100 ++++ a2ps-4.14/contrib/fixps.in 2014-04-01 15:35:36.509060292 +0100 +@@ -389,7 +389,7 @@ if test $task != check; then + eval "$command" ;; + gs) + $verbose "$program: making a full rewrite of the file ($gs)." >&2 +- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; ++ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; + esac + ) + fi +diff -up a2ps-4.14/contrib/fixps.m4.CVE-2014-0466 a2ps-4.14/contrib/fixps.m4 +--- a2ps-4.14/contrib/fixps.m4.CVE-2014-0466 2014-04-01 15:35:06.885917452 +0100 ++++ a2ps-4.14/contrib/fixps.m4 2014-04-01 15:35:48.748119336 +0100 +@@ -307,7 +307,7 @@ if test $task != check; then + eval "$command" ;; + gs) + $verbose "$program: making a full rewrite of the file ($gs)." >&2 +- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; ++ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; + esac + ) + fi diff --git a/SOURCES/a2ps-U.patch b/SOURCES/a2ps-U.patch new file mode 100644 index 0000000..48c5a90 --- /dev/null +++ b/SOURCES/a2ps-U.patch @@ -0,0 +1,22 @@ +--- a2ps-4.13/contrib/pdiff.in.U 2005-05-05 12:46:05.000000000 +0100 ++++ a2ps-4.13/contrib/pdiff.in 2005-05-05 12:47:34.000000000 +0100 +@@ -182,7 +182,7 @@ + # We need the total number of lines + lines=`wc -l $file1 $file2 | sed -n 3p` + lines=`set -- $lines && echo $1` +- $diff_prog $diff_options -$lines $file1 $file2 \ ++ $diff_prog $diff_options -U$lines $file1 $file2 \ + | $a2ps -gEudiff $a2ps_options || exit 1 + ;; + esac +--- a2ps-4.13/contrib/pdiff.m4.U 2005-05-05 12:47:54.000000000 +0100 ++++ a2ps-4.13/contrib/pdiff.m4 2005-05-05 12:53:10.000000000 +0100 +@@ -100,7 +100,7 @@ + # We need the total number of lines + lines=`wc -l $file1 $file2 | sed -n 3p` + lines=`set -- $lines && echo $1` +- $diff_prog $diff_options -$lines $file1 $file2 \ ++ $diff_prog $diff_options -U$lines $file1 $file2 \ + | $a2ps -gEudiff $a2ps_options || exit 1 + ;; + esac diff --git a/SOURCES/a2ps-aarch64.patch b/SOURCES/a2ps-aarch64.patch new file mode 100644 index 0000000..a55bf9f --- /dev/null +++ b/SOURCES/a2ps-aarch64.patch @@ -0,0 +1,1629 @@ +diff -up a2ps-4.14/auxdir/config.guess.aarch64 a2ps-4.14/auxdir/config.guess +--- a2ps-4.14/auxdir/config.guess.aarch64 2007-12-29 03:28:06.000000000 +0000 ++++ a2ps-4.14/auxdir/config.guess 2013-04-29 13:13:51.035686658 +0100 +@@ -1,10 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +-# Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2007-07-22' ++timestamp='2012-09-25' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -17,9 +17,7 @@ timestamp='2007-07-22' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -27,16 +25,16 @@ timestamp='2007-07-22' + # the same distribution terms that you use for the rest of that program. + + +-# Originally written by Per Bothner . +-# Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# Originally written by Per Bothner. Please send patches (context ++# diff format) to and include a ChangeLog ++# entry. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # +-# The plan is that this can be called by configure scripts if you +-# don't specify an explicit build system type. ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -56,7 +54,8 @@ version="\ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 + Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO +@@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` | + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -170,7 +169,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ +- | grep __ELF__ >/dev/null ++ | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? +@@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + fi + ;; + *) +- os=netbsd ++ os=netbsd + ;; + esac + # The OS release +@@ -201,6 +200,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -223,7 +226,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -269,7 +272,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -295,12 +301,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 ++ echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -324,14 +330,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) +- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ eval $set_cc_for_build ++ SUN_ARCH="i386" ++ # If there is a compiler, see if it is configured for 64-bit objects. ++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. ++ # This test works for both compilers. ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ SUN_ARCH="x86_64" ++ fi ++ fi ++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize +@@ -375,23 +400,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; +@@ -461,8 +486,8 @@ EOF + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -475,7 +500,7 @@ EOF + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -532,7 +557,7 @@ EOF + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[45]) ++ *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -575,52 +600,52 @@ EOF + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c + +- #define _HPUX_SOURCE +- #include +- #include +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ #define _HPUX_SOURCE ++ #include ++ #include ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -640,7 +665,7 @@ EOF + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | +- grep __LP64__ >/dev/null ++ grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else +@@ -711,22 +736,22 @@ EOF + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; +@@ -750,14 +775,14 @@ EOF + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +@@ -769,40 +794,51 @@ EOF + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) +- # uname -m includes "-pc" on this system. +- echo ${UNAME_MACHINE}-mingw32 ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; +- *:Interix*:[3456]*) +- case ${UNAME_MACHINE} in ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; +- EM64T | authenticamd) ++ authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we +@@ -832,20 +868,68 @@ EOF + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; +- arm*:Linux:*:*) ++ aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; ++ arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ else ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ++ fi ++ fi ++ exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) ++ LIBC=gnu ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -856,74 +940,33 @@ EOF + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- mips:Linux:*:*) ++ mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU +- #undef mips +- #undef mipsel ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mipsel ++ CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips ++ CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif + EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } +- ;; +- mips64:Linux:*:*) +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #undef CPU +- #undef mips64 +- #undef mips64el +- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mips64el +- #else +- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips64 +- #else +- CPU= +- #endif +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu +- exit ;; +- ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu ++ padre:Linux:*:*) ++ echo sparc-unknown-linux-gnu + exit ;; +- alpha:Linux:*:*) +- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=alphaev5 ;; +- EV56) UNAME_MACHINE=alphaev56 ;; +- PCA56) UNAME_MACHINE=alphapca56 ;; +- PCA57) UNAME_MACHINE=alphapca56 ;; +- EV6) UNAME_MACHINE=alphaev6 ;; +- EV67) UNAME_MACHINE=alphaev67 ;; +- EV68*) UNAME_MACHINE=alphaev68 ;; +- esac +- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level +@@ -933,14 +976,17 @@ EOF + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -948,78 +994,18 @@ EOF + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- xtensa:Linux:*:*) +- echo xtensa-unknown-linux-gnu ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; +- i*86:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. cd to the root directory to prevent +- # problems with other programs or directories called `ld' in the path. +- # Set LC_ALL=C to ensure ld outputs messages in English. +- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ +- | sed -ne '/supported targets:/!d +- s/[ ][ ]*/ /g +- s/.*supported targets: *// +- s/ .*// +- p'` +- case "$ld_supported_targets" in +- elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" +- ;; +- a.out-i386-linux) +- echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit ;; +- coff-i386) +- echo "${UNAME_MACHINE}-pc-linux-gnucoff" +- exit ;; +- "") +- # Either a pre-BFD a.out linker (linux-gnuoldld) or +- # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" +- exit ;; +- esac +- # Determine whether the default compiler is a.out or elf +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include +- #ifdef __ELF__ +- # ifdef __GLIBC__ +- # if __GLIBC__ >= 2 +- LIBC=gnu +- # else +- LIBC=gnulibc1 +- # endif +- # else +- LIBC=gnulibc1 +- # endif +- #else +- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +- LIBC=gnu +- #else +- LIBC=gnuaout +- #endif +- #endif +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^LIBC/{ +- s: ::g +- p +- }'`" +- test x"${LIBC}" != x && { +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +- exit +- } +- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } +- ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both +@@ -1027,11 +1013,11 @@ EOF + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) +@@ -1048,7 +1034,7 @@ EOF + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; +- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) +@@ -1063,7 +1049,7 @@ EOF + fi + exit ;; + i*86:*:5:[678]*) +- # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; +@@ -1091,10 +1077,13 @@ EOF + exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i386. +- echo i386-pc-msdosdjgpp +- exit ;; ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; +@@ -1129,8 +1118,18 @@ EOF + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL='.3' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; +@@ -1143,7 +1142,7 @@ EOF + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; +- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) +@@ -1163,10 +1162,10 @@ EOF + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says +- echo i586-unisys-sysv4 +- exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm +@@ -1192,11 +1191,11 @@ EOF + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; +@@ -1206,6 +1205,12 @@ EOF + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; ++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. ++ echo i586-pc-haiku ++ exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1233,6 +1238,16 @@ EOF + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in ++ i386) ++ eval $set_cc_for_build ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ UNAME_PROCESSOR="x86_64" ++ fi ++ fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} +@@ -1248,7 +1263,10 @@ EOF + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1293,13 +1311,13 @@ EOF + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} ++ echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) +- UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; +@@ -1314,11 +1332,14 @@ EOF + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c < + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + +@@ -1474,9 +1495,9 @@ This script, last modified $timestamp, h + the operating system you are using. It is advised that you + download the most up to date version of the config scripts from + +- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + and +- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + + If the version you run ($0) is already up to date, please + send the following data and any information you think might be +diff -up a2ps-4.14/auxdir/config.sub.aarch64 a2ps-4.14/auxdir/config.sub +--- a2ps-4.14/auxdir/config.sub.aarch64 2007-12-29 03:28:06.000000000 +0000 ++++ a2ps-4.14/auxdir/config.sub 2013-04-29 13:13:51.037686671 +0100 +@@ -1,10 +1,10 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +-# Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012 Free Software Foundation, Inc. + +-timestamp='2007-06-28' ++timestamp='2012-10-10' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -21,9 +21,7 @@ timestamp='2007-06-28' + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -32,13 +30,16 @@ timestamp='2007-06-28' + + + # Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# diff and a properly formatted GNU ChangeLog entry. + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. + # Otherwise, we print the canonical config type on stdout and succeed. + ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases + # that are meaningful with *any* GNU software. +@@ -72,7 +73,8 @@ Report bugs and patches to substitutes, font_name); +- if (!res) ++ if (res) ++ res = xstrdup (res); ++ else + /* No. Check if this font is supported */ + if (font_exists (job, font_name)) + /* Avoid returning sth alloca'd */ diff --git a/SOURCES/a2ps-external-libtool.patch b/SOURCES/a2ps-external-libtool.patch new file mode 100644 index 0000000..5780160 --- /dev/null +++ b/SOURCES/a2ps-external-libtool.patch @@ -0,0 +1,13 @@ +diff -up a2ps-4.14/configure.external-libtool a2ps-4.14/configure +--- a2ps-4.14/configure.external-libtool 2008-09-24 15:28:13.000000000 +0100 ++++ a2ps-4.14/configure 2008-09-24 15:28:13.000000000 +0100 +@@ -21864,7 +21864,8 @@ fi + LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++#LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='/usr/bin/libtool' + + # Prevent multiple expansion + diff --git a/SOURCES/a2ps-format-security.patch b/SOURCES/a2ps-format-security.patch new file mode 100644 index 0000000..3fbd034 --- /dev/null +++ b/SOURCES/a2ps-format-security.patch @@ -0,0 +1,48 @@ +diff -up a2ps-4.14/lib/output.c.format-security a2ps-4.14/lib/output.c +--- a2ps-4.14/lib/output.c.format-security 2007-12-29 01:58:21.000000000 +0000 ++++ a2ps-4.14/lib/output.c 2014-04-03 18:24:35.259901356 +0100 +@@ -525,7 +525,7 @@ output_file (struct output * out, a2ps_j + expand_user_string (job, FIRST_FILE (job), + (const uchar *) "Expand: requirement", + (const uchar *) token)); +- output (dest, expansion); ++ output (dest, "%s", expansion); + continue; + } + +diff -up a2ps-4.14/lib/parseppd.y.format-security a2ps-4.14/lib/parseppd.y +--- a2ps-4.14/lib/parseppd.y.format-security 2007-12-29 01:58:21.000000000 +0000 ++++ a2ps-4.14/lib/parseppd.y 2014-04-03 18:24:35.259901356 +0100 +@@ -154,7 +154,7 @@ font_clause : + void + yyerror (const char *msg) + { +- error_at_line (1, 0, ppdfilename, ppdlineno, msg); ++ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg); + } + + /* +diff -up a2ps-4.14/lib/psgen.c.format-security a2ps-4.14/lib/psgen.c +--- a2ps-4.14/lib/psgen.c.format-security 2014-04-03 18:24:35.241901276 +0100 ++++ a2ps-4.14/lib/psgen.c 2014-04-03 18:24:35.259901356 +0100 +@@ -232,7 +232,7 @@ output_marker (a2ps_job * job, const cha + default: + *buf = '\0'; + ps_escape_char (job, cp[i], buf); +- output (jdiv, (char *) buf); ++ output (jdiv, "%s", (char *) buf); + break; + } + } +diff -up a2ps-4.14/src/parsessh.y.format-security a2ps-4.14/src/parsessh.y +--- a2ps-4.14/src/parsessh.y.format-security 2014-04-03 18:25:56.011259069 +0100 ++++ a2ps-4.14/src/parsessh.y 2014-04-03 18:26:04.725297585 +0100 +@@ -740,7 +740,7 @@ exception_def_opt: + void + yyerror (const char *msg) + { +- error_at_line (1, 0, sshfilename, sshlineno, msg); ++ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg); + } + + /* diff --git a/SOURCES/a2ps-forward-null.patch b/SOURCES/a2ps-forward-null.patch new file mode 100644 index 0000000..792f39d --- /dev/null +++ b/SOURCES/a2ps-forward-null.patch @@ -0,0 +1,19 @@ +diff -up a2ps-4.14/lib/pathwalk.c.forward-null a2ps-4.14/lib/pathwalk.c +--- a2ps-4.14/lib/pathwalk.c.forward-null 2011-08-10 16:06:53.185942197 +0100 ++++ a2ps-4.14/lib/pathwalk.c 2011-08-10 16:08:36.831030924 +0100 +@@ -348,12 +348,12 @@ xpw_find_included_file (char * const *pa + /* Relative. Give its root. */ + dir = dir_name (including_file); + +- res = ALLOCA (char, (strlen (dir) ++ res = ALLOCA (char, ((dir ? strlen (dir) : 0) + + strlen (name) + + (suffix ? strlen (suffix) : 0) + + 2)); +- sprintf (res, "%s%c%s%s", dir, DIRECTORY_SEPARATOR, +- name, suffix ? suffix : ""); ++ sprintf (res, "%s%c%s%s", dir ? dir : "", DIRECTORY_SEPARATOR, ++ dir ? name : name + 1, suffix ? suffix : ""); + XFREE (dir); + if (stat (res, &statbuf) == 0) + return xstrdup (res); diff --git a/SOURCES/a2ps-iso5-minus.patch b/SOURCES/a2ps-iso5-minus.patch new file mode 100644 index 0000000..5da644b --- /dev/null +++ b/SOURCES/a2ps-iso5-minus.patch @@ -0,0 +1,12 @@ +diff -up a2ps-4.13/encoding/iso5.edf.iso5-minus a2ps-4.13/encoding/iso5.edf +--- a2ps-4.13/encoding/iso5.edf.iso5-minus 2007-09-25 17:57:32.000000000 +0100 ++++ a2ps-4.13/encoding/iso5.edf 2007-09-25 17:57:55.000000000 +0100 +@@ -69,7 +69,7 @@ Vector: + .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef + .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space + exclam quotedbl numbersign dollar percent ampersand quoteright +-parenleft parenright asterisk plus comma minus period slash zero one ++parenleft parenright asterisk plus comma hyphen period slash zero one + two three four five six seven eight nine colon semicolon less equal + greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y + Z bracketleft backslash bracketright asciicircum underscore quoteleft diff --git a/SOURCES/a2ps-lm.patch b/SOURCES/a2ps-lm.patch new file mode 100644 index 0000000..b4d5908 --- /dev/null +++ b/SOURCES/a2ps-lm.patch @@ -0,0 +1,25 @@ +diff -up a2ps-4.14/lib/Makefile.am.lm a2ps-4.14/lib/Makefile.am +--- a2ps-4.14/lib/Makefile.am.lm 2007-12-29 01:38:03.000000000 +0000 ++++ a2ps-4.14/lib/Makefile.am 2012-04-04 09:25:00.709845857 +0100 +@@ -32,7 +32,7 @@ YFLAGS = -dtv + GPERFFLAGS = -t -D -L ANSI-C + BUILT_SOURCES = parseppd.c parseppd.h liba2ps.h confg.c + +-liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ ++liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ -lm + liba2ps_la_LDFLAGS = -version-info @LIBVERSION@ + + liba2psheaders = encoding.h media.h jobs.h output.h \ +diff -up a2ps-4.14/lib/Makefile.in.lm a2ps-4.14/lib/Makefile.in +--- a2ps-4.14/lib/Makefile.in.lm 2012-04-04 09:25:25.091842586 +0100 ++++ a2ps-4.14/lib/Makefile.in 2012-04-04 09:25:32.889841559 +0100 +@@ -322,7 +322,7 @@ INCLUDES = -I$(top_builddir) -I$(top_bui + # Use a struct, handle duplicates, produce ANSI-C + GPERFFLAGS = -t -D -L ANSI-C + BUILT_SOURCES = parseppd.c parseppd.h liba2ps.h confg.c +-liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ ++liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ -lm + liba2ps_la_LDFLAGS = -version-info @LIBVERSION@ + liba2psheaders = encoding.h media.h jobs.h output.h \ + routines.h psgen.h prolog.h faces.h confg.h useropt.h \ +diff -up a2ps-4.14/Makefile.in.lm a2ps-4.14/Makefile.in diff --git a/SOURCES/a2ps-make-fonts-map.patch b/SOURCES/a2ps-make-fonts-map.patch new file mode 100644 index 0000000..e029b4b --- /dev/null +++ b/SOURCES/a2ps-make-fonts-map.patch @@ -0,0 +1,29 @@ +--- a2ps-4.13/afm/make_fonts_map.sh.make-fonts-map 1999-01-20 14:28:27.000000000 +0000 ++++ a2ps-4.13/afm/make_fonts_map.sh 2004-12-09 12:34:45.517150083 +0000 +@@ -58,23 +58,15 @@ + do + # Extract the font name. + name=`sed -n -e '/^FontName/{ +-s/FontName[ ]*\([-a-zA-Z]*\).*/\1/p ++s/FontName[ ]*\([-a-zA-Z0-9]*\).*/\1/p + q + }' $file` + shortname=`basename $file | sed -e 's/\.[^\.]*$//g'` + if test x$name = x; then :; else +- # This is probably not a correct AFM file. ++ # If name was empty this is probably not a correct AFM file. + # (For instance Ogonkify's pseudo AFMs that define the encodings) + # Forget it. +- col1=`echo "$name$many_spaces" | sed -e 's/^\('$many_dots'\).*$/\1/g'` +- # Make sure the name has not been cut +- case "$col1" in +- $name*) ;; +- *) echo "A name has been cut ($name -> $col1)." 1>&2 +- exit 1 ;; +- esac +- col2="$shortname" +- echo "$col1$col2" >> fonts.map.new ++ printf "%-30s %s\n" $name $shortname >> fonts.map.new + fi + done + diff --git a/SOURCES/a2ps-mb.patch b/SOURCES/a2ps-mb.patch new file mode 100644 index 0000000..daa4ea3 --- /dev/null +++ b/SOURCES/a2ps-mb.patch @@ -0,0 +1,24 @@ +diff -up a2ps-4.14/lib/psgen.c.mb a2ps-4.14/lib/psgen.c +--- a2ps-4.14/lib/psgen.c.mb 2008-09-24 15:29:30.000000000 +0100 ++++ a2ps-4.14/lib/psgen.c 2008-09-24 15:29:30.000000000 +0100 +@@ -96,7 +96,8 @@ ps_escape_char (a2ps_job * job, uchar c, + /* Printable, but not 7bit clean caracters */ + if (encoding_char_exists (job->encoding, job->status->face, c) + && ((0177 < c) || (c < 040))) { +- sprintf ((char *)res, "%s\\%o", res, c); ++ char *p = res + strlen (res); ++ sprintf (p, "\\%o", c); + return 1; + } + +@@ -893,8 +894,8 @@ ps_print_char (a2ps_job * job, int c, en + if (c > 127 && encoding_get_composite_flag (job->encoding) && + job->status->face != Symbol) { + if (mb_flag) { +- nchars = ps_escape_char (job, mb_flag, buf) + +- ps_escape_char (job, c, buf); ++ nchars = ps_escape_char (job, mb_flag, buf); ++ nchars += ps_escape_char (job, c, buf); + job->status->wx += char_composite_WX(job, c); + job->status->column += nchars; + if (line_full) { diff --git a/SOURCES/a2ps-overrun-dynamic.patch b/SOURCES/a2ps-overrun-dynamic.patch new file mode 100644 index 0000000..c50de44 --- /dev/null +++ b/SOURCES/a2ps-overrun-dynamic.patch @@ -0,0 +1,21 @@ +diff -up a2ps-4.14/lib/darray.c.overrun-dynamic a2ps-4.14/lib/darray.c +--- a2ps-4.14/lib/darray.c.overrun-dynamic 2011-08-10 16:16:49.607014904 +0100 ++++ a2ps-4.14/lib/darray.c 2011-08-10 16:17:10.965625881 +0100 +@@ -430,7 +430,7 @@ da_qsort (struct darray * arr) + jstack += 2; + /* Push pointers to larger subarry on stack. + * Process smaller subarrays now */ +- if (jstack > QSORT_STACK) ++ if (jstack >= QSORT_STACK) + error (da_exit_error, 0, "da_qsort: QSORT_STACK too small (%d)", + QSORT_STACK); + if (ir - i + 1 >= j - l) { +@@ -509,7 +509,7 @@ da_qsort_with_arg (struct darray * arr, + jstack += 2; + /* Push pointers to larger subarry on stack. + * Process smaller subarrays now */ +- if (jstack > QSORT_STACK) ++ if (jstack >= QSORT_STACK) + error (da_exit_error, 0, "da_qsort: QSORT_STACK too small (%d)", + QSORT_STACK); + if (ir - i + 1 >= j - l) { diff --git a/SOURCES/a2ps-overrun-static.patch b/SOURCES/a2ps-overrun-static.patch new file mode 100644 index 0000000..f8e592b --- /dev/null +++ b/SOURCES/a2ps-overrun-static.patch @@ -0,0 +1,12 @@ +diff -up a2ps-4.14/lib/metaseq.c.overrun-static a2ps-4.14/lib/metaseq.c +--- a2ps-4.14/lib/metaseq.c.overrun-static 2011-08-10 16:18:44.924915695 +0100 ++++ a2ps-4.14/lib/metaseq.c 2011-08-10 16:19:04.739555258 +0100 +@@ -334,7 +334,7 @@ grow_user_string_obstack (struct obstack + { + /* `%D{}' format run date with strftime() */ + for (j = 0, i += 2; +- j < sizeof (buf2) && str[i] && str[i] != '}'; ++ j < sizeof (buf2) - 1 && str[i] && str[i] != '}'; + i++, j++) + buf2[j] = str[i]; + if (str[i] != '}') diff --git a/SOURCES/a2ps-perl.patch b/SOURCES/a2ps-perl.patch new file mode 100644 index 0000000..0b9bc97 --- /dev/null +++ b/SOURCES/a2ps-perl.patch @@ -0,0 +1,15 @@ +diff -up a2ps-4.13/sheets/perl.ssh.perl a2ps-4.13/sheets/perl.ssh +--- a2ps-4.13/sheets/perl.ssh.perl 2007-09-26 10:30:43.000000000 +0100 ++++ a2ps-4.13/sheets/perl.ssh 2007-09-26 10:47:47.000000000 +0100 +@@ -106,9 +106,9 @@ operators are + (/(s|tr)/ # 1. The command: `tr' or `s' + /(([[:punct:]])/ # 2. The delimiter + /(/ # 3. The *two* regexps +- /(.|\\\\.)*/ # First regexp ++ /(\\\\.)*/ # First regexp + /\\3/ # Separator +- /(.|\\\\.)*/ # Second Regexp ++ /(\\\\.)*/ # Second Regexp + /)/ # + /\\3)/ # Closer + \1 Keyword_strong, \2 Plain), diff --git a/SOURCES/a2ps-resource-leak.patch b/SOURCES/a2ps-resource-leak.patch new file mode 100644 index 0000000..d84d0cd --- /dev/null +++ b/SOURCES/a2ps-resource-leak.patch @@ -0,0 +1,49 @@ +diff -up a2ps-4.14/lib/encoding.c.resource-leak a2ps-4.14/lib/encoding.c +--- a2ps-4.14/lib/encoding.c.resource-leak 2011-08-10 16:02:26.244905923 +0100 ++++ a2ps-4.14/lib/encoding.c 2011-08-10 16:41:39.578353192 +0100 +@@ -554,7 +554,7 @@ encoding_resolve_font_substitute (struct + if (!res) + { + if (encoding->default_font) +- res = encoding->default_font; ++ res = xstrdup (encoding->default_font); + else + error (1, 0, "Cannot find font %s, nor any substitute", + font_name); +@@ -976,6 +976,7 @@ dump_encoding_setup (FILE * stream, + font_names [i]); + if (!font_is_to_reencode (job, real_font_name)) + da_remove_at (encoding->font_names_used, i, (da_map_func_t) free); ++ free (real_font_name); + } + + /* The number of fonts that, finally, have to be encoded +@@ -992,10 +993,16 @@ dump_encoding_setup (FILE * stream, + fprintf (stream, "/%sdict %d dict begin\n", encoding->key, + (encoding->composite_flag == true)? nb+nb+ns:nb+ns); + for (i = 0 ; i < nb ; i++) +- fprintf (stream, " /f%s %sEncoding /%s reencode_font\n", +- font_names [i], +- encoding->name, +- encoding_resolve_font_substitute (job, encoding, font_names [i])); ++ { ++ char *real_font = encoding_resolve_font_substitute (job, encoding, ++ font_names [i]); ++ fprintf (stream, " /f%s %sEncoding /%s reencode_font\n", ++ font_names [i], ++ encoding->name, ++ real_font); ++ free (real_font); ++ } ++ + + /* Slant font setting */ + for (i = 0 ; encoding->slantfont[i].name ; i++ ) +@@ -1166,6 +1173,7 @@ encoding_build_faces_wx (a2ps_job * job, + encoding->vector, + encoding->faces_wx [face]); + ++ free (true_font_name); + if (encoding->composite_flag) + { + encoding->composite_raito[i] = diff --git a/SOURCES/a2ps-sort.patch b/SOURCES/a2ps-sort.patch new file mode 100644 index 0000000..ea0c305 --- /dev/null +++ b/SOURCES/a2ps-sort.patch @@ -0,0 +1,22 @@ +--- a2ps-4.13/i18n-fonts-0.1/make_fonts_map.sh.sort 2006-04-04 13:49:44.000000000 +0100 ++++ a2ps-4.13/i18n-fonts-0.1/make_fonts_map.sh 2006-04-04 13:52:00.000000000 +0100 +@@ -80,7 +80,7 @@ + + # Sort them by name, and keep a unique file for each font + echo "Sorting entries..." 1>&2 +-sort -u -t' ' +0 -1 fonts.map.new > fonts.map.tmp ++sort -u -t' ' -k1,2 fonts.map.new > fonts.map.tmp + + echo "Finishing." 1>&2 + cat > fonts.map.new <&2 +-sort -u -t' ' +0 -1 fonts.map.new > fonts.map.tmp ++sort -u -t' ' -k1,2 fonts.map.new > fonts.map.tmp + + echo "Finishing." 1>&2 + cat > fonts.map.new <= %{_emacs_version} +Requires(post): coreutils +Obsoletes: a2ps-i18n <= 0.1-1 +Provides: a2ps-i18n = 0.1-2 +Obsoletes: emacs-a2ps <= 4.14-27 +Provides: emacs-a2ps <= 4.14-27 +Obsoletes: emacs-a2ps-el <= 4.14-27 +Provides: emacs-a2ps-el <= 4.14-27 + + +%description +The a2ps filter converts text and other types of files to PostScript. +A2ps has pretty-printing capabilities and includes support for a wide +number of programming languages, encodings (ISO Latins, Cyrillic, etc.), +and medias. + + +%prep +%setup -q -a 1 + +# use fedora postscript font paths +%patch0 -p1 -b .conf + +# add /etc/a2ps in directories searched for config files +%patch1 -p1 -b .etc + +# Link to libm in liba2ps (bug #809673). +%patch2 -p1 -b .lm + +%patch3 -p1 -b .security +%patch4 -p1 -b .glibcpaper + +# Fix texi build failure (bug #927633). +%patch5 -p1 -b .texi-comments +%patch6 -p1 -b .aarch64 + +%patch7 -p1 -b .sort +%patch8 -p1 -b .iso5-minus +%patch9 -p1 -b .perl + +%patch10 -p1 -b .euc +%patch11 -p1 -b .ae +%patch12 -p1 -b .attr + +# Use C locale's decimal point style (bug #53715). +%patch13 -p1 -b .numeric + +# Use locale to determine a sensible default encoding (bug #64584). +%patch14 -p1 -b .encoding + +# Fix koi8 tilde (bug #66393). +%patch15 -p1 -b .tilde + +# Avoid a bad free in the encoding handling logic (bug #954104). +%patch16 -p1 -b .bad-free + +# Add Korean resource file (bug #81421). +%patch17 -p1 -b .euckr + +# Prevent strsignal segfaulting (bug #104970). +%patch18 -p1 -b .gnusource + +# Prevent build failure with -Wformat-security (bug #1036979). +%patch19 -p1 -b .format-security + +# Hebrew support (bug #113191). +%patch20 -p1 -b .hebrew + +# Use external libtool (bug #225235). +%patch34 -p1 -b .external-libtool + +# Fix problems in make_fonts_map script (bug #142299). Patch from +# Michal Jaegermann. +%patch26 -p1 -b .make-fonts-map + +# Make pdiff default to not requiring wdiff (bug #68537). +%patch28 -p1 -b .wdiff + +# Make pdiff use diff(1) properly (bug #156916). +%patch29 -p1 -b .U + +# Fixed multibyte handling (bug #212154). +%patch31 -p1 -b .mb + +# Remove dots in node names, patch from Vitezslav Crhonek (Bug #445971) +%patch35 -p1 -b .nodes + +# Coverity fix (forward-null). +%patch36 -p1 -b .forward-null + +# Coverity fix (overrun-dynamic). +%patch37 -p1 -b .overrun-dynamic + +# Coverity fix (overrun-static). +%patch38 -p1 -b .overrun-static + +# Coverity fix (resource-leak). +%patch39 -p1 -b .resource-leak + +# Invoke gs with the -dSAFER option in fixps (CVE-2014-0466, bug #1082411). +%patch40 -p1 -b .CVE-2014-0466 + +for file in AUTHORS ChangeLog; do + iconv -f latin1 -t UTF-8 < $file > $file.utf8 + touch -c -r $file $file.utf8 + mv $file.utf8 $file +done + +mv doc/encoding.texi doc/encoding.texi.utf8 +iconv -f KOI-8 -t UTF-8 doc/encoding.texi.utf8 -o doc/encoding.texi + +# Fix reference to a2ps binary (bug #112930). +sed -i -e "s,/usr/local/bin,%{_bindir}," contrib/emacs/a2ps.el + +chmod -x lib/basename.c lib/xmalloc.c + +# restore timestamps of patched files +touch -c -r configure.in.conf configure.in +touch -c -r config.h.in.euc config.h.in +touch -c -r configure.conf configure +touch -c -r src/Makefile.am.euc src/Makefile.am +touch -c -r etc/Makefile.am.etc etc/Makefile.am +#touch -c -r fonts/Makefile.in src/Makefile.in lib/Makefile.in +touch -c -r etc/Makefile.in.etc etc/Makefile.in + +chmod 644 encoding/iso8.edf.hebrew +chmod 644 encoding/euc-kr.edf.euckr + +%build +# preset the date in README.in to avoid the timestamp of the build time +sed -e "s!@date@!`date -r NEWS`!" etc/README.in > etc/README.in.tmp +touch -c -r etc/README.in etc/README.in.tmp +mv etc/README.in.tmp etc/README.in + +EMACS=emacs %configure \ + --with-medium=_glibc \ + --enable-kanji \ + --with-lispdir=%{_emacs_sitelispdir}/%{name} + +# Remove prebuilt info files to force regeneration at build time +find . -name "*.info*" -exec rm -f {} \; +# force rebuilding scanners by flex - patched or not +find src lib -name '*.l' -exec touch {} \; +# these scanners use 'lineno' - incompatible with -CFe flex flags +#( +# cd src +# /bin/sh ../auxdir/ylwrap "flex" sheets-map.l lex.yy.c sheets-map.c -- +# /bin/sh ../auxdir/ylwrap "flex" lexssh.l lex.yy.c lexssh.c -- +# cd ../lib +# /bin/sh ../auxdir/ylwrap "flex" lexppd.l lex.yy.c lexppd.c -- +#) + +make %{?_smp_mflags} + +%install +make DESTDIR=%{buildroot} install INSTALL='install -p' + +# reset the timestamp for the generated etc/README file +touch -r etc/README.in %{buildroot}%{_datadir}/a2ps/README + +mkdir -p %{buildroot}%{_sysconfdir}/a2ps + +mkdir -p %{buildroot}%{_datadir}/a2ps/{afm,fonts} +pushd i18n-fonts-0.1/afm +install -p -m 0644 *.afm %{buildroot}%{_datadir}/a2ps/afm +pushd ../fonts +install -p -m 0644 *.pfb %{buildroot}%{_datadir}/a2ps/fonts +popd +popd + +# Don't ship the library file or header (bug #203536). +rm %{buildroot}%{_libdir}/*.{so,a,la} +rm %{buildroot}%{_includedir}/* + +rm -f %{buildroot}%{_infodir}/dir + +%find_lang %name + +%post +%{?ldconfig} +(cd %{_datadir}/a2ps/afm; + ./make_fonts_map.sh > /dev/null 2>&1 || /bin/true + if [ -f fonts.map.new ]; then + mv fonts.map.new fonts.map + fi +) +exit 0 + +%ldconfig_postun + +%files -f %{name}.lang +%dir %{_sysconfdir}/a2ps +%config %{_sysconfdir}/a2ps.cfg +%config(noreplace) %{_sysconfdir}/a2ps-site.cfg +%doc AUTHORS ChangeLog COPYING NEWS README TODO THANKS +%{_bindir}/* +%{_infodir}/a2ps.info* +%{_infodir}/ogonkify.info* +%{_infodir}/regex.info* +%{_mandir}/*/* +# automatically regenerated at install and update time +%verify(not size mtime md5) %{_datadir}/a2ps/afm/fonts.map +%{_datadir}/a2ps/afm/*.afm +%{_datadir}/a2ps/afm/make_fonts_map.sh +%{_datadir}/a2ps/README +%{_datadir}/a2ps/encoding +%{_datadir}/a2ps/fonts +%{_datadir}/a2ps/ppd +%{_datadir}/a2ps/ps +%{_datadir}/a2ps/sheets +%{_datadir}/ogonkify/ +%dir %{_datadir}/a2ps/afm +%dir %{_datadir}/a2ps +%{_libdir}/*.so* +%{_emacs_sitelispdir}/%{name} + +%changelog +* Wed Jul 24 2019 Fedora Release Engineering - 4.14-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 4.14-40 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 4.14-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Zdenek Dohnal - 4.14-38 +- removing install-info, because now it is done automatically + +* Mon Feb 19 2018 Zdenek Dohnal - 4.14-37 +- fix tetex-fonts dependency - now provided by texlive-collections-fontsrecommended + +* Fri Feb 16 2018 Zdenek Dohnal - 4.14-36 +- remove tetex dependency + +* Thu Feb 08 2018 Zdenek Dohnal - 4.14-35 +- remove old stuff https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/MRWOMRZ6KPCV25EFHJ2O67BCCP3L4Y6N/ + +* Wed Feb 07 2018 Fedora Release Engineering - 4.14-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Nov 07 2017 Igor Gnatenko - 4.14-33 +- Remove old crufty coreutils requires + +* Wed Aug 02 2017 Fedora Release Engineering - 4.14-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.14-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 4.14-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 4.14-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jun 23 2015 Tim Waugh - 4.14-28 +- Moved emacs sub-packages into main package (bug #1234582). + +* Tue Jun 16 2015 Fedora Release Engineering - 4.14-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Aug 15 2014 Fedora Release Engineering - 4.14-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 06 2014 Fedora Release Engineering - 4.14-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Apr 3 2014 Tim Waugh - 4.14-24 +- Prevent another build failure with -Werror=format-security. + +* Tue Apr 1 2014 Tim Waugh - 4.14-23 +- Invoke gs with the -dSAFER option in fixps (CVE-2014-0466, bug #1082411). + +* Tue Dec 3 2013 Tim Waugh - 4.14-22 +- Prevent build failure with -Werror=format-security (bug #1036979). + +* Sat Aug 03 2013 Fedora Release Engineering - 4.14-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Apr 30 2013 Tim Waugh - 4.14-20 +- Avoid a bad free in the encoding handling logic (bug #954104). + +* Mon Apr 29 2013 Tim Waugh - 4.14-19 +- Support for building on aarch64 (bug #924962). + +* Tue Mar 26 2013 Tim Waugh - 4.14-18 +- Fixed texi build failure (bug #927633). + +* Wed Feb 13 2013 Fedora Release Engineering - 4.14-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 4.14-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Apr 4 2012 Tim Waugh - 4.14-15 +- Link to libm in liba2ps (bug #809673). + +* Thu Jan 12 2012 Fedora Release Engineering - 4.14-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Aug 10 2011 Tim Waugh - 4.14-13 +- Coverity fixes (resource-leak, overrun-static, overrun-dynamic, + forward-null). + +* Mon Feb 07 2011 Fedora Release Engineering - 4.14-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Mar 14 2010 Jonathan G. Underwood - 4.14-11 +- Spec file fixes for Emacs add-on guideline compliance +- Move *.el(c) files to their own directory +- Use Emacs packaging macros +- Remove unneeded pkgconfig macros + +* Fri Jul 24 2009 Fedora Release Engineering - 4.14-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jul 22 2009 Adam Jackson 4.14-9 +- Requires: psutils-perl for fixps + +* Mon Feb 23 2009 Fedora Release Engineering - 4.14-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jan 30 2009 Tim Waugh 4.14-7 +- Removed trade marks to avoid potential confusion. + +* Wed Sep 24 2008 Tim Waugh 4.14-6 +- Removed patch fuzz. + +* Thu May 29 2008 Tim Waugh 4.14-5 +- Removed old patches. + +* Sun May 18 2008 Patrice Dumas 4.14-4 +- remove dots in node names, patch from Vitezslav Crhonek (bug #445971) + +* Wed May 14 2008 Patrice Dumas 4.14-3 +- %%{_datadir}/a2ps/afm/fonts.map is dynamically generated, mark it + as such in %%files (bug #70919) + +* Sun Apr 27 2008 Patrice Dumas 4.14-2 +- update to 4.14 +- don't obsolete the provided version of a2ps-i18n +- use html2ps for the html delegation +- BuildRequires gperf + +* Tue Feb 12 2008 Patrice Dumas 4.13b-71 +- use a predictable stamp inside the etc/README file +- follow emacs packaging guidelines + +* Tue Feb 12 2008 Tim Waugh 4.13b-70 +- Separate out libs sub-package for multilib (bug #340571). + +* Wed Sep 26 2007 Tim Waugh 4.13b-69 +- Try out a perl stylesheet speed improvement (bug #252183). + +* Tue Sep 25 2007 Tim Waugh 4.13b-68 +- Make minus sign work in ISO-8859-5 (bug #252314). + +* Thu Aug 23 2007 Tim Waugh 4.13b-67 +- More specific license tag. + +* Fri Jul 13 2007 Tim Waugh 4.13b-66 +- Change build requirement from /usr/bin/emacs to emacs to fix build. +- Hebrew fix (bug #247999). + +* Wed Mar 14 2007 Tim Waugh 4.13b-65 +- Fix encoding of encoding.texi (bug #225235). +- Make a2ps.cfg %%config again, but not noreplace (bug #225235). +- Added post/postun ldconfig (bug #225235). + +* Mon Mar 12 2007 Tim Waugh 4.13b-64 +- Renamed tarball generation script (bug #225235). + +* Fri Mar 9 2007 Tim Waugh 4.13b-63 +- Removed bad files (bug #225235). +- Add sysconfdir/a2ps to search path (bug #225235). +- Build does not require gperf after all (bug #225235). +- Don't remove needed library (bug #225235). + +* Thu Mar 8 2007 Tim Waugh 4.13b-62 +- Build requires bison. +- Use sed instead of perl for string replacement (bug #225235). +- Better install-info scriptlets (bug #225235). +- Added BuildRequires and Requires for more packages (bug #225235). +- a2ps.cfg needn't be %%config (bug #225235). +- No need to gzip the info files (bug #225235). +- Use external libtool and don't run the autotools (bug #225235). + +* Wed Feb 28 2007 Tim Waugh 4.13b-61 +- Clean up tmpdir in pdiff (bug #214400). +- Fixed permissions on C source files (bug #225235). +- Use %%configure (bug #225235). +- Preserve timestamps (bug #225235). +- Use smp_mflags (bug #225235). +- Requires install-info for post and preun scriptlets (bug #225235). +- Avoid tabs (bug #225235). +- Explicity versioning for obsoletes/provides (bug #225235). +- PreReq->Requires(post) (bug #225235). +- Fixed macros in changelog (bug #225235). +- Fixed summary (bug #225235). +- Converted spec file to UTF-8 (bug #225235). +- Fixed build root (bug #225235). +- Remove ExcludeArch (bug #225235). +- Use buildroot macro consistently (bug #225235). +- Don't ship the library file or header (bug #203536). + +* Tue Jan 23 2007 Tim Waugh 4.13b-60 +- Force it to build by hacking the configure script. +- Don't need rm patch. +- Make scriptlets unconditionally succeed (bug #223674). + +* Fri Oct 27 2006 Tim Waugh +- Build requires cups (bug #204119). + +* Wed Oct 25 2006 Tim Waugh +- Make ogonkify build. + +* Wed Oct 25 2006 Tim Waugh 4.13b-59 +- Fixed multibyte handling (bug #212154). + +* Tue Oct 17 2006 Tim Waugh 4.13b-58 +- Fixed psset sed expression (bug #209613). + +* Mon Oct 9 2006 Tim Waugh +- Build requires ImageMagick for a2ps.cfg to use convert(1). +- Build requires groff-perl for a2ps.cfg to use grog(1). + +* Sun Oct 01 2006 Jesse Keating - 4.13b-57 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Tue Sep 26 2006 Tim Waugh 4.13b-56 +- Fixed build (bug #188156). + +* Fri Aug 25 2006 Tim Waugh +- Build requires groff. + +* Fri Aug 25 2006 Tim Waugh 4.13b-55 +- Use better manifest flags for fonts.map. + +* Tue Aug 8 2006 Tim Waugh 4.13b-54 +- Prevent fixps tmpdir problem (bug #188156). + +* Fri Jul 14 2006 Tim Waugh 4.13b-53 +- Fixed Hebrew font names (bug #174304). + +* Wed Jul 12 2006 Jesse Keating - 4.13b-52 +- rebuild +- exclude ppc64 as no emacs there right now. +- get rid of stupid ver and rel defines. + +* Tue May 30 2006 Tim Waugh 4.13b-51 +- Build requires gettext (bug #193346). + +* Tue Apr 4 2006 Tim Waugh 4.13b-50 +- Use sort correctly in make_font_map.sh (bug #187884). + +* Wed Feb 15 2006 Tim Waugh 4.13b-49 +- Use mktemp in scripts. + +* Fri Feb 10 2006 Jesse Keating - 4.13b-48.3 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 4.13b-48.2.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Nov 18 2005 Bill Nottingham 4.13b-48 +- Migrate font paths from /usr/X11R6 to /usr/share/X11 + +* Thu May 5 2005 Tim Waugh 4.13b-47 +- Make pdiff use diff(1) properly (bug #156916). + +* Wed Mar 23 2005 Tim Waugh 4.13b-46 +- Make pdiff default to not requiring wdiff (bug #68537). + +* Wed Mar 2 2005 Tim Waugh 4.13b-45 +- Rebuild for new GCC. + +* Wed Feb 2 2005 Tim Waugh 4.13b-44 +- Don't try to run netscape. Run mozilla instead (bug #121393). + +* Thu Dec 9 2004 Tim Waugh 4.13b-43 +- Fixed font path (bug #142294). +- Fixed problems in make_fonts_map script (bug #142299). Patch from + Michal Jaegermann. + +* Tue Dec 7 2004 Tim Waugh 4.13b-42 +- Fixed configure.in. +- Fixed m4 files. +- Apply patch from bug #122699 to fix "too many includes" error. + +* Tue Oct 5 2004 Tim Waugh 4.13b-41 +- Build requires texinfo (bug #134663). + +* Thu Jul 29 2004 Tim Waugh 4.13b-40 +- Use environment variable to pass filenames to shell (bug #128647). + +* Thu Jun 24 2004 Tim Waugh 4.13b-39 +- Build requires libtool (bug #125823). + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Mon Mar 22 2004 Tim Waugh 4.13b-37 +- Build requires flex (bug #118892). + +* Wed Mar 3 2004 Tim Waugh 4.13b-36 +- Oops, use system C compiler. + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Tue Mar 2 2004 Tim Waugh 4.13b-35 +- Prevent "error: conflicting types for 'malloc'". + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Fri Jan 16 2004 Tim Waugh 4.13b-33 +- Post scriptlet requires sed, coreutils (bug #107322). + +* Mon Jan 12 2004 Tim Waugh 4.13b-32 +- Hebrew support (bug #113191). + +* Tue Jan 6 2004 Tim Waugh 4.13b-31 +- Build requires gperf. +- Fix problems in .y file spotted by stricter bison. +- Fix reference to a2ps binary (bug #112930). + +* Fri Oct 17 2003 Tim Waugh 4.13b-30 +- Prevent strsignal segfaulting (bug #104970). + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Thu Jan 9 2003 Tim Waugh 4.13b-27 +- Add Korean resource file (bug #81421). + +* Tue Jan 7 2003 Jeff Johnson 4.13b-26 +- don't include -debuginfo files in package. + +* Wed Nov 20 2002 Tim Powers +- rebuild on all arches +- remove lingering files from the buildroot that we aren't shipping +- pass %%{_libdir} and %%{_datadir} to configure so that we are lib64'ized +- fix bad perms on some files + +* Mon Aug 5 2002 Tim Waugh 4.13b-24 +- Prevent configure from going interactive (bug #70333). +- Try to cope with UTF-8 a little bit (bug #70057). + +* Fri Jun 21 2002 Tim Powers 4.13b-23 +- automated rebuild + +* Fri Jun 21 2002 Tim Waugh 4.13b-22 +- Fix koi8 tilde (bug #66393). + +* Thu May 30 2002 Tim Waugh 4.13b-21 +- Provide a2ps-i18n (bug #65231). +- Fix default encoding (bug #64584). + +* Thu May 23 2002 Tim Powers 4.13b-20 +- automated rebuild + +* Mon Feb 25 2002 Tim Waugh 4.13b-19 +- Rebuild in new environment. + +* Tue Jan 22 2002 Tim Waugh 4.13b-18 +- Fix a2ps-4.13-conf.patch (bug #31360). +- Add documentation about the default behaviour concerning LC_PAPER + (bug #43829). + +* Wed Jan 09 2002 Tim Powers 4.13b-17 +- automated rebuild + +* Wed Jan 9 2002 Tim Waugh +- Fix build with newer compiler. +- s/Copyright:/License:/. +- Use C locale's decimal point style (bug #53715). + +* Fri Jun 1 2001 Oliver Paukstadt +- fixed varargs-usage in title.c + +* Thu Apr 26 2001 Florian La Roche +- call libtoolize to allow easy porting to new archs + +* Wed Feb 28 2001 SATO Satoru +- bunzip2-ed all patches except eucjp + +* Thu Feb 22 2001 SATO Satoru +- support Japanese +- bzip2-ed all patches +- replace macros (%%makeinstall, %%configure) with traditional + commands to avoid some troubles those macros caused. + +* Tue Feb 20 2001 Trond Eivind Glomsr淡d +- Using letter is as weird as oz, fl. oz, Fahrenheit, lb etc. + Add a patch for using the glibc media type for giving US + letter for en_US (only locale with this paper), and A4 + for everyone else. + +* Tue Feb 20 2001 Tim Powers +- changed default medium back to letter (bug 27794) + +* Mon Feb 19 2001 Trond Eivind Glomsr淡d +- langify +- use %%{_tmppath} + +* Mon Feb 12 2001 Tim Waugh +- Fix tmpfile security patch so that it actually _works_ (bug #27155). + +* Sun Jan 21 2001 Tim Waugh +- New-style prereq line. +- %%post script requires fileutils (mv) and sh-utils (true). This + should fix bug #24251). + +* Mon Jan 08 2001 Trond Eivind Glomsr淡d +- Add /usr/bin/emacs to BuildRequires +- A4 +- specify use of GNU Emacs for building + +* Fri Jan 05 2001 Preston Brown +- security patch for tmpfile creation from Olaf Kirch + +* Mon Dec 11 2000 Preston Brown +- obsoleted old a2ps-i18n package (it was tiny) and included those fonts + directly here. + +* Thu Dec 7 2000 Tim Powers +- built for dist-7.1 + +* Mon Aug 07 2000 Tim Powers +- update to 4.13b to fix some bugs, thanks to czar@acm.org for giving me a + heads up on this (bug #15679) + +* Mon Jul 24 2000 Prospector +- rebuilt + +* Mon Jul 10 2000 Tim Powers +- rebuilt + +* Fri Jun 23 2000 Tim Powers +- info pages weren't getting gzipped. +- stdout & stderror redirected to /dev/null in post section + +* Mon Jun 19 2000 Tim Powers +- fixed bug 12451 which was a stupid mistake by me. +- quiet the post section +- added patches from michal@ellpspace.math.ualberta.ca and did some spec file + magic he suggested as well. + +* Fri Jun 2 2000 Tim Powers +- fixed bug 5876, was not setting the paper size to Letter again :( +- man pages and info pages to /usr/share, FHS compliant. +- used macros wherever possible + +* Wed May 31 2000 Tim Powers +- fixed bug #11078, now requires psutils + +* Wed Apr 26 2000 Tim Powers +- updated to 4.13 +- compress man pages + +* Thu Feb 10 2000 Tim Powers +- gzip man pages +- strip binaries + +* Mon Jan 24 2000 Tim Powers +- had to be more specific since the i18n stuff was removed from the package. + There is a new a2ps-i18n package which treats the + /usr/share/a2ps/afm/fonts.map file as a config file + +* Wed Oct 27 1999 Tim Powers +- added the --with-medium=Letter option to the configure process + +* Thu Aug 5 1999 Tim Powers +- fixed problems with missing dirs as reported in bug 3822 +- built for powertools + +* Tue Jul 6 1999 Tim Powers +- rebuilt for powertools 6.1 + +* Wed May 12 1999 Bill Nottingham +- add a2ps-site.cfg + +* Mon Apr 26 1999 Preston Brown +- update to 4.12 for Powertools 6.0 + +* Sat Oct 24 1998 Jeff Johnson +- narrower range of %%files splats. +- install info correctly. +- new description/summary text. + +* Tue Oct 06 1998 Michael Maher +- updated source + +* Sat Jul 04 1998 Michael Maher +- built package