Skip to content
Snippets Groups Projects
Commit 2c2f034f authored by Walter Lozano's avatar Walter Lozano
Browse files

Add whitelist to ignore missing binaries


In Apertis is very common to disable the build of some binaries to avoid
license issues, reduce the number of dependencies or disable unsupported
architectures. To do it, usually d/rules is tweak to skip some binary
packages. However, this approach makes dashboard to complain about missing
binaries.

A possible approach could be to remove the binary packages from d/control
but this approach adds more delta.

To avoid getting a wrong idea of status of the packages, ignore this issue
for the packages we know we tweaked.

The approach of using wildcards to reduce the number of entries was discussed
however, to improve readability and to avoid extra complexity while checking
the idea was discarded.

Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
parent 4063092b
No related branches found
No related tags found
1 merge request!178Add whitelist to ignore missing binaries
Pipeline #669343 passed
......@@ -560,6 +560,190 @@ LAGGING_VERSION_JAVA_PACKAGES_IGNORELIST = {
"apertis/v2022": "commits moving d/a/component from development to sdk and disabling java support were not backported",
}
MISSING_BINARY_IGNORELSIT = {
"binutils-alpha-linux-gnu": "not supported architectures disabled",
"binutils-alpha-linux-gnu-dbg": "not supported architectures disabled",
"binutils-arc-linux-gnu": "not supported architectures disabled",
"binutils-arc-linux-gnu-dbg": "not supported architectures disabled",
"binutils-hppa-linux-gnu": "not supported architectures disabled",
"binutils-hppa-linux-gnu-dbg": "not supported architectures disabled",
"binutils-i686-gnu": "not supported architectures disabled",
"binutils-i686-gnu-dbg": "not supported architectures disabled",
"binutils-i686-kfreebsd-gnu": "not supported architectures disabled",
"binutils-i686-kfreebsd-gnu-dbg": "not supported architectures disabled",
"binutils-ia64-linux-gnu": "not supported architectures disabled",
"binutils-ia64-linux-gnu-dbg": "not supported architectures disabled",
"binutils-m68k-linux-gnu": "not supported architectures disabled",
"binutils-m68k-linux-gnu-dbg": "not supported architectures disabled",
"binutils-powerpc-linux-gnu": "not supported architectures disabled",
"binutils-powerpc-linux-gnu-dbg": "not supported architectures disabled",
"binutils-powerpc64-linux-gnu": "not supported architectures disabled",
"binutils-powerpc64-linux-gnu-dbg": "not supported architectures disabled",
"binutils-powerpc64le-linux-gnu": "not supported architectures disabled",
"binutils-powerpc64le-linux-gnu-dbg": "not supported architectures disabled",
"binutils-riscv64-linux-gnu": "not supported architectures disabled",
"binutils-riscv64-linux-gnu-dbg": "not supported architectures disabled",
"binutils-s390x-linux-gnu": "not supported architectures disabled",
"binutils-s390x-linux-gnu-dbg": "not supported architectures disabled",
"binutils-sh4-linux-gnu": "not supported architectures disabled",
"binutils-sh4-linux-gnu-dbg": "not supported architectures disabled",
"binutils-sparc64-linux-gnu": "not supported architectures disabled",
"binutils-sparc64-linux-gnu-dbg": "not supported architectures disabled",
"binutils-x86-64-kfreebsd-gnu": "not supported architectures disabled",
"binutils-x86-64-kfreebsd-gnu-dbg": "not supported architectures disabled",
"binutils-x86-64-linux-gnux32": "not supported architectures disabled",
"binutils-x86-64-linux-gnux32-dbg": "not supported architectures disabled",
"libbrlapi-java": "java disabled",
"libbrlapi-jni": "java disabled",
"libcephfs-java": "java disabled",
"libcephfs-jni": "java disabled",
"libc6-dev-ppc64el-cross": "not supported architectures disabled",
"libc6-dev-s390-s390x-cross": "not supported architectures disabled",
"libc6-dev-s390x-cross": "not supported architectures disabled",
"libc6-ppc64el-cross": "not supported architectures disabled",
"libc6-s390-s390x-cross": "not supported architectures disabled",
"libc6-s390x-cross": "not supported architectures disabled",
"linux-libc-dev-ppc64el-cross": "not supported architectures disabled",
"linux-libc-dev-s390x-cross": "not supported architectures disabled",
"libsasl2-modules-gssapi-heimdal": "disable support to avoid licensing issues",
"libsasl2-modules-gssapi-mit": "disable support to avoid licensing issues",
"libsasl2-modules-ldap": "disable support to avoid licensing issues",
"libsasl2-modules-sql": "disable support to avoid licensing issues",
"libdb5.3-java": "java and tcl support disabled",
"libdb5.3-java-dev": "java and tcl support disabled",
"libdb5.3-java-jni": "java and tcl support disabled",
"libdb5.3-tcl": "java and tcl support disabled",
"libgomp-plugin-amdgcn1": "plugins disabled",
"libgomp-plugin-nvptx1": "plugins disabled",
"libhwasan0": "plugins disabled",
"cpp-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"cpp-12-s390x-linux-gnu": "not supported architectures disabled",
"g++-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"g++-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"g++-12-s390x-linux-gnu": "not supported architectures disabled",
"gcc-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"gcc-12-plugin-dev-powerpc64le-linux-gnu": "not supported architectures disabled",
"gcc-12-plugin-dev-s390x-linux-gnu": "not supported architectures disabled",
"gcc-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gcc-12-powerpc64le-linux-gnu-base": "not supported architectures disabled",
"gcc-12-s390x-linux-gnu": "not supported architectures disabled",
"gcc-12-s390x-linux-gnu-base": "not supported architectures disabled",
"gccgo-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"gccgo-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gccgo-12-s390x-linux-gnu": "not supported architectures disabled",
"gdc-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"gdc-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gdc-12-s390x-linux-gnu": "not supported architectures disabled",
"gfortran-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"gfortran-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gfortran-12-s390x-linux-gnu": "not supported architectures disabled",
"gm2-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gm2-12-s390x-linux-gnu": "not supported architectures disabled",
"gnat-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gnat-12-s390x-linux-gnu": "not supported architectures disabled",
"gobjc++-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"gobjc++-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gobjc++-12-s390x-linux-gnu": "not supported architectures disabled",
"gobjc-12-multilib-s390x-linux-gnu": "not supported architectures disabled",
"gobjc-12-powerpc64le-linux-gnu": "not supported architectures disabled",
"gobjc-12-s390x-linux-gnu": "not supported architectures disabled",
"lib32asan8-s390x-cross": "not supported architectures disabled",
"lib32atomic1-s390x-cross": "not supported architectures disabled",
"lib32gcc-12-dev-s390x-cross": "not supported architectures disabled",
"lib32gcc-s1-s390x-cross": "not supported architectures disabled",
"lib32gfortran-12-dev-s390x-cross": "not supported architectures disabled",
"lib32gfortran5-s390x-cross": "not supported architectures disabled",
"lib32go-12-dev-s390x-cross": "not supported architectures disabled",
"lib32go21-s390x-cross": "not supported architectures disabled",
"lib32gomp1-s390x-cross": "not supported architectures disabled",
"lib32gphobos-12-dev-s390x-cross": "not supported architectures disabled",
"lib32gphobos3-s390x-cross": "not supported architectures disabled",
"lib32itm1-s390x-cross": "not supported architectures disabled",
"lib32objc-12-dev-s390x-cross": "not supported architectures disabled",
"lib32objc4-s390x-cross": "not supported architectures disabled",
"lib32stdc++-12-dev-s390x-cross": "not supported architectures disabled",
"lib32stdc++6-s390x-cross": "not supported architectures disabled",
"lib32ubsan1-s390x-cross": "not supported architectures disabled",
"libasan8-ppc64el-cross": "not supported architectures disabled",
"libasan8-s390x-cross": "not supported architectures disabled",
"libatomic1-ppc64el-cross": "not supported architectures disabled",
"libatomic1-s390x-cross": "not supported architectures disabled",
"libgcc-12-dev-ppc64el-cross": "not supported architectures disabled",
"libgcc-12-dev-s390x-cross": "not supported architectures disabled",
"libgcc-s1-ppc64el-cross": "not supported architectures disabled",
"libgcc-s1-s390x-cross": "not supported architectures disabled",
"libgfortran-12-dev-ppc64el-cross": "not supported architectures disabled",
"libgfortran-12-dev-s390x-cross": "not supported architectures disabled",
"libgfortran5-ppc64el-cross": "not supported architectures disabled",
"libgfortran5-s390x-cross": "not supported architectures disabled",
"libgm2-12-dev-ppc64el-cross": "not supported architectures disabled",
"libgm2-12-dev-s390x-cross": "not supported architectures disabled",
"libgm2-17-ppc64el-cross": "not supported architectures disabled",
"libgm2-17-s390x-cross": "not supported architectures disabled",
"libgnat-12-ppc64el-cross": "not supported architectures disabled",
"libgnat-12-s390x-cross": "not supported architectures disabled",
"libgo-12-dev-ppc64el-cross": "not supported architectures disabled",
"libgo-12-dev-s390x-cross": "not supported architectures disabled",
"libgo21-ppc64el-cross": "not supported architectures disabled",
"libgo21-s390x-cross": "not supported architectures disabled",
"libgomp1-ppc64el-cross": "not supported architectures disabled",
"libgomp1-s390x-cross": "not supported architectures disabled",
"libgphobos-12-dev-ppc64el-cross": "not supported architectures disabled",
"libgphobos-12-dev-s390x-cross": "not supported architectures disabled",
"libgphobos3-ppc64el-cross": "not supported architectures disabled",
"libgphobos3-s390x-cross": "not supported architectures disabled",
"libitm1-ppc64el-cross": "not supported architectures disabled",
"libitm1-s390x-cross": "not supported architectures disabled",
"liblsan0-ppc64el-cross": "not supported architectures disabled",
"libobjc-12-dev-ppc64el-cross": "not supported architectures disabled",
"libobjc-12-dev-s390x-cross": "not supported architectures disabled",
"libobjc4-ppc64el-cross": "not supported architectures disabled",
"libobjc4-s390x-cross": "not supported architectures disabled",
"libquadmath0-ppc64el-cross": "not supported architectures disabled",
"libstdc++-12-dev-ppc64el-cross": "not supported architectures disabled",
"libstdc++-12-dev-s390x-cross": "not supported architectures disabled",
"libstdc++-12-pic-ppc64el-cross": "not supported architectures disabled",
"libstdc++-12-pic-s390x-cross": "not supported architectures disabled",
"libstdc++6-ppc64el-cross": "not supported architectures disabled",
"libstdc++6-s390x-cross": "not supported architectures disabled",
"libtsan2-ppc64el-cross": "not supported architectures disabled",
"libubsan1-ppc64el-cross": "not supported architectures disabled",
"libubsan1-s390x-cross": "not supported architectures disabled",
"libhdf5-java": "java disabled",
"libhdf5-jni": "java disabled",
"libjpegxl-java": "java disabled",
"libassuan-mingw-w64-dev": "mingw disabled",
"libturbojpeg-java": "java disabled",
"libjsr305-java-doc": "doc disabled",
"libksba-mingw-w64-dev": "mingw disabled",
"libsvm-java": "java disabled",
"libsvm3-java": "java disabled",
"libnlopt-guile0": "octave, guile, fortran and docs disabled",
"nlopt-doc": "octave, guile, fortran and docs disabled",
"octave-nlopt": "octave, guile, fortran and docs disabled",
"libopenjpip-server": " libopenjpip-server disabled",
"libopenjpip-viewer": " libopenjpip-server disabled",
"pinentry-fltk": "support disable to trim dependencies",
"pinentry-qt": "support disable to trim dependencies",
"libspa-0.2-jack": "jack disabled",
"pulseaudio-module-jack": "lirc disabled",
"pulseaudio-module-lirc": "lirc disabled",
"python-markdown-doc": "doc disabled",
"python-uvicorn-doc": "doc disabled",
"scim-clutter-immodule": "clutter disabled",
"secilc-doc": "doc disabled",
"systemd-journal-remote": "systemd-journal-remote disabled",
"wpagui": "disable gui",
"xen-hypervisor-4.17-arm64": "not supported architectures disabled",
"xen-hypervisor-4.17-arm64-dbg": "not supported architectures disabled",
"xen-hypervisor-4.17-armhf": "not supported architectures disabled",
"xen-hypervisor-4.17-armhf-dbg": "not supported architectures disabled",
"xen-system-arm64": "not supported architectures disabled",
"xen-system-armhf": "not supported architectures disabled",
"libz3-java": "java disabled",
"libz3-jni": "java disabled",
}
class Error(Exception):
pass
......@@ -1040,14 +1224,22 @@ class InvariantChecker:
item for sublist in pkgs_pub_name for item in sublist
]
if source_binary.name not in pkgs_pub_name:
self.error(
package.name,
Report.APT_PACKAGE_MISSING_BUT_ON_PACKAGE_LIST,
branch=branch,
binary=source_binary.name,
arch=source_binary["arch"],
version=source.version,
ignore_reason = MISSING_BINARY_IGNORELSIT.get(
source_binary.name
)
if ignore_reason:
logging.info(
f"{package.name}: Missing binary version source {source_binary.name} ignoring, {ignore_reason}"
)
else:
self.error(
package.name,
Report.APT_PACKAGE_MISSING_BUT_ON_PACKAGE_LIST,
branch=branch,
binary=source_binary.name,
arch=source_binary["arch"],
version=source.version,
)
matched_pkgs_pub = [
pkg for pkg in pkgs if source_binary.name in pkg
]
......@@ -1070,14 +1262,24 @@ class InvariantChecker:
- set(["amd64", "arm64", "armhf"])
)
if check_arch:
self.error(
package.name,
Report.APT_PACKAGE_MISSING_BUT_ON_PACKAGE_LIST,
branch=branch,
binary=source_binary.name,
arch=check_arch,
version=version,
ignore_reason = (
MISSING_BINARY_IGNORELSIT.get(
source_binary.name
)
)
if ignore_reason:
logging.info(
f"{package.name}: Missing binary version source {source_binary.name} ignoring, {ignore_reason}"
)
else:
self.error(
package.name,
Report.APT_PACKAGE_MISSING_BUT_ON_PACKAGE_LIST,
branch=branch,
binary=source_binary.name,
arch=check_arch,
version=version,
)
def check_pipelines(self, package):
for branch in package.get("git", {}).get("branches", {}).values():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment