# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/media-libs/fontconfig/fontconfig-2.7.1-r1.ebuild,v 1.1 2009/08/23 22:48:21 dirtyepic Exp $ EAPI="2" inherit eutils libtool toolchain-funcs flag-o-matic DESCRIPTION="A library for configuring and customizing font access" HOMEPAGE="http://fontconfig.org/" SRC_URI="http://fontconfig.org/release/${P}.tar.gz" LICENSE="fontconfig" SLOT="1.0" KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd" IUSE="cros_host doc -highdpi -is_desktop" # Purposefully dropped the xml USE flag and libxml2 support. Having this is # silly since expat is the preferred way to go per upstream and libxml2 support # simply exists as a fallback when expat isn't around. expat support is the main # way to go and every other distro uses it. By using the xml USE flag to enable # libxml2 support, this confuses users and results in most people getting the # non-standard behavior of libxml2 usage since most profiles have USE=xml RDEPEND=">=media-libs/freetype-2.2.1 >=dev-libs/expat-1.95.3" DEPEND="${RDEPEND} dev-util/pkgconfig doc? ( app-text/docbook-sgml-utils[jadetex] =app-text/docbook-sgml-dtd-3.1* )" PDEPEND="app-admin/eselect-fontconfig" # 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 } src_prepare() { epatch "${FILESDIR}"/${P}-latin-reorder.patch #130466 epatch "${FILESDIR}"/${P}-fonts-config.patch epatch "${FILESDIR}"/${P}-metric-aliases.patch epatch "${FILESDIR}"/${P}-conf-d.patch epatch "${FILESDIR}"/${P}-host-flag.patch epunt_cxx #74077 # Needed to get a sane .so versioning on fbsd, please dont drop # If you have to run eautoreconf, you can also leave the elibtoolize call as # it will be a no-op. elibtoolize } src_configure() { local myconf if tc-is-cross-compiler; then myconf="--with-arch=${ARCH}" replace-flags -mtune=* -DMTUNE_CENSORED replace-flags -march=* -DMARCH_CENSORED filter-flags -mfpu=* -mfloat-abi=* fi # Make the global font cache be /usr/share/cache/fontconfig # by passing /usr/share for the localstatedir econf $(use_enable doc docs) \ --localstatedir=/usr/share \ --with-docdir=/usr/share/doc/${PF} \ --with-default-fonts=/usr/share/fonts \ --with-add-fonts=/usr/local/share/fonts \ ${myconf} || die } src_install() { emake DESTDIR="${D}" install || die #fc-lang directory contains language coverage datafiles #which are needed to test the coverage of fonts. insinto /usr/share/fc-lang doins fc-lang/*.orth insinto /etc/fonts doins "${S}"/fonts.conf 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 # 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 desktop boards. Also disable it on high-DPI displays, since # they have little need for it and use subpixel positioning, which can # interact poorly with it (http://crbug.com/125066#c8). Additionally, # disable it when installing to the host sysroot so the images in the # initramfs package won't use subpixel rendering (http://crosbug.com/27872). if use is_desktop || use highdpi || 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 # Disable hinting on high-DPI displays, where we're already using subpixel # positioning. if use highdpi; then rm "${D}"/etc/fonts/conf.d/10-hinting.conf dosym ../conf.avail/10-unhinted.conf /etc/fonts/conf.d/. check_fontconfig_default 10-unhinted.conf fi doman $(find "${S}" -type f -name *.1 -print) newman doc/fonts-conf.5 fonts.conf.5 dodoc doc/fontconfig-user.{txt,pdf} if use doc; then doman doc/Fc*.3 dohtml doc/fontconfig-devel.html dodoc doc/fontconfig-devel.{txt,pdf} fi dodoc AUTHORS ChangeLog README || die # Changes should be made to /etc/fonts/local.conf, and as we had # too much problems with broken fonts.conf, we force update it ... # (11 Dec 2002) echo 'CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"' > "${T}"/37fontconfig doenvd "${T}"/37fontconfig # As of fontconfig 2.7, everything sticks their noses in here. dodir /etc/sandbox.d echo 'SANDBOX_PREDICT="/usr/share/cache/fontconfig"' > "${D}"/etc/sandbox.d/37fontconfig } pkg_postinst() { einfo "Cleaning broken symlinks in "${ROOT}"etc/fonts/conf.d/" find -L "${ROOT}"etc/fonts/conf.d/ -type l -delete echo ewarn "Please make fontconfig configuration changes using \`eselect fontconfig\`" ewarn "Any changes made to /etc/fonts/fonts.conf will be overwritten." ewarn ewarn "If you need to reset your configuration to upstream defaults, delete" ewarn "the directory ${ROOT}etc/fonts/conf.d/ and re-emerge fontconfig." echo if [[ ${ROOT} = / ]]; then ebegin "Creating global font cache" /usr/bin/fc-cache -sr eend $? fi }