1 #!/usr/bin/env nix-shell
2 #!nix-shell -i python3 -p python3
6 # we don't use precompiled QML
8 'Qt6QmlCompilerPlusPrivate',
9 # usually used for version numbers
11 # useless by itself, will warn if something else is not found
13 # license verification
21 OK_MISSING_BY_PACKAGE
= {
23 "Qt6Feedback", # we don't have it
26 "Python3", # only used for license checks
29 "rpm-ostree-1", # we don't have rpm-ostree (duh)
30 "Snapd", # we don't have snaps and probably never will
33 "UPNPQT", # upstream says it's broken
35 "extra-cmake-modules": {
36 "Sphinx", # only used for docs, bloats closure size
37 "QCollectionGenerator"
40 "KDSoapWSDiscoveryClient", # actually vendored on KF5 version
43 "OsmTools", # used for map data updates, we use prebuilt
50 "UTEMPTER", # we don't have it and it probably wouldn't work anyway
58 "Qt6XkbCommonSupport", # not real
61 "Qt6Svg", # all used for backend console stuff we don't ship
70 "display-info", # newer versions identify as libdisplay-info
73 "Qt5", # intentionally disabled
77 "scim", # upstream is dead, not packaged in Nixpkgs
80 "DDCUtil", # cursed, intentionally disabled
83 "Qt6Qml", # tests only
86 "syntax-highlighting": {
87 "XercesC", # only used for extra validation at build time
92 here
= pathlib
.Path(__file__
).parent
.parent
.parent
.parent
93 logs
= (here
/ "logs").glob("*.log")
95 for log
in sorted(logs
):
100 with log
.open(errors
="replace") as fd
:
103 if line
.startswith("-- No package '"):
104 package
= line
.removeprefix("-- No package '").removesuffix("' found")
105 missing
.append(package
)
106 if line
== "-- The following OPTIONAL packages have not been found:" or line
== "-- The following RECOMMENDED packages have not been found:":
108 elif line
.startswith("--") and is_in_block
:
110 elif line
.startswith("*") and is_in_block
:
111 package
= line
.removeprefix("* ")
112 missing
.append(package
)
116 for package
in missing
117 if not any(package
.startswith(i
) for i
in OK_MISSING | OK_MISSING_BY_PACKAGE
.get(pname
, set()))
126 if __name__
== '__main__':