From 2f210c93c08515a806199783aabe37d12a0197cb Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 30 May 2023 21:21:38 +0100 Subject: gentoo auto-resync : 30:05:2023 - 21:21:38 --- media-libs/fontconfig/Manifest | 2 + .../fontconfig-2.14.2-fix-sysroot-fc-cache.patch | 60 ++++++ media-libs/fontconfig/fontconfig-2.14.2-r3.ebuild | 232 +++++++++++++++++++++ 3 files changed, 294 insertions(+) create mode 100644 media-libs/fontconfig/files/fontconfig-2.14.2-fix-sysroot-fc-cache.patch create mode 100644 media-libs/fontconfig/fontconfig-2.14.2-r3.ebuild (limited to 'media-libs/fontconfig') diff --git a/media-libs/fontconfig/Manifest b/media-libs/fontconfig/Manifest index 73c7d579fd7f..109adbd8f256 100644 --- a/media-libs/fontconfig/Manifest +++ b/media-libs/fontconfig/Manifest @@ -3,11 +3,13 @@ AUX fontconfig-2.14.0-latin-update.patch 1889 BLAKE2B 42a5faab884bb47e645a8ee6f0 AUX fontconfig-2.14.0-skip-bubblewrap-tests.patch 408 BLAKE2B 911a87e91dcdf49088e9a684a9af753464211f18fd471989410a57363dd71b7cc0940c9a8e61095d901b4d7ee804536262ebc6afb1af3f470d8cd164d2fd2113 SHA512 8302a3ccf5918c8a4c3af3ab3601752c005c0361003281996eba469195127fab0e99c8d225dcb674a1bc198f2c15b982cce49c6bb3234307cf58e47c9206ff5a AUX fontconfig-2.14.1-gperf-meson-debugging.patch 879 BLAKE2B a9697083b74ae9d7e48af9bd51fca347ef81d01e99731c31ec0535d7c9ff026f2ec41d9ad40454c72c88751b63fca6a24983b58aeae761a1a763f525136836dd SHA512 7f5d816b48ce558e87fe902ce70f6159281a6b34e7c3639997781930e9577dadad2c4d6dd929f243a5704d51db32134b5241060042f098d49dec8d83f816bb38 AUX fontconfig-2.14.1-gperf-meson.patch 2559 BLAKE2B 203cdd0d208acaf417e81973810f2a1129f4e9ec75fb51addb36c29267943c4250d27926ab888cf339cf67e10c4ef7fd90d54990c819acfde796d4ec7dd8bd5a SHA512 b87e0506e374a04902a87bfa140fde9fcd4a1d769c249db8d218a32f0befcecca9ad7c7fe389806fc634b83d7a0100c568dba0e243f0a0c7f91e34ad6b5ac7d3 +AUX fontconfig-2.14.2-fix-sysroot-fc-cache.patch 2007 BLAKE2B 91a43c8aec698a9733020031bfded6871d379b20535f6c1291d0d3fa38faaef9e367f0958f6df2b88003190184988dc99f7fa7f013f6837f24b617b83a0d5546 SHA512 73e41f2f19f61514a271141ddb4b640ed3b6060c4ccdcc79a4eefa6a6b4ece0e718012bee4b4b7312561e39ca02cd9663084298000d9cc9aa210c81a16945572 DIST fontconfig-2.14.0.tar.xz 1431056 BLAKE2B 880f34d33ac30158ea61e922f6635900c5b244c2eb5d259f7947a364df86ee13f6190f651471b0a28bcd3c13f19c970783517903df374839e474921611dff1ff SHA512 a5257249d031b3cd1a7b1521cd58f48d235a970020da4136a727db5407ec98e74a3776bc467d7e39f30ec664f56ff9fe39068317744a5e737a65109f7a005bfc DIST fontconfig-2.14.1.tar.xz 1447044 BLAKE2B 4bee654f4196922fb07673f588b4bf8a651bbcc8b882b20712814ff253adf6457c3c4b4c2f5549bac37ed3f152e9993988f00d04e2516c911eb13747fc4a1c73 SHA512 ba42e6f90ec92914895d2157c872c373adfc17be791b92253bcc40e85674a84e43c08ab2b37c3ae85b53b2e7bd2a7847abb479043f303b732c08eeac3ee733db DIST fontconfig-2.14.2.tar.xz 1440844 BLAKE2B 4efeeb7f9a6705d493128d00b60e681a20a47556f4c0d7787a5c7a6d2cbbc22f150cad7988a9836a9e72aeb61e2b6a196c00a071c7042c62283c7720cdbb743d SHA512 23483e0ae6aa7589fd37f9949a4cf951c5bff981739dbb446881e4cea86a208c0ab31e2358666eac724af1dc6a689a42733a7ce91cd3e76d8d91eacedb318085 EBUILD fontconfig-2.14.0-r1.ebuild 6658 BLAKE2B 789ca6fe8b523d117859b571ac5ddc93454d3ec1b470abfea8a158bcb7de0f8ff747036dc60cea3ca9da52968a8a8a53acbcd66ccc8eb20d4eeb16677ffecb3a SHA512 a63db14fa658d93c404ea462bc5b37f537d4169d21a7820f394e7be475b9d4e4fb03146c2f1e85c95763b214bdd5dd17d9047f0e2304f23a78d59d8c437f6c65 EBUILD fontconfig-2.14.1-r1.ebuild 6585 BLAKE2B 9b9289946672a0f581dcaec83347bd150650576fa8386a2eb48129c704ef50e87bf550ee6e34ece86169df4a72829062ff8c8ad3505d5048984bb5fcd3b28c59 SHA512 9c5b0f3ee44eb5f46ca701f938a4fff341152d4175989a3f914bced0958ce1bcd61d8bb0d26b5378beaa8b1c5ad96551e0d3cdc0077e6e07c834535eb5e9ad6b EBUILD fontconfig-2.14.2-r2.ebuild 7101 BLAKE2B 1fcba14a5de5c24375d4f70ea41ed19a5d65f5b75731491e303431d040c9715477f2691104cfc5aa5aa9a0fa3449e25e716aacaef6d03b1d3cb8b861c2e69294 SHA512 2fd6d774118ecc162cd097a1a5349a1b09d3303ab2c9843fe05c0e7663680010e396dbb94beb434b4a389394559ddede55b925d6c0913782b22655df271e5c83 +EBUILD fontconfig-2.14.2-r3.ebuild 7149 BLAKE2B 85e77326f916ad3982d60d56861b3d1db1791d2ab48293d5f47820cb597d203a1a0158469a657c0b359be63415798f784f6d1bbd5286112a009bd8d0d89620be SHA512 d9b8f60ca8d4040e0edca8b1388b36ff95f6d61ea5537f6a76bc418e0cf330ac84e9811ab5d39ae687a9cbe00d751819507411a05d22088dfb4c7ee8cb09440c EBUILD fontconfig-2.14.2.ebuild 6491 BLAKE2B 0b29f10921cb1a49083b95e0a0184ca8b5fd062c89b3d3de537633c8ff5178b68653b516dd2b3bc006840447a9d74e843f4d44069d4ccbf73f31ce8e14a15977 SHA512 e1be93bfecbd156295e6ab41475083e4355f76618c077766ac45563f842c534849ea6c7c61cdd6816e95d09f680c76cf354c3ffeb136880ae8c21f6d71f373dd MISC metadata.xml 672 BLAKE2B d23112b5d408aed97ad68bc9a141a570c22fd6bbf0022e979b7006817ae27bcba21be43558cb42df06f3c280cbed5570c62805bb69be8a64b1f41bd90b200bc0 SHA512 1ff9c1f22b9766127692eec4824ce966f7a7305ddfae0dd1d8b0e5b432926508dd7a898eada6c182e02c985e11c2f9a22f13eac195333ed32952af0e89015e9a diff --git a/media-libs/fontconfig/files/fontconfig-2.14.2-fix-sysroot-fc-cache.patch b/media-libs/fontconfig/files/fontconfig-2.14.2-fix-sysroot-fc-cache.patch new file mode 100644 index 000000000000..8568d5f4a99f --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.14.2-fix-sysroot-fc-cache.patch @@ -0,0 +1,60 @@ +https://bugs.gentoo.org/907424 +https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/2ef790a0dbbab24235d1b8c0325ab4414de5f0a9 + +From 2ef790a0dbbab24235d1b8c0325ab4414de5f0a9 Mon Sep 17 00:00:00 2001 +From: Tom Anderson +Date: Thu, 9 Feb 2023 01:31:26 +0000 +Subject: [PATCH] Fix filepaths added when scanning with sysroot + +This fixes a regression introduced by 76f88e780. When +using FONTCONFIG_SYSROOT=/home/tom/test_fonts, strace +reveals that fontconfig attempted to open /test_fonts/Ahem.ttf +instead of /home/tom/test_fonts/Ahem.ttf. The fix is to use +`s_dir` instead of `dir` in `file_prefix`. +--- a/src/fcdir.c ++++ b/src/fcdir.c +@@ -201,7 +201,7 @@ FcDirScanConfig (FcFontSet *set, + DIR *d; + struct dirent *e; + FcStrSet *files; +- FcChar8 *file_prefix, *s_dir = NULL; ++ FcChar8 *file_prefix = NULL, *s_dir = NULL; + FcChar8 *base; + const FcChar8 *sysroot = FcConfigGetSysRoot (config); + FcBool ret = FcTrue; +@@ -213,16 +213,6 @@ FcDirScanConfig (FcFontSet *set, + if (!set && !dirs) + return FcTrue; + +- /* freed below */ +- file_prefix = (FcChar8 *) malloc (strlen ((char *) dir) + 1 + FC_MAX_FILE_LEN + 1); +- if (!file_prefix) { +- ret = FcFalse; +- goto bail; +- } +- strcpy ((char *) file_prefix, (char *) dir); +- strcat ((char *) file_prefix, FC_DIR_SEPARATOR_S); +- base = file_prefix + strlen ((char *) file_prefix); +- + if (sysroot) + s_dir = FcStrBuildFilename (sysroot, dir, NULL); + else +@@ -232,6 +222,16 @@ FcDirScanConfig (FcFontSet *set, + goto bail; + } + ++ /* freed below */ ++ file_prefix = (FcChar8 *) malloc (strlen ((char *) s_dir) + 1 + FC_MAX_FILE_LEN + 1); ++ if (!file_prefix) { ++ ret = FcFalse; ++ goto bail; ++ } ++ strcpy ((char *) file_prefix, (char *) s_dir); ++ strcat ((char *) file_prefix, FC_DIR_SEPARATOR_S); ++ base = file_prefix + strlen ((char *) file_prefix); ++ + if (FcDebug () & FC_DBG_SCAN) + printf ("\tScanning dir %s\n", s_dir); + +-- +GitLab diff --git a/media-libs/fontconfig/fontconfig-2.14.2-r3.ebuild b/media-libs/fontconfig/fontconfig-2.14.2-r3.ebuild new file mode 100644 index 000000000000..c4f8f60b690d --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.14.2-r3.ebuild @@ -0,0 +1,232 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +inherit multilib meson-multilib python-any-r1 readme.gentoo-r1 + +DESCRIPTION="A library for configuring and customizing font access" +HOMEPAGE="https://fontconfig.org/" +SRC_URI="https://fontconfig.org/release/${P}.tar.xz" + +LICENSE="MIT" +SLOT="1.0" +if ! [[ $(ver_cut 3) -ge 90 ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +fi +IUSE="doc nls test" +RESTRICT="!test? ( test )" + +# - Check minimum freetype & other deps on bumps. See +# https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/main/configure.ac#L314. +# Note that FT versioning is confusing, need to map it using +# https://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT +# But sometimes it's actually greater than that, e.g. see Fedora's spec file +# https://src.fedoraproject.org/rpms/fontconfig/blob/rawhide/f/fontconfig.spec#_1 +# +# - Purposefully dropped the xml USE flag and libxml2 support. Expat is the +# default and used by every distro. See bug #283191. +# +# - There's a test-only dep on json-c. +# It might become an optional(?) runtime dep in future though. Who knows. +# Keep an eye on it. +RDEPEND=" + >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] + >=media-libs/freetype-2.9.1[${MULTILIB_USEDEP}] + virtual/libintl[${MULTILIB_USEDEP}] + !elibc_Darwin? ( !elibc_SunOS? ( sys-apps/util-linux[${MULTILIB_USEDEP}] ) ) + elibc_Darwin? ( sys-libs/native-uuid ) + elibc_SunOS? ( sys-libs/libuuid ) +" +DEPEND=" + ${RDEPEND} + test? ( dev-libs/json-c ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-util/gperf + virtual/pkgconfig + doc? ( + =app-text/docbook-sgml-dtd-3.1* + app-text/docbook-sgml-utils[jadetex] + ) + nls? ( >=sys-devel/gettext-0.19.8 ) +" +PDEPEND="virtual/ttf-fonts" +# We need app-eselect/eselect-fontconfig in IDEPEND to update ROOT +# when cross-compiling. +IDEPEND="app-eselect/eselect-fontconfig" + +PATCHES=( + # bug #130466 + make liberation default + "${FILESDIR}"/${PN}-2.14.0-latin-update.patch + # Avoid test failure (bubblewrap doesn't work within sandbox) + "${FILESDIR}"/${PN}-2.14.0-skip-bubblewrap-tests.patch + + # Patches from upstream (can usually be removed with next version bump) + "${FILESDIR}"/${P}-fix-sysroot-fc-cache.patch +) + +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_prepare() { + default + + # Test needs network access + # https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/319 + # On bumps, please check to see if this has been fixed + # to allow local access! + sed -i -e '/test-crbug1004254/d' test/meson.build || die +} + +multilib_src_configure() { + local addfonts=( + "${EPREFIX}"/usr/local/share/fonts + ) + + # 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+=( /usr/X/lib/X11/fonts/Type1 ) + ;; + + *-linux-gnu) + use prefix && [[ -d /usr/share/fonts ]] && \ + addfonts+=( /usr/share/fonts ) + ;; + esac + + local emesonargs=( + # USE=doc only controls the additional bits like html/pdf + # and regeneration of man pages from source. We always install + # the prebuilt man pages. + $(meson_native_use_feature doc) + $(meson_native_use_feature doc doc-txt) + $(meson_native_use_feature doc doc-html) + $(meson_native_use_feature doc doc-man) + $(meson_native_use_feature doc doc-pdf) + + $(meson_native_use_feature nls) + $(meson_feature test tests) + + -Dcache-build=disabled + -Dcache-dir="${EPREFIX}"/var/cache/fontconfig + -Ddefault-fonts-dirs="${EPREFIX}"/usr/share/fonts + -Dadditional-fonts-dirs=$(IFS=, ; echo "${addfonts[*]}" ) + -Dtemplate-dir="${EPREFIX}"/etc/fonts/conf.avail + + # Let users choose via eselect-fontconfig. See bug #900681 + # and https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/356. + -Ddefault-sub-pixel-rendering=none + ) + + meson_src_configure +} + +multilib_src_install() { + MULTILIB_CHOST_TOOLS=( /usr/bin/fc-cache$(get_exeext) ) + + meson_src_install + + # 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 + + # 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 + + dodoc doc/fontconfig-user.{txt,pdf} + + if ! use doc ; then + find "${S}" -name "*.[[:digit:]]" -type f -exec doman '{}' + || die + fi + + if [[ -e ${ED}/usr/share/doc/fontconfig/ ]] ; then + mv "${ED}"/usr/share/doc/fontconfig/* "${ED}"/usr/share/doc/${PF} || die + rm -rf "${ED}"/usr/share/doc/fontconfig || die + 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 || die + doenvd "${T}"/37fontconfig + + # As of fontconfig 2.7, everything sticks their noses in here. + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/var/cache/fontconfig"' > "${ED}"/etc/sandbox.d/37fontconfig || die + + readme.gentoo_create_doc +} + +pkg_preinst() { + # bug #193476 + # /etc/fonts/conf.d/ contains symlinks to ../conf.avail/ to include various + # config files. If we install as-is, we'll blow away user settings. + ebegin "Syncing fontconfig configuration to system" + if [[ -e ${EROOT}/etc/fonts/conf.d ]] ; then + local file f + for file in "${EROOT}"/etc/fonts/conf.avail/* ; do + f=${file##*/} + if [[ -L ${EROOT}/etc/fonts/conf.d/${f} ]] ; then + [[ -f ${ED}/etc/fonts/conf.avail/${f} ]] \ + && ln -sf ../conf.avail/"${f}" \ + "${ED}"/etc/fonts/conf.d/ &>/dev/null + else + [[ -f ${ED}/etc/fonts/conf.avail/${f} ]] \ + && rm "${ED}"/etc/fonts/conf.d/"${f}" &>/dev/null + fi + done + fi + eend $? +} + +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 + + local ver + for ver in ${REPLACING_VERSIONS} ; do + # 2.14.2 and 2.14.2-r1 included the bad 10-sub-pixel-none.conf + if ver_test ${ver} -lt 2.14.2-r2 && ver_test ${ver} -ge 2.14.2 ; then + if [[ -e "${EROOT}"/etc/fonts/conf.d/10-sub-pixel-none.conf ]] ; then + einfo "Deleting 10-sub-pixel-none.conf from bad fontconfig-2.14.2 (bug #900681)" + rm "${EROOT}"/etc/fonts/conf.d/10-sub-pixel-none.conf || die + fi + fi + done + + if [[ -z ${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 +} -- cgit v1.2.3