summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/README.source4
-rw-r--r--debian/changelog90
-rw-r--r--debian/control4
-rw-r--r--debian/patches/01_a2ps_el_path_fix.diff15
-rw-r--r--debian/patches/02_composite_fonts.diff851
-rw-r--r--debian/patches/03_koi8_fonts_debian.diff58
-rw-r--r--debian/patches/04_lp_lpr_workaround.diff22
-rw-r--r--debian/patches/05_no_acroread_for_pdf.diff17
-rw-r--r--debian/patches/06-encoding.diff22
-rw-r--r--debian/patches/07_a2ps_info.diff204
-rw-r--r--debian/patches/08_man.diff60
-rw-r--r--debian/patches/09_CVE-2001-1593.diff69
-rw-r--r--debian/patches/CVE-2014-0466.diff30
-rw-r--r--debian/patches/doca2ps.texi-remove-dates-from-generated.patch29
-rw-r--r--debian/patches/etcmakefile.-pass-arguments-to-date-to-s.patch34
-rw-r--r--debian/patches/fix-bad-free.diff15
-rw-r--r--debian/patches/fix-format-security.diff78
-rw-r--r--debian/patches/fix-texi-build.diff19
-rw-r--r--debian/patches/series14
-rwxr-xr-xdebian/rules45
-rw-r--r--debian/upstream/signing-key.asc48
-rw-r--r--debian/watch3
22 files changed, 224 insertions, 1507 deletions
diff --git a/debian/README.source b/debian/README.source
deleted file mode 100644
index 56dc4be..0000000
--- a/debian/README.source
+++ /dev/null
@@ -1,4 +0,0 @@
-This package uses the dpatch system of patch handling.
-See /usr/share/doc/dpatch/README.source.gz for more details.
-
- -- Nobuhiro Iwamatsu <iwamatsu@debian.org>, Fri, 14 May 2010 13:35:10 +0900
diff --git a/debian/changelog b/debian/changelog
index d1cd8cc..a8bf7db 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,93 @@
+a2ps (1:4.15.5-2) unstable; urgency=medium
+
+ * QA upload.
+ * debian/rules: Also clean generated tarball caused by calling
+ "make dist".
+
+ -- Boyuan Yang <byang@debian.org> Sat, 05 Aug 2023 21:18:24 -0400
+
+a2ps (1:4.15.5-1) unstable; urgency=medium
+
+ * QA upload.
+ * New upstream release.
+
+ -- Boyuan Yang <byang@debian.org> Sat, 24 Jun 2023 16:40:32 -0400
+
+a2ps (1:4.15.4-1) unstable; urgency=medium
+
+ * QA upload.
+ * Upload to unstable.
+
+ -- Boyuan Yang <byang@debian.org> Fri, 16 Jun 2023 18:59:45 -0400
+
+a2ps (1:4.15.4-1~exp1) experimental; urgency=medium
+
+ * QA upload.
+ * New upstream release.
+
+ -- Boyuan Yang <byang@debian.org> Thu, 13 Apr 2023 22:35:09 -0400
+
+a2ps (1:4.15.3-1~exp1) experimental; urgency=medium
+
+ * QA upload.
+ * New upstream release.
+ * debian/patches/0004-pswrite: Dropped, merged upstream.
+ * debian/upstream/signing-key.asc: Add upstream signing key.
+
+ -- Boyuan Yang <byang@debian.org> Mon, 27 Mar 2023 12:55:15 -0400
+
+a2ps (1:4.15.2-1~exp1) experimental; urgency=medium
+
+ * QA upload.
+ * New upstream release. (Closes: #1032575)
+ + Fix segfault with --stdin="". (Closes: #660766)
+
+ -- Boyuan Yang <byang@debian.org> Sun, 19 Mar 2023 17:54:30 -0400
+
+a2ps (1:4.15.1-1~exp1) experimental; urgency=medium
+
+ * QA upload.
+ * New upstream release.
+ * debian/patches:
+ - 01_a2ps_el_path_fix.diff: Dropped, not needed anymore.
+ - 02_composite_fonts.diff: Dropped, merged upstream.
+ - 03_koi8_fonts_debian.diff: Dropped, merged upstream.
+ - 04_lp_lpr_workaround.dpatch: Dropped, merged upstream.
+ - 05_no_acroread_for_pdf.dpatch: Dropped, no longer applicable.
+ + 06-encoding.diff: Only keep part about doc/sheets.texi.
+ - 07_a2ps_info.diff: Dropped, merged upstream.
+ - 08_man.diff: Dropped, merged upstream.
+ - 09_CVE-2001-1593.diff: Dropped, merged upstream.
+ - fix-bad-free.diff: Dropped, merged upstream.
+ - fix-format-security.diff: Dropped, merged upstream.
+ - fix-texi-build.diff: Dropped, merged upstream.
+ - CVE-2014-0466.diff: Dropped, merged upstream.
+ - manmakefile.-patch-to-use-the-system-hel.patch: Dropped since
+ upstream has migrated from embedded help2man to external one.
+ - etcmakefile.-pass-arguments-to-date-to-s.patch: Refreshed.
+ * debian/patches: Add new patch:
+ + 0004-Replace-device-pswrite-with-ps2write-in-fixps.patch:
+ Added. (Closes: #1008579)
+ * debian/README.source: Dropped, we do not use dpatch anymore.
+ * debian/control: Bump Standards-Version to 4.6.2.
+ * debian/rules:
+ + Renable autoreconf, we do not need to circumvent
+ --runstatedir anymore.
+ + Use dh13 syntax.
+ + Do not halt if dh_auto_clean fails (before build).
+ + Execute "make dist" after build to regenerate .gmo files.
+ * debian/control:
+ + Add explicit build-dependency on libgc-dev and pkg-config.
+
+ -- Boyuan Yang <byang@debian.org> Wed, 15 Mar 2023 15:53:57 -0400
+
+a2ps (1:4.14-7) unstable; urgency=high
+
+ * QA upload.
+ * Done't install a mime entry for text/plain. (Closes: #979231)
+
+ -- Adrian Bunk <bunk@debian.org> Tue, 09 Feb 2021 17:52:04 +0200
+
a2ps (1:4.14-6) unstable; urgency=medium
* QA upload.
diff --git a/debian/control b/debian/control
index 4da60e4..f2ae756 100644
--- a/debian/control
+++ b/debian/control
@@ -16,12 +16,14 @@ Build-Depends: bison,
gv,
help2man,
html2ps,
+ libgc-dev,
libpaper-dev,
lpr,
+ pkg-config,
psutils,
texinfo,
texlive-base-bin
-Standards-Version: 4.5.1
+Standards-Version: 4.6.2
Rules-Requires-Root: no
Homepage: https://www.gnu.org/software/a2ps/
Vcs-Browser: https://browse.dgit.debian.org/a2ps.git/
diff --git a/debian/patches/01_a2ps_el_path_fix.diff b/debian/patches/01_a2ps_el_path_fix.diff
deleted file mode 100644
index a30ce76..0000000
--- a/debian/patches/01_a2ps_el_path_fix.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-## 01_a2ps_el_path_fix.dpatch by Masayuki Hatta <mhatta@debian.org>
-
-Index: b/contrib/emacs/a2ps.el
-===================================================================
---- a/contrib/emacs/a2ps.el
-+++ b/contrib/emacs/a2ps.el
-@@ -44,7 +44,7 @@
- ;; a2ps-compile-regexp
-
- ;;path to the a2ps program
--(defvar a2ps-program "/usr/local/bin/a2ps")
-+(defvar a2ps-program "/usr/bin/a2ps")
-
- ;;thank god for make-regexp.el!
- (defvar a2ps-font-lock-keywords
diff --git a/debian/patches/02_composite_fonts.diff b/debian/patches/02_composite_fonts.diff
deleted file mode 100644
index a2c0744..0000000
--- a/debian/patches/02_composite_fonts.diff
+++ /dev/null
@@ -1,851 +0,0 @@
-## 02_composite_fonts.dpatch by Masayuki Hatta <mhatta@debian.org>
-
-Index: b/encoding/Makefile.am
-===================================================================
---- a/encoding/Makefile.am
-+++ b/encoding/Makefile.am
-@@ -16,7 +16,7 @@
- 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)
-Index: b/encoding/Makefile.in
-===================================================================
---- a/encoding/Makefile.in
-+++ b/encoding/Makefile.in
-@@ -270,7 +270,7 @@
- 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)
-Index: b/encoding/encoding.map
-===================================================================
---- a/encoding/encoding.map
-+++ b/encoding/encoding.map
-@@ -93,6 +93,12 @@
- 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
- ########################################################################
-Index: b/encoding/euc-jp.edf
-===================================================================
---- /dev/null
-+++ b/encoding/euc-jp.edf
-@@ -0,0 +1,95 @@
-+# 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
-+# Copyright (c) 2003 Masayuki Hatta
-+#
-+
-+# 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
-+
-+Documentation
-+The EUC-JP encoding is a 8-bit character set widely used in Japan.
-+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 fonts 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
-Index: b/lib/encoding.c
-===================================================================
---- a/lib/encoding.c
-+++ b/lib/encoding.c
-@@ -389,15 +389,25 @@
- * Association of suffixes rules, and corresponding style sheet
- * (The hashing is upon `alias')
- */
-+struct slantfont_info {
-+ char * name;
-+ char * src;
-+ float ratio;
-+};
-+
- 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 +417,9 @@
- 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_ratio[NB_FACES]; /* size ratio of additonal and original font */
- };
-
- /*
-@@ -423,9 +436,12 @@
- 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 +487,34 @@
- }
-
- /*
-+ * 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 ratio)
-+{
-+ encoding->composite_flag = true;
-+ pair_add2 (encoding->composite, orig, subs, wx, ratio);
-+}
-+
-+/*
-+ * Add a composite font in the current encoding
-+ */
-+static void
-+encoding_add_slant_font (struct encoding * encoding,
-+ const char * new, const char * src,
-+ float ratio)
-+{
-+ static num = 0;
-+ encoding->slantfont[num].name = strdup(new);
-+ encoding->slantfont[num].src = strdup(src);
-+ encoding->slantfont[num].ratio = ratio;
-+ 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 +558,77 @@
- }
-
- 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 ratio
-+ */
-+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_ratio(struct a2ps_job * job,
-+ struct encoding * encoding,
-+ const char * font_list)
-+{
-+ float ratio= -1;
-+ char * font_list_copy;
-+ char * font_name;
-+
-+ astrcpy (font_list_copy, font_list);
-+ font_name = strtok (font_list_copy, ",<>;");
-+
-+ ratio = pair_get_ratio (encoding->composite, font_name);
-+ if (ratio<0)
-+ ratio = pair_get_ratio (encoding->composite, "default_composite__");
-+ return ratio;
-+}
-+
-+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;
-@@ -633,6 +748,66 @@
- subs = token2;
- encoding_add_font_substitute (encoding, orig, subs);
- }
-+ else if (strequ (token, "DefaultComposite:"))
-+ {
-+ char * orig, * subs;
-+ int wx;
-+ float ratio;
-+
-+ 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 ();
-+ ratio = atof(token2);
-+ encoding_add_composite_font(encoding, "default_composite__",
-+ subs, wx, ratio);
-+ }
-+ else if (strequ (token, "Composite:"))
-+ {
-+ char * orig, * subs;
-+ int wx;
-+ float ratio;
-+
-+ 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 ();
-+ ratio = atof(token2);
-+ encoding_add_composite_font(encoding, orig, subs, wx, ratio);
-+ }
-+ else if (strequ (token, "SlantFont:"))
-+ {
-+ char * new, * src;
-+ float ratio;
-+ 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 ();
-+ ratio = 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, ratio);
-+ }
- else
- error_at_line (1, 0, fname, firstline,
- _("invalid option `%s'"), quotearg (token));
-@@ -754,6 +929,15 @@
- }
-
- /*
-+ * 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 +950,11 @@
- 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 +973,46 @@
- * 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].ratio);
-+
-+ /*
-+ * 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_ratio[i],
-+ (encoding->composite_ratio[i] > 1.0)?
-+ 0: (1-encoding->composite_ratio[i])/2.0,
-+ (encoding->composite_ratio[i] > 1.0)?
-+ 1.0/encoding->composite_ratio[i]: 1.0 );
-+ }
- fputs ("currentdict end def\n", stream);
- }
-
-@@ -939,6 +1156,22 @@
- true_font_name,
- encoding->vector,
- encoding->faces_wx [face]);
-+
-+ if (encoding->composite_flag)
-+ {
-+ encoding->composite_ratio[i] =
-+ composite_font_info_get_ratio(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_ratio[i] < 1.0)
-+ encoding->composite_wx[i] *= encoding->composite_ratio[i];
-+ }
- }
- }
-
-@@ -1073,6 +1306,13 @@
- 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_ratio[job->status->face]);
-+}
-+
- /*
- * Returns the WX of a string (including M- and ^)
- */
-Index: b/lib/encoding.h
-===================================================================
---- a/lib/encoding.h
-+++ b/lib/encoding.h
-@@ -43,6 +43,7 @@
- */
- 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 @@
- 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));
-@@ -70,6 +72,12 @@
- PARAMS ((struct a2ps_job * job,
- 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
-Index: b/lib/pair_ht.c
-===================================================================
---- a/lib/pair_ht.c
-+++ b/lib/pair_ht.c
-@@ -49,6 +49,8 @@
- {
- char * key;
- char * value;
-+ float ratio;
-+ int wx;
- };
-
- /*
-@@ -165,6 +167,37 @@
- }
-
- /*
-+ * 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 ratio)
-+{
-+ 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->ratio = ratio;
-+ }
-+
-+ 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 @@
- 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_ratio (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->ratio;
-+ else
-+ return -1;
-+}
-+
- /*
- * Return the content of the hash table, ordered
- */
-Index: b/lib/pair_ht.h
-===================================================================
---- a/lib/pair_ht.h
-+++ b/lib/pair_ht.h
-@@ -56,6 +56,10 @@
- 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 ratio));
-+
- /*
- * The key and value of the matching item will be free'd
- * (No problem if KEY matches nothing)
-@@ -68,6 +72,10 @@
- */
- 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_ratio PARAMS ((struct pair_htable * table,
-+ const char * key));
-
- void pair_table_list_short PARAMS ((struct pair_htable * table,
- FILE * stream));
-Index: b/lib/psgen.c
-===================================================================
---- a/lib/psgen.c
-+++ b/lib/psgen.c
-@@ -875,6 +875,7 @@
- print:
- default:
- {
-+ static mb_flag= 0;
- uchar buf[256];
- int nchars;
- *buf = '\0';
-@@ -889,6 +890,29 @@
- 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 @@
- return;
- }
- }
-+ }
- output (jdiv, "%s", buf);
-- job->status->chars++;
-+ job->status->chars+=nchars;
- }
- break;
- }
-Index: b/ps/base.ps
-===================================================================
---- a/ps/base.ps
-+++ b/ps/base.ps
-@@ -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 strings
-+% Version 1.2 1/31/1990
-+% Original 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 (<string> # -)
- /# {
- gsave
diff --git a/debian/patches/03_koi8_fonts_debian.diff b/debian/patches/03_koi8_fonts_debian.diff
deleted file mode 100644
index c9bfcbf..0000000
--- a/debian/patches/03_koi8_fonts_debian.diff
+++ /dev/null
@@ -1,58 +0,0 @@
-## 03_koi8_fonts_debian.dpatch by Masayuki Hatta <mhatta@debian.org>
-
-Index: b/encoding/koi8.edf
-===================================================================
---- a/encoding/koi8.edf
-+++ b/encoding/koi8.edf
-@@ -1,6 +1,7 @@
- # Description of the KOI8 encoding
- # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
- # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-+# Copyright (c) 2002 Vyacheslav E. Sidin
- #
-
- #
-@@ -27,27 +28,26 @@
- Name: KOI8
-
- Documentation
--KOI-8 (+Λλ) is a subset of ISO-IR-111 that can be used in Serbia, Belarus
-+KOI-8 (+ͺ³«³) is a subset of ISO-IR-111 that can be used in Serbia, Belarus
- etc.
- EndDocumentation
-
--# Regular fonts don't support Cyrillic glyphs
--Default: CourierISOC
-+Default: Courier
-
--Substitute: Courier CourierISOC
--Substitute: Courier-Bold CourierISOC-Bold
--Substitute: Courier-BoldOblique CourierISOC-BoldOblique
--Substitute: Courier-Oblique CourierISOC-Oblique
--
--Substitute: Times-Roman College
--Substitute: Times-Bold College-Bold
--Substitute: Times-Italic College-Italic
--Substitute: Times-BoldItalic College-Italic
--
--Substitute: Helvetica Textbook
--Substitute: Helvetica-Bold Textbook-Bold
--Substitute: Helvetica-Oblique Textbook-Italic
--Substitute: Helvetica-BoldOblique Textbook-Italic
-+Substitute: Courier NimbusMonCYR-Regu
-+Substitute: Courier-Bold NimbusMonCYR-Bold
-+Substitute: Courier-BoldOblique NimbusMonCYR-BoldObli
-+Substitute: Courier-Oblique NimbusMonCYR-ReguObli
-+
-+Substitute: Times-Roman NimbusRomanCYR-Regu
-+Substitute: Times-Bold NimbusRomanCYR-Medi
-+Substitute: Times-Italic NimbusRomanCYR-ReguItal
-+Substitute: Times-BoldItalic NimbusRomanCYR-MediItal
-+
-+Substitute: Helvetica NimbusSansCYR-Regu
-+Substitute: Helvetica-Bold NimbusSansCYR-Bold
-+Substitute: Helvetica-Oblique NimbusSansCYR-ReguObli
-+Substitute: Helvetica-BoldOblique NimbusSansCYR-BoldObli
-
- Vector:
- .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
diff --git a/debian/patches/04_lp_lpr_workaround.diff b/debian/patches/04_lp_lpr_workaround.diff
deleted file mode 100644
index e8c6ebf..0000000
--- a/debian/patches/04_lp_lpr_workaround.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-## 04_lp_lpr_workaround.dpatch by Per Olofsson <pelle@debian.org>
-
-Index: b/etc/a2ps_cfg.in
-===================================================================
---- a/etc/a2ps_cfg.in
-+++ b/etc/a2ps_cfg.in
-@@ -413,13 +413,13 @@
- # with a hook to post-process PostScript (to call psbook for instance).
- # Something like `#{lp.hook} lp #{lp.options}'
- # or `#{lp.hook} lpr #{lp.options}'.
--Variable: lp.default #{lp.hook} @LPR@ #{lp.options}
-+Variable: lp.default #{lp.hook} a2ps-lpr-wrapper #{lp.options}
-
-
- # The same, but when a printer is specified.
- # Something like `#{lp.hook} lp #{lp.options} -d'
- # or `#{lp.hook} lpr #{lp.options} -P'.
--Variable: lp #{lp.hook} @LPR@ #{lp.options} @LPR_QUEUE_OPTION@
-+Variable: lp #{lp.hook} a2ps-lpr-wrapper #{lp.options} -d
-
-
- # To avoid that the next installation of a2ps destroys your
diff --git a/debian/patches/05_no_acroread_for_pdf.diff b/debian/patches/05_no_acroread_for_pdf.diff
deleted file mode 100644
index 9b76578..0000000
--- a/debian/patches/05_no_acroread_for_pdf.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-## 05_no_acroread_for_pdf.dpatch by Masayuki Hatta <mhatta@debian.org>
-
-Index: b/etc/a2ps_cfg.in
-===================================================================
---- a/etc/a2ps_cfg.in
-+++ b/etc/a2ps_cfg.in
-@@ -291,8 +291,8 @@
- @COM_PSUTILS@@COM_pdf2ps@Delegation: pdf2ps pdf:ps \
- @COM_PSUTILS@@COM_pdf2ps@ @pdf2ps@ '$f' #f0 && #{del.psselect} #f0 | #{del.psnup}
- # Delegated to AcrobatReader
--@COM_PSUTILS@@COM_acroread@Delegation: Acrobat pdf:ps \
--@COM_PSUTILS@@COM_acroread@ #{del.acroread} < '$f' | #{del.psselnup}
-+#@COM_PSUTILS@@COM_acroread@Delegation: Acrobat pdf:ps \
-+#@COM_PSUTILS@@COM_acroread@ #{del.acroread} < '$f' | #{del.psselnup}
-
- ########## PostScript files
- # Pass the PostScript files to psnup and psselect
diff --git a/debian/patches/06-encoding.diff b/debian/patches/06-encoding.diff
index ce9ac05..1b10766 100644
--- a/debian/patches/06-encoding.diff
+++ b/debian/patches/06-encoding.diff
@@ -1,25 +1,3 @@
---- a/doc/encoding.texi
-+++ b/doc/encoding.texi
-@@ -3,6 +3,10 @@
- US-ASCII.
- @end deftp
-
-+@deftp {Encoding} {EUC-JP} (@file{euc-jp.edf})
-+The EUC-JP encoding is a 8-bit character set widely used in Japan.
-+@end deftp
-+
- @deftp {Encoding} {HPRoman} (@file{hp.edf})
- The 8 bits Roman encoding for HP.
- @end deftp
-@@ -110,7 +114,7 @@
- @end deftp
-
- @deftp {Encoding} {KOI8} (@file{koi8.edf})
--KOI-8 (+Λλ) is a subset of ISO-IR-111 that can be used in Serbia, Belarus
-+KOI-8 is a subset of ISO-IR-111 that can be used in Serbia, Belarus
- etc.
- @end deftp
-
--- a/doc/sheets.texi
+++ b/doc/sheets.texi
@@ -382,7 +382,7 @@
diff --git a/debian/patches/07_a2ps_info.diff b/debian/patches/07_a2ps_info.diff
deleted file mode 100644
index b829f66..0000000
--- a/debian/patches/07_a2ps_info.diff
+++ /dev/null
@@ -1,204 +0,0 @@
---- a/doc/a2ps.info
-+++ b/doc/a2ps.info
-@@ -3325,6 +3325,9 @@
- -- Encoding: ASCII (`ascii.edf')
- US-ASCII.
-
-+ -- Encoding: EUC-JP (`euc-jp.edf')
-+ The EUC-JP encoding is a 8-bit character set widely used in Japan.
-+
- -- Encoding: HPRoman (`hp.edf')
- The 8 bits Roman encoding for HP.
-
-@@ -7351,98 +7354,98 @@
- Node: Encoding Map File112804
- Node: Encoding Description Files113618
- Node: Some Encodings116243
--Node: Pretty Printing121283
--Node: Syntactic limits122373
--Node: Known Style Sheets122796
--Node: Type Setting Style Sheets151085
--Node: Symbol151697
--Node: PreScript152237
--Node: Syntax153130
--Node: PreScript Commands153844
--Node: PreScript examples155254
--Node: PreTeX155609
--Node: Special characters155936
--Node: PreTeX Commands156626
--Node: Differences with LaTeX158074
--Node: TeXScript159018
--Node: Faces160493
--Node: Style sheets semantics161927
--Node: Name and key162775
--Node: Comments163613
--Node: Alphabets163977
--Node: Case sensitivity164483
--Node: P-Rules164743
--Node: Sequences167697
--Node: Optional entries168196
--Node: Style Sheets Implementation168611
--Node: A Bit of Syntax169653
--Node: Style Sheet Header173117
--Node: Syntax of the Words174714
--Node: Inheriting175704
--Node: Syntax for the P-Rules176661
--Node: Declaring keywords and operators178680
--Node: Declaring sequences181021
--Node: Checking a Style Sheet183892
--Node: A tutorial on style sheets184993
--Node: Example and syntax185803
--Node: Implementation187064
--Node: The Entry in sheets.map190533
--Node: More Sophisticated Rules191417
--Node: Distributed Style Sheets193619
--Node: PostScript195261
--Node: Good and Bad PostScript195849
--Node: Page Device Options199644
--Node: Statusdict Options200886
--Node: Colors in PostScript201925
--Node: a2ps PostScript Files202859
--Node: Designing PostScript Prologues203324
--Node: Definition of the faces204225
--Node: Prologue File Format205714
--Node: A prologue example206287
--Node: Contributions208283
--Node: card209071
--Node: Invoking card209861
--Node: Caution when Using card211452
--Node: fixps211944
--Node: Invoking fixps212574
--Node: fixnt214043
--Node: Invoking fixnt214653
--Node: pdiff214863
--Node: Invoking pdiff215333
--Node: psmandup216386
--Node: Invoking psmandup216966
--Ref: Invoking psmandup-Footnote-1219022
--Node: psset219204
--Node: Invoking psset219812
--Node: FAQ222612
--Node: Why Does ...?223176
--Node: It Prints Nothing223699
--Node: It Prints in Simplex224879
--Node: It Prints in Duplex225695
--Node: It Does Not Fit on the Paper226403
--Node: It Prints Junk226980
--Node: It Says my File is Binary227826
--Node: It Refuses to Change the Font Size229537
--Node: How Can I ...?230354
--Node: Leave Room for Binding230898
--Node: Print stdin231149
--Node: Change the Fonts231766
--Node: The Old Option -b?232085
--Node: Pass Options to lpr232583
--Node: Non PostScript Printers233327
--Node: Man Pages with Underlines235176
--Node: Please tell me...235537
--Node: Is a2ps Y2K compliant?235916
--Ref: Is a2ps Y2K compliant?-Footnote-1236542
--Node: The Options Have Changed236561
--Node: Why not using yacc237636
--Node: Why do you not use mozilla238778
--Node: Glossary239206
--Node: Genesis249342
--Node: History249702
--Node: Thanks250501
--Node: Translators252536
--Node: Copying254153
--Node: Concept Index255982
-+Node: Pretty Printing121394
-+Node: Syntactic limits122484
-+Node: Known Style Sheets122907
-+Node: Type Setting Style Sheets151196
-+Node: Symbol151808
-+Node: PreScript152348
-+Node: Syntax153241
-+Node: PreScript Commands153955
-+Node: PreScript examples155365
-+Node: PreTeX155720
-+Node: Special characters156047
-+Node: PreTeX Commands156737
-+Node: Differences with LaTeX158185
-+Node: TeXScript159129
-+Node: Faces160604
-+Node: Style sheets semantics162038
-+Node: Name and key162886
-+Node: Comments163724
-+Node: Alphabets164088
-+Node: Case sensitivity164594
-+Node: P-Rules164854
-+Node: Sequences167808
-+Node: Optional entries168307
-+Node: Style Sheets Implementation168722
-+Node: A Bit of Syntax169764
-+Node: Style Sheet Header173228
-+Node: Syntax of the Words174825
-+Node: Inheriting175815
-+Node: Syntax for the P-Rules176772
-+Node: Declaring keywords and operators178791
-+Node: Declaring sequences181132
-+Node: Checking a Style Sheet184003
-+Node: A tutorial on style sheets185104
-+Node: Example and syntax185914
-+Node: Implementation187175
-+Node: The Entry in sheets.map190644
-+Node: More Sophisticated Rules191528
-+Node: Distributed Style Sheets193730
-+Node: PostScript195372
-+Node: Good and Bad PostScript195960
-+Node: Page Device Options199755
-+Node: Statusdict Options200997
-+Node: Colors in PostScript202036
-+Node: a2ps PostScript Files202970
-+Node: Designing PostScript Prologues203435
-+Node: Definition of the faces204336
-+Node: Prologue File Format205825
-+Node: A prologue example206398
-+Node: Contributions208394
-+Node: card209182
-+Node: Invoking card209972
-+Node: Caution when Using card211563
-+Node: fixps212055
-+Node: Invoking fixps212685
-+Node: fixnt214154
-+Node: Invoking fixnt214764
-+Node: pdiff214974
-+Node: Invoking pdiff215444
-+Node: psmandup216497
-+Node: Invoking psmandup217077
-+Ref: Invoking psmandup-Footnote-1219133
-+Node: psset219315
-+Node: Invoking psset219923
-+Node: FAQ222723
-+Node: Why Does ...?223287
-+Node: It Prints Nothing223810
-+Node: It Prints in Simplex224990
-+Node: It Prints in Duplex225806
-+Node: It Does Not Fit on the Paper226514
-+Node: It Prints Junk227091
-+Node: It Says my File is Binary227937
-+Node: It Refuses to Change the Font Size229648
-+Node: How Can I ...?230465
-+Node: Leave Room for Binding231009
-+Node: Print stdin231260
-+Node: Change the Fonts231877
-+Node: The Old Option -b?232196
-+Node: Pass Options to lpr232694
-+Node: Non PostScript Printers233438
-+Node: Man Pages with Underlines235287
-+Node: Please tell me...235648
-+Node: Is a2ps Y2K compliant?236027
-+Ref: Is a2ps Y2K compliant?-Footnote-1236653
-+Node: The Options Have Changed236672
-+Node: Why not using yacc237747
-+Node: Why do you not use mozilla238889
-+Node: Glossary239317
-+Node: Genesis249453
-+Node: History249813
-+Node: Thanks250612
-+Node: Translators252647
-+Node: Copying254264
-+Node: Concept Index256093
- 
- End Tag Table
diff --git a/debian/patches/08_man.diff b/debian/patches/08_man.diff
deleted file mode 100644
index 65c72c7..0000000
--- a/debian/patches/08_man.diff
+++ /dev/null
@@ -1,60 +0,0 @@
-Index: b/man/a2ps.x
-===================================================================
---- a/man/a2ps.x
-+++ b/man/a2ps.x
-@@ -2,4 +2,4 @@
- a2ps \- format files for printing on a PostScript printer
-
- [DESCRIPTION]
--." Add any additional description here
-+.\" Add any additional description here
-Index: b/man/card.x
-===================================================================
---- a/man/card.x
-+++ b/man/card.x
-@@ -2,4 +2,4 @@
- card \- print reference card of program options
-
- [DESCRIPTION]
--." Add any additional description here
-+.\" Add any additional description here
-Index: b/man/fixps.x
-===================================================================
---- a/man/fixps.x
-+++ b/man/fixps.x
-@@ -2,4 +2,4 @@
- fixps \- sanitize PostScript files
-
- [DESCRIPTION]
--." Add any additional description here
-+.\" Add any additional description here
-Index: b/man/pdiff.x
-===================================================================
---- a/man/pdiff.x
-+++ b/man/pdiff.x
-@@ -2,4 +2,4 @@
- pdiff \- produce a pretty comparison between files
-
- [DESCRIPTION]
--." Add any additional description here
-+.\" Add any additional description here
-Index: b/man/psmandup.x
-===================================================================
---- a/man/psmandup.x
-+++ b/man/psmandup.x
-@@ -2,4 +2,4 @@
- psmandup \- print duplex on non duplex printers
-
- [DESCRIPTION]
--." Add any additional description here
-+.\" Add any additional description here
-Index: b/man/psset.x
-===================================================================
---- a/man/psset.x
-+++ b/man/psset.x
-@@ -2,4 +2,4 @@
- psset \- insert page device request in PostScript files
-
- [DESCRIPTION]
--." Add any additional description here
-+.\" Add any additional description here
diff --git a/debian/patches/09_CVE-2001-1593.diff b/debian/patches/09_CVE-2001-1593.diff
deleted file mode 100644
index 17b7e7d..0000000
--- a/debian/patches/09_CVE-2001-1593.diff
+++ /dev/null
@@ -1,69 +0,0 @@
-Index: b/lib/routines.c
-===================================================================
---- a/lib/routines.c
-+++ b/lib/routines.c
-@@ -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;
-+}
-Index: b/lib/routines.h
-===================================================================
---- a/lib/routines.h
-+++ b/lib/routines.h
-@@ -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/debian/patches/CVE-2014-0466.diff b/debian/patches/CVE-2014-0466.diff
deleted file mode 100644
index 85199e3..0000000
--- a/debian/patches/CVE-2014-0466.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-Description: CVE-2014-0466: fixps does not invoke gs with -dSAFER
- A malicious PostScript file could delete files with the privileges of
- the invoking user.
-Origin: vendor
-Bug-Debian: http://bugs.debian.org/742902
-Author: Salvatore Bonaccorso <carnil@debian.org>
-Last-Update: 2014-03-28
-
---- a/contrib/fixps.in
-+++ b/contrib/fixps.in
-@@ -389,7 +389,7 @@
- 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
---- a/contrib/fixps.m4
-+++ b/contrib/fixps.m4
-@@ -307,7 +307,7 @@
- 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/debian/patches/doca2ps.texi-remove-dates-from-generated.patch b/debian/patches/doca2ps.texi-remove-dates-from-generated.patch
new file mode 100644
index 0000000..3ce02a9
--- /dev/null
+++ b/debian/patches/doca2ps.texi-remove-dates-from-generated.patch
@@ -0,0 +1,29 @@
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Tue, 29 Dec 2020 07:52:21 +0000
+X-Dgit-Generated: 1:4.14-6 2a97e1ccbcc82182cf631cbc5d4d2a86a5483b16
+Subject: doc/a2ps.texi: Remove dates from generated documentation. (Closes: #978610)
+
+
+---
+
+--- a2ps-4.14.orig/doc/a2ps.texi
++++ a2ps-4.14/doc/a2ps.texi
+@@ -103,7 +103,7 @@ approved by the author.
+ @titlepage
+ @title GNU a2ps, version @value{VERSION}
+ @subtitle General Purpose PostScript Generating Utility
+-@subtitle Edition @value{EDITION}, @value{UPDATED}
++@subtitle Edition @value{EDITION}
+ @author Akim Demaille
+ @author Miguel Santana
+
+@@ -141,8 +141,7 @@ GNU @pack{} is a filter which generates
+ with pretty-printing features, strong support for many alphabets, and
+ customizable layout.
+
+-This is Edition @value{VERSION} of the @pack{} documentation, updated
+-@value{UPDATED}.
++This is Edition @value{VERSION} of the @pack{} documentation.
+
+ @menu
+ * Introduction:: Foreword
diff --git a/debian/patches/etcmakefile.-pass-arguments-to-date-to-s.patch b/debian/patches/etcmakefile.-pass-arguments-to-date-to-s.patch
new file mode 100644
index 0000000..a9dfe87
--- /dev/null
+++ b/debian/patches/etcmakefile.-pass-arguments-to-date-to-s.patch
@@ -0,0 +1,34 @@
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Tue, 29 Dec 2020 07:16:56 +0000
+Subject: etc/Makefile.*: Pass arguments to date to support SOURCE_DATE_EPOCH
+ when generating README. (Closes: #978610)
+
+---
+ etc/Makefile.am | 2 +-
+ etc/Makefile.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/etc/Makefile.am b/etc/Makefile.am
+index fa53029..400b9ca 100644
+--- a/etc/Makefile.am
++++ b/etc/Makefile.am
+@@ -59,5 +59,5 @@ a2ps.cfg: a2ps_cfg Makefile
+
+ # Building a timestamp to know the version.
+ README: README.in Makefile
+- sed "s!@date@!`date`!g;s!@version@!$(VERSION)!g" \
++ sed "s!@date@!`LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH)`!g;s!@version@!$(VERSION)!g" \
+ $(srcdir)/README.in > README
+diff --git a/etc/Makefile.in b/etc/Makefile.in
+index 9264bf7..c4a45cc 100644
+--- a/etc/Makefile.in
++++ b/etc/Makefile.in
+@@ -1663,7 +1663,7 @@ a2ps.cfg: a2ps_cfg Makefile
+
+ # Building a timestamp to know the version.
+ README: README.in Makefile
+- sed "s!@date@!`date`!g;s!@version@!$(VERSION)!g" \
++ sed "s!@date@!`LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH)`!g;s!@version@!$(VERSION)!g" \
+ $(srcdir)/README.in > README
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/debian/patches/fix-bad-free.diff b/debian/patches/fix-bad-free.diff
deleted file mode 100644
index 435c421..0000000
--- a/debian/patches/fix-bad-free.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: b/lib/encoding.c
-===================================================================
---- a/lib/encoding.c
-+++ b/lib/encoding.c
-@@ -538,7 +538,9 @@
- {
- /* Find if there is a substitute for that font */
- res = pair_get (encoding->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/debian/patches/fix-format-security.diff b/debian/patches/fix-format-security.diff
deleted file mode 100644
index 90703b6..0000000
--- a/debian/patches/fix-format-security.diff
+++ /dev/null
@@ -1,78 +0,0 @@
-Index: b/lib/psgen.c
-===================================================================
---- a/lib/psgen.c
-+++ b/lib/psgen.c
-@@ -232,7 +232,7 @@
- default:
- *buf = '\0';
- ps_escape_char (job, cp[i], buf);
-- output (jdiv, (char *) buf);
-+ output (jdiv, "%s", (char *) buf);
- break;
- }
- }
-Index: b/lib/output.c
-===================================================================
---- a/lib/output.c
-+++ b/lib/output.c
-@@ -525,7 +525,7 @@
- expand_user_string (job, FIRST_FILE (job),
- (const uchar *) "Expand: requirement",
- (const uchar *) token));
-- output (dest, expansion);
-+ output (dest, "%s", expansion);
- continue;
- }
-
-Index: b/lib/parseppd.y
-===================================================================
---- a/lib/parseppd.y
-+++ b/lib/parseppd.y
-@@ -154,7 +154,7 @@
- void
- yyerror (const char *msg)
- {
-- error_at_line (1, 0, ppdfilename, ppdlineno, msg);
-+ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg);
- }
-
- /*
-Index: b/src/parsessh.y
-===================================================================
---- a/src/parsessh.y
-+++ b/src/parsessh.y
-@@ -740,7 +740,7 @@
- void
- yyerror (const char *msg)
- {
-- error_at_line (1, 0, sshfilename, sshlineno, msg);
-+ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg);
- }
-
- /*
-Index: b/lib/parseppd.c
-===================================================================
---- a/lib/parseppd.c
-+++ b/lib/parseppd.c
-@@ -1707,7 +1707,7 @@
- void
- yyerror (const char *msg)
- {
-- error_at_line (1, 0, ppdfilename, ppdlineno, msg);
-+ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg);
- }
-
- /*
-Index: b/src/parsessh.c
-===================================================================
---- a/src/parsessh.c
-+++ b/src/parsessh.c
-@@ -2639,7 +2639,7 @@
- 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/debian/patches/fix-texi-build.diff b/debian/patches/fix-texi-build.diff
deleted file mode 100644
index 328658f..0000000
--- a/debian/patches/fix-texi-build.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: b/doc/a2ps.texi
-===================================================================
---- a/doc/a2ps.texi
-+++ b/doc/a2ps.texi
-@@ -22,12 +22,12 @@
- @c `a2ps'. Avoid those quotes.
- @iftex
- @macro pack
--@code{@value{PACKAGE}}@c
-+@code{@value{PACKAGE}}
- @end macro
- @end iftex
- @ifnottex
- @macro pack
--@value{PACKAGE}@c
-+@value{PACKAGE}
- @end macro
- @end ifnottex
-
diff --git a/debian/patches/series b/debian/patches/series
index c068781..79c2a2f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,13 +1,3 @@
-01_a2ps_el_path_fix.diff
-02_composite_fonts.diff
-03_koi8_fonts_debian.diff
-04_lp_lpr_workaround.diff
-05_no_acroread_for_pdf.diff
06-encoding.diff
-07_a2ps_info.diff
-08_man.diff
-09_CVE-2001-1593.diff
-fix-bad-free.diff
-fix-format-security.diff
-fix-texi-build.diff
-CVE-2014-0466.diff
+etcmakefile.-pass-arguments-to-date-to-s.patch
+doca2ps.texi-remove-dates-from-generated.patch
diff --git a/debian/rules b/debian/rules
index f6cdda3..dfc37cc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,55 +1,39 @@
#!/usr/bin/make -f
-# pass configure options minus --runstatedir
-prefix=/usr
-configure_options += --host=$(DEB_HOST_GNU_TYPE)
-configure_options += --build=$(DEB_BUILD_GNU_TYPE)
-configure_options += --prefix=$(prefix)
-configure_options += --includedir=$(prefix)/include
-configure_options += --mandir=$(prefix)/share/man
-configure_options += --infodir=$(prefix)/share/info
-configure_options += --sysconfdir=/etc
-configure_options += --localstatedir=/var
-configure_options += --disable-option-checking
-configure_options += --disable-silent-rules
-configure_options += --libdir=$(prefix)/lib/$(DEB_HOST_MULTIARCH)
-configure_options += --disable-maintainer-mode
-configure_options += --disable-dependency-tracking
-
%:
- dh $@ --without autoreconf
-
-override_dh_auto_configure:
- ./configure $(configure_options)
+ dh $@
-override_dh_auto_build:
- dh_auto_build
+execute_after_dh_auto_build:
/usr/bin/docbook-to-man debian/manpages/a2ps-lpr-wrapper.sgml > debian/manpages/a2ps-lpr-wrapper.1
+ # Regenerate .gmo files
+ $(MAKE) dist
override_dh_auto_clean:
- dh_auto_clean
+ [ ! -f Makefile ] || dh_auto_clean
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) distclean
# Seems make distclean is not thorough enough...
+ rm -f configure Makefile.in
rm -f ogonkify/ogonkify afm/fonts.map.new
rm -f contrib/card contrib/fixps contrib/pdiff \
contrib/psmandup contrib/psset
-
+ # Side effect of calling "make dist"
+ rm -f ./a2ps-*.tar.gz
+ # Other misc files
rm -rf lib/*.o lib/.libs
- rm -rf po/*.gmo
+ rm -rf po/*.gmo po-gnulib/*.gmo
rm -f src/*.o src/a2ps
rm -f contrib/sample/sample contrib/*.o contrib/emacs/a2ps-print.elc \
contrib/emacs/a2ps.elc contrib/fixnt
rm -f debian/manpages/a2ps-lpr-wrapper.1
-override_dh_auto_install:
- dh_auto_install
+execute_after_dh_auto_install:
# Install a2ps-lpr-wrapper
install -m 755 $(CURDIR)/debian/a2ps-lpr-wrapper $(CURDIR)/debian/a2ps/usr/bin
-
+ #
# Install *.el by hand
install -m 644 $(CURDIR)/contrib/emacs/*.el $(CURDIR)/debian/a2ps/usr/share/emacs/site-lisp/a2ps
-
+ #
# Remove unnecessary stuff
rm -rf $(CURDIR)/debian/a2ps/usr/lib
rm -rf $(CURDIR)/debian/a2ps/usr/include
@@ -69,3 +53,6 @@ override_dh_installman:
override_dh_auto_test:
# Test suite was not run on previous versions; run it but accept failures
dh_auto_test || echo 'WARNING: Some tests failed!'
+
+override_dh_installmime:
+
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
new file mode 100644
index 0000000..200579f
--- /dev/null
+++ b/debian/upstream/signing-key.asc
@@ -0,0 +1,48 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+3WYbebtJ02wGwkqdpowIhQ==
+=yBeH
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian/watch b/debian/watch
index a7112ae..32d32da 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,2 +1,3 @@
version=4
-https://ftp.gnu.org/gnu/a2ps/a2ps-(\d\S+)\.tar\.(?:bz2|gz|xz)
+opts="pgpmode=auto" \
+ https://ftp.gnu.org/gnu/a2ps/a2ps-(\d\S+)\.tar\.(?:bz2|gz|xz)