summaryrefslogtreecommitdiff
path: root/app-text/mpage
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-text/mpage
reinit the tree, so we can have metadata
Diffstat (limited to 'app-text/mpage')
-rw-r--r--app-text/mpage/Manifest9
-rw-r--r--app-text/mpage/files/01_previous_changes.patch740
-rw-r--r--app-text/mpage/files/10_bts354935_fix_fontdefs.patch39
-rw-r--r--app-text/mpage/files/20_bts416573_manpage_fixes.patch628
-rw-r--r--app-text/mpage/files/30_bts443280_libdir_manpage.patch22
-rw-r--r--app-text/mpage/metadata.xml5
-rw-r--r--app-text/mpage/mpage-2.5.6-r1.ebuild38
7 files changed, 1481 insertions, 0 deletions
diff --git a/app-text/mpage/Manifest b/app-text/mpage/Manifest
new file mode 100644
index 000000000000..cf3fd962ab65
--- /dev/null
+++ b/app-text/mpage/Manifest
@@ -0,0 +1,9 @@
+AUX 01_previous_changes.patch 21005 SHA256 ccba0b10a967c562cc5335477404994471aba2f4559870a689c93f776196504e SHA512 6c59dbc87380f938ca0ee0956d17c00a6d9284414bffd69e457e4ccefd481ab9e3a382ec12adab2e4871b083b2de8ca6045c698a85130d8115e10ba0e61a0e48 WHIRLPOOL 4e48d9d9f734d74f4d63a1641da3aa4987f39d49379bc0c838df1c15d5080526d0bb929c3c9d392562093493531aba3c929ffcba46a0ebde10a123b1d07250af
+AUX 10_bts354935_fix_fontdefs.patch 2348 SHA256 63a780d61e840493f1bb12f62437dd8747d34522a65ce805ba0b6dc1c1453150 SHA512 4d41ba2278e7be9c279b9525de4f72a5f0132fb2830fb2e14c999218d04ced22b388363a340dfc333aa6cf1ec50baf16841f6be9d4f532f46a0fc318b6eac039 WHIRLPOOL 4ace1e22d74c40aec9c8964ad6ea5cf1b8b62c2b16f49bcb99922ffcc1fd5a0fc117f1f4a91e3c74f0ca8b67a648597916686e8846afac91189345aba06c9e99
+AUX 20_bts416573_manpage_fixes.patch 17151 SHA256 07b7b0429e63164b276b5b9b10f8a46f0f460d63183d4151e727e61eea2f4067 SHA512 11be64f9a200b2ec8ce547960da320677e19b8b0c30627b989b879e0369886fe72e75004286aad0def759603239539052478549299ad57fe5f3eb6a40356b7c9 WHIRLPOOL 691c267ba9b7b42e6efc02f14139fbc82b598e589137cd77533fbad468a81fe999f625bed8d122ac4761e8dcadc5b4b7c221687bee7d45fcab3165965b8f85d2
+AUX 30_bts443280_libdir_manpage.patch 741 SHA256 59db3c5e0188ae45ed5b3ecc6c548e4088abdc60267158b4dd37f25e40b15e38 SHA512 2c5efe3bf0e26ffa08085a230b44aaddc7256a8a946c151b7fefde2ccde0b410221d878b5d543c7fc878bc7ccf7c7dcc567d8f9b2de5ed728257951505d66bba WHIRLPOOL 000ea81d8ceef7bd3162706c071c5fe24ea89b30237bada911dc45cd99a604ef5d41e812b9dc5b16104bc90f0cc2625bb3d76abe0167602f8ccf43c1d6be0c89
+DIST mpage-2.5.6.tgz 86748 SHA256 4fe66dfc27f7c4bfbca60ef617f968aa2e6ee877e8921aa968c16a03aa4edc04 SHA512 79a51d0fa08848b22f758e8bc3f57680d33492d261a0061c6cce002c3cb5f129a78221d2af1749c79d4e46385136d9996294499531e60e8fc501f9fd61f8077d WHIRLPOOL 9d7abfd66ba0faf53a18f9dc59d1566d22364f9a7b0593a149cae1d2e781f4c104dfcd984da63081b9276811f9832829d8feab1ad41040070ca8c7378e96f7cf
+EBUILD mpage-2.5.6-r1.ebuild 884 SHA256 36ce34e3e923e7860d4fecf317ba2dc3c6c915c07c8d7f8fffb61ff5ea5672b6 SHA512 6c82b323a350126f1a5aa656053dc143850cf531e52778e5facdfca517516483e781445bbe975705db403380e542527f23d6e7e083ee7593d910986f99971c9c WHIRLPOOL 36135b7f79624a8b84d8226ef46d18129b47fc7884948125e4bd631dddb3e9aa5eb86fca982f06c6faf5f2f53093b815c9735465ed79cdbca3dfcc08bdeab72e
+MISC ChangeLog 2685 SHA256 c88e0c620fcff40cd2be0cae4181c362205093496dc67275b8f02664fe780282 SHA512 904315a52f9abbe7927fb1ff90308d0a9105ce64df924e02c518320aac41c4e461f99857eb2ce3ba197c13b24e153e4902f1a4444ffa98f35d665e0cae61756b WHIRLPOOL f0c37cad102d146c61b927534f2433b0d5d209f218d68b2c7eeae4ae9eaa9e34788aefcdab47a9350e74918881394bd5ab777d55048914ca32f24d5f42810d7b
+MISC ChangeLog-2015 3923 SHA256 927f48d0c50fc74ab9d085b7a54e9428607dec2643b89be01e962339d13bd06f SHA512 66aec295988fbb68d1dc72d279d4e1fca98f7da63b652881305324c3ddea96655daf3430875efb99f481cca21aff7900553c1e46583faf78649373fde2008606 WHIRLPOOL 3f87c61cba58aad7f278a23affaa934aeebb877f12736b4b64f67d748c803aefc015578998168994c3031e6f98eda75aaeafa575160191b80446fc001c69d989
+MISC metadata.xml 166 SHA256 2caff447f5bd2701d8456ada5cc633c41ef4373fa4bfeabeb73599d40bcc941b SHA512 a56648c974a1d14dd4c18237532773c72057a13ab90c58b5da04f185e3c12a8bd8d5c21fb06053507f31766291a82dc7d87b34cd65fd94cfe2af7295c813ef84 WHIRLPOOL 1ff70497eca6531f0e0614c72a19f4b8e5ff486a58d369f4f0b36308d1d6b01168f9da887740e3b9f536236be251d3fe05f904d27a9233a7cf613416ba882968
diff --git a/app-text/mpage/files/01_previous_changes.patch b/app-text/mpage/files/01_previous_changes.patch
new file mode 100644
index 000000000000..9b3682547e8c
--- /dev/null
+++ b/app-text/mpage/files/01_previous_changes.patch
@@ -0,0 +1,740 @@
+Index: mpage-2.5.6/file.c
+===================================================================
+--- mpage-2.5.6.orig/file.c 2008-08-11 23:14:20.500638502 +0200
++++ mpage-2.5.6/file.c 2008-08-11 23:28:25.560795737 +0200
+@@ -363,7 +363,7 @@
+ Debug(DB_STDIN, "%%iswanted: opt_first[i]: %d\n", opt_first[i]);
+ Debug(DB_STDIN, "%%iswanted: opt_alt[i]: %d\n", opt_alt[i]);
+ Debug(DB_STDIN, "%%iswanted: opt_last[i]: %d\n", opt_last[i]);
+- if ((sn >= opt_first[i] && (opt_alt[i] <= 1 || (sn - opt_first[i]) % opt_alt[i] == 0) ) &&
++ if ((sn >= opt_first[i]) && ((sn - opt_first[i]) % opt_alt[i] == 0) &&
+ (sn <= opt_last[i])) {
+ Debug(DB_STDIN, "%%iswanted: wanted page %d\n", sn);
+ ps_outpages++;
+Index: mpage-2.5.6/mpage.1.in
+===================================================================
+--- mpage-2.5.6.orig/mpage.1.in 2008-08-11 23:17:10.154306512 +0200
++++ mpage-2.5.6/mpage.1.in 2008-08-11 23:27:23.605265090 +0200
+@@ -1,4 +1,4 @@
+-.TH MPAGE Local 2008/01/14
++.TH MPAGE 1 2008/01/14
+
+ .SH NAME
+ mpage \- print multiple pages per sheet on PostScript printer
+@@ -417,17 +417,33 @@
+ .TP
+ .B -t
+ Toggle printing on both sides of the paper.
+-This will toggle duplex mode of the printer.
+++This option has 3 states: nop, yes, no, which mean:
++.BR NOP :
++ dont do anything on PostScript, so printer default will be used;
++.BR YES :
++ force printer to do duplex;
++.BR NO :
++force printer not to do it.
++If there is no -t, then the duplex is NOP. If you put some -t on
++the command line, the state toggles as "yes,no,yes,no...".
++So, if your printer is set to print, by default, in duplex mode,
++you will use "-t -t" on command line to force it to print in non-duplex mode.
+ Use this option only if your printer is capable of printing in duplex mode.
+ .RI ( default
+-off).
++NOP).
+
+ .TP
+ .B -T
+-Toggle tumble of every second pages when printing in duplex mode.
+-Use this option only if your printer is capable of printing in duplex mode
+-and together with
+-.BR -t .
++Toggle tumble of every second pages.
++This option has 3 states: nop, yes, no (with behaviour similar to -t).
++So, if your printer is set to print, by default, in duplex mode,
++with tumble on,
++you will use "-T -T" on command line to print in nontumble mode.
++Use this option only if your printer is capable of printing in duplex mode.
++With this version of mpage,
++you may use this option even if you do not use -t.
++.RI ( default
++NOP.)
+
+ .TP
+ .B -u
+@@ -546,7 +562,7 @@
+ environment variables.
+
+ .SH FILES
+-/usr/tmp/mpageXXXXXX
++/tmp/mpageXXXXXX
+ .br
+ PREFIX/share/mpage
+
+Index: mpage-2.5.6/mpage.c
+===================================================================
+--- mpage-2.5.6.orig/mpage.c 2008-08-11 23:31:51.044505584 +0200
++++ mpage-2.5.6/mpage.c 2008-08-11 23:39:12.205645922 +0200
+@@ -44,9 +44,21 @@
+ struct sheet *thesheet;
+ char outcommand[LINESIZE]; /* the command which is the output filter */
+
++ char * paper;
++
+ current_locale = setlocale(LC_ALL,"");
+
+-
++#ifdef LIBPAPER
++ paperinit();
++ paper = systempapername();
++ if (!paper)
++ {
++ fprintf(stderr,"systempapername() returned NULL! exiting\n");
++ exit(1);
++ }
++ strncpy(opt_page,paper,31);
++#endif
++
+ #ifdef __EMX__
+ /*
+ * wildcard expansion from emx package (used by OS/2)
+@@ -235,10 +247,10 @@
+ fprintf(outfd, "/mp_stm usertime def\n");
+ fprintf(outfd, "/mp_pgc statusdict begin pagecount end def\n");
+ fprintf(outfd, "statusdict begin /jobname (%s) def end\n", name);
+- if (opt_duplex) {
++ if (opt_duplex && opt_duplex != 4 ) {
+ fprintf(outfd, "statusdict /setduplexmode known");
+ fprintf(outfd, " { statusdict begin true setduplexmode end } if\n");
+- if (opt_tumble) {
++ if (opt_tumble && opt_tumble != 4 ) {
+ fprintf(outfd, "statusdict /settumble known ");
+ fprintf(outfd, "{ statusdict begin true settumble end } if\n");
+ }
+Index: mpage-2.5.6/mpage.h
+===================================================================
+--- mpage-2.5.6.orig/mpage.h 2008-08-11 23:39:40.279245746 +0200
++++ mpage-2.5.6/mpage.h 2008-08-11 23:45:02.565611800 +0200
+@@ -31,6 +31,10 @@
+ #include <limits.h>
+ #include <string.h>
+
++#ifdef LIBPAPER
++#include <paper.h>
++#endif
++
+ #define VERSION "2.5.6 Januari 2008"
+
+ #define TRUE 1
+@@ -125,10 +129,11 @@
+ /*
+ * set default page size
+ */
++#ifndef LIBPAPER
+ #if !defined(PAGE_DEF)
+ # define PAGE_DEF "A4"
+ #endif
+-
++#endif
+ /*
+ * define print spooler types
+ */
+@@ -221,9 +226,6 @@
+ extern int ps_height; /* number of points in the Y direction (11 inches) */
+ extern char * media; /* name of output page media */
+
+-
+-extern struct page_desc paper[];
+-
+ /* array of sheets where pages are ordered for coli ??? */
+ extern struct sheet coli[];
+
+@@ -280,7 +282,11 @@
+ extern int opt_width; /* number of columns to fit on reduced page */
+ extern int opt_mp_header; /* let mpage create a header */
+ extern int opt_sheetheader; /* let mpage create sheetheaders */
++#ifndef LIBPAPER
+ extern char * opt_page; /* sheets size: a4 or us letter */
++#else
++extern char opt_page[]; /* sheets size: a4 or us letter */
++#endif
+ extern int opt_fold; /* fold long lines */
+ extern int opt_outline; /* print a nice outline around pages */
+ extern int opt_verbose; /* print a count of pages sent to printer */
+Index: mpage-2.5.6/page.c
+===================================================================
+--- mpage-2.5.6.orig/page.c 2008-08-11 23:48:28.317336922 +0200
++++ mpage-2.5.6/page.c 2008-08-11 23:55:46.090284181 +0200
+@@ -21,6 +21,8 @@
+ #include "mpage.h"
+ #include "string.h"
+
++extern struct page_desc paper[];
++
+ #define PAPERSIZE_FILE "/etc/papersize"
+ void
+ check_papersize()
+@@ -59,12 +61,24 @@
+ void
+ set_page()
+ {
++#ifndef LIBPAPER
+ int i = select_pagetype(opt_page);
+
+ media = paper[i].media;
+ ps_width = paper[i].width;
+ ps_height = paper[i].height;
+-
++#else
++ struct paper * ps;
++ ps=paperinfo(opt_page);
++ if (!ps) {
++ fprintf(stderr,"%s: unknown page format: %s\n",
++ MPAGE, opt_page);
++ exit(1);
++ }
++ media = papername(ps);
++ ps_width = paperpswidth(ps);
++ ps_height = paperpsheight(ps);
++#endif
+ return;
+
+ } /* set_page */
+@@ -76,11 +90,21 @@
+ {
+ int i = 0;
+
++#ifndef LIBPAPER
+ while (paper[i].media && strcasecmp(pt, paper[i].media))
+ i++;
+ if (paper[i].media)
+ opt_page = paper[i].media;
+ else
++#else
++ struct paper * ps;
++
++ strncpy(opt_page,pt,31);
++ opt_page[31]='\0';
++
++ ps=paperinfo(opt_page);
++ if (!ps)
++#endif
+ fprintf(stderr, "%s: ignoring unknown paper type: %s\n",
+ MPAGE, pt);
+ return i;
+Index: mpage-2.5.6/FAQ
+===================================================================
+--- mpage-2.5.6.orig/FAQ 2008-08-11 23:54:21.317453255 +0200
++++ mpage-2.5.6/FAQ 2008-08-11 23:55:38.833870662 +0200
+@@ -27,3 +27,14 @@
+
+ This information is buried in the dvips manual somewhere, but is not easy
+ to find!
++
++Using mpage with magicfilter
++============================
++Andreas Jellinghaus <aj@debian.org> writes:
++
++I'm using mpage with lprng and magicfilter. My local magic filter setup
++is /usr/sbin/ljet4l-filter, and this line passes all ASCII files to mpage :
++default pipe /usr/bin/mpage -A -2
++
++I don't want to waste paper with ASCII texts. MPage also works for
++postscript files.
+Index: mpage-2.5.6/README
+===================================================================
+--- mpage-2.5.6.orig/README 2008-08-11 23:56:29.352749569 +0200
++++ mpage-2.5.6/README 2008-08-11 23:07:25.849008850 +0200
+@@ -1,28 +1,3 @@
+-
+-COPYRIGHT:
+-
+-Mpage and all the files distributed with mpage are covered by copyright:
+-
+- Copyright (c) 1994-2004 Marcel J.E. Mol, The Netherlands
+- Copyright (c) 1988 Mark P. Hahn, Herndon, Virginia
+-
+- Permission is granted to anyone to make or distribute verbatim
+- copies of this document as received, in any medium, provided
+- that this copyright notice is preserved, and that the
+- distributor grants the recipient permission for further
+- redistribution as permitted by this notice.
+-
+- marcel@mesa.nl
+- MESA Consulting B.V.
+- Nootdorp
+- The Netherlands
+- Phone: +31-15-3105252
+- Mobile:+31-6-54724868
+- Fax: +31-15-3105253
+- email: info@mesa.nl http://www.mesa.nl ftp://ftp.mesa.nl
+-
+-
+-=================================================================
+ DESCRIPTION:
+
+ Mpage is a program to reduce and print multiple pages of text per
+@@ -30,54 +5,21 @@
+ It also has limited functionality to do the same directly with postscript
+ files.
+
+-The following are the files you should have for mpage.
+-
+- README Notes and descriptions, this file
+- README.OS2 OS/2 port description
+- Copyright Copyright notice
+- CHANGES Change history
+- Makefile The Makefile
+- TODO Wish List for changes
+- FAQ Useful tips and hints
+- NEWS Global changes, User visible changes
+- Mpage.lsm LSM file for mpage
+- args.c Command line and options processing
+- encoding.h Definition of internal default character encoding
+- encoding.h.CP850 Popular for renaming to encoding.h
+- file.c Generic file handling
+- glob.c Global variable setup
+- mpage.h Definitions
+- mpage.c Main Control
+- page.c Page layout routines
+- post.c PostScript file processing
+- sample.c Prints sample page layout pages
+- text.c Text file processing
+- util.c Misc utility functions
+- mpage.1 Manual page
++The following are some of the files you should receive in the Debian
++package:
+
+ All.chars Test file containing all ASCII characters
+ Encodings Directory with character encoding library files
+ Characters List of Postscript character encoding names
+ Encoding.format Description on how to create character encoding
+ library files
+- gencodes.c Util program to build All.chars file
+- Test Directory with test pages
+-
+- OS2 Directory with simulated lpr for OS/2
+ Contrib Directory with contributions by others
+ Contrib/mfix Fix to mpage that makes it work with ArborText
+
+-
+-INSTRUCTIONS:
+-
+-All you should need to do is run make. Actually it is probably better
+-to have a look at the Makefile and to check settings like for example PAGESIZE
+-to set the default page size (e.g A4 or Letter ...).
+-This will create the programs mpage and msample. Mpage is
+-the program to print n-up pages. Msample prints a sample outline. I
+-used it for debugging the placement of the layout. It is also handy
+-for other layout purposes. It accepts all the arguments that mpage
+-does, but does not print files.
++Msample prints a sample outline. I used it for debugging the
++placement of the layout. It is also handy for other layout purposes.
++It accepts all the arguments that mpage does, but does not print
++files.
+
+ As a quick sample try:
+
+@@ -87,9 +29,16 @@
+ or
+ "groff -man mpage.1 | mpage -2"
+
++USING ENCODINGS:
+
+-The manual page, mpage.1, formats with UCB or ATT manual macros.
++Example supplied by Vassilis Virvilis. To print Greek characters, use
++the Greek fonts from http://www.csd.uch.gr/~lourakis/genscript/. Both
++enscript and a2ps embed the fonts in the generated postscript
++document. mpage utilizes the printer fonts. Therefore you will have to
++actually install the font for ghostscript. To print the Greek
++characters, use the following command:
+
++ mpage -FCourier-ISOLatinGreek -CISO-8859.7 test.txt > test.ps
+
+
+ USING MPAGE:
+Index: mpage-2.5.6/args.c
+===================================================================
+--- mpage-2.5.6.orig/args.c 2008-08-11 23:57:11.963177801 +0200
++++ mpage-2.5.6/args.c 2008-08-11 23:07:25.817007026 +0200
+@@ -91,7 +91,11 @@
+ UPDOWN : LEFTRIGHT;
+ break;
+ case 'A': /* A4 sized, european paper */
++#ifndef LIBPAPER
+ opt_page = "A4"; /* deprecated */
++#else
++ strcpy(opt_page,"a4");
++#endif
+ break;
+ case 'b': /* base paper type */
+ OPTARG();
+@@ -386,17 +390,25 @@
+ case 'S':
+ opt_square = 0;
+ break;
++// opt_duplex and opt_tumble have 3 possible values:
++// 4 : do not do anything
++// 0 : force printer to do it
++// !0 : force printer not to do it
+ case 't':
+- opt_duplex = 1 - opt_duplex;
++ opt_duplex = ! opt_duplex;
+ break;
+ case 'T':
+- opt_tumble = 1 - opt_tumble;
++ opt_tumble = ! opt_tumble;
+ break;
+ case 'u':
+ check_utf8 = 1 - check_utf8;
+ break;
+ case 'U': /* Letter sized, US paper */
++#ifndef LIBPAPER
+ opt_page = "Letter"; /* deprecated */
++#else
++ strcpy(opt_page,"letter");
++#endif
+ break;
+ case 'v': /* verbose (print page count) */
+ opt_verbose = 1 - opt_verbose;
+Index: mpage-2.5.6/glob.c
+===================================================================
+--- mpage-2.5.6.orig/glob.c 2008-08-11 23:58:11.934595375 +0200
++++ mpage-2.5.6/glob.c 2008-08-11 23:07:25.829007710 +0200
+@@ -327,7 +327,11 @@
+ int opt_lines = 0; /* lines to fit on reduced page */
+ int opt_killtrail = 1; /* Quit reading input on %%TRailer */
+ int opt_width = 0; /* columns to fit on reduced page */
++#ifndef LIBPAPER
+ char * opt_page = PAGE_DEF; /* default paper size */
++#else
++char opt_page [32]; /* default paper size */
++#endif
+ /* boolean's: set default to 0 or 1 */
+ int opt_pr = 0; /* if true use pr(1) to format output */
+ int opt_mp_header = 0; /* let mpage create headers */
+@@ -342,8 +346,12 @@
+ int opt_last[MAXJARG]; /* print as many as supplied per -j */
+ int opt_alt[MAXJARG]; /* by default print all sheets, odd+even per -j*/
+ int opt_file = 1; /* should each file appera on a new sheet */
+-int opt_duplex = DEFAULT_DUPLEX; /* duplex mode flag */
+-int opt_tumble = 0; /* tumble overy second pages */
++// opt_duplex and opt_tumble have 3 possible values:
++// 4 , aka NOP : dont do anything on PostScript,so printer default will be used
++// 0 , aka yes : force printer to do it
++// !0, aka no : force printer not to do it
++int opt_duplex = 4; /* duplex mode flag */
++int opt_tumble = 4; /* tumble overy second pages */
+ int opt_textbox = 0; /* don't normally draw box around text */
+ int opt_input = IN_AUTO; /* select input file format */
+ int opt_encoding = DEFAULT_ENCODING; /* use default encoding or not */
+@@ -420,10 +428,15 @@
+ -j Print specified sheets: first[-last][%%interval]\n\
+ -j 1-10 does first 10 sheets, -j 1%%2 prints odd ones, -j 2%%2 even ones.\n\
+ -J Set the start of the sheet page count\n\
+- -t Toggle printing both sides of the paper (Duplex mode, %s)\n\
+- -T Toggle tumble of every second pages when printing in duplex mode (off)\n",
+- fontname, opt_tabstop, PAGE_DEF, printprog, printarg,
+- opt_duplex ? "on" : "off"
+++ -t Toggle printing both sides of the paper (NOP,on,off,on...)\n\
+++ -T Toggle tumble of every second pages (NOP,on,off,on...)\n",
++ fontname, opt_tabstop,
++#ifndef LIBPAPER
++ PAGE_DEF,
++#else
++ opt_page,
++#endif
++ PAGE_DEF, printprog, printarg
+ );
+ fprintf(stderr, "\n(c) 1993-2005 Marcel Mol, marcel@mesa.nl (MESA Consulting)\n");
+
+Index: mpage-2.5.6/Contrib/psprint
+===================================================================
+--- mpage-2.5.6.orig/Contrib/psprint 2008-08-12 00:01:13.312931539 +0200
++++ mpage-2.5.6/Contrib/psprint 2008-08-11 23:07:25.825007484 +0200
+@@ -1,10 +1,9 @@
+-#!/bin/ksh -
++#!/bin/sh -
+
+ STDIN_TMP_FILE=/tmp/psprint.$$
+
+ GS=/usr/local/bin/gs
+ GSLIB=/usr/local/lib/ghostscript/3.53
+-RM=/bin/rm
+ #
+ # define print command (SYSV or BSD ish)
+ # PRINT="lp -or -s"
+@@ -20,7 +19,7 @@
+ ${GSLIB}/quit.ps
+ done
+
+-${RM} -f "${STDIN_TMP_FILE}"
++rm -f "${STDIN_TMP_FILE}"
+
+ exit 0
+
+Index: mpage-2.5.6/Encodings/ISO-8859.7
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ mpage-2.5.6/Encodings/ISO-8859.7 2008-08-11 23:07:25.853009079 +0200
+@@ -0,0 +1,231 @@
++%%%% ISO-8859.7 character encoding (I think...)
++27 255 % first and last encoding
++027 /florin
++028 /dagger
++029 /daggerdbl
++030 /perthousand
++031 /trademark
++032 /space
++033 /exclam
++034 /quotedbl
++035 /numbersign
++036 /dollar
++037 /percent
++038 /ampersand
++039 /quoteright
++040 /parenleft
++041 /parenright
++042 /asterisk
++043 /plus
++044 /comma
++045 /hyphen
++046 /period
++047 /slash
++048 /zero
++049 /one
++050 /two
++051 /three
++052 /four
++053 /five
++054 /six
++055 /seven
++056 /eight
++057 /nine
++058 /colon
++059 /semicolon
++060 /less
++061 /equal
++062 /greater
++063 /question
++064 /at
++065 /A
++066 /B
++067 /C
++068 /D
++069 /E
++070 /F
++071 /G
++072 /H
++073 /I
++074 /J
++075 /K
++076 /L
++077 /M
++078 /N
++079 /O
++080 /P
++081 /Q
++082 /R
++083 /S
++084 /T
++085 /U
++086 /V
++087 /W
++088 /X
++089 /Y
++090 /Z
++091 /bracketleft
++092 /backslash
++093 /bracketright
++094 /asciicircum
++095 /underscore
++096 /quoteleft
++097 /a
++098 /b
++099 /c
++100 /d
++101 /e
++102 /f
++103 /g
++104 /h
++105 /i
++106 /j
++107 /k
++108 /l
++109 /m
++110 /n
++111 /o
++112 /p
++113 /q
++114 /r
++115 /s
++116 /t
++117 /u
++118 /v
++119 /w
++120 /x
++121 /y
++122 /z
++123 /braceleft
++124 /bar
++125 /braceright
++126 /asciitilde
++127 /.notdef
++128 /.notdef
++129 /.notdef
++130 /.notdef
++131 /.notdef
++132 /.notdef
++133 /.notdef
++134 /.notdef
++135 /.notdef
++136 /.notdef
++137 /.notdef
++138 /.notdef
++139 /.notdef
++140 /.notdef
++141 /.notdef
++142 /.notdef
++143 /.notdef
++144 /.notdef
++145 /.notdef
++146 /.notdef
++147 /.notdef
++148 /.notdef
++149 /.notdef
++150 /.notdef
++151 /.notdef
++152 /.notdef
++153 /.notdef
++154 /.notdef
++155 /.notdef
++156 /.notdef
++157 /.notdef
++158 /.notdef
++159 /.notdef
++160 /space
++161 /quoteleft
++162 /quoteright
++163 /sterling
++164 /.notdef
++165 /.notdef
++166 /brokenbar
++167 /section
++168 /dieresis
++169 /copyright
++170 /.notdef
++171 /guillemotleft
++172 /logicalnot
++173 /hyphen
++174 /.notdef
++175 /endash
++176 /degree
++177 /plusminus
++178 /twosuperior
++179 /threesuperior
++180 /acute
++181 /dieresisacute
++182 /afii9936
++183 /periodcentered
++184 /afii9937
++185 /afii9938
++186 /afii9939
++187 /guillemotright
++188 /afii9940
++189 /onehalf
++190 /afii9941
++191 /afii9942
++192 /afii9977
++193 /afii9793
++194 /afii9794
++195 /afii9796
++196 /afii9797
++197 /afii9798
++198 /afii9801
++199 /afii9802
++200 /afii9803
++201 /afii9804
++202 /afii9805
++203 /afii9806
++204 /afii9807
++205 /afii9808
++206 /afii9809
++207 /afii9810
++208 /afii9811
++209 /afii9813
++210 /.notdef
++211 /afii9814
++212 /afii9816
++213 /afii9817
++214 /afii9818
++215 /afii9819
++216 /afii9820
++217 /afii9821
++218 /afii9943
++219 /afii9944
++220 /afii9968
++221 /afii9969
++222 /afii9970
++223 /afii9971
++224 /afii9978
++225 /afii9825
++226 /afii9826
++227 /afii9828
++228 /afii9829
++229 /afii9830
++230 /afii9833
++231 /afii9834
++232 /afii9835
++233 /afii9836
++234 /afii9837
++235 /afii9838
++236 /afii9839
++237 /afii9840
++238 /afii9841
++239 /afii9842
++240 /afii9843
++241 /afii9845
++242 /afii9847
++243 /afii9846
++244 /afii9848
++245 /afii9849
++246 /afii9850
++247 /afii9851
++248 /afii9852
++249 /afii9853
++250 /afii9975
++251 /afii9976
++252 /afii9972
++253 /afii9973
++254 /afii9974
++255 /.notdef
+Index: mpage-2.5.6/Contrib/mfix/mfix.c
+===================================================================
+--- mpage-2.5.6.orig/Contrib/mfix/mfix.c 2008-08-12 00:02:40.797917022 +0200
++++ mpage-2.5.6/Contrib/mfix/mfix.c 2008-08-11 23:07:25.829007710 +0200
+@@ -1,7 +1,7 @@
+ #include <stdio.h>
+
+-FILE *in=stdin,*out=stdout;
+-char line[200]; line2[200];
++FILE *in,*out;
++char line[200], line2[200];
+
+ int
+ strcp(st1,st2)
+@@ -15,6 +15,8 @@
+ main()
+ {
+ int i;
++ in = stdin;
++ out = stdout;
+ for(i=0; i<10; i=1)
+ {
+ if (fgets(line,200,in)==NULL) { close(in); close(out); exit(1); }
+@@ -41,4 +43,4 @@
+ fprintf(out,"%s",line);
+ }
+ }
+-
+\ No newline at end of file
++
diff --git a/app-text/mpage/files/10_bts354935_fix_fontdefs.patch b/app-text/mpage/files/10_bts354935_fix_fontdefs.patch
new file mode 100644
index 000000000000..3749ec5984cf
--- /dev/null
+++ b/app-text/mpage/files/10_bts354935_fix_fontdefs.patch
@@ -0,0 +1,39 @@
+Index: mpage-2.5.6/mpage.c
+===================================================================
+--- mpage-2.5.6.orig/mpage.c 2008-08-12 00:26:43.344123046 +0200
++++ mpage-2.5.6/mpage.c 2008-08-12 00:29:55.663082680 +0200
+@@ -345,25 +345,25 @@
+ if (!strncmp (current_locale, "ja_JP", 5)){
+ #ifdef KANJI
+ #ifdef GOTHIC
+- fprintf(outfd, "/kanj /GothicBBB-Medium-H findfont %d scalefont def\n", fsize - 1);
+- fprintf(outfd, "/han /GothicBBB-Medium.Hankaku findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/kanj { /GothicBBB-Medium-H findfont %d scalefont } def\n", fsize - 1);
++ fprintf(outfd, "/han { /GothicBBB-Medium.Hankaku findfont %d scalefont } def\n", fsize - 1);
+ #else
+- fprintf(outfd, "/kanj /Ryumin-Light-H findfont %d scalefont def\n", fsize - 1);
+- fprintf(outfd, "/han /Ryumin-Light.Hankaku findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/kanj { /Ryumin-Light-H findfont %d scalefont } def\n", fsize - 1);
++ fprintf(outfd, "/han { /Ryumin-Light.Hankaku findfont %d scalefont } def\n", fsize - 1);
+ #endif
+ #endif
+ #ifdef GOTHIC
+- fprintf(outfd, "/unijis /GothicBBB-Medium-UniJIS-UTF8-H findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/unijis { /GothicBBB-Medium-UniJIS-UTF8-H findfont %d scalefont } def\n", fsize - 1);
+ #else
+- fprintf(outfd, "/unijis /Ryumin-Light-UniJIS-UTF8-H findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/unijis { /Ryumin-Light-UniJIS-UTF8-H findfont %d scalefont } def\n", fsize - 1);
+ #endif
+ }
+ else if (!strncmp (current_locale, "ko_KR", 5))
+- fprintf(outfd, "/uniks /Baekmuk-Batang-UniKS-UTF8-H findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/uniks { /Baekmuk-Batang-UniKS-UTF8-H findfont %d scalefont } def\n", fsize - 1);
+ else if (!strncmp (current_locale, "zh_CN", 5))
+- fprintf(outfd, "/unigb /BousungEG-Light-GB-UniGB-UTF8-H findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/unigb { /BousungEG-Light-GB-UniGB-UTF8-H findfont %d scalefont } def\n", fsize - 1);
+ else if (!strncmp (current_locale, "zh_TW", 5))
+- fprintf(outfd, "/unicns /ShanHeiSun-Light-UniCNS-UTF8-H findfont %d scalefont def\n", fsize - 1);
++ fprintf(outfd, "/unicns { /ShanHeiSun-Light-UniCNS-UTF8-H findfont %d scalefont } def\n", fsize - 1);
+ }
+
+ # ifdef DEBUG
diff --git a/app-text/mpage/files/20_bts416573_manpage_fixes.patch b/app-text/mpage/files/20_bts416573_manpage_fixes.patch
new file mode 100644
index 000000000000..3a4df84e4ee6
--- /dev/null
+++ b/app-text/mpage/files/20_bts416573_manpage_fixes.patch
@@ -0,0 +1,628 @@
+Index: mpage-2.5.6/mpage.1.in
+===================================================================
+--- mpage-2.5.6.orig/mpage.1.in 2008-08-12 19:12:42.274087056 +0200
++++ mpage-2.5.6/mpage.1.in 2008-08-12 19:14:15.003371396 +0200
+@@ -54,7 +54,7 @@
+
+
+ .SH DESCRIPTION
+-.I mpage
++.B mpage
+ reads plain text files or PostScript documents and prints them on a
+ PostScript printer with the text reduced in size so that several
+ pages appear on one sheet of paper.
+@@ -63,14 +63,18 @@
+
+ .PP
+ The following options are recognized (note that arguments to options may be
+-separated from the option by spaces, except for
++separated from the option by spaces, except for
+ .BR -B ,
+ .BR -m ,
+ .BR -M ,
+ .B -p
+ and
+ .BR -P ):
+-Also when mpage encounters -- as option it will stop parsing arguments
++Also when
++.B mpage
++encounters
++.B --
++as option it will stop parsing arguments
+ and the remaining arguments are interpreted as filenames.
+
+ .TP
+@@ -84,7 +88,7 @@
+ .TP
+ .B -4
+ Print 4 normal pages per sheet
+-.IR (default) .
++.RI ( default ).
+
+ .TP
+ .B -8
+@@ -95,25 +99,29 @@
+ Toggle layout of the pages on the sheet so that successively numbered
+ pages run down the sheet, as opposed to left to right.
+ .RI ( default
+-updown) .
++updown).
+
+ .TP
+ .B -A
+-This option is deprecated, see \fB-b\fP.
+-Prepare output for A4 sized paper.
+-For default see 'mpage -x'.
++This option is deprecated, use
++.B -bA4
++instead.
+
+ .TP
+-.BI -b papertype
+-Prepare output for selected paper type.
++.BI -b papersize
++Prepare output for the selected paper type.
+ .I Papersize
+-can be \fIA3\fP for European A3,
+-\fIA4\fP for European A4,
+-\fILetter\fP for US Letter or \fILegal\fP for Legal
+-sized paper.
+-For default see 'mpage -x'.
+-To see the list of currently available types, just give the 'mpage -bl'
+-or 'mpage -b?' command (Note: mpage exits after finding such option use.)
++can be \fBA3\fP for European A3,
++\fBA4\fP for European A4,
++\fBLetter\fP for US Letter, or \fBLegal\fP for Legal
++sized paper. For available types, see option \fB-bl\fP.
++For the default, see 'mpage \-x'. This default is taken from the
++system; see \fBpapersize\fP(5). If it isn't found, mpage exits
++with an error.
++
++.TP
++.BR -bl ,\ -b?
++List the currently available paper types, then exit.
+
+ .TP
+ .BR -B [\fI<num>\fR[\fBlrtb\fR]*]
+@@ -121,19 +129,19 @@
+ Specify text box margins and line thickness.
+ The default is 0 columns (lines) for both left and right (top and bottom)
+ margins and 0 line thickness.
+-Specifying
+-.B -B
+-solely toggles printing of the box.
++Specifying
++.B -B
++solely toggles printing of the box.
+ .IR l ,
+ .IR r ,
+ .I t
+ or
+ .I b
+-set the left, right, top or bottom margin respectively to
++set the left, right, top or bottom margin respectively to
+ .I <num>
+ columns (lines).
+-Not specifying any of the sides, will set the line thickness when
+-.I <num>
++Not specifying any of the sides, will set the line thickness when
++.I <num>
+ is given.
+ For example
+ .BI -B 1
+@@ -142,7 +150,7 @@
+
+ .TP
+ .B -c
+-Toggle concatenation off pages from different files on single sheets
++Toggle concatenation of pages from different files on single sheets
+ .RI ( default
+ off).
+
+@@ -166,27 +174,26 @@
+
+ .TP
+ .BI -D dateformat
+-Set the date format as in
++Set the date format as in
+ .IR strftime (3)
+ to be used in date/time representations (e.g. in headers).
+-(Note: to be useful you probably need the \fB-H\fP option.)
++(Note: to make this useful you probably need the \fB-H\fP option.)
+
+ .TP
+ .B -e
+-Print 2 normal pages per sheet in duplex mode. Every first
+-and fourth page or on one side and every second and third
++Print 2 normal pages per sheet in duplex mode: every first
++and fourth page on one side and every second and third
+ on the other side. This is more or less a combination of
+-the \fR-O\fP and \fR-E\fP option but then in one pass.
++the \fR-O\fP and \fR-E\fP options but in one pass.
+
+ .TP
+ .B -E
+-Print 2 normal pages per sheet. However, this option will print
+-every second and third page of every set of four pages.
+-This option will ignore
++Print 2 normal pages per sheet, namely: print only the second and
++third page of every set of four pages. See also \fB-O\fP. These
++options override
+ .B -a
+ and
+ .BR -l .
+-See also the \fR-O\fP option.
+ Using these options double sided prints can be created without
+ a duplex printer.
+
+@@ -194,11 +201,11 @@
+ .B -f
+ Toggles folding lines longer than page width
+ .RI ( default
+-off) .
++off).
+
+ .TP
+ .BI -F fontname
+-Specify font.
++Specify font.
+ .RI ( default
+ Courier). Check your printer for supported fonts. Note: this has
+ almost nothing to do with the fonts used for your X-windows/KDE/Gnome
+@@ -206,13 +213,13 @@
+
+ .TP
+ .BI -h header
+-This is used only when the
++This is used only when the
+ .B -p
+ or
+ .B -H
+ switch is used and is passed as the "\fB-h\fI\ header\fR" option to
+-.BR pr ( 1 )
+-or as the header for
++.BR pr (1)
++or as the header for
+ .BR -H .
+
+ .TP
+@@ -220,26 +227,26 @@
+ Create header line for each logical page separated from page text by a
+ horizontal line. Unless
+ .B -h
+-is given, the header consist of last file modification time,
++is given, the header consists of last file modification time,
+ filename and page number, all in bold and slightly larger font.
+ This option only applies to non-postscript files.
+
+ .TP
+ .BI -I indent
+-Indent text by
++Indent text by
+ .I indent
+ characters.
+
+ .TP
+-.BI -j first\fR[\fI-last\fR][\fI%interval\fR]
++.BI -j first\fR[ - last\fR][ % interval\fR]
+ Print just the selected sheets, specified by a number, starting at 1.
+-Here
++Here
+ .I last
+ defaults to the end of data, \fIinterval\fP to 1.
+-Several \fB-j\fR options can be given (upto MAXJARGS, default 100)
++Several \fB-j\fR options can be given (up to MAXJARGS, default 100)
+ to create a complex selection of pages.
+-Thus \fB-j\fI1\-10\fR selects the first 10 sheets, while
+-\fB-j\fI 1%2\fR prints just the odd-numbered sheets and \fB-j\fI 2%2\fR
++Thus \fB-j1\-10\fR selects the first 10 sheets, while
++\fB-j\ 1%2\fR prints just the odd-numbered sheets and \fB-j\ 2%2\fR
+ prints just the even ones.
+ .sp
+ You can do double-sided printing, in two passes, as follows.
+@@ -249,7 +256,7 @@
+ Print the odd-numbered sheets with
+ .IP
+ .ti +5
+-mpage ... -j 1%2 ...
++mpage ... \-j 1%2 ...
+ .IP
+ Note the number of pages it reports. (Only half this many will really
+ be printed). When printing finishes, if mpage reported an
+@@ -262,7 +269,7 @@
+ Now print the even-numbered sheets in reverse order with
+ .IP
+ .ti +5
+-mpage ... -r -j 2%2 ...
++mpage ... \-r \-j 2%2 ...
+ .IP
+ hoping no one else reaches the printer before you do.
+
+@@ -274,70 +281,71 @@
+
+ .TP
+ .B -k
+-When mpage finds a %%TRailer or %%PSTrailer in the postscript input file
++When mpage finds a %%Trailer or %%PSTrailer in the postscript input file
+ it normally assumes this is the end of the postscript file and stops reading
+ the input file. But when the PS file includes EPS files, %%Trailers might
+-be anywhere. Using this option ignores the %%TRailer and %%PSTRailer lines.
++be anywhere. Using this option ignores the %%Trailer and %%PSTrailer lines.
++
+ .TP
+ .B -l
+-Toggle printing landscape or portrait mode.
+-Landscape pages are 55 lines long by 132 characters wide by default.
+-Portrait pages are 66 lines long by 80 characters wide by default.
++Toggle printing landscape or portrait mode
+ .RI ( default
+-portrait.)
++portrait).
++Landscape pages are 55 lines long by 132 characters wide by default.
++Portrait pages are 66 lines long by 80 characters wide by default.
+
+ .TP
+ .BI -L lines
+ Adjust the page reduction parameters so that
+ .I lines
+ lines will fit in the space of one page.
+-This overrides the default values normally supplied. (See
++This overrides the default values normally supplied. (See
+ .BR -l .)
+-If used in conjunction with
++If used in conjunction with
+ .B -p
+ then this value is passed to the
+ .BR pr (1)
+ as well.
+ As a side effect this changes the font size as well (as will the \fB-W\fR
+-option.) So while there is an option to change font family, there is no
++option.) So while there is an option to change font family, there is no
+ explicit option to change font size!
+
+ .TP
+ .BR -m [\fI<num>\fR[\fBlrtb\fR]*]
+ Specify sheet margin. The default margin is 20 points.
+-Only specifying
+-.B -m
+-sets left margin to 40 points.
++Only specifying
++.B -m
++sets left margin to 40 points.
+ .IR l ,
+ .IR r ,
+ .I t
+ or
+ .I b
+-set left, right, top or bottom margin respectively to
++set left, right, top or bottom margin respectively to
+ .I <num>
+ points.
+-Not specifying any of the sides will set all sides when
+-.I <num>
++Not specifying any of the sides will set all sides when
++.I <num>
+ is given.
+ .I <num>
+ defaults to 40 points. For example
+ .BI -m 10
+ sets all margins to 10 points.
+ .BI -m l50tb
+-sets left margin to default 40 and top and bottom margin to 50 points.
++sets left margin to default 40 and top and bottom margins to 50 points.
+ .BI -m 50l25bt30r
+-set bottom and top margin to 25, left margin to 50 and
++sets bottom and top margin to 25, left margin to 50 and
+ right margin to 30 points.
+ Margins can have negative numbers.
+
+ .TP
+ .BR -M [\fI<num>\fR[\fBlrtb\fR]*]
+-Specify logical page margins. For syntax, see
++Specify logical page margins. For syntax, see
+ .B -m
+ option.
+-Defaults are 4 for
+-.B -M
+-solely, and 8 for
++Defaults are 4 for
++.B -M
++solely, and 8 for
+ .IR <num> .
+ Margins can be negative.
+ This way large white borders
+@@ -351,20 +359,18 @@
+
+ .TP
+ .B -O
+-Print 2 normal pages per sheet.
+-However, this option will print every first and fourth page of every
+-set of four pages.
+-This option will ignore
++Print 2 normal pages per sheet, namely: print only the first and
++fourth page of every set of four pages. See also \fB-E\fP. These
++options override
+ .B -a
+ and
+ .BR -l .
+-See also the \fR-E\fP option.
+ Using these options double sided prints can be created without
+ a duplex printer.
+
+ .TP
+ .BR -p [\fIprprog\fR]
+-Pipe input through
++Pipe input through
+ .I prprog
+ command (including specified options) before printing
+ (assumes the input is a text file).
+@@ -373,14 +379,16 @@
+
+ .TP
+ .BR -P [\fIprinter\fR]
+-Specify the printer to which the PostScript output will be sent
+-(e.g.lpr -P\fIprinter\fP). Using
++Specify the printer to which the PostScript output is sent
++(e.g. lpr \-P\fIprinter\fP). Using
+ .B -P
+-with no printer specified will send the PostScript to the default printer
+-queue (e.g. lpr). Using -P- will return output to stdout, useful in
+-combination with MPAGE environment variable. Without
++with no printer specified sends the PostScript to the default printer
++queue (e.g. lpr). Using \fB-P-\fP returns output to stdout, useful in
++combination with the
++.B MPAGE
++environment variable. Without
+ .B -P
+-output will be send to standard output.
++output is sent to standard output.
+
+ .TP
+ .B -r
+@@ -392,58 +400,65 @@
+ .B -R
+ Switch to left to right mode, starting first page on left bottom corner.
+ This might be useful for landscape postscript files.
+-(Note: using
++(Note: using
+ .B -l
+ after
+ .B -R
+ undoes
+ .BR -R ,
+-and switches to normal landscape mode.
++and switches to normal landscape mode.)
+
+ .TP
+ .BI -s tabstop
+ Set tabstop width (\fIdefault\fP 8 characters).
+-Should by >= 2.
++Should be >= 2.
+
+ .TP
+ .B -S
+ Accept non-square page reduction.
+ By default, pages are shrunk equally in X and Y, even if this wastes some
+ space on the sheet.
+-With \fB\-S\fP,
+-reduced pages are larger but slightly distorted. (only used when printing
++With \fB\-S\fP,
++reduced pages are larger but slightly distorted. (Only used when printing
+ postscript files.)
+
+ .TP
+ .B -t
+ Toggle printing on both sides of the paper.
+-+This option has 3 states: nop, yes, no, which mean:
+-.BR NOP :
+- dont do anything on PostScript, so printer default will be used;
+-.BR YES :
+- force printer to do duplex;
+-.BR NO :
++This option has 3 states: nop, yes, no, which mean:
++.RS
++.TP
++.BR NOP :
++don't do anything in PostScript, use the printer default;
++.TP
++.BR YES :
++force printer to do duplex;
++.TP
++.BR NO :
+ force printer not to do it.
+-If there is no -t, then the duplex is NOP. If you put some -t on
++.HP 0
++If there is no \fB\-t\fP, then the duplex is NOP. If you put some \-t on
+ the command line, the state toggles as "yes,no,yes,no...".
+ So, if your printer is set to print, by default, in duplex mode,
+-you will use "-t -t" on command line to force it to print in non-duplex mode.
+-Use this option only if your printer is capable of printing in duplex mode.
++you will use "\-t \-t" on the command line to force it to print in
++non-duplex mode. Use this option only if your printer is capable of
++printing in duplex mode.
+ .RI ( default
+ NOP).
++.RE
+
+ .TP
+ .B -T
+ Toggle tumble of every second pages.
+-This option has 3 states: nop, yes, no (with behaviour similar to -t).
++This option has 3 states: nop, yes, no (with behaviour similar to \-t).
+ So, if your printer is set to print, by default, in duplex mode,
+ with tumble on,
+-you will use "-T -T" on command line to print in nontumble mode.
++you will use "\-T \-T" on command line to print in nontumble mode.
+ Use this option only if your printer is capable of printing in duplex mode.
+ With this version of mpage,
+-you may use this option even if you do not use -t.
++you may use this option even if you do not use \-t.
+ .RI ( default
+-NOP.)
++NOP).
+
+ .TP
+ .B -u
+@@ -451,15 +466,15 @@
+
+ .TP
+ .B -U
+-This option is deprecated, see \fB-b\fP.
+-Prepare output for US Letter sized paper.
+-For default see 'mpage -x'.
++This option is deprecated, use
++.B -bLetter
++instead.
+
+ .TP
+ .B -v
+ Toggle printing a count of the number of sheets produced for printing
+ .RI ( default
+-off.)
++off).
+
+ .TP
+ .B -V
+@@ -467,27 +482,27 @@
+
+ .TP
+ .BI -W width
+-Adjust the page reduction parameters so that a line with
++Adjust the page reduction parameters so that a line
+ .I width
+ characters long will fit in the space of one page.
+-This overrides the default values normally supplied. (See
++This overrides the default values normally supplied. (See
+ .BR -l .)
+ If used in conjunction with
+ .B -p
+-then this value is passed to the s
++then this value is passed to the
+ .BR pr (1)
+ program as well.
+ See also the \fB-L\fP\ option on font sizes.
+
+ .TP
+ .B -x
+-Force usage display, which also shows current defaults.
++Print usage information (including current defaults), then exit.
+
+ .TP
+-.B -X [header]
++.BR -X [\fIheader\fR]
+ Print header on the left and the page number on the right
+ of each physical page (sheet).
+-If no header is given, the default is the current filename (note
++If no header is given, the default is the current filename (note
+ influence of
+ .BR -c ),
+ the filename of the first file on the page is used.
+@@ -495,12 +510,12 @@
+ .TP
+ .BI -z printcommand
+ Specify command to use to send output to.
+-Default is
+-.B lpr
+-(1) for BSD style spooler,
+-.B lp
+-(1) for SYSV style spooler.
+-You can specify command line options, but note
++Default is
++.BR lpr (1)
++for BSD style spooler,
++.BR lp (1)
++for SYSV style spooler.
++You can specify command line options, but note
+ .BR -Z .
+ For example \fB-zlp\fR for system V Unix.
+
+@@ -508,7 +523,7 @@
+ .BI -Z printprog_queuename_arg
+ Specify what option to use for the "\fB-z\fI\ printcommand\fR" to specify
+ a printqueue.
+-For example \fB-zlp -Z-d\fR for system V Unix.
++For example \fB\-zlp \-Z\-d\fR for system V Unix.
+ Default is
+ .B -P
+ for BSD style spooler,
+@@ -518,10 +533,10 @@
+ .PP
+
+ .SH ENVIRONMENT
+-.I mpage
++.B mpage
+ examines the
+ .B PRINTER
+-(or
++(or
+ .B LPDEST
+ for SYSV style spooler)
+ environment variable to override its default printer.
+@@ -529,18 +544,20 @@
+ .PP
+ The
+ .B MPAGE_LIB
+-environment variable can be used to control where the character
++environment variable can be used to control where the character
+ encoding files (\fB-C\fR) can be found.
+
+ .PP
+-.I mpage
++.B mpage
+ also examines the
+ .B MPAGE
+ environment variable for default option settings.
+ Any option or combination of options can be specified in the
+ .B MPAGE
+ environment variable.
+-For example, if MPAGE is set to the string:
++For example, if
++.B MPAGE
++is set to the string:
+ .IP
+ .B -2oPqms -L60
+ .PP
+@@ -550,14 +567,14 @@
+ .B "qms"
+ (overriding the
+ .B PRINTER\fR/\fBLPDEST
+-environment variable, if it exists.)
++environment variable, if it exists).
+ In the environment variable, white space is used as an option delimiter,
+ and no quoting is recognized.
+
+ .PP
+ Any command line options will override both the
+ .B PRINTER
+-and
++and
+ .B MPAGE
+ environment variables.
+
+@@ -571,7 +588,7 @@
+ Suffers under the burden of far too many switches.
+ (But
+ .B you
+-wanted the choices!)
++wanted the choices!)
+ .PP
+ NULL characters in a postscript input file will cause mpage to crash!
+ .PP
+@@ -580,7 +597,7 @@
+ Mpage is year 2000 compliant, as long as the underlying operating system is!!!
+
+ .SH VERSION
+-Version 2.5.6, Released Januari 2008.
++Version 2.5.6, Released January 2008.
+ .br
+ Location:
+ .IP
+@@ -588,6 +605,6 @@
+ .br
+ ftp://ftp.mesa.nl/pub/mpage
+ .SH AUTHORS
+-Marcel Mol <marcel@mesa.nl> (current maintainer).
++Marcel Mol <marcel@mesa.nl> (current maintainer).
+ .PP
+-Mark P. Hahn (Original author)
++Mark P. Hahn (Original author)
diff --git a/app-text/mpage/files/30_bts443280_libdir_manpage.patch b/app-text/mpage/files/30_bts443280_libdir_manpage.patch
new file mode 100644
index 000000000000..9e2e630500e6
--- /dev/null
+++ b/app-text/mpage/files/30_bts443280_libdir_manpage.patch
@@ -0,0 +1,22 @@
+Index: mpage-2.5.6/mpage.1.in
+===================================================================
+--- mpage-2.5.6.orig/mpage.1.in 2008-08-12 19:40:49.390230323 +0200
++++ mpage-2.5.6/mpage.1.in 2008-08-12 19:41:08.143299000 +0200
+@@ -157,7 +157,7 @@
+ .TP
+ .BR -C [\fIencodingfile\fR]
+ Specify the character encoding file.
+-The file should be in the mpage library directory (\fIPREFIX/share/mpage\fR).
++The file should be in the mpage library directory (\fIPREFIX/lib/mpage\fR).
+ .I Mpage
+ has an internal default encoding based on Latin-1 or IBM codepage 850.
+ Depending on compile time option this encoding definition is on or not.
+@@ -581,7 +581,7 @@
+ .SH FILES
+ /tmp/mpageXXXXXX
+ .br
+-PREFIX/share/mpage
++PREFIX/lib/mpage
+
+ .SH BUGS
+ .PP
diff --git a/app-text/mpage/metadata.xml b/app-text/mpage/metadata.xml
new file mode 100644
index 000000000000..6f49eba8f496
--- /dev/null
+++ b/app-text/mpage/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+</pkgmetadata>
diff --git a/app-text/mpage/mpage-2.5.6-r1.ebuild b/app-text/mpage/mpage-2.5.6-r1.ebuild
new file mode 100644
index 000000000000..612cf81ab708
--- /dev/null
+++ b/app-text/mpage/mpage-2.5.6-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Many to one page printing utility"
+HOMEPAGE="http://www.mesa.nl/"
+SRC_URI="http://www.mesa.nl/pub/${PN}/${P}.tgz"
+
+KEYWORDS="amd64 ppc x86"
+LICENSE="freedist"
+SLOT="0"
+IUSE=""
+
+src_prepare() {
+ sed -i Makefile \
+ -e '/^CFLAGS/s|=.*| += $(DEFS)|g' \
+ -e 's|$(CFLAGS) -o|$(LDFLAGS) &|g' \
+ || die "sed Makefile"
+ EPATCH_SOURCE="${FILESDIR}" epatch \
+ 01_previous_changes.patch 10_bts354935_fix_fontdefs.patch \
+ 20_bts416573_manpage_fixes.patch 30_bts443280_libdir_manpage.patch
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ PREFIX=/usr \
+ MANDIR=/usr/share/man/man1
+}
+
+src_install () {
+ emake \
+ PREFIX="${D}/usr" \
+ MANDIR="${D}/usr/share/man/man1" install
+ dodoc CHANGES Encoding.format FAQ NEWS README TODO
+}