# Maintainer: Levente Polyak # Maintainer: Christian Heusel # Contributor: Dan McGee # Contributor: Allan McRae # README # this package requires glibc-debug to run the check() function # as -debug packages are not available in [core], it has to be applied manually # whenever the tests shall run # # For a fresh build: # pkgctl build -I ../../glibc/trunk/glibc-debug*.pkg.tar.zst # pkgctl build # ALARM: Kevin Mihelich # - hold for toolchain update # - patch from Fedora for AArch64 # - removed lib32 package make/optdepends noautobuild=1 pkgname=valgrind pkgver=3.24.0 pkgrel=1 pkgdesc='Tool to help find memory-management problems in programs' arch=('x86_64') license=('GPL-2.0-or-later') url='https://valgrind.org/' depends=('glibc' 'perl' 'debuginfod') makedepends=('gdb' 'docbook-xml' 'docbook-xsl' 'docbook-sgml') checkdepends=('procps-ng') optdepends=( 'python: cg_* scripts' ) provides=('valgrind-multilib') replaces=('valgrind-multilib') options=('!emptydirs' '!strip') source=(https://sourceware.org/pub/valgrind/valgrind-${pkgver}.tar.bz2{,.asc} valgrind-3.7.0-respect-flags.patch valgrind-3.13.0-arm64-hwcap.patch) validpgpkeys=( 0E9FFD0C16A1856CF9C7C690BA0166E698FA6035 # Julian Seward EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A # Mark Wielaard ) sha512sums=('6c131ff93d1f432d8362a47285cc377cba224ebca4f18e922c6156f7736d43020ece14d8fd16913498ab00fd18c85e2042a7d5351c3901e80413c584ebb406f3' 'SKIP' 'e0cec39381cefeca09ae4794cca309dfac7c8693e6315e137e64f5c33684598726d41cfbb4edf764fe985503b13ff596184ca5fc32b159d500ec092e4cf8838c' '5af853399c6abdf8016fd1c2be854b3952b7d7e9ca16c870f84eed72e606e639d5f64de32e60105899f5201b53156380ae460111e05209e843301492742c9bfd') b2sums=('e11ad08f0062bd39788cd71d7ce058dec7a7207fbbe25f0dbfc7fb5735667809681cec2c843659553fbd49bcc6c71bdb93d87ffda3589247e4ee87c98fe51332' 'SKIP' 'af556fdf3c02e37892bfe9afebc954cf2f1b2fa9b75c1caacfa9f3b456ebc02bf078475f9ee30079b3af5d150d41415a947c3d04235c1ea8412cf92b959c484a' 'ff8cf51a6034c13ffbc412c387e83a32fa59f96e01be8faf6b52aa6d55bd5e5836c16d75f2291d87450709d0c75689b21870514006c603c6419940a9b977e609') options=(!lto) # https://bugs.kde.org/show_bug.cgi?id=338252 prepare() { cd valgrind-${pkgver} patch -Np1 < ../valgrind-3.7.0-respect-flags.patch patch -Np1 < ../valgrind-3.13.0-arm64-hwcap.patch sed -i 's|sgml/docbook/xsl-stylesheets|xml/docbook/xsl-stylesheets-1.79.2-nons|' docs/Makefile.am autoreconf -ifv } build() { cd valgrind-${pkgver} ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --libexecdir=/usr/lib \ --mandir=/usr/share/man \ --enable-lto=no make make -C docs man-pages } check() { # only run if glibc-debug is supplied manually if ! pacman -Q glibc-debug; then echo -e "\033[1;31mcheck() not run, supply glibc-debug if unintended!\033[0m"; return 0; fi cd valgrind-${pkgver} # Make sure a basic binary runs. There should be no errors. ./vg-in-place --error-exitcode=1 /bin/true # Make sure no extra FLAGS leak through, the testsuite # sets all flags necessary. See also configure above. make check CPPFLAGS= CFLAGS= CXXFLAGS= LDFLAGS= # XXX: run full regtest but only report issues some tests fail duo # current toolchain and expectations, take a manual look if its fine #echo "===============TESTING===================" #make regtest || true # Make sure test failures show up in build.log # Gather up the diffs (at most the first 20 lines for each one) #local f max_lines=20 diff_files=() #mapfile -d '' diff_files < <(find . -name '*.diff' -print0 | sort -z) #if (( ${#diff_files[@]} == 0 )); then #echo "Congratulations, all tests passed!" #else #warning "Some tests failed!" #for f in "${diff_files[@]}"; do #echo "=================================================" #echo "${f}" #echo "=================================================" #if (( $(wc -l < "${f}") < ${max_lines} )); then #cat "${f}" #else #head -n ${max_lines} "${f}" #echo "" #fi #done | tee diffs #fi #echo "===============END TESTING===============" } package() { cd valgrind-${pkgver} make DESTDIR="${pkgdir}" install install -Dm644 docs/*.1 -t "$pkgdir/usr/share/man/man1" if check_option 'debug' n; then find "${pkgdir}/usr/bin" -type f -executable -exec strip $STRIP_BINARIES {} + || : fi } # vim: ts=2 sw=2 et: