# Maintainer: David Runge # Contributor: Laurent Carlier # Contributor: Stéphane Gaudreault # Contributor: Andrej Gelenberg pkgbase=elfutils pkgname=(debuginfod elfutils libelf) pkgver=0.187 pkgrel=1 pkgdesc="Handle ELF object files and DWARF debugging information" arch=(x86_64) url="https://sourceware.org/elfutils/" license=(LGPL3 GPL3) makedepends=(bzip2 curl gcc-libs libarchive libmicrohttpd sqlite xz zlib zstd) options=(debug staticlibs) source=(https://sourceware.org/$pkgbase/ftp/$pkgver/$pkgbase-$pkgver.tar.bz2{,.sig}) sha512sums=('a9b9e32b503b8b50a62d4e4001097ed2721d3475232a6380e6b9853bd1647aec016440c0ca7ceb950daf1144f8db9814ab43cf33cc0ebef7fc91e9e775c9e874' 'SKIP') b2sums=('00ba3efa689d137808f5f53ecda93fd006be0c18d690ce76616ed1dba442281098579fa4b9a9e91b8ba865a3de15968f0ae06703a7b50b15c48a4beb5c970a46' 'SKIP') validpgpkeys=( '47CC0331081B8BC6D0FD4DA08370665B57816A6A' # Mark J. Wielaard 'EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A' # Mark Wielaard ) _pick() { local p="$1" f d; shift for f; do d="$srcdir/$p/${f#$pkgdir/}" mkdir -p "$(dirname "$d")" mv "$f" "$d" rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" done } prepare() { ( cd $pkgbase-$pkgver autoreconf -fiv ) cp -av $pkgbase-$pkgver $pkgbase-test-$pkgver } build() { ( # fat-lto-objects is required for non-mangled .a files in libelf CFLAGS+=" -ffat-lto-objects" cd $pkgbase-$pkgver ./configure --prefix=/usr \ --sysconfdir=/etc \ --program-prefix="eu-" \ --enable-deterministic-archives make ) ( cd $pkgbase-test-$pkgver # debugging information is required for test-suite CFLAGS+=" -g" # fat-lto-objects is required for non-mangled .a files in libelf CFLAGS+=" -ffat-lto-objects" ./configure --prefix=/usr \ --sysconfdir=/etc \ --program-prefix="eu-" \ --enable-deterministic-archives make ) } check() { make check -C $pkgbase-test-$pkgver } package_debuginfod() { pkgdesc+=" (debuginfod)" depends=(gcc-libs glibc libarchive.so libelf=$pkgver libmicrohttpd.so sqlite) optdepends=("elfutils=$pkgver: for translations") make DESTDIR="$pkgdir" install -C $pkgbase-$pkgver install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/" # set the default DEBUGINFOD_URLS environment variable to the distribution's debuginfod URL printf "https://debuginfod.archlinux.org\n" > "$pkgdir/etc/debuginfod/archlinux.urls" ( cd "$pkgdir" _pick libelf usr/{include,lib} _pick elfutils usr/bin/eu-* _pick elfutils usr/share/locale _pick elfutils usr/share/man/man1/eu-* _pick elfutils usr/share/man/man3/elf_* ) } package_elfutils() { pkgdesc+=" (utilities)" depends=(gcc-libs glibc libelf=$pkgver) mv -v elfutils/* "$pkgdir" install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/" } package_libelf() { pkgdesc+=" (libraries)" depends=(gcc-libs libbz2.so libcurl.so xz zlib zstd) # NOTE: the shared objects can not be added to provides as they are not versioned mv -v libelf/* "$pkgdir" install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/" }