]>
git.ipfire.org Git - thirdparty/pdns.git/blob - build-scripts/check-debian-autoremovals.py
9 PACKAGE_NAMES
= ["pdns", "pdns-recursor", "dnsdist"]
12 def get_bugs_titles(bugs
):
14 title_regex
= re
.compile(r
"<title>(.*) - Debian Bug report logs</title>")
16 bug_r
= requests
.get("https://bugs.debian.org/cgi-bin/bugreport.cgi", params
={"bug": bug
})
17 lines
= bug_r
.text
.split("\n")
19 match
= title_regex
.search(line
)
21 ret
.append(match
.group(1))
26 def get_all_autoremovals():
27 r
= requests
.get("https://udd.debian.org/cgi-bin/autoremovals.yaml.cgi")
28 return yaml
.load(r
.text
, Loader
=yaml
.SafeLoader
)
31 def warn_removal(all_autoremovals
, package_name
):
32 removal
= all_autoremovals
.get(package_name
)
36 reason
= "there are bugged dependencies." if removal
["dependencies_only"] else "of a bug in PowerDNS!"
38 f
"::warning ::{package_name} slated for removal from Debian on "
39 f
"{removal['removal_date']} (https://tracker.debian.org/pkg/{package_name}) "
40 f
"because {reason}\n\n"
43 bugs
= get_bugs_titles(removal
.get("bugs_dependencies", []))
45 msg
+= f
"This is caused by the following dependency bug{'s' if len(bugs) > 1 else ''}:\n "
46 msg
+= ("\n ".join(bugs
)) + "\n"
48 bugs
= get_bugs_titles(removal
["bugs"])
50 msg
+= f
"This is caused by the following bug{'s' if len(bugs) > 1 else ''} in PowerDNS:\n "
51 msg
+= ("\n ".join(bugs
)) + "\n"
58 all_autoremovals
= get_all_autoremovals()
60 for package_name
in PACKAGE_NAMES
:
61 if warn_removal(all_autoremovals
, package_name
):
62 removals
.append(package_name
)
67 print("::notice ::No packages marked for autoremoval from Debian (yay!)")
71 if __name__
== "__main__":