ghostscript-9.27

#### Beyond Linux® From Scratch (systemd Edition) - Version 9.0

### Chapter 46. Printing

- Prev

  cups-filters-1.25.2

- Next

  Gutenprint-5.3.3

- Up
- Home

# ghostscript-9.27

## Introduction to Ghostscript

Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets. It is a mandatory part of the cups printing stack.

This package is known to build and work properly using an LFS-9.0 platform.

### Package Information

- Download (HTTP): https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs927/ghostscript-9.27.tar.xz

- Download MD5 sum: dd531503dbbc524f73528359e2ea145c

- Download size: 32 MB

- Estimated disk space required: 332 MB (with fonts and libgs.so)

- Estimated build time: 1.7 SBU (Using parallelism=4; with libgs.so)

### Additional Downloads

- Required patch: http://www.linuxfromscratch.org/patches/blfs/9.0/ghostscript-9.27-upstream_fixes-1.patch

If you wish, you can download additional fonts.

Standard Fonts

- Download (HTTP): https://downloads.sourceforge.net/gs-fonts/ghostscript-fonts-std-8.11.tar.gz

- Download MD5 sum: 6865682b095f8c4500c54b285ff05ef6

- Download size: 3.7 MB

Other Fonts

- Download (HTTP): https://downloads.sourceforge.net/gs-fonts/gnu-gs-fonts-other-6.0.tar.gz

- Download MD5 sum: 33457d3f37de7ef03d2eea05a9e6aa4f

- Download size: 796 KB

### Ghostscript Dependencies

#### Recommended

Cups-2.2.12 (required for building the “cups” device backend, which is needed by cups-filters), Fontconfig-2.13.1 (required, if you are installing any suggested font), FreeType-2.10.1, libjpeg-turbo-2.0.2, libpng-1.6.37, LibTIFF-4.0.10, Little CMS-2.9, and OpenJPEG-2.3.1

#### Optional

Cairo-1.16.0, GTK+-3.24.10, libidn-1.35, libpaper-1.1.24+nmu5, Little CMS-1.19 (not used by default, nor if lcms2 is present or found), and X Window System

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gs

## Installation of Ghostscript

### Note

The Ghostscript build system is not user-friendly. In order to use system copies of various graphics libraries, you must do it using unconventional methods.

GPL Ghostscript includes (old) copies of several libraries. Some of these seem to have been patched to fix known vulnerabilities, but others of these copies are less-well maintained. To ensure that any future fixes are applied throughout the whole system, it is recommended that you first install the released versions of these libraries and then configure GPL Ghostscript to link to them.

If you have installed the recommended dependencies on your system, remove the copies of freetype, lcms2, libjpeg, libpng, and openjpeg:

    rm -rf freetype lcms2mt jpeg libpng openjpeg

Compile Ghostscript:

    rm -rf zlib &&

    patch -Np1 -i ../ghostscript-9.27-upstream_fixes-1.patch &&

    ./configure --prefix=/usr           \
                --disable-compile-inits \
                --enable-dynamic        \
                --with-system-libtiff   &&
    make

### Note

The shared library depends on GTK+-3.24.10. It is only used by external programs like asymptote-2.52, ImageMagick-7.0.8-60, and texlive-20190410.

To compile the shared library `libgs.so`, run the following additional command as an unprivileged user:

    make so

This package does not come with a test suite. A set of example files may be used for testing, but it is only possible after installation of the package.

Now, as the `root` user:

    make install

If you want the shared library too:

    make soinstall &&
    install -v -m644 base/*.h /usr/include/ghostscript &&
    ln -sfvn ghostscript /usr/include/ps

Now make the documentation accessible from the normal place:

    mv -v /usr/share/doc/ghostscript/9.27 /usr/share/doc/ghostscript-9.27  &&
    rm -rfv /usr/share/doc/ghostscript &&
    cp -a examples/ /usr/share/ghostscript/9.27/

If you have downloaded the fonts, unpack them to `/usr/share/ghostscript` and ensure the ownerships of the files are `root`: `root`.

    tar -xvf ../ghostscript-fonts-std-8.11.tar.gz -C /usr/share/ghostscript --no-same-owner &&
    tar -xvf ../gnu-gs-fonts-other-6.0.tar.gz     -C /usr/share/ghostscript --no-same-owner &&
    fc-cache -v /usr/share/ghostscript/fonts/

You can now test the rendering of various postscript and pdf files from the `/usr/share/ghostscript/9.27/examples` , for example (you need an X window system display):

    gs -q -dBATCH /usr/share/ghostscript/9.27/examples/tiger.eps

## Command Explanations

rm -rf zlib : zlib was installed as part of LFS.

`--disable-compile-inits`: This option makes gs and `libgs.so` slightly smaller.

`--with-system-libtiff`: Remove this option if you've not installed LibTIFF-4.0.10.

install -v -m644 base/*.h... : Some packages (ImageMagick is one) need the Ghostscript interface headers in place to link to the shared library. These commands install the headers.

ln -sfvn ghostscript /usr/include/ps: Some packages expect to find the interface headers in an alternate location.

mv -v /usr/share/doc/ghostscript/9.27 /usr/share/doc/ghostscript-9.27: This moves the documentation where it is expected to be found.

`--disable-cups`: this option will save a tiny amount of space by not linking gs and `libgs.so` to the Cups-2.2.12 libraries if you have installed those.

## Contents

Installed Programs: dvipdf, eps2eps, font2c, gs, gsbj, gsc (from soinstall), gsdj, gsdj500, gslj, gslp, gsnd, gsx (from soinstall), lprsetup.sh, pdf2dsc, pdf2ps, pf2afm, pfbtopfa, pphs, printafm, ps2ascii, ps2epsi, ps2pdf, ps2pdf12, ps2pdf13, ps2pdf14, ps2pdfwr, ps2ps, ps2ps2, unix-lpr.sh, and wftopfa
Installed Library: libgs.so and /usr/lib/ghostscript/9.27/X11.so
Installed Directories: /usr/include/ghostscript, /usr/lib/ghostscript, /usr/share/ghostscript, and /usr/share/doc/ghostscript-9.27

### Short Descriptions

gs | is an interpreter for Adobe Systems' PostScript(tm) and Portable Document Format (PDF).
`libgs.so` | provides Ghostscript functionality to other programs, such as GSView, ImageMagick, and libspectre.

GPL Ghostscript provides many different scripts used to convert PostScript, PDF, and other formats. Please refer to the HTML documentation or the man pages for information about the capabilities provided.

Last updated on 2019-08-18 13:33:32 -0700

- Prev

  cups-filters-1.25.2

- Next

  Gutenprint-5.3.3

- Up
- Home