diff options
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | sbopkglint.d/75-static_libs.t.sh | 11 |
2 files changed, 12 insertions, 0 deletions
@@ -5,6 +5,7 @@ TODO: if sbopkglint finds a hardcoded $PKG in /var/lib/pkgtools/scripts/*, Not yet implemented: TODO: if package contains any static libs, don't suggest noarch. +TODO: check arch of static libs (like the shared lib checks). TODO: stop checking shared libs for +x and being stripped if they're not directly in /lib /lib64 /usr/lib /usr/lib64. too many packages trigger this, and it just doesn't matter much. diff --git a/sbopkglint.d/75-static_libs.t.sh b/sbopkglint.d/75-static_libs.t.sh index fab2a2b..ae6a4f5 100644 --- a/sbopkglint.d/75-static_libs.t.sh +++ b/sbopkglint.d/75-static_libs.t.sh @@ -11,6 +11,17 @@ # if the package includes both a static and shared library, a note is # triggered, suggesting removal of the static lib. this is not an error. +# TODO: this will give us file's idea of what's inside a .a archive: +# $ bsdtar -xOf /usr/lib64/libz.a '*.*' | file -b - +# ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped +# For 32-bit: +# ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped +# 'not stripped' is *correct*, don't complain about it! actually maybe +# it should complain if it *is* stripped, since +# Armed with this knowledge, we can do the same kind of arch checks for +# static libs as we do for shared (32-bit belongs in lib, 64 in lib64, +# arch of the static lib should match package's ARCH, etc). + for libdir in lib lib64 usr/lib usr/lib64; do if [ -d $libdir ]; then find_warnfiles "bad static library ownership (should be root:root):" \ |