Files
poky/meta/recipes-extended/ghostscript/ghostscript_9.20.bb
Chang Rebecca Swee Fun f9fc722182 ghostscript: check for incompatible host
The following warning occurs when building with meta-zephyr
with MACHINE set to arduino-101-sss:

WARNING: /srv/sdc/builds/11319/meta/recipes-extended/ghostscript/ghostscript_9.20.bb: Unable to get checksum for ghostscript SRC_URI entry objarch.h: file could not be found

This is due to the the TARGET_ARCH = "arc" for meta-zephyr is not
supported by ghostscript and causing bitbake unable to locate the
correct config file during recipe parse.

Adding checker in the recipe to raise an exception if the target
architecture is "arc". This would then only display an error if
someone specifically tries to build the recipe:

ERROR: ghostscript was skipped: incompatible with host arc-yocto-elf (not in COMPATIBLE_HOST)

[YOCTO #11344]

(From OE-Core rev: 720a7230b92d734106d5340a426270dd4e921e8e)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 14:01:48 +01:00

116 lines
4.1 KiB
BlitzBasic

SUMMARY = "The GPL Ghostscript PostScript/PDF interpreter"
DESCRIPTION = "Ghostscript is used for PostScript/PDF preview and printing. Usually as \
a back-end to a program such as ghostview, it can display PostScript and PDF \
documents in an X11 environment. \
\
Furthermore, it can render PostScript and PDF files as graphics to be printed \
on non-PostScript printers. Supported printers include common \
dot-matrix, inkjet and laser models. \
"
HOMEPAGE = "http://www.ghostscript.com"
SECTION = "console/utils"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE;md5=70dc2bac4d0ce4448da873cd86b123fc"
DEPENDS = "ghostscript-native tiff jpeg fontconfig cups libpng"
DEPENDS_class-native = "libpng-native"
UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs920/${BPN}-${PV}.tar.gz \
file://ghostscript-9.15-parallel-make.patch \
file://ghostscript-9.16-Werror-return-type.patch \
file://png_mak.patch \
file://do-not-check-local-libpng-source.patch \
"
SRC_URI = "${SRC_URI_BASE} \
file://ghostscript-9.02-prevent_recompiling.patch \
file://ghostscript-9.02-genarch.patch \
file://objarch.h \
file://cups-no-gcrypt.patch \
file://CVE-2017-7207.patch \
file://CVE-2016-10219.patch \
file://CVE-2016-10220.patch \
file://CVE-2017-5951.patch \
file://CVE-2016-8602.patch \
file://CVE-2017-7975.patch \
"
SRC_URI_class-native = "${SRC_URI_BASE} \
file://ghostscript-native-fix-disable-system-libtiff.patch \
file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
"
SRC_URI[md5sum] = "93c5987cd3ab341108be1ebbaadc24fe"
SRC_URI[sha256sum] = "949b64b46ecf8906db54a94ecf83ab97534ebf946f770d3c3f283cb469cb6e14"
EXTRA_OECONF = "--without-x --with-system-libtiff --without-jbig2dec \
--with-fontpath=${datadir}/fonts \
--without-libidn --with-cups-serverbin=${exec_prefix}/lib/cups \
--with-cups-datadir=${datadir}/cups \
"
EXTRA_OECONF_append_mipsarcho32 = " --with-large_color_index=0"
# Explicity disable libtiff, fontconfig,
# freetype, cups for ghostscript-native
EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
--without-jbig2dec \
--with-fontpath=${datadir}/fonts \
--without-libidn --disable-fontconfig \
--disable-freetype --disable-cups"
# This has been fixed upstream but for now we need to subvert the check for time.h
# http://bugs.ghostscript.com/show_bug.cgi?id=692443
# http://bugs.ghostscript.com/show_bug.cgi?id=692426
CFLAGS += "-DHAVE_SYS_TIME_H=1"
BUILD_CFLAGS += "-DHAVE_SYS_TIME_H=1"
inherit autotools
do_configure_prepend () {
mkdir -p obj
mkdir -p soobj
if [ -e ${WORKDIR}/objarch.h ]; then
cp ${WORKDIR}/objarch.h obj/arch.h
fi
}
do_configure_append () {
# copy tools from the native ghostscript build
if [ "${PN}" != "ghostscript-native" ]; then
mkdir -p obj/aux soobj
for i in genarch genconf mkromfs echogs gendev genht; do
cp ${STAGING_BINDIR_NATIVE}/ghostscript-${PV}/$i obj/aux/$i
done
fi
}
do_install_append () {
mkdir -p ${D}${datadir}/ghostscript/${PV}/
cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/
cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/
}
do_compile_class-native () {
mkdir -p obj
for i in genarch genconf mkromfs echogs gendev genht; do
oe_runmake obj/aux/$i
done
}
do_install_class-native () {
install -d ${D}${bindir}/ghostscript-${PV}
for i in genarch genconf mkromfs echogs gendev genht; do
install -m 755 obj/aux/$i ${D}${bindir}/ghostscript-${PV}/$i
done
}
BBCLASSEXTEND = "native"
# ghostscript does not supports "arc"
COMPATIBLE_HOST = "^(?!arc).*"