| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/media-libs/fontconfig/fontconfig-2.11.1-r1.ebuild,v 1.2 2014/06/10 00:44:36 vapier Exp $ |
| |
| EAPI=5 |
| AUTOTOOLS_AUTORECONF=yes |
| |
| inherit eutils readme.gentoo autotools-multilib |
| |
| DESCRIPTION="A library for configuring and customizing font access" |
| HOMEPAGE="http://fontconfig.org/" |
| SRC_URI="http://fontconfig.org/release/${P}.tar.bz2" |
| |
| LICENSE="MIT" |
| SLOT="1.0" |
| KEYWORDS="*" |
| IUSE="cros_host doc static-libs +subpixel_rendering touchview" |
| |
| # Purposefully dropped the xml USE flag and libxml2 support. Expat is the |
| # default and used by every distro. See bug #283191. |
| |
| RDEPEND=">=dev-libs/expat-1.95.3[${MULTILIB_USEDEP}] |
| >=media-libs/freetype-2.2.1[${MULTILIB_USEDEP}] |
| abi_x86_32? ( !app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)] )" |
| DEPEND="${RDEPEND} |
| virtual/pkgconfig |
| doc? ( |
| =app-text/docbook-sgml-dtd-3.1* |
| app-text/docbook-sgml-utils[jadetex] |
| )" |
| PDEPEND="!x86-winnt? ( app-admin/eselect-fontconfig ) |
| virtual/ttf-fonts" |
| |
| PATCHES=( |
| "${FILESDIR}"/${PN}-2.10.2-docbook.patch # 310157 |
| "${FILESDIR}"/${P}-fonts-config.patch |
| "${FILESDIR}"/${P}-conf-d.patch |
| "${FILESDIR}"/${P}-fclang.patch |
| "${FILESDIR}"/${P}-symbolcmap.patch |
| "${FILESDIR}"/${P}-mtime.patch # 205424 |
| "${FILESDIR}"/${P}-glibc2-26.patch |
| ) |
| |
| MULTILIB_CHOST_TOOLS=( |
| /usr/bin/fc-cache |
| ) |
| |
| # Checks that a passed-in fontconfig default symlink (e.g. "10-autohint.conf") |
| # is present and dies if it isn't. |
| check_fontconfig_default() { |
| local path="${D}"/etc/fonts/conf.d/"$1" |
| if [[ ! -L ${path} ]]; then |
| die "Didn't find $1 among default fontconfig settings (at ${path})." |
| fi |
| } |
| |
| pkg_setup() { |
| DOC_CONTENTS="Please make fontconfig configuration changes using |
| \`eselect fontconfig\`. Any changes made to /etc/fonts/fonts.conf will be |
| overwritten. If you need to reset your configuration to upstream defaults, |
| delete the directory ${EROOT}etc/fonts/conf.d/ and re-emerge fontconfig." |
| } |
| |
| src_configure() { |
| local addfonts |
| # harvest some font locations, such that users can benefit from the |
| # host OS's installed fonts |
| case ${CHOST} in |
| *-darwin*) |
| addfonts=",/Library/Fonts,/System/Library/Fonts" |
| ;; |
| *-solaris*) |
| [[ -d /usr/X/lib/X11/fonts/TrueType ]] && \ |
| addfonts=",/usr/X/lib/X11/fonts/TrueType" |
| [[ -d /usr/X/lib/X11/fonts/Type1 ]] && \ |
| addfonts="${addfonts},/usr/X/lib/X11/fonts/Type1" |
| ;; |
| *-linux-gnu) |
| use prefix && [[ -d /usr/share/fonts ]] && \ |
| addfonts=",/usr/share/fonts" |
| ;; |
| esac |
| |
| local myeconfargs=( |
| $(use_enable doc docbook) |
| # always enable docs to install manpages |
| --enable-docs |
| # Font cache should be in /usr/share/cache instead of /var/cache |
| # because the latter is not in the read-only partition. |
| --localstatedir="${EPREFIX}"/usr/share |
| --with-default-fonts="${EPREFIX}"/usr/share/fonts |
| --with-add-fonts="${EPREFIX}/usr/local/share/fonts${addfonts}" \ |
| --with-templatedir="${EPREFIX}"/etc/fonts/conf.avail |
| ) |
| |
| autotools-multilib_src_configure |
| } |
| |
| multilib_src_install() { |
| default |
| |
| # XXX: avoid calling this multiple times, bug #459210 |
| if multilib_is_native_abi; then |
| insinto /etc/fonts |
| doins fonts.conf |
| fi |
| } |
| |
| multilib_src_install_all() { |
| einstalldocs |
| prune_libtool_files --all |
| |
| doins "${FILESDIR}"/local.conf |
| # Test that fontconfig's defaults for basic rendering settings |
| # match what we want to use. |
| check_fontconfig_default 10-autohint.conf |
| check_fontconfig_default 10-hinting.conf |
| check_fontconfig_default 10-hinting-slight.conf |
| check_fontconfig_default 10-sub-pixel-rgb.conf |
| |
| # Enable antialiasing by default. |
| dosym ../conf.avail/10-antialias.conf /etc/fonts/conf.d/ |
| check_fontconfig_default 10-antialias.conf |
| |
| # There's a lot of variability across different displays with subpixel |
| # rendering. Until we have a better solution, turn it off and use grayscale |
| # instead on boards that don't have internal displays. |
| # |
| # Additionally, disable it for convertible devices with rotatable displays |
| # (http://crbug.com/222208) and when installing to the host sysroot so the |
| # images in the initramfs package won't use subpixel rendering |
| # (http://crosbug.com/27872). |
| if ! use subpixel_rendering || use touchview || use cros_host; then |
| rm "${D}"/etc/fonts/conf.d/10-sub-pixel-rgb.conf |
| dosym ../conf.avail/10-no-sub-pixel.conf /etc/fonts/conf.d/ |
| check_fontconfig_default 10-no-sub-pixel.conf |
| fi |
| |
| # Changes should be made to /etc/fonts/local.conf, and as we had |
| # too much problems with broken fonts.conf we force update it ... |
| echo 'CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"' > "${T}"/37fontconfig |
| doenvd "${T}"/37fontconfig |
| |
| # As of fontconfig 2.7, everything sticks their noses in here. |
| # Replace /var/cache with /usr/share/cache for CrOS. |
| dodir /etc/sandbox.d |
| echo 'SANDBOX_PREDICT="/usr/share/cache/fontconfig"' > "${ED}"/etc/sandbox.d/37fontconfig |
| |
| readme.gentoo_create_doc |
| } |
| |
| pkg_postinst() { |
| einfo "Cleaning broken symlinks in "${EROOT}"etc/fonts/conf.d/" |
| find -L "${EROOT}"etc/fonts/conf.d/ -type l -delete |
| |
| readme.gentoo_print_elog |
| |
| if [[ ${ROOT} = / ]]; then |
| multilib_pkg_postinst() { |
| ebegin "Creating global font cache for ${ABI}" |
| "${EPREFIX}"/usr/bin/${CHOST}-fc-cache -srf |
| eend $? |
| } |
| |
| multilib_parallel_foreach_abi multilib_pkg_postinst |
| fi |
| } |