Rewrite the public symbol check to verify the shared libraries, to check for more things, and to avoid duplication; fixes make check on ARM Taken from Debian: https://salsa.debian.org/multimedia-team/mpeg2dec/blob/master/debian/patches/61_global-symbol-test.patch --- mpeg2dec.orig/test/globals +++ mpeg2dec/test/globals @@ -1,4 +1,8 @@ #!/bin/sh +# TODO +# - fix checking of .a libs; problem is that "nm -g --defined-only" lists +# internal symbols; this can be solved by using objdump, but it's probably +# good enough to just run the tests on the shared lib if test x"$srcdir" != x""; then builddir="." # running from make check, but it does not define that @@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd` error=0 -bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\ - awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'` - -if test x"$bad_globals" != x""; then - echo BAD GLOBAL SYMBOLS: - for s in $bad_globals; do echo $s; done +# check_bad_public_symbols [...] +# +# checks public symbols in shared libs: +# - allow prefix_anything +# - reject _prefixanything +# - allow _anything +# - reject anything else +# +# NB: skips missing files +check_bad_public_symbols() { + symbols_prefix="$1" + shift + lib_files=`ls "$@" 2>/dev/null` + [ -z "$lib_files" ] && return + bad_globals=`nm -g --defined-only $lib_files | + awk '{if ($3) print $3}' | + sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"` + [ -z "$bad_globals" ] && return error=1 -fi - -bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\ - awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'` + echo BAD GLOBAL SYMBOLS in $lib_files: + echo "$bad_globals" +} -if test x"$bad_globals" != x""; then - echo BAD GLOBAL SYMBOLS: - for s in $bad_globals; do echo $s; done - error=1 -fi +check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so +check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so exit $error f'>manifest.scm
AgeCommit message (Expand)Author
2024-08-31gnu: guix: Remove unnecessary dependencies....This reverts 0fda0486523d67c2c464386c07a0c2800d8d8c20, instead moving the dependencies needed for ‘make dist’ to ‘manifest.scm’. Removing this extra dependencies make it simpler to build the ‘guix’ package in particular on less-capable systems like i586-gnu. * gnu/packages/package-management.scm (guix)[native-inputs]: Remove IMAGEMAGICK and PERL. Use GRAPHVIZ-MINIMAL instead of GRAPHVIZ. * manifest.scm: Use the full-blown ‘graphviz’ package; add ‘imagemagick’ and ‘perl’. Reported-by: Janneke Nieuwenhuizen <janneke@gnu.org> Change-Id: Ia9d05c699e3cc2f9a9235a67f8ec840c26b66a82 Ludovic Courtès
2024-06-24manifest: Streamline; add packages useful for patch review/submission....* manifest.scm: Fix alternate command line invocation (which would not consider 'manifest.scm'). Use specifications instead of packages. Remove perl (now in the guix package's native inputs). Add b4, git, git:send-email, mumi, nss-certs, openssl and patman to the manifest. Change-Id: I49d92dda059856ce217cea9054a466a1754dcf94 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Maxim Cournoyer
2024-04-02maint: Add perl to the manifest....* manifest.scm: Add perl. Change-Id: Ie70cea1eb4d62f2a649292209391a92abdae2288 Janneke Nieuwenhuizen
2024-01-31maint: Add gnupg to the manifest....* manifest.scm: Add gnupg. Change-Id: Id5e90f87e5c3a07aa3e49afa97cc0b6d3ce71b41 Ludovic Courtès
2023-09-18maint: Support `guix shell' in Guix's git archive with manifest.scm....* manifest.scm: New file. * Makefile.am (EXTRA_DIST): Add it. * doc/contributing.texi (Building from Git): Mention using it. Janneke Nieuwenhuizen