Date: Sun, 16 Mar 2025 23:35:05 +0200 From: Rozhuk Ivan <rozhuk.im@gmail.com> To: Craig Leres <leres@freebsd.org> Cc: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: Is any way to detect *'version '*'required by '*'not defined' ? Message-ID: <20250316233505.0d3839dc@rimwks.local> In-Reply-To: <3ab047d1-1b1c-44d3-a766-d2f0fd00446a@freebsd.org> References: <20250316231342.62fab6f8@rimwks.local> <3ab047d1-1b1c-44d3-a766-d2f0fd00446a@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 16 Mar 2025 14:19:17 -0700 Craig Leres <leres@freebsd.org> wrote: > I wrote the attached script once upon a time to find binaries and > libraries that were missing shared libraries. It uses ldd. Does it do > what you want? > No, it looks for missed libs but in my case lib exist (in same file) but with another version. I already try ldd: % ldd /usr/local/share/chromium/chrome /usr/local/share/chromium/chrome: libthr.so.3 => /lib/libthr.so.3 (0x801062000) libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x801090000) libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x801097000) libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0 (0x801112000) libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x80fc9d000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x801116000) libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x801137000) libnss3.so => /usr/local/lib/libnss3.so (0x80fe4c000) libsmime3.so => /usr/local/lib/libsmime3.so (0x80113e000) libnssutil3.so => /usr/local/lib/libnssutil3.so (0x80116f000) libplds4.so => /usr/local/lib/libplds4.so (0x8011a6000) libplc4.so => /usr/local/lib/libplc4.so (0x8011ac000) libnspr4.so => /usr/local/lib/libnspr4.so (0x8011b4000) libdl.so.1 => /usr/lib/libdl.so.1 (0x8011f7000) libatk-bridge-2.0.so.0 => /usr/local/lib/libatk-bridge-2.0.so.0 (0x80ffa2000) libatk-1.0.so.0 => /usr/local/lib/libatk-1.0.so.0 (0x80ffe0000) libcups.so.2 => /usr/local/lib/libcups.so.2 (0x810012000) libepoll-shim.so.0 => /usr/local/lib/libepoll-shim.so.0 (0x8100b2000) libgio-2.0.so.0 => /usr/local/lib/libgio-2.0.so.0 (0x8100bd000) libdrm.so.2 => /usr/local/lib/libdrm.so.2 (0x810349000) libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x810363000) libdbus-1.so.3 => /usr/local/lib/libdbus-1.so.3 (0x8103b6000) libkvm.so.7 => /lib/libkvm.so.7 (0x810412000) libutil.so.9 => /lib/libutil.so.9 (0x810426000) libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x81043f000) libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0x81046e000) libwebpdemux.so.2 => /usr/local/lib/libwebpdemux.so.2 (0x8104b3000) libwebpmux.so.3 => /usr/local/lib/libwebpmux.so.3 (0x8104ba000) libwebp.so.7 => /usr/local/lib/libwebp.so.7 (0x8104c8000) libharfbuzz-subset.so.0 => /usr/local/lib/libharfbuzz-subset.so.0 (0x810565000) libharfbuzz.so.0 => /usr/local/lib/libharfbuzz.so.0 (0x8106c2000) libjpeg.so.8 => /usr/local/lib/libjpeg.so.8 (0x8107fa000) libopus.so.0 => /usr/local/lib/libopus.so.0 (0x810a00000) libopenh264.so.6 => /usr/local/lib/libopenh264.so.6 (0x810f54000) libm.so.5 => /lib/libm.so.5 (0x8108c4000) libz.so.6 => /lib/libz.so.6 (0x810901000) libdav1d.so.7 => /usr/local/lib/libdav1d.so.7 (0x811098000) libX11.so.6 => /usr/local/lib/libX11.so.6 (0x81128d000) libXcomposite.so.1 => /usr/local/lib/libXcomposite.so.1 (0x81091d000) libXdamage.so.1 => /usr/local/lib/libXdamage.so.1 (0x810922000) libXext.so.6 => /usr/local/lib/libXext.so.6 (0x810927000) libXfixes.so.3 => /usr/local/lib/libXfixes.so.3 (0x81093c000) libXrandr.so.2 => /usr/local/lib/libXrandr.so.2 (0x810944000) libXrender.so.1 => /usr/local/lib/libXrender.so.1 (0x810951000) libXtst.so.6 => /usr/local/lib/libXtst.so.6 (0x81095e000) libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x810967000) libxkbcommon.so.0 => /usr/local/lib/libxkbcommon.so.0 (0x810994000) libgbm.so.1 => /usr/local/lib/libgbm.so.1 (0x8109e2000) libXi.so.6 => /usr/local/lib/libXi.so.6 (0x8113e4000) libGL.so.1 => /usr/local/lib/libGL.so.1 (0x8113f7000) libpci.so.3 => /usr/local/lib/libpci.so.3 (0x811484000) libffi.so.8 => /usr/local/lib/libffi.so.8 (0x8109f3000) libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0 (0x811499000) libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0 (0x8114ab000) libcairo.so.2 => /usr/local/lib/libcairo.so.2 (0x811524000) libasound.so.2 => /usr/local/lib/libasound.so.2 (0x81166d000) libFLAC.so.14 => /usr/local/lib/libFLAC.so.14 (0x811785000) libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x8117e3000) libatspi.so.0 => /usr/local/lib/libatspi.so.0 (0x81196c000) libxslt.so.1 => /usr/local/lib/libxslt.so.1 (0x8119a9000) libxshmfence.so.1 => /usr/local/lib/libxshmfence.so.1 (0x8119ed000) libc.so.7 => /lib/libc.so.7 (0x8119f2000) libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x811cde000) libpcre2-8.so.0 => /usr/local/lib/libpcre2-8.so.0 (0x811dec000) libelf.so.2 => /lib/libelf.so.2 (0x811eb1000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x811eca000) libgnutls.so.30 => /usr/local/lib/libgnutls.so.30 (0x811eea000) libcrypt.so.5 => /lib/libcrypt.so.5 (0x812129000) libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x812139000) libsharpyuv.so.0 => /usr/local/lib/libsharpyuv.so.0 (0x812205000) libgraphite2.so.3 => /usr/local/lib/libgraphite2.so.3 (0x812211000) libc++.so.1 => /lib/libc++.so.1 (0x81223c000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x81233d000) libXau.so.6 => /usr/local/lib/libXau.so.6 (0x81235d000) libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x812363000) libGLdispatch.so.0 => /usr/local/lib/libGLdispatch.so.0 (0x81238c000) libGLX.so.0 => /usr/local/lib/libGLX.so.0 (0x812445000) libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0 (0x812479000) libfribidi.so.0 => /usr/local/lib/libfribidi.so.0 (0x812496000) libthai.so.0 => /usr/local/lib/libthai.so.0 (0x8124b7000) libxcb-render.so.0 => /usr/local/lib/libxcb-render.so.0 (0x8124c4000) libxcb-shm.so.0 => /usr/local/lib/libxcb-shm.so.0 (0x8124d5000) libpixman-1.so.0 => /usr/local/lib/libpixman-1.so.0 (0x8124db000) librt.so.1 => /lib/librt.so.1 (0x8125a7000) libogg.so.0 => /usr/local/lib/libogg.so.0 (0x8125b0000) libicudata.so.76 => /usr/local/lib/libicudata.so.76 (0x8011fc000) libicui18n.so.76 => /usr/local/lib/libicui18n.so.76 (0x8125bb000) libicuuc.so.76 => /usr/local/lib/libicuuc.so.76 (0x812960000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x812b98000) libp11-kit.so.0 => /usr/local/lib/libp11-kit.so.0 (0x812bcc000) libidn2.so.0 => /usr/local/lib/libidn2.so.0 (0x812d57000) libunistring.so.5 => /usr/local/lib/libunistring.so.5 (0x812d8b000) libtasn1.so.6 => /usr/local/lib/libtasn1.so.6 (0x812f9a000) libhogweed.so.6 => /usr/local/lib/libhogweed.so.6 (0x812fb1000) libnettle.so.8 => /usr/local/lib/libnettle.so.8 (0x812ffc000) libgmp.so.10 => /usr/local/lib/libgmp.so.10 (0x813053000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x8130d5000) libdatrie.so.1 => /usr/local/lib/libdatrie.so.1 (0x8130ec000) libmd.so.6 => /lib/libmd.so.6 (0x8130f6000) [vdso] (0x7ffffffff000) For missed libs I use: pkg check -dnq + for __PKG_NAME_VER in `pkg info -aqE`; do ... for __PKG_LIB_RAW in `pkg info -Bq "${__PKG_NAME_VER}"`; do # Strip lib ver: "libc.so.7:32" -> "libc.so.7" __PKG_LIB=`echo "${__PKG_LIB_RAW}" | sed -e 's|:.*||' | tr -d '\n'` ... Full code: http://netlab.dhis.org/download/software/os_cfg/FBSD/14/base/root/bin/pkg_auto_rebuild.sh PS: better replacement for: prog="`basename $0`" THIS_SCRIPT_NAME=`readlink -nf "${0}"` it resolves any ./../.. and links in script path.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20250316233505.0d3839dc>