commit:     f0afcf79495fb4220258bae1acd1304a755dbc66
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  5 17:15:31 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Feb  5 17:15:31 2023 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=f0afcf79

SuspiciousSrcUriChange: compare with expanded mirror

Resolves: https://github.com/pkgcore/pkgcheck/issues/542
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/checks/git.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/pkgcheck/checks/git.py b/src/pkgcheck/checks/git.py
index c7c78bc8..4a9466c6 100644
--- a/src/pkgcheck/checks/git.py
+++ b/src/pkgcheck/checks/git.py
@@ -375,13 +375,15 @@ class GitPkgCommitsCheck(GentooRepoCheck, 
GitCommitsCheck):
             else:
                 yield MissingSlotmove(old_slot, new_slot, pkg=new_pkg)
 
-    @staticmethod
-    def _fetchable_str(fetch: fetchable) -> str:
+    def _fetchable_str(self, fetch: fetchable) -> tuple[str, str]:
         uri = tuple(fetch.uri._uri_source)[0]
         if isinstance(uri, tuple):
-            return f"mirror://{uri[0].mirror_name}/{uri[1]}"
+            mirror = uri[0].mirror_name
+            expands = self.repo.mirrors.get(mirror)
+            expand = (expands or (f"mirror://{mirror}",))[0].lstrip("/")
+            return f"{expand}/{uri[1]}", 
f"mirror://{uri[0].mirror_name}/{uri[1]}"
         else:
-            return str(uri)
+            return (str(uri),) * 2
 
     def src_uri_changes(self, pkgset):
         pkg = pkgset[0].unversioned_atom
@@ -403,11 +405,11 @@ class GitPkgCommitsCheck(GentooRepoCheck, 
GitCommitsCheck):
             return
 
         for filename in old_checksums.keys() & new_checksums.keys():
-            old_checksum, old_uri = old_checksums[filename]
-            new_checksum, new_uri = new_checksums[filename]
+            old_checksum, (old_expand, old_uri) = old_checksums[filename]
+            new_checksum, (new_expand, new_uri) = new_checksums[filename]
             if old_checksum != new_checksum:
                 yield SrcUriChecksumChange(filename, pkg=pkg)
-            elif old_uri != new_uri:
+            elif old_expand != new_expand:
                 yield SuspiciousSrcUriChange(old_uri, new_uri, filename, 
pkg=pkg)
 
     def feed(self, pkgset: list[git.GitPkgChange]):

Reply via email to