We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[package] libudev/system: Fails build for conan 2.0
### Description

libudev/system fails to download or build with conan 2.0 installed.  it needs an update to use conan 2.0 code for conan tools as it currently is dependent on conan 1.x code.   

### Package and Environment Details

* Package Name/Version: **libudev/system**
* Operating System+version: **Linux Ubuntu 20.04**


### Conan profile

[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux


### Steps to reproduce

conan download -r conancenter libudev/system@

### Logs

ERROR: Error loading conanfile at '/home/tbitz/.conan2/p/libudadcb0d08572c6/e/conanfile.py': Unable to load conanfile in /home/tbitz/.conan2/p/libudadcb0d08572c6/e/conanfile.py
  File "<frozen importlib._bootstrap_external>", line 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/tbitz/.conan2/p/libudadcb0d08572c6/e/conanfile.py", line 4, in <module>
    from conans import tools
ImportError: cannot import name 'tools' from 'conans' (/home/tbitz/.local/lib/python3.8/site-packages/conans/__init__.py)



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `recipes/libudev/all/conanfile.py`
Content:
```
1 from conan import ConanFile
2 from conan.errors import ConanException, ConanInvalidConfiguration
3 from conan.tools.system import package_manager
4 from conans import tools
5 
6 required_conan_version = ">=1.47"
7 
8 
9 class LibUDEVConan(ConanFile):
10     name = "libudev"
11     version = "system"
12     description = "API for enumerating and introspecting local devices"
13     topics = ("udev", "devices", "enumerating")
14     url = "https://github.com/conan-io/conan-center-index"
15     homepage = "https://www.freedesktop.org/software/systemd/man/udev.html"
16     license = "GPL-2.0-or-later", "LGPL-2.1-or-later"
17     settings = "os", "arch", "compiler", "build_type"
18 
19     def validate(self):
20         if self.settings.os != "Linux":
21             raise ConanInvalidConfiguration("libudev is only supported on Linux.")
22 
23     def package_id(self):
24         self.info.header_only()
25 
26     def _fill_cppinfo_from_pkgconfig(self, name):
27         pkg_config = tools.PkgConfig(name)
28         if not pkg_config.provides:
29             raise ConanException("libudev development files aren't available, give up")
30         libs = [lib[2:] for lib in pkg_config.libs_only_l]
31         lib_dirs = [lib[2:] for lib in pkg_config.libs_only_L]
32         ldflags = [flag for flag in pkg_config.libs_only_other]
33         include_dirs = [include[2:] for include in pkg_config.cflags_only_I]
34         cflags = [flag for flag in pkg_config.cflags_only_other if not flag.startswith("-D")]
35         defines = [flag[2:] for flag in pkg_config.cflags_only_other if flag.startswith("-D")]
36 
37         self.cpp_info.system_libs = libs
38         self.cpp_info.libdirs = lib_dirs
39         self.cpp_info.sharedlinkflags = ldflags
40         self.cpp_info.exelinkflags = ldflags
41         self.cpp_info.defines = defines
42         self.cpp_info.includedirs = include_dirs
43         self.cpp_info.cflags = cflags
44         self.cpp_info.cxxflags = cflags
45 
46     def system_requirements(self):
47         dnf = package_manager.Dnf(self)
48         dnf.install(["systemd-devel"], update=True, check=True)
49 
50         yum = package_manager.Yum(self)
51         yum.install(["systemd-devel"], update=True, check=True)
52 
53         apt = package_manager.Apt(self)
54         apt.install(["libudev-dev"], update=True, check=True)
55 
56         pacman = package_manager.PacMan(self)
57         pacman.install(["systemd-libs"], update=True, check=True)
58 
59         zypper = package_manager.Zypper(self)
60         zypper.install(["libudev-devel"], update=True, check=True)
61 
62     def package_info(self):
63         self.cpp_info.includedirs = []
64         self.cpp_info.libdirs = []
65         self._fill_cppinfo_from_pkgconfig("libudev")
66
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/recipes/libudev/all/conanfile.py b/recipes/libudev/all/conanfile.py
--- a/recipes/libudev/all/conanfile.py
+++ b/recipes/libudev/all/conanfile.py
@@ -1,7 +1,7 @@
 from conan import ConanFile
-from conan.errors import ConanException, ConanInvalidConfiguration
+from conan.errors import ConanInvalidConfiguration
 from conan.tools.system import package_manager
-from conans import tools
+from conan.tools.gnu import PkgConfig
 
 required_conan_version = ">=1.47"
 
@@ -21,27 +21,7 @@
             raise ConanInvalidConfiguration("libudev is only supported on Linux.")
 
     def package_id(self):
-        self.info.header_only()
-
-    def _fill_cppinfo_from_pkgconfig(self, name):
-        pkg_config = tools.PkgConfig(name)
-        if not pkg_config.provides:
-            raise ConanException("libudev development files aren't available, give up")
-        libs = [lib[2:] for lib in pkg_config.libs_only_l]
-        lib_dirs = [lib[2:] for lib in pkg_config.libs_only_L]
-        ldflags = [flag for flag in pkg_config.libs_only_other]
-        include_dirs = [include[2:] for include in pkg_config.cflags_only_I]
-        cflags = [flag for flag in pkg_config.cflags_only_other if not flag.startswith("-D")]
-        defines = [flag[2:] for flag in pkg_config.cflags_only_other if flag.startswith("-D")]
-
-        self.cpp_info.system_libs = libs
-        self.cpp_info.libdirs = lib_dirs
-        self.cpp_info.sharedlinkflags = ldflags
-        self.cpp_info.exelinkflags = ldflags
-        self.cpp_info.defines = defines
-        self.cpp_info.includedirs = include_dirs
-        self.cpp_info.cflags = cflags
-        self.cpp_info.cxxflags = cflags
+        self.info.clear()
 
     def system_requirements(self):
         dnf = package_manager.Dnf(self)
@@ -62,4 +42,5 @@
     def package_info(self):
         self.cpp_info.includedirs = []
         self.cpp_info.libdirs = []
-        self._fill_cppinfo_from_pkgconfig("libudev")
+        pkg_config = PkgConfig(self, "libudev")
+        pkg_config.fill_cpp_info(self.cpp_info)

{"golden_diff": "diff --git a/recipes/libudev/all/conanfile.py b/recipes/libudev/all/conanfile.py\n--- a/recipes/libudev/all/conanfile.py\n+++ b/recipes/libudev/all/conanfile.py\n@@ -1,7 +1,7 @@\n from conan import ConanFile\n-from conan.errors import ConanException, ConanInvalidConfiguration\n+from conan.errors import ConanInvalidConfiguration\n from conan.tools.system import package_manager\n-from conans import tools\n+from conan.tools.gnu import PkgConfig\n \n required_conan_version = \">=1.47\"\n \n@@ -21,27 +21,7 @@\n             raise ConanInvalidConfiguration(\"libudev is only supported on Linux.\")\n \n     def package_id(self):\n-        self.info.header_only()\n-\n-    def _fill_cppinfo_from_pkgconfig(self, name):\n-        pkg_config = tools.PkgConfig(name)\n-        if not pkg_config.provides:\n-            raise ConanException(\"libudev development files aren't available, give up\")\n-        libs = [lib[2:] for lib in pkg_config.libs_only_l]\n-        lib_dirs = [lib[2:] for lib in pkg_config.libs_only_L]\n-        ldflags = [flag for flag in pkg_config.libs_only_other]\n-        include_dirs = [include[2:] for include in pkg_config.cflags_only_I]\n-        cflags = [flag for flag in pkg_config.cflags_only_other if not flag.startswith(\"-D\")]\n-        defines = [flag[2:] for flag in pkg_config.cflags_only_other if flag.startswith(\"-D\")]\n-\n-        self.cpp_info.system_libs = libs\n-        self.cpp_info.libdirs = lib_dirs\n-        self.cpp_info.sharedlinkflags = ldflags\n-        self.cpp_info.exelinkflags = ldflags\n-        self.cpp_info.defines = defines\n-        self.cpp_info.includedirs = include_dirs\n-        self.cpp_info.cflags = cflags\n-        self.cpp_info.cxxflags = cflags\n+        self.info.clear()\n \n     def system_requirements(self):\n         dnf = package_manager.Dnf(self)\n@@ -62,4 +42,5 @@\n     def package_info(self):\n         self.cpp_info.includedirs = []\n         self.cpp_info.libdirs = []\n-        self._fill_cppinfo_from_pkgconfig(\"libudev\")\n+        pkg_config = PkgConfig(self, \"libudev\")\n+        pkg_config.fill_cpp_info(self.cpp_info)\n", "issue": "[package] libudev/system: Fails build for conan 2.0\n### Description\n\nlibudev/system fails to download or build with conan 2.0 installed.  it needs an update to use conan 2.0 code for conan tools as it currently is dependent on conan 1.x code.   \n\n### Package and Environment Details\n\n* Package Name/Version: **libudev/system**\r\n* Operating System+version: **Linux Ubuntu 20.04**\r\n\n\n### Conan profile\n\n[settings]\r\narch=x86_64\r\nbuild_type=Release\r\ncompiler=gcc\r\ncompiler.cppstd=gnu17\r\ncompiler.libcxx=libstdc++11\r\ncompiler.version=9\r\nos=Linux\r\n\n\n### Steps to reproduce\n\nconan download -r conancenter libudev/system@\n\n### Logs\n\nERROR: Error loading conanfile at '/home/tbitz/.conan2/p/libudadcb0d08572c6/e/conanfile.py': Unable to load conanfile in /home/tbitz/.conan2/p/libudadcb0d08572c6/e/conanfile.py\r\n  File \"<frozen importlib._bootstrap_external>\", line 848, in exec_module\r\n  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\r\n  File \"/home/tbitz/.conan2/p/libudadcb0d08572c6/e/conanfile.py\", line 4, in <module>\r\n    from conans import tools\r\nImportError: cannot import name 'tools' from 'conans' (/home/tbitz/.local/lib/python3.8/site-packages/conans/__init__.py)\r\n\r\n\n", "before_files": [{"content": "from conan import ConanFile\nfrom conan.errors import ConanException, ConanInvalidConfiguration\nfrom conan.tools.system import package_manager\nfrom conans import tools\n\nrequired_conan_version = \">=1.47\"\n\n\nclass LibUDEVConan(ConanFile):\n    name = \"libudev\"\n    version = \"system\"\n    description = \"API for enumerating and introspecting local devices\"\n    topics = (\"udev\", \"devices\", \"enumerating\")\n    url = \"https://github.com/conan-io/conan-center-index\"\n    homepage = \"https://www.freedesktop.org/software/systemd/man/udev.html\"\n    license = \"GPL-2.0-or-later\", \"LGPL-2.1-or-later\"\n    settings = \"os\", \"arch\", \"compiler\", \"build_type\"\n\n    def validate(self):\n        if self.settings.os != \"Linux\":\n            raise ConanInvalidConfiguration(\"libudev is only supported on Linux.\")\n\n    def package_id(self):\n        self.info.header_only()\n\n    def _fill_cppinfo_from_pkgconfig(self, name):\n        pkg_config = tools.PkgConfig(name)\n        if not pkg_config.provides:\n            raise ConanException(\"libudev development files aren't available, give up\")\n        libs = [lib[2:] for lib in pkg_config.libs_only_l]\n        lib_dirs = [lib[2:] for lib in pkg_config.libs_only_L]\n        ldflags = [flag for flag in pkg_config.libs_only_other]\n        include_dirs = [include[2:] for include in pkg_config.cflags_only_I]\n        cflags = [flag for flag in pkg_config.cflags_only_other if not flag.startswith(\"-D\")]\n        defines = [flag[2:] for flag in pkg_config.cflags_only_other if flag.startswith(\"-D\")]\n\n        self.cpp_info.system_libs = libs\n        self.cpp_info.libdirs = lib_dirs\n        self.cpp_info.sharedlinkflags = ldflags\n        self.cpp_info.exelinkflags = ldflags\n        self.cpp_info.defines = defines\n        self.cpp_info.includedirs = include_dirs\n        self.cpp_info.cflags = cflags\n        self.cpp_info.cxxflags = cflags\n\n    def system_requirements(self):\n        dnf = package_manager.Dnf(self)\n        dnf.install([\"systemd-devel\"], update=True, check=True)\n\n        yum = package_manager.Yum(self)\n        yum.install([\"systemd-devel\"], update=True, check=True)\n\n        apt = package_manager.Apt(self)\n        apt.install([\"libudev-dev\"], update=True, check=True)\n\n        pacman = package_manager.PacMan(self)\n        pacman.install([\"systemd-libs\"], update=True, check=True)\n\n        zypper = package_manager.Zypper(self)\n        zypper.install([\"libudev-devel\"], update=True, check=True)\n\n    def package_info(self):\n        self.cpp_info.includedirs = []\n        self.cpp_info.libdirs = []\n        self._fill_cppinfo_from_pkgconfig(\"libudev\")\n", "path": "recipes/libudev/all/conanfile.py"}], "after_files": [{"content": "from conan import ConanFile\nfrom conan.errors import ConanInvalidConfiguration\nfrom conan.tools.system import package_manager\nfrom conan.tools.gnu import PkgConfig\n\nrequired_conan_version = \">=1.47\"\n\n\nclass LibUDEVConan(ConanFile):\n    name = \"libudev\"\n    version = \"system\"\n    description = \"API for enumerating and introspecting local devices\"\n    topics = (\"udev\", \"devices\", \"enumerating\")\n    url = \"https://github.com/conan-io/conan-center-index\"\n    homepage = \"https://www.freedesktop.org/software/systemd/man/udev.html\"\n    license = \"GPL-2.0-or-later\", \"LGPL-2.1-or-later\"\n    settings = \"os\", \"arch\", \"compiler\", \"build_type\"\n\n    def validate(self):\n        if self.settings.os != \"Linux\":\n            raise ConanInvalidConfiguration(\"libudev is only supported on Linux.\")\n\n    def package_id(self):\n        self.info.clear()\n\n    def system_requirements(self):\n        dnf = package_manager.Dnf(self)\n        dnf.install([\"systemd-devel\"], update=True, check=True)\n\n        yum = package_manager.Yum(self)\n        yum.install([\"systemd-devel\"], update=True, check=True)\n\n        apt = package_manager.Apt(self)\n        apt.install([\"libudev-dev\"], update=True, check=True)\n\n        pacman = package_manager.PacMan(self)\n        pacman.install([\"systemd-libs\"], update=True, check=True)\n\n        zypper = package_manager.Zypper(self)\n        zypper.install([\"libudev-devel\"], update=True, check=True)\n\n    def package_info(self):\n        self.cpp_info.includedirs = []\n        self.cpp_info.libdirs = []\n        pkg_config = PkgConfig(self, \"libudev\")\n        pkg_config.fill_cpp_info(self.cpp_info)\n", "path": "recipes/libudev/all/conanfile.py"}]}