Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 1 | SUMMARY = "The GPL Ghostscript PostScript/PDF interpreter" |
| 2 | DESCRIPTION = "Ghostscript is used for PostScript/PDF preview and printing. Usually as \ |
| 3 | a back-end to a program such as ghostview, it can display PostScript and PDF \ |
| 4 | documents in an X11 environment. \ |
| 5 | \ |
| 6 | Furthermore, it can render PostScript and PDF files as graphics to be printed \ |
| 7 | on non-PostScript printers. Supported printers include common \ |
| 8 | dot-matrix, inkjet and laser models. \ |
| 9 | " |
| 10 | HOMEPAGE = "http://www.ghostscript.com" |
| 11 | SECTION = "console/utils" |
| 12 | |
| 13 | LICENSE = "GPL-3.0-only" |
| 14 | LIC_FILES_CHKSUM = "file://LICENSE;md5=f98ffa763e50cded76f49bce73aade16" |
| 15 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 16 | DEPENDS = "tiff jpeg fontconfig cups libpng freetype zlib" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 17 | |
| 18 | UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases" |
| 19 | UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" |
| 20 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 21 | def gs_verdir(v): |
| 22 | return "".join(v.split(".")) |
| 23 | |
| 24 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 25 | SRC_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \ |
| 26 | file://ghostscript-9.16-Werror-return-type.patch \ |
| 27 | file://avoid-host-contamination.patch \ |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 28 | file://0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch \ |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 29 | " |
| 30 | |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 31 | SRC_URI[sha256sum] = "a4cd61a07fec161bee35da0211a5e5cde8ff8a0aaf942fc0176715e499d21661" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 32 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 33 | PACKAGECONFIG ??= "" |
| 34 | PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3" |
| 35 | PACKAGECONFIG[libidn] = "--with-libidn,--without-libidn,libidn" |
| 36 | PACKAGECONFIG[libpaper] = "--with-libpaper,--without-libpaper,libpaper" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 37 | PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}, \ |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 38 | --without-x, virtual/libx11 libxext libxt" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 39 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 40 | EXTRA_OECONF = "--with-jbig2dec \ |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 41 | --with-fontpath=${datadir}/fonts \ |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 42 | CUPSCONFIG="${STAGING_BINDIR_CROSS}/cups-config" \ |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 43 | PKGCONFIG=pkg-config \ |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 44 | " |
| 45 | |
| 46 | EXTRA_OECONF:append:mipsarcho32 = " --with-large_color_index=0" |
| 47 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 48 | # Uses autoconf but not automake, can't do out-of-tree |
| 49 | inherit autotools-brokensep pkgconfig |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 50 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 51 | # Prune the source tree of libraries that we're using our packaging of, so that |
| 52 | # ghostscript can't link to them. Can't prune zlib as that's needed for the |
| 53 | # native tools. |
| 54 | prune_sources() { |
| 55 | rm -rf ${S}/jpeg/ ${S}/libpng/ ${S}/tiff/ ${S}/expat/ ${S}/freetype/ ${S}/cups/lib |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 56 | } |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 57 | do_unpack[postfuncs] += "prune_sources" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 58 | |
| 59 | do_install:append () { |
| 60 | mkdir -p ${D}${datadir}/ghostscript/${PV}/ |
| 61 | cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/ |
| 62 | cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/ |
| 63 | } |
| 64 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 65 | # ghostscript does not supports "arc" |
| 66 | COMPATIBLE_HOST = "^(?!arc).*" |
| 67 | |
| 68 | # some entries in NVD uses gpl_ghostscript |
| 69 | CVE_PRODUCT = "ghostscript gpl_ghostscript" |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 70 | |
| 71 | CVE_STATUS[CVE-2023-38560] = "not-applicable-config: PCL isn't part of the Ghostscript release" |