From Fedora Project Wiki


Ghostscript Package Update for Fedora 28

Summary

This system-wide change covers changes to the Ghostscript Package in Fedora 28.

Owner

Current status

Detailed Description

  • Update the (URW)++ fonts (PostScript Core Font Set - Level 2) in Fedora.
  • Update the google-droid-sans-fonts to latest version in Fedora.
  • Debundle the libijs library, so it is build separately.
  • Debundle all the CMap files used by Ghostscript.
  • Create a new separate packages from Ghostscript's build: libgs & libgs-devel
  • Create new subpackages: ghostscript-tools-fonts, ghostscript-tools-dvipdf & ghostscript-tools-printing
  • Convert ghostscript meta-package to a normal package.
  • Convert ghostscript-core meta-package to a temporary meta-package.
  • Add direct symbolic links for Ghostscript's resources to speedup Ghostscript's startup time.
  • Add AppStream files to enable Ghostscript installation from Gnome Software.
  • Update Ghostscript's search paths to contain only paths which are really needed.
  • Drop LPR setup scripts completely.
  • Drop support for /usr/share/ghostscript/conf.d/ folder completely.
  • Drop requirement on poppler-data package.
  • Ask owners of no-longer needed packages to retire those packages.
  • Assess and incorporate notes & comments from upstream for our build process of Ghostscript.
  • Cleanup the package specfile according to Fedora Packaging Guidelines (FPG).

Additional Information

  • libgs - will be new separate package, containing Ghostscript's shared library. It will contain all necessary files for other software/packages that are build upon Ghostscript's functionality. This will allow dependant software to fulfill its dependency requirements, while avoiding polluting users' systems with unneeded/unwanted applications.
  • libgs-devel - will be new separate subpackage, used for development purposes and/or Fedora's build process. The previously used ghostscript-devel will still be virtually provided by this subpackage.
  • ghostscript - will become a regular package, containing 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 - will be new subpackage, containing 3 scripts that are useful only for people who are working with AFM, PFB or PFA files (usually doing conversions).
  • ghostscript-tools-printing - will be new subpackage, containing only utilities for formatting and printing text files using either Ghostscript, or BubbleJet, DeskJet, DeskJet 500, & LaserJet printers.
  • ghostscript-core - will be converted to meta-package, which used for upgrade purposes only. It will be removed once Fedora 28 is EOL, and all other packages has updated their specfiles to require correct subpackages. [NOTE: This metapackage makes sure that upgrade from old package layout to new package layout should be smooth (tested in F27).]
  • /usr/share/ghostscript/conf.d/ - this font configuration folder for Ghostscript will no longer be supported. Nowadays - according to upstream - it has become a de-facto standard for all PDF (and other) documents producing software to embed the fonts which are not common (especially CJK-based fonts) into the document itself. If the document does not contain any embedded font, then Ghostscript uses a substitution font to display the glyphs, but it is always the best-effort only. For this font/glyph substitution, we were previously using the mentioned conf.d/ folder (as a downstream solution). However, for some time, the Ghostscript has its own (upstream) solution how to deal with these substitutions (by using fontconfig & Google Droid Sans Fallback font), which we will be switching to (after a discussion with Peng Wu & Akira Tagoh).
  • The examples/ folder from ghostscript-doc will be dropped, because upstream will no longer ship it as well. According to upstream, these are bad examples, and were supposed to be used for testing purposes only.
  • The documentation & resources file paths will no longer contain the version of Ghostscript as part of it, to comply with FPG. This should also remove the need of rebuilds of all packages depending on Ghostscript, once the Ghostscript has been rebased.

Benefit to Fedora

The ultimate aim of this change is to simplify the package maintenance, with these changes:

  • Making a "spring cleanup" in Ghostscript's specfile, to comply with FPG.
  • Bringing the Ghostscript's build as close as possible to upstream's vanilla build.
  • Completely de-bundling the Ghostscript's package, so it uses already packaged software in Fedora.
  • Introducing a new (sub)package layout which is more sane & granular.

Scope

  • Proposal owners: Need to create missing packages for de-bundling purposes, update existing packages if needed, and implement all the changes mentioned in detail description in the package specfile.
  • Other developers: Need to update their packages' specfiles to use correct requirements, rebuild their packages and deal with/report all the issues it produces.
  • Policies and guidelines: N/A (not needed for this Change; covered by the existing Packaging Guidelines)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

It will be needed for all packages depending on Ghostscript to update their specfiles accordingly to the new package layout introduced. To ease up the process of switching, pull-requests will be created manually, to make sure the new requirements are sane, and to encourage the maintainers of dependent packages to update their specfiles.

These needed updates to specfiles will be tracked in BZ #1534638.

Until all dependant packages have been updated as necessary, we will the ghostscript-core package alive. Once all dependant packages have been updated and Fedora 28 has reached EOL, then the ghostscript-core will be dropped.

It is not expected for these changes to have bigger impact than necessary changes to build requirements of dependent packages described above. Some software might need to update their paths to Ghostscript in case it depends on hard-wired file paths containing Ghostscript version -- these issues (if any) will be discovered with Fedora 28 Mass Rebuild, for which the FTBFS bugs should be automatically reported.

How To Test

By doing upgrade from Fedora 26/27 to Rawhide/F28 (with Ghostscript already installed in F26/F27).

User Experience

For end-users there shouldn't be any user-visible difference until ghostscript-core is dropped (at the EOL of F28).

Once the ghostscript-core is dropped, some users might need to manually install ghostscript-tools-fonts, ghostscript-tools-dvipdf, or ghostscript-tools-printing, depending on which tool(s) they were using before. We expec this number of users affected like this to be very small.

Dependencies

The change & testing depends on all software needed by Ghostscript to be already de-bundled and available as packages in stable repositories.

Contingency Plan

  • Contingency mechanism: Update the Ghostscript's specfile with needed virtual provides to satisfy the upgrade mechanism, if necessary. Work with other packages' maintainers of fixing the issues they might find. In case there still exist people who need the LPR setup scripts, the new subpackage ghostscript-tools-lpr will be created.
  • Blocks release? no
  • Blocks product? N/A

Documentation

Release Notes

The Ghostscript package has a new granular package layout to benefit users who do not need the whole Ghostscript functionality.