ghostscript/ghostscript-9.22-002-restore-flushpage-operator.patch
David Kaspar [Dee'Kej] fe7ddccb26 specfile: complete cleanup (according to FPG) & package layout update
The specfile has been completely rewritten from the ground up, to
  comply with Fedora Packaging Guidelines, and to incorporate comments
  from upstream. The subpackage layout was also updated into more sane
  and more granular scheme.

  The changes are described more in detail below:
  (Justifications for them can be found in the specfile's comments.)

  * libijs -- the IJS library has been debundled and is now provided
    as a separate package: https://src.fedoraproject.org/rpms/libijs

  * libgs -- new separate package, created from Ghostscript's shared
    library. It contains all necessary files for other software/packages
    that are build upon Ghostscript's functionality.

  * libgs-devel -- new separate subpackage, for development purposes or
    Fedora's build process. The 'ghostscript-devel' is still provided
    for now as a virtual subpackage.

  * ghostscript -- is no longer a metapackage. It's a regular package
    instead, and it contains Ghostscript's binaries as well as some
    typical conversion scripts people are used to (and expect to have
    installed together with Ghostscript by default).

  * ghostscript-tools-fonts -- new subpackage that contains 3 scripts
    that are useful only for people who are working with AFM, PFB or PFA
    files (conversions usually).

  * ghostscript-tools-printing -- new subpackage that contains only
    utilities for formatting and printing text files using either
    Ghostscript, or BubbleJet, DeskJet, DeskJet 500, & LaserJet printers.

  * ghostscript-core -- has became an empty metapackage for upgrade
    purposes. It will be removed once Fedora 28 is EOL, and all other
    packages has updated their specfiles to require correct subpackages.

  * LPR setup scripts are no longer being shipped. In case people still
    need those, then 'ghostscript-tools-lpr' will be created for it.

  * examples/ from 'ghostscript-doc' are no longer shipped.

  * Support for /usr/share/ghostscript/conf.d/ folder was dropped to use
    Ghostscript's default choice for rendering of CJK glyphs, which is
    Google Droid Sans Fallback font. In case this proves insufficent,
    the conf.d/ folder support will be re-established.

  * Symbolic links for direct resources locations have been added to
    speedup Ghostscript's startup time

  * Ghostscript's search path was updated to include only fonts
    locations, which will be used only as a backup (in case of broken
    symbolic links).

  * Documentation and resources paths no longer contain version string
    inside of them.

  * Ghostscript itself (as a whole) has been completely debundled (to a
    point where it still makes sense). It newly requires these packages:

    https://src.fedoraproject.org/rpms/adobe-mappings-cmap
    https://src.fedoraproject.org/rpms/adobe-mappings-pdf
    https://src.fedoraproject.org/rpms/libijs
    https://src.fedoraproject.org/rpms/urw-base35-fonts

  * As a result of debundling, 'poppler-data' is no longer a requirement
    for Ghostscript, and it is no longer necessary to do a rebuild of
    'poppler-data' when Ghostscript is rebased.
2018-01-09 23:05:45 +01:00

58 lines
3.0 KiB
Diff

From 19ebb5f1f497b6f2d50fe13d17d3e627dfb6c868 Mon Sep 17 00:00:00 2001
From: Ken Sharp <ken.sharp@artifex.com>
Date: Tue, 21 Nov 2017 16:46:18 +0000
Subject: [PATCH] PS interpreter - restore the flushpage operator
Michael Katzmann, working at the Library of Congress, is using
Ghostscript in a custom application, which also involves a barcode
reader and an SQL database.
Currently this resides in an RPM at:
http://engineering.nlsbph.org/repo/fedora/fedora/updates/27/SRPMS/AddressCard-3.17-LoC.fc27.src.rpm
but its not usable without the barcode reader and SQL database....
For reasons which are not completely clear to me, he wants to use
flushpage to update the display part way through the operation.
We suspect that it would be possible to avoid this, but it would
probably require some programming effort on the users part, and since
flushpage doesn't look like a likely candidate for abuse, we've decided
just to restore it.
---
Resource/Init/gs_init.ps | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
index 491f0ea..eb4db02 100644
--- a/Resource/Init/gs_init.ps
+++ b/Resource/Init/gs_init.ps
@@ -2162,7 +2162,7 @@ SAFER { .setsafeglobal } if
/.type1execchar /.type2execchar /.type42execchar /.setweightvector /.getuseciecolor /processcolors /.includecolorspace
/.execn /.instopped /.stop /.stopped /.setcolorrendering /.setdevicecolorrendering /.buildcolorrendering1 /.builddevicecolorrendering1
/.TransformPQR_scale_WB0 /.TransformPQR_scale_WB1 /.TransformPQR_scale_WB2 /.currentoverprintmode /.copydevice2
-/.devicename /.doneshowpage /flushpage /.getbitsrect /.getdevice /.getdefaultdevice /.getdeviceparams /.gethardwareparams
+/.devicename /.doneshowpage /.getbitsrect /.getdevice /.getdefaultdevice /.getdeviceparams /.gethardwareparams
/makewordimagedevice /.outputpage /.putdeviceparams /.setdevice /.currentshowpagecount
/.setpagedevice /.currentpagedevice /.knownundef /.setmaxlength /.rectappend /.initialize_dsc_parser /.parse_dsc_comments
/.fillCIDMap /.fillIdentityCIDMap /.buildcmap /.filenamelistseparator /.libfile /.getfilename
@@ -2180,6 +2180,15 @@ SAFER { .setsafeglobal } if
/.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams
/.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath
+% Used by a free user in the Library of Congress. Apparently this is used to
+% draw a partial page, which is then filled in by the results of a barcode
+% scanner and SQL database lookup. Its not clear to us exactly why this needs to be
+% done as a partial page, but its easiest to restore the operator, and it seems like
+% its a reasonably safe operator to restore, for the *very* few devices on which
+% it will have any effect. Currently this uses the 'sync_outptu' device method
+% to transfer the partial page, in future we may use a spec_op instead.
+%/flushpage
+
% Used by our own test suite files
%/.fileposition %image-qa.ps
%/.makeoperator /.setCPSImode % gs_cet.ps
--
2.9.5