1*c9537f57SPatrick WilliamsSUMMARY = "The GPL Ghostscript PostScript/PDF interpreter" 2*c9537f57SPatrick WilliamsDESCRIPTION = "Ghostscript is used for PostScript/PDF preview and printing. Usually as \ 3*c9537f57SPatrick Williamsa back-end to a program such as ghostview, it can display PostScript and PDF \ 4*c9537f57SPatrick Williamsdocuments in an X11 environment. \ 5*c9537f57SPatrick Williams\ 6*c9537f57SPatrick WilliamsFurthermore, it can render PostScript and PDF files as graphics to be printed \ 7*c9537f57SPatrick Williamson non-PostScript printers. Supported printers include common \ 8*c9537f57SPatrick Williamsdot-matrix, inkjet and laser models. \ 9*c9537f57SPatrick Williams" 10*c9537f57SPatrick WilliamsHOMEPAGE = "http://www.ghostscript.com" 11*c9537f57SPatrick WilliamsSECTION = "console/utils" 12*c9537f57SPatrick Williams 13*c9537f57SPatrick WilliamsLICENSE = "AGPL-3.0-or-later" 14*c9537f57SPatrick WilliamsLIC_FILES_CHKSUM = "file://LICENSE;md5=f98ffa763e50cded76f49bce73aade16" 15*c9537f57SPatrick Williams 16*c9537f57SPatrick WilliamsDEPENDS = "tiff jpeg fontconfig cups libpng freetype zlib" 17*c9537f57SPatrick Williams 18*c9537f57SPatrick WilliamsUPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases" 19*c9537f57SPatrick WilliamsUPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" 20*c9537f57SPatrick Williams 21*c9537f57SPatrick Williamsdef gs_verdir(v): 22*c9537f57SPatrick Williams return "".join(v.split(".")) 23*c9537f57SPatrick Williams 24*c9537f57SPatrick Williams 25*c9537f57SPatrick WilliamsSRC_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \ 26*c9537f57SPatrick Williams file://ghostscript-9.16-Werror-return-type.patch \ 27*c9537f57SPatrick Williams file://avoid-host-contamination.patch \ 28*c9537f57SPatrick Williams file://0001-Bug-708160-Fix-compatibility-with-C23-compilers.patch \ 29*c9537f57SPatrick Williams " 30*c9537f57SPatrick Williams 31*c9537f57SPatrick WilliamsSRC_URI[sha256sum] = "121861b6d29b2461dec6575c9f3cab665b810bd408d4ec02c86719fa708b0a49" 32*c9537f57SPatrick Williams 33*c9537f57SPatrick WilliamsPACKAGECONFIG ??= "" 34*c9537f57SPatrick WilliamsPACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3" 35*c9537f57SPatrick WilliamsPACKAGECONFIG[libidn] = "--with-libidn,--without-libidn,libidn" 36*c9537f57SPatrick WilliamsPACKAGECONFIG[libpaper] = "--with-libpaper,--without-libpaper,libpaper" 37*c9537f57SPatrick WilliamsPACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}, \ 38*c9537f57SPatrick Williams --without-x, virtual/libx11 libxext libxt" 39*c9537f57SPatrick Williams 40*c9537f57SPatrick WilliamsEXTRA_OECONF = "--with-jbig2dec \ 41*c9537f57SPatrick Williams --with-fontpath=${datadir}/fonts \ 42*c9537f57SPatrick Williams CUPSCONFIG="${STAGING_BINDIR_CROSS}/cups-config" \ 43*c9537f57SPatrick Williams PKGCONFIG=pkg-config \ 44*c9537f57SPatrick Williams " 45*c9537f57SPatrick Williams 46*c9537f57SPatrick WilliamsEXTRA_OECONF:append:mipsarcho32 = " --with-large_color_index=0" 47*c9537f57SPatrick Williams 48*c9537f57SPatrick WilliamsEXTRA_OECONF:append:armv7a = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" 49*c9537f57SPatrick WilliamsEXTRA_OECONF:append:armv7ve = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" 50*c9537f57SPatrick Williams 51*c9537f57SPatrick WilliamsCC += "-std=gnu17" 52*c9537f57SPatrick Williams 53*c9537f57SPatrick Williams# Uses autoconf but not automake, can't do out-of-tree 54*c9537f57SPatrick Williamsinherit autotools-brokensep pkgconfig 55*c9537f57SPatrick Williams 56*c9537f57SPatrick Williams# Prune the source tree of libraries that we're using our packaging of, so that 57*c9537f57SPatrick Williams# ghostscript can't link to them. Can't prune zlib as that's needed for the 58*c9537f57SPatrick Williams# native tools. 59*c9537f57SPatrick Williamsprune_sources() { 60*c9537f57SPatrick Williams rm -rf ${S}/jpeg/ ${S}/libpng/ ${S}/tiff/ ${S}/expat/ ${S}/freetype/ ${S}/cups/lib 61*c9537f57SPatrick Williams} 62*c9537f57SPatrick Williamsdo_unpack[postfuncs] += "prune_sources" 63*c9537f57SPatrick Williams 64*c9537f57SPatrick Williamsdo_install:append () { 65*c9537f57SPatrick Williams oe_runmake DESTDIR=${D} install-so 66*c9537f57SPatrick Williams oe_runmake DESTDIR=${D} install-data 67*c9537f57SPatrick Williams cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/ 68*c9537f57SPatrick Williams cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/ 69*c9537f57SPatrick Williams} 70*c9537f57SPatrick Williams 71*c9537f57SPatrick Williams# ghostscript does not supports "arc" 72*c9537f57SPatrick WilliamsCOMPATIBLE_HOST = "^(?!arc).*" 73*c9537f57SPatrick Williams 74*c9537f57SPatrick Williams# some entries in NVD uses gpl_ghostscript 75*c9537f57SPatrick WilliamsCVE_PRODUCT = "ghostscript gpl_ghostscript" 76*c9537f57SPatrick Williams 77*c9537f57SPatrick WilliamsCVE_STATUS[CVE-2023-38560] = "not-applicable-config: PCL isn't part of the Ghostscript release" 78*c9537f57SPatrick WilliamsCVE_STATUS[CVE-2023-38559] = "cpe-incorrect: Issue only appears in versions before 10.02.0" 79