| # Copyright 1999-2020 Gentoo Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=7 |
| |
| GENTOO_DEPEND_ON_PERL=no |
| |
| inherit perl-module systemd flag-o-matic cros-sanitizers |
| |
| if [[ "${PV}" == "9999" ]] ; then |
| inherit git-r3 |
| EGIT_REPO_URI="https://github.com/OpenPrinting/cups-filters.git" |
| else |
| SRC_URI="http://www.openprinting.org/download/${PN}/${P}.tar.xz" |
| KEYWORDS="*" |
| fi |
| DESCRIPTION="Cups filters" |
| HOMEPAGE="https://wiki.linuxfoundation.org/openprinting/cups-filters" |
| |
| LICENSE="MIT GPL-2" |
| SLOT="0" |
| IUSE="dbus +foomatic ipp_autosetup jpeg ldap pclm pdf perl png +postscript static-libs test tiff zeroconf" |
| |
| RESTRICT="!test? ( test )" |
| |
| RDEPEND=" |
| !postscript? ( >=app-text/poppler-0.32:=[cxx,jpeg?,lcms,tiff?,utils] ) |
| >=app-text/qpdf-10.0.1:= |
| chromeos-base/foomatic_shell |
| dev-libs/glib:2 |
| media-libs/fontconfig |
| media-libs/freetype:2 |
| media-libs/lcms:2 |
| >=net-print/cups-1.7.3 |
| !<=net-print/cups-1.5.9999 |
| sys-devel/bc |
| sys-libs/zlib |
| dbus? ( sys-apps/dbus ) |
| foomatic? ( !net-print/foomatic-filters ) |
| jpeg? ( virtual/jpeg:0 ) |
| ldap? ( net-nds/openldap ) |
| pdf? ( app-text/mupdf ) |
| perl? ( dev-lang/perl:= ) |
| png? ( media-libs/libpng:0= ) |
| postscript? ( >=app-text/ghostscript-gpl-9.09[cups] ) |
| tiff? ( media-libs/tiff:0 ) |
| zeroconf? ( net-dns/avahi[dbus] ) |
| " |
| DEPEND="${RDEPEND}" |
| |
| BDEPEND=" |
| dev-util/gdbus-codegen |
| >=sys-devel/gettext-0.18.3 |
| virtual/pkgconfig |
| test? ( media-fonts/dejavu ) |
| " |
| |
| PATCHES=("${FILESDIR}") |
| |
| src_prepare() { |
| default |
| |
| # Bug #626800 |
| append-cxxflags -std=c++11 |
| } |
| |
| src_configure() { |
| sanitizers-setup-env |
| |
| # These two variables are required to configure cups-filters. |
| # Without them, ./configure script tries to run $PKG_CONFIG to |
| # find qpdf, what fails on missing libjpeg dependency defined |
| # in the file /usr/lib/pkgconfig/libqpdf.pc (/build/${BOARD}). |
| # The library libjpeg is there, but there is no corresponding |
| # file libjpeg.pc. |
| export LIBQPDF_CFLAGS=" " |
| export LIBQPDF_LIBS="-lqpdf" |
| local myeconfargs=( |
| --docdir="${EPREFIX}/usr/share/doc/${PF}" |
| --disable-imagefilters |
| --disable-driverless |
| --localstatedir="${EPREFIX}"/var |
| --with-browseremoteprotocols=DNSSD,CUPS |
| --with-cups-rundir="${EPREFIX}"/run/cups |
| --with-fontdir="fonts/conf.avail" |
| --with-pdftops=$(use postscript && echo gs || echo pdftops) |
| --with-rcdir=no |
| --without-php |
| --disable-braille |
| $(use_enable !postscript poppler) |
| $(use_enable dbus) |
| $(use_enable foomatic) |
| $(use_enable ipp_autosetup auto-setup-driverless) |
| $(use_enable ldap) |
| $(use_enable pclm) |
| $(use_enable pdf mutool) |
| $(use_enable postscript ghostscript) |
| --disable-ijs |
| $(use_enable static-libs static) |
| $(use_enable zeroconf avahi) |
| $(use_with jpeg) |
| $(use_with png) |
| $(use_with tiff) |
| ) |
| econf "${myeconfargs[@]}" |
| } |
| |
| src_compile() { |
| default |
| |
| if use perl; then |
| pushd "${S}/scripting/perl" > /dev/null |
| perl-module_src_configure |
| perl-module_src_compile |
| popd > /dev/null |
| fi |
| } |
| |
| src_install() { |
| default |
| |
| if use perl; then |
| pushd "${S}/scripting/perl" > /dev/null |
| perl-module_src_install |
| perl_delete_localpod |
| popd > /dev/null |
| fi |
| |
| if use postscript; then |
| # workaround: some printer drivers still require pstoraster and pstopxl, bug #383831 |
| dosym gstoraster /usr/libexec/cups/filter/pstoraster |
| dosym gstopxl /usr/libexec/cups/filter/pstopxl |
| fi |
| |
| find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die |
| |
| cp "${FILESDIR}"/cups-browsed.init.d-r1 "${T}"/cups-browsed || die |
| |
| if ! use zeroconf ; then |
| sed -i -e 's:need cupsd avahi-daemon:need cupsd:g' "${T}"/cups-browsed || die |
| sed -i -e 's:cups\.service avahi-daemon\.service:cups.service:g' "${S}"/utils/cups-browsed.service || die |
| fi |
| |
| doinitd "${T}"/cups-browsed |
| systemd_dounit "${S}/utils/cups-browsed.service" |
| } |
| |
| src_test() { |
| emake check |
| } |
| |
| pkg_postinst() { |
| if ! use foomatic ; then |
| ewarn "You are disabling the foomatic code in cups-filters. Please do that ONLY if absolutely." |
| ewarn "necessary. net-print/foomatic-filters as replacement is deprecated and unmaintained." |
| fi |
| } |