From c5c70d16d488f6e92bd0f9728a496acc16e4094d Mon Sep 17 00:00:00 2001 From: extrowerk <5569059+extrowerk@users.noreply.github.com> Date: Sun, 4 Sep 2022 11:19:20 +0000 Subject: [PATCH] Fontconfig 2.13.96 (#6723) * Fontconfig: bump * Synced patch --- .../fontconfig/fontconfig-2.13.96.recipe | 145 ++++++++++++++++++ .../patches/fontconfig-2.13.96.patchset | 47 ++++++ 2 files changed, 192 insertions(+) create mode 100644 media-libs/fontconfig/fontconfig-2.13.96.recipe create mode 100644 media-libs/fontconfig/patches/fontconfig-2.13.96.patchset diff --git a/media-libs/fontconfig/fontconfig-2.13.96.recipe b/media-libs/fontconfig/fontconfig-2.13.96.recipe new file mode 100644 index 000000000..da77c5ff5 --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.13.96.recipe @@ -0,0 +1,145 @@ +SUMMARY="A library for font customization and configuration" +DESCRIPTION="Fontconfig is a library for font customization and configuration." +HOMEPAGE="https://www.freedesktop.org/wiki/Software/fontconfig" +COPYRIGHT="2000-2005, 2006-2007 Keith Packard + 2005 Patrick Lam + 2009 Roozbeh Pournader + 2008-2009 Red Hat, Inc. + 2008 Danilo Segan + 2012 Google, Inc." +LICENSE="MIT" +REVISION="1" +SOURCE_URI="https://www.freedesktop.org/software/fontconfig/release/fontconfig-$portVersion.tar.xz" +CHECKSUM_SHA256="d816a920384aa91bc0ebf20c3b51c59c2153fdf65de0b5564bf9e8473443d637" +PATCHES="fontconfig-$portVersion.patchset" + +ARCHITECTURES="all" +SECONDARY_ARCHITECTURES="?x86_gcc2 x86" + +libVersion="1.12.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +GLOBAL_WRITABLE_FILES=" + settings/fonts/conf.d directory keep-old + settings/fonts/fonts.conf auto-merge + " + +PROVIDES=" + fontconfig$secondaryArchSuffix = $portVersion compat >= 2 + cmd:fc_cache$secondaryArchSuffix + cmd:fc_cat$secondaryArchSuffix + cmd:fc_conflist$secondaryArchSuffix + cmd:fc_list$secondaryArchSuffix + cmd:fc_match$secondaryArchSuffix + cmd:fc_pattern$secondaryArchSuffix + cmd:fc_query$secondaryArchSuffix + cmd:fc_scan$secondaryArchSuffix + cmd:fc_validate$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + fontconfig${secondaryArchSuffix}_devel = $portVersion compat >= 2.1 + devel:libfontconfig$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + fontconfig$secondaryArchSuffix == $portVersion base + devel:libfreetype$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + " + +defineDebugInfoPackage fontconfig$secondaryArchSuffix \ + $libDir/libfontconfig.so.$libVersion + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libbz2$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:autopoint + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:python3 + " + +BUILD() +{ + mkdir -p `finddir B_USER_CACHE_DIRECTORY` + autoreconf -vfi + FONTS_DIR=`finddir B_SYSTEM_FONTS_DIRECTORY` + FONTS_DIR2=`finddir B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY` + FONTS_DIR3=`finddir B_USER_FONTS_DIRECTORY` + FONTS_DIR4=`finddir B_USER_NONPACKAGED_FONTS_DIRECTORY` + CACHE_DIR=`finddir B_USER_CACHE_DIRECTORY` + runConfigure ./configure \ + --enable-libxml2 \ + --with-default-fonts=${FONTS_DIR} \ + --with-add-fonts=${FONTS_DIR2},${FONTS_DIR3},${FONTS_DIR4} \ + --with-cache-dir=${CACHE_DIR} + make $jobArgs +} + +INSTALL() +{ + make install RUN_FC_CACHE_TEST=false + + rm $libDir/*.la + + prepareInstalledDevelLibs \ + libfontconfig + fixPkgconfig + + # The pkgconfig file reference other libraries using the wrong paths, which + # creates a lot of confusion. Fix them so correct paths are used. + local develPackageName="${portName}_devel-$portFullVersion" + local packageLinksDir=$(dirname $portPackageLinksDir) + local linksDir="$packageLinksDir/${develPackageName}/devel~libfreetype$secondaryArchSuffix/$relativeDevelopLibDir" + sed -i -e "s,^\(Libs.private.*\)-L.* \(-lfreetype.*\)$,\1-L$linksDir \2," \ + $developLibDir/pkgconfig/fontconfig.pc + linksDir="$packageLinksDir/${develPackageName}/devel~libxml2$secondaryArchSuffix/$relativeDevelopLibDir" + sed -i -e "s,^\(Libs.private.*-lfreetype.*\) -L.* \(-lxml2.*\)$,\1-L$linksDir \2," \ + $developLibDir/pkgconfig/fontconfig.pc + linksDir="$packageLinksDir/${develPackageName}/devel~libfreetype$secondaryArchSuffix/$relativeIncludeDir" + sed -i -e "s,^\(Cflags.*\)-I/packages.*\(/freetype2.*\)$,\1-I$linksDir\2," \ + $developLibDir/pkgconfig/fontconfig.pc + linksDir="$packageLinksDir/${develPackageName}/devel~libxml2$secondaryArchSuffix/$relativeIncludeDir" + sed -i -e "s,^\(Cflags.*freetype2.*\)-I/packages.*\(/libxml2.*\)$,\1-I$linksDir\2," \ + $developLibDir/pkgconfig/fontconfig.pc + + packageEntries devel \ + $developDir \ + $manDir \ + $docDir + + # Make symlinks relative + for i in $settingsDir/fonts/conf.d/*.conf; do + ln -f -r -s "`readlink "$i"`" "$i" + done +} + +TEST() +{ + make check +} diff --git a/media-libs/fontconfig/patches/fontconfig-2.13.96.patchset b/media-libs/fontconfig/patches/fontconfig-2.13.96.patchset new file mode 100644 index 000000000..a9574783d --- /dev/null +++ b/media-libs/fontconfig/patches/fontconfig-2.13.96.patchset @@ -0,0 +1,47 @@ +From e56bbe61f812fc582e860f199af45613d80928bb Mon Sep 17 00:00:00 2001 +From: begasus +Date: Mon, 10 Jun 2019 19:04:18 +0200 +Subject: Fix for gcc2 and test-bz106632 + + +diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c +index a99adba..8f5bc00 100644 +--- a/fc-cache/fc-cache.c ++++ b/fc-cache/fc-cache.c +@@ -150,6 +150,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, + FcBool was_valid, was_processed = FcFalse; + int i; + const FcChar8 *sysroot = FcConfigGetSysRoot (config); ++ FcChar8 *rooted_dir = NULL; + + /* + * Now scan all of the directories into separate databases +@@ -172,7 +173,6 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, + continue; + } + +- FcChar8 *rooted_dir = NULL; + if (sysroot) + { + rooted_dir = FcStrPlus(sysroot, dir); +diff --git a/src/fccfg.c b/src/fccfg.c +index eb174a4..c6f5a93 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -2769,11 +2769,12 @@ FcConfigRealFilename (FcConfig *config, + else if (!FcStrIsAbsoluteFilename (buf)) + { + FcChar8 *dirname = FcStrDirname (n); ++ FcChar8 *path; + FcStrFree (n); + if (!dirname) + return NULL; + +- FcChar8 *path = FcStrBuildFilename (dirname, buf, NULL); ++ path = FcStrBuildFilename (dirname, buf, NULL); + FcStrFree (dirname); + if (!path) + return NULL; +-- +2.30.2 +