Repository: conan-io/conan-center-index

Issue:
fontconfig: bump deps
**fontconfig/2.15.0**: bump deps

---

- [x] I've read the [contributing guidelines](https://github.com/conan-io/conan-center-index/blob/master/CONTRIBUTING.md).
- [x] I've used a [recent](https://github.com/conan-io/conan/releases/latest) Conan client version close to the [currently deployed](https://github.com/conan-io/conan-center-index/blob/master/.c3i/config_v1.yml#L6).
- [x] I've tried at least one configuration locally with the [conan-center hook](https://github.com/conan-io/hooks.git) activated.



Discussion:
:vertical_traffic_light: Thank for your Bump dependencies PR. The build service will be triggered soon by a Conan team member.

Resolving patch:
diff --git a/recipes/fontconfig/all/conanfile.py b/recipes/fontconfig/all/conanfile.py
deleted file mode 100644
--- a/recipes/fontconfig/all/conanfile.py
+++ /dev/null
@@ -1,150 +0,0 @@
-from conan import ConanFile
-from conan.errors import ConanInvalidConfiguration
-from conan.tools.apple import fix_apple_shared_install_name
-from conan.tools.build import cross_building
-from conan.tools.env import VirtualBuildEnv, VirtualRunEnv
-from conan.tools.files import copy, get, replace_in_file, rm, rmdir
-from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain, PkgConfigDeps
-from conan.tools.layout import basic_layout
-from conan.tools.microsoft import is_msvc
-import os
-
-required_conan_version = ">=1.54.0"
-
-
-class FontconfigConan(ConanFile):
-    name = "fontconfig"
-    license = "MIT"
-    url = "https://github.com/conan-io/conan-center-index"
-    description = "Fontconfig is a library for configuring and customizing font access"
-    homepage = "https://gitlab.freedesktop.org/fontconfig/fontconfig"
-    topics = ("fonts", "freedesktop")
-    settings = "os", "arch", "compiler", "build_type"
-    options = {
-        "shared": [True, False],
-        "fPIC": [True, False],
-    }
-    default_options = {
-        "shared": False,
-        "fPIC": True,
-    }
-
-    @property
-    def _settings_build(self):
-        return getattr(self, "settings_build", self.settings)
-
-    def config_options(self):
-        if self.settings.os == "Windows":
-            del self.options.fPIC
-
-    def configure(self):
-        if self.options.shared:
-            self.options.rm_safe("fPIC")
-        self.settings.rm_safe("compiler.cppstd")
-        self.settings.rm_safe("compiler.libcxx")
-
-    def layout(self):
-        basic_layout(self, src_folder="src")
-
-    def requirements(self):
-        self.requires("freetype/2.13.2")
-        self.requires("expat/2.6.0")
-        if self.settings.os == "Linux":
-            self.requires("util-linux-libuuid/2.39.2")
-
-    def validate(self):
-        if is_msvc(self):
-            raise ConanInvalidConfiguration("fontconfig does not support Visual Studio for versions < 2.13.93.")
-
-    def build_requirements(self):
-        self.tool_requires("gperf/3.1")
-        if not self.conf.get("tools.gnu:pkg_config", check_type=str):
-            self.tool_requires("pkgconf/2.0.3")
-        if self._settings_build.os == "Windows":
-            self.win_bash = True
-            if not self.conf.get("tools.microsoft.bash:path", check_type=str):
-                self.tool_requires("msys2/cci.latest")
-
-    def source(self):
-        get(self, **self.conan_data["sources"][self.version], strip_root=True)
-
-    def generate(self):
-        env = VirtualBuildEnv(self)
-        env.generate()
-        if not cross_building(self):
-            env = VirtualRunEnv(self)
-            env.generate(scope="build")
-
-        tc = AutotoolsToolchain(self)
-        yes_no = lambda v: "yes" if v else "no"
-        tc.configure_args.extend([
-            f"--enable-shared={yes_no(self.options.shared)}",
-            f"--enable-static={yes_no(not self.options.shared)}",
-            "--disable-docs",
-            "--disable-nls",
-            "--sysconfdir=${prefix}/bin/etc",
-            "--datadir=${prefix}/bin/share",
-            "--datarootdir=${prefix}/bin/share",
-            "--localstatedir=${prefix}/bin/var",
-        ])
-        tc.generate()
-
-        deps = AutotoolsDeps(self)
-        deps.generate()
-        deps = PkgConfigDeps(self)
-        deps.generate()
-
-    def _patch_files(self):
-        # fontconfig requires libtool version number, change it for the corresponding freetype one
-        replace_in_file(
-            self, os.path.join(self.generators_folder, "freetype2.pc"),
-            "Version: {}".format(self.dependencies["freetype"].ref.version),
-            "Version: {}".format(self.dependencies["freetype"].conf_info.get("user.freetype:libtool_version")),
-        )
-        # disable fc-cache test to enable cross compilation but also builds with shared libraries on MacOS
-        replace_in_file(self,
-            os.path.join(self.source_folder, "Makefile.in"),
-            "@CROSS_COMPILING_TRUE@RUN_FC_CACHE_TEST = false",
-            "RUN_FC_CACHE_TEST=false"
-        )
-
-    def build(self):
-        self._patch_files()
-        autotools = Autotools(self)
-        autotools.configure()
-        replace_in_file(self, os.path.join(self.build_folder, "Makefile"), "po-conf test", "po-conf")
-        autotools.make()
-
-    def package(self):
-        copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
-        autotools = Autotools(self)
-        autotools.install()
-        rm(self, "*.pdb", os.path.join(self.package_folder, "bin"))
-        rm(self, "*.conf", os.path.join(self.package_folder, "bin", "etc", "fonts", "conf.d"))
-        rm(self, "*.def", os.path.join(self.package_folder, "lib"))
-        rm(self, "*.la", os.path.join(self.package_folder, "lib"))
-        rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
-        rmdir(self, os.path.join(self.package_folder, "etc"))
-        rmdir(self, os.path.join(self.package_folder, "share"))
-        fix_apple_shared_install_name(self)
-
-    def package_info(self):
-        self.cpp_info.set_property("cmake_find_mode", "both")
-        self.cpp_info.set_property("cmake_file_name", "Fontconfig")
-        self.cpp_info.set_property("cmake_target_name", "Fontconfig::Fontconfig")
-        self.cpp_info.set_property("pkg_config_name", "fontconfig")
-        self.cpp_info.libs = ["fontconfig"]
-        if self.settings.os in ("Linux", "FreeBSD"):
-            self.cpp_info.system_libs.extend(["m", "pthread"])
-
-        fontconfig_file = os.path.join(self.package_folder, "bin", "etc", "fonts", "fonts.conf")
-        self.runenv_info.prepend_path("FONTCONFIG_FILE", fontconfig_file)
-
-        fontconfig_path = os.path.join(self.package_folder, "bin", "etc", "fonts")
-        self.runenv_info.prepend_path("FONTCONFIG_PATH", fontconfig_path)
-
-        # TODO: to remove in conan v2
-        self.cpp_info.names["cmake_find_package"] = "Fontconfig"
-        self.cpp_info.names["cmake_find_package_multi"] = "Fontconfig"
-        self.env_info.FONTCONFIG_FILE = fontconfig_file
-        self.env_info.FONTCONFIG_PATH = fontconfig_path
diff --git a/recipes/fontconfig/meson/conanfile.py b/recipes/fontconfig/meson/conanfile.py
--- a/recipes/fontconfig/meson/conanfile.py
+++ b/recipes/fontconfig/meson/conanfile.py
@@ -50,15 +50,15 @@ def layout(self):
 
     def requirements(self):
         self.requires("freetype/2.13.2")
-        self.requires("expat/2.6.0")
+        self.requires("expat/[>=2.6.2 <3]")
         if self.settings.os == "Linux":
             self.requires("util-linux-libuuid/2.39.2")
 
     def build_requirements(self):
         self.tool_requires("gperf/3.1")
-        self.tool_requires("meson/1.2.3")
+        self.tool_requires("meson/1.4.0")
         if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str):
-            self.tool_requires("pkgconf/2.0.3")
+            self.tool_requires("pkgconf/2.1.0")
 
     def source(self):
         get(self, **self.conan_data["sources"][self.version], strip_root=True)


Test patch:
diff --git a/recipes/fontconfig/all/test_package/CMakeLists.txt b/recipes/fontconfig/all/test_package/CMakeLists.txt
deleted file mode 100644
--- a/recipes/fontconfig/all/test_package/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-cmake_minimum_required(VERSION 3.14)
-project(test_package LANGUAGES C)
-
-find_package(Fontconfig REQUIRED)
-
-add_executable(${PROJECT_NAME} test_package.c)
-target_link_libraries(${PROJECT_NAME} PRIVATE Fontconfig::Fontconfig)
-target_compile_features(${PROJECT_NAME} PRIVATE c_std_99)
diff --git a/recipes/fontconfig/all/test_package/conanfile.py b/recipes/fontconfig/all/test_package/conanfile.py
deleted file mode 100644
--- a/recipes/fontconfig/all/test_package/conanfile.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from conan import ConanFile
-from conan.tools.build import can_run
-from conan.tools.cmake import CMake, cmake_layout
-import os
-
-
-class TestPackageConan(ConanFile):
-    settings = "os", "arch", "compiler", "build_type"
-    generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
-    test_type = "explicit"
-
-    def layout(self):
-        cmake_layout(self)
-
-    def requirements(self):
-        self.requires(self.tested_reference_str)
-
-    def build(self):
-        cmake = CMake(self)
-        cmake.configure()
-        cmake.build()
-
-    def test(self):
-        if can_run(self):
-            bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
-            self.run(bin_path, env="conanrun")
diff --git a/recipes/fontconfig/all/test_package/test_package.c b/recipes/fontconfig/all/test_package/test_package.c
deleted file mode 100644
--- a/recipes/fontconfig/all/test_package/test_package.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <fontconfig/fontconfig.h>
-
-int main() {
-	FcInit();
-	return 0;
-}
diff --git a/recipes/fontconfig/all/test_v1_package/CMakeLists.txt b/recipes/fontconfig/all/test_v1_package/CMakeLists.txt
deleted file mode 100644
--- a/recipes/fontconfig/all/test_v1_package/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
-                 ${CMAKE_CURRENT_BINARY_DIR}/test_package)
diff --git a/recipes/fontconfig/all/test_v1_package/conanfile.py b/recipes/fontconfig/all/test_v1_package/conanfile.py
deleted file mode 100644
--- a/recipes/fontconfig/all/test_v1_package/conanfile.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from conans import ConanFile, CMake, tools
-import os
-
-
-class TestPackageConan(ConanFile):
-    settings = "os", "arch", "compiler", "build_type"
-    generators = "cmake", "cmake_find_package"
-
-    def build(self):
-        cmake = CMake(self)
-        cmake.configure()
-        cmake.build()
-
-    def test(self):
-        if not tools.cross_building(self):
-            bin_path = os.path.join("bin", "test_package")
-            self.run(bin_path, run_environment=True)