blob: 65135f5821443974d736c53aab22a14c97ebb3bb [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "The GPL Ghostscript PostScript/PDF interpreter"
2DESCRIPTION = "Ghostscript is used for PostScript/PDF preview and printing. Usually as \
3a back-end to a program such as ghostview, it can display PostScript and PDF \
4documents in an X11 environment. \
5\
6Furthermore, it can render PostScript and PDF files as graphics to be printed \
7on non-PostScript printers. Supported printers include common \
8dot-matrix, inkjet and laser models. \
9"
10HOMEPAGE = "http://www.ghostscript.com"
11SECTION = "console/utils"
12
13LICENSE = "GPLv3"
14LIC_FILES_CHKSUM = "file://LICENSE;md5=70dc2bac4d0ce4448da873cd86b123fc"
15
16DEPENDS = "ghostscript-native tiff jpeg fontconfig cups libpng"
17DEPENDS_class-native = "libpng-native"
18
19UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
20UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
21
Andrew Geissler4b740dc2020-05-05 08:54:39 -050022def gs_verdir(v):
23 return "".join(v.split("."))
24
25
26SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \
Andrew Geissler82c905d2020-04-13 13:39:40 -050027 file://ghostscript-9.15-parallel-make.patch \
28 file://ghostscript-9.16-Werror-return-type.patch \
29 file://do-not-check-local-libpng-source.patch \
30 file://avoid-host-contamination.patch \
31 file://mkdir-p.patch \
Andrew Geissler82c905d2020-04-13 13:39:40 -050032"
33
34SRC_URI = "${SRC_URI_BASE} \
35 file://ghostscript-9.21-prevent_recompiling.patch \
Andrew Geissler82c905d2020-04-13 13:39:40 -050036 file://cups-no-gcrypt.patch \
Andrew Geissler635e0e42020-08-21 15:58:33 -050037 file://CVE-2020-15900.patch \
Andrew Geissler82c905d2020-04-13 13:39:40 -050038 "
39
40SRC_URI_class-native = "${SRC_URI_BASE} \
41 file://ghostscript-9.21-native-fix-disable-system-libtiff.patch \
42 file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
43 "
44
Andrew Geissler4b740dc2020-05-05 08:54:39 -050045SRC_URI[md5sum] = "0f6964ab9b83a63b7e373f136243f901"
46SRC_URI[sha256sum] = "c2501d8e8e0814c4a5aa7e443e230e73d7af7f70287546f7b697e5ef49e32176"
Andrew Geissler82c905d2020-04-13 13:39:40 -050047
48# Put something like
49#
50# PACKAGECONFIG_append_pn-ghostscript = " x11"
51#
52# in local.conf to enable building with X11. Be careful. The order
53# of the overrides matters!
54#
55#PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
56PACKAGECONFIG_class-native = ""
57
58PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}, \
59 --without-x, virtual/libx11 libxext libxt gtk+3\
60 "
61
62EXTRA_OECONF = "--without-libpaper --with-system-libtiff --without-jbig2dec \
63 --with-fontpath=${datadir}/fonts \
64 --without-libidn --with-cups-serverbin=${exec_prefix}/lib/cups \
65 --with-cups-datadir=${datadir}/cups \
66 CUPSCONFIG="${STAGING_BINDIR_CROSS}/cups-config" \
67 "
68
69EXTRA_OECONF_append_mipsarcho32 = " --with-large_color_index=0"
70
71# Explicity disable libtiff, fontconfig,
72# freetype, cups for ghostscript-native
73EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
74 --without-jbig2dec --without-libpaper \
75 --with-fontpath=${datadir}/fonts \
76 --without-libidn --disable-fontconfig \
Andrew Geissler4b740dc2020-05-05 08:54:39 -050077 --enable-freetype --disable-cups "
Andrew Geissler82c905d2020-04-13 13:39:40 -050078
79# This has been fixed upstream but for now we need to subvert the check for time.h
80# http://bugs.ghostscript.com/show_bug.cgi?id=692443
81# http://bugs.ghostscript.com/show_bug.cgi?id=692426
82CFLAGS += "-DHAVE_SYS_TIME_H=1"
83BUILD_CFLAGS += "-DHAVE_SYS_TIME_H=1"
84
Andrew Geissler4b740dc2020-05-05 08:54:39 -050085inherit autotools-brokensep
Andrew Geissler82c905d2020-04-13 13:39:40 -050086
87do_configure_append () {
88 # copy tools from the native ghostscript build
89 if [ "${PN}" != "ghostscript-native" ]; then
90 mkdir -p obj/aux soobj
91 for i in genarch genconf mkromfs echogs gendev genht packps; do
92 cp ${STAGING_BINDIR_NATIVE}/ghostscript-${PV}/$i obj/aux/$i
93 done
94 fi
95}
96
97do_install_append () {
98 mkdir -p ${D}${datadir}/ghostscript/${PV}/
99 cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/
100 cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/
101}
102
103do_compile_class-native () {
104 mkdir -p obj
105 for i in genarch genconf mkromfs echogs gendev genht packps; do
106 oe_runmake obj/aux/$i
107 done
108}
109
110do_install_class-native () {
111 install -d ${D}${bindir}/ghostscript-${PV}
112 for i in genarch genconf mkromfs echogs gendev genht packps; do
113 install -m 755 obj/aux/$i ${D}${bindir}/ghostscript-${PV}/$i
114 done
115}
116
117BBCLASSEXTEND = "native"
118
119# ghostscript does not supports "arc"
120COMPATIBLE_HOST = "^(?!arc).*"
121
122# some entries in NVD uses gpl_ghostscript
123CVE_PRODUCT = "ghostscript gpl_ghostscript"