Package: lintian Version: 2.116.3 Severity: normal X-Debbugs-Cc: gs-bugs.debian....@gluelogic.com
Dear Maintainer, Problem: lintian: [false positive] shared-library-lacks-prerequisites lighttpd is a modular application which dynamically loads (dlopen) optional modules (.so) depending on user lighttpd.conf configuration. On platforms which require shared libraries to resolve all symbols at link time, lighttpd compiles a shared library against which each lighttpd module (.so) is linked. On platforms which allow shared libraries to access (exported) global symbols from the base executable, lighttpd does not create a separate shared library for these shared symbols; the symbols are in the base exe shared-library-lacks-prerequisites is falsely reported for one lighttpd shared module (mod_sockproxy.so) which has no dependencies besides the symbols in the base executable. (shared-library-lacks-prerequisites fails to catch the same is true for mod_access.so and mod_staticfile.so) **What is the goal of shared-library-lacks-prerequisites lintian tag?** https://lintian.debian.org/tags/shared-library-lacks-prerequisites Why does this lintian tag exist? What does it identify and why? Should it be applied only to packages which are marked as libraries? Maybe it should be applied only to packages which have a -devel package? Should it *not be applied* to applications? If this lintian tag intends to catch errors on certain platforms, then these lintian tests should be run only on those platforms. My personal opinion is that shared-library-lacks-prerequisites should be removed. At a mimimum, shared-library-lacks-prerequisites and other lintian tags should attempt to explain *why* they exist and what problem(s) they are trying to identify, rather than only giving a terse technical explanation of *what* they check. https://lintian.debian.org/tags/shared-library-lacks-prerequisites suggests linking with -lc. This workaround is unnecessary make-work. lintian could already use `file` to detect a dynamically linked, shared object, if lintian does not already know this by the extension (.so). What does explicit -lc do besides tell lintian to stfu? Why should an upstream project make such changes to their build system? Please help me to understand why I should not simply ignore the lintian warning for shared-library-lacks-prerequisites. Thank you. Glenn -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 5.10.0-10-amd64 (SMP w/1 CPU thread) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages lintian depends on: ii binutils 2.40-2 ii bzip2 1.0.8-5+b1 ii diffstat 1.65-1 ii dpkg 1.21.19 ii dpkg-dev 1.21.19 ii file 1:5.44-3 ii gettext 0.21-11 ii gpg 2.2.40-1 ii intltool-debian 0.35.0+20060710.6 ii iso-codes 4.12.0-1 ii libapt-pkg-perl 0.1.40+b2 ii libarchive-zip-perl 1.68-1 ii libberkeleydb-perl 0.64-2+b1 ii libcapture-tiny-perl 0.48-2 ii libclass-xsaccessor-perl 1.19-4+b1 ii libclone-perl 0.46-1 ii libconfig-tiny-perl 2.28-2 ii libconst-fast-perl 0.014-2 ii libcpanel-json-xs-perl 4.32-1+b1 ii libdata-dpath-perl 0.58-2 ii libdata-validate-domain-perl 0.10-1.1 ii libdata-validate-uri-perl 0.07-2 ii libdevel-size-perl 0.83-2+b1 pn libdigest-sha-perl <none> ii libdpkg-perl 1.21.19 ii libemail-address-xs-perl 1.05-1+b1 ii libfile-basedir-perl 0.09-2 ii libfile-find-rule-perl 0.34-3 ii libfont-ttf-perl 1.06-2 ii libhtml-html5-entities-perl 0.004-3 ii libhtml-tokeparser-simple-perl 3.16-4 ii libio-interactive-perl 1.023-2 ii libipc-run3-perl 0.048-3 ii libjson-maybexs-perl 1.004004-1 ii liblist-compare-perl 0.55-2 ii liblist-someutils-perl 0.59-1 ii liblist-utilsby-perl 0.12-2 ii libmldbm-perl 2.05-4 ii libmoo-perl 2.005005-1 ii libmoox-aliases-perl 0.001006-2 ii libnamespace-clean-perl 0.27-2 ii libpath-tiny-perl 0.144-1 ii libperlio-gzip-perl 0.20-1+b1 ii libperlio-utf8-strict-perl 0.010-1 ii libproc-processtable-perl 0.634-1+b2 ii libregexp-wildcards-perl 1.05-3 ii libsereal-decoder-perl 5.002+ds-1 ii libsereal-encoder-perl 5.002+ds-1 ii libsort-versions-perl 1.62-3 ii libsyntax-keyword-try-perl 0.28-1 ii libterm-readkey-perl 2.38-2+b1 ii libtext-levenshteinxs-perl 0.03-5+b1 ii libtext-markdown-discount-perl 0.16-1 ii libtext-xslate-perl 3.5.9-1+b2 ii libtime-duration-perl 1.21-2 ii libtime-moment-perl 0.44-2+b1 ii libtimedate-perl 2.3300-2 ii libunicode-utf8-perl 0.62-2 ii liburi-perl 5.17-1 ii libwww-mechanize-perl 2.15-1 ii libwww-perl 6.67-1 ii libxml-libxml-perl 2.0207+dfsg+really+2.0134-1+b1 ii libyaml-libyaml-perl 0.86+ds-1 ii lzip [lzip-decompressor] 1.23-5 ii lzop 1.04-2 ii man-db 2.11.2-1 ii patchutils 0.4.2-1 ii perl [libencode-perl] 5.36.0-7 ii t1utils 1.41-4 ii unzip 6.0-27 ii xz-utils 5.4.1-0.1 lintian recommends no packages. Versions of packages lintian suggests: pn binutils-multiarch <none> pn libtext-template-perl <none> -- no debconf information