============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /opt/testing/lib64/python3.13/rpmlint/configdefaults.toml /opt/testing/share/rpmlint/cron-whitelist.toml /opt/testing/share/rpmlint/dbus-services.toml /opt/testing/share/rpmlint/device-files-whitelist.toml /opt/testing/share/rpmlint/licenses.toml /opt/testing/share/rpmlint/opensuse.toml /opt/testing/share/rpmlint/pam-modules.toml /opt/testing/share/rpmlint/permissions-whitelist.toml /opt/testing/share/rpmlint/pie-executables.toml /opt/testing/share/rpmlint/polkit-rules-whitelist.toml /opt/testing/share/rpmlint/scoring.toml /opt/testing/share/rpmlint/security.toml /opt/testing/share/rpmlint/sudoers-whitelist.toml /opt/testing/share/rpmlint/sysctl-whitelist.toml /opt/testing/share/rpmlint/systemd-tmpfiles.toml /opt/testing/share/rpmlint/users-groups.toml /opt/testing/share/rpmlint/world-writable-whitelist.toml /opt/testing/share/rpmlint/zypper-plugins.toml /etc/xdg/rpmlint/scoring-strict.override.toml rpmlintrc: /home/abuild/rpmbuild/SOURCES/kubernetes-rpmlintrc checks: 41, packages: 12 kubernetes1.31-client.aarch64: W: zero-perms-ghost Suggestion: "%ghost %attr(0644,root,root) /etc/alternatives/kubectl" Your package contains a file with no permissions. This is usually an error because the file won't be accessible by any user. You should check the file permissions and ensure that are correct or fix it using "%attr" macro in %files section. http://ftp.rpm.org/max-rpm/s1-rpm-anywhere-specifying-file-attributes.html kubernetes1.31-client-common.aarch64: E: update-alternatives-requirement-missing The package does not have update-alternatives in Requires(post) or Requires(postun). This is needed for the proper scriptlet execution. kubernetes1.31-client.aarch64: E: update-alternatives-postun-call-missing The package does not call update-alternatives --remove in postun phase to remove all the configuration for each individual --install binary that was done in postun. kubernetes1.31-client.aarch64: E: update-alternatives-post-call-missing The package does not call update-alternatives --install in post phase to install all the configuration. kubernetes1.31.src: E: unused-rpmlintrc-filter "^kubernetes-unit-test.*: E: devel-file-in-non-devel-package" kubernetes1.31.src: E: unused-rpmlintrc-filter "^kubernetes-master.*: W: statically-linked-binary" kubernetes1.31.src: E: unused-rpmlintrc-filter "^kubernetes-extra.*: E: env-script-interpreter" kubernetes1.31.src: E: unused-rpmlintrc-filter "^kubernetes-extra.*: E: wrong-script-interpreter" kubernetes1.31-kubelet-common.aarch64: W: tmpfile-not-in-filelist /var/lib/cni Please add the specified file to your %files section as %ghost so users can easily query who created the file, it gets uninstalled on package removal and finally other rpmlint checks see it. kubernetes1.31-apiserver.aarch64: E: statically-linked-binary /usr/bin/kube-apiserver kubernetes1.31-client.aarch64: E: statically-linked-binary /usr/bin/kubectl1.31 kubernetes1.31-controller-manager.aarch64: E: statically-linked-binary /usr/bin/kube-controller-manager kubernetes1.31-kubeadm.aarch64: E: statically-linked-binary /usr/bin/kubeadm kubernetes1.31-proxy.aarch64: E: statically-linked-binary /usr/bin/kube-proxy kubernetes1.31-scheduler.aarch64: E: statically-linked-binary /usr/bin/kube-scheduler The package installs a statically linked binary or object file. kubernetes1.31-kubelet-common.aarch64: W: potential-bashisms /usr/bin/kubelet checkbashisms reported potential bashisms in a /bin/sh shell script, you might want to manually check this script for bashisms. kubernetes1.31-kubelet-common.aarch64: W: post-without-tmpfile-creation /usr/lib/tmpfiles.d/kubelet.conf Please use the %tmpfiles_create macro in %post for each of your tmpfiles.d files if you expect this file or directory to be available after package installation (and before reboot). kubernetes1.31-client-common.aarch64: W: package-with-huge-docs 95% kubernetes1.31-kubelet-common.aarch64: W: package-with-huge-docs 97% More than half the size of your package is documentation. Consider splitting it into a -doc subpackage. kubernetes1.31-client.aarch64: I: package-supports-update-alternatives kubernetes1.31-client-common.aarch64: I: package-supports-update-alternatives kubernetes1.31-kubeadm.aarch64: W: obsolete-not-provided kubernetes1.30-kubeadm kubernetes1.31-client-bash-completion.noarch: W: obsolete-not-provided kubernetes1.30-client-bash-completion kubernetes1.31-client-fish-completion.noarch: W: obsolete-not-provided kubernetes1.30-client-fish-completion If a package is obsoleted by a compatible replacement, the obsoleted package should also be provided in order to not cause unnecessary dependency breakage. If the obsoleting package is not a compatible replacement for the old one, leave out the Provides. kubernetes1.31-client-common.aarch64: E: no-binary kubernetes1.31-kubelet-common.aarch64: E: no-binary The package should be of the noarch architecture because it doesn't contain any binaries. kubernetes1.31.spec: W: no-%check-section The spec file does not contain an %check section. Please check if the package has a testsuite and what it takes to enable the testsuite as part of the package build. If it is not possible to run it in the build environment (OBS/koji) or no testsuite exists, then please ignore this warning. You should not insert an empty %check section. kubernetes1.31.spec:232: W: macro-in-comment %ifarch kubernetes1.31.spec:234: W: macro-in-comment %endif kubernetes1.31.spec:320: W: macro-in-comment %{baseversion} There is a unescaped macro after a shell style comment in the specfile. Macros are expanded everywhere, so check if it can cause a problem in this case and escape the macro with another leading % if appropriate. kubernetes1.31-client.aarch64: W: ghost-files-without-postin kubernetes1.31-client-common.aarch64: E: alternative-link-missing /etc/alternatives/kubectl The file %{_sysconfdir}/alternatives/$(basename generic-name) is missing in the file list. Mark it as %ghost and add it to the file list. kubernetes1.31-client-common.aarch64: E: alternative-generic-name-missing /usr/bin/kubectl The update-alternatives generic name is not in the filelist. Create it as a symlink to %{_sysconfdir}/alternatives/$(basename generic-name) and add it to the file list. Check time report (>1% & >0.1s): Check Duration (in s) Fraction (in %) Checked files ExtractRpm 14.4 92.1 SignatureCheck 0.6 3.6 BinariesCheck 0.2 1.4 BuildRootAndDateCheck 0.2 1.1 TOTAL 15.6 100.0 12 packages and 0 specfiles checked; 17 errors, 14 warnings, 36 filtered, 17 badness; has taken 15.8 s