# Maintainer: David Runge # Contributor: Laurent Carlier # Contributor: Stéphane Gaudreault # Contributor: Andrej Gelenberg # ALARM: Kevin Mihelich # - remove default debuginfod url pointing to upstream pkgbase=elfutils pkgname=( elfutils libelf debuginfod ) pkgver=0.192 pkgrel=2 pkgdesc="Handle ELF object files and DWARF debugging information" arch=(x86_64) url="https://sourceware.org/elfutils/" _url=https://sourceware.org/git/elfutils.git makedepends=( bzip2 curl gcc-libs git json-c libarchive libmicrohttpd sqlite xz zlib zstd ) options=(staticlibs) source=(git+$_url?signed#tag=$pkgbase-$pkgver) sha512sums=('ac5f968fc855bd1a504d8b0c676601d9ec7095efe85bb6e2d29980dee9399a921d707a93c16667f979649a166cc3c86e5192898318c5b572f9bf4d3e7229f754') b2sums=('fdd1d3857ea5061562e91f17e08ebc1b556fb092fd5e32040b9176b7799583d716b31ef5c2652b4ddcd71ec46fa7ddd852e253f9f4f2a21c5e0425f77a3e8310') validpgpkeys=( 'EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A' # Mark Wielaard '6C2B631563B8D330578D3CB474FD3FA2779E7073' # Aaron Merey ) prepare() { cd $pkgbase # fix issue with /etc/profile.d/debuginfod.sh for zsh: # https://gitlab.archlinux.org/archlinux/packaging/packages/elfutils/-/issues/2 git cherry-pick -n 00cb3efe36337f27925dbff9b2e7d97c7df95bf8 # remove failing test due to missing glibc debug package during test: https://bugs.archlinux.org/task/74875 sed -e 's/run-backtrace-native.sh//g' -i tests/Makefile.am autoreconf -fiv } build() { local configure_options=( --prefix=/usr --sysconfdir=/etc --program-prefix="eu-" --enable-deterministic-archives --enable-maintainer-mode ) # fat-lto-objects is required for non-mangled .a files in libelf CFLAGS+=" -ffat-lto-objects" # debugging information is required for test-suite CFLAGS+=" -g" cd $pkgbase ./configure "${configure_options[@]}" make } check() { make -C $pkgbase check } _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 } package_elfutils() { pkgdesc+=" (utilities)" license=( GPL-3.0-or-later ) depends=( gcc-libs glibc libarchive libarchive.so libelf=$pkgver sh ) make DESTDIR="$pkgdir" install -C $pkgbase ( cd "$pkgdir" _pick libelf etc/debuginfod _pick libelf etc/profile.d/* _pick libelf usr/{include,lib} _pick libelf usr/share/man/*/{,lib}elf* _pick debuginfod usr/bin/debuginfod* _pick debuginfod usr/share/fish/vendor_conf.d/debuginfod.fish _pick debuginfod usr/share/man/*/debuginfod* ) install -vDm 644 $pkgbase/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/" } package_libelf() { pkgdesc+=" (libraries)" license=( 'GPL-2.0-or-later OR LGPL-3.0-or-later' ) depends=( bzip2 libbz2.so curl libcurl.so glibc json-c xz liblzma.so zlib zstd libzstd.so ) # NOTE: the shared objects can not be added to provides as they are not versioned mv -v $pkgname/* "$pkgdir" install -vDm 644 $pkgbase/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/" } package_debuginfod() { pkgdesc+=" (debuginfod)" license=( GPL-3.0-or-later ) depends=( gcc-libs glibc json-c libarchive libarchive.so libelf=$pkgver libmicrohttpd libmicrohttpd.so sqlite libsqlite3.so xz liblzma.so ) optdepends=("elfutils=$pkgver: for translations") mv -v $pkgname/* "$pkgdir" install -vDm 644 $pkgbase/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/" } # vim:set sw=2 sts=-1 et: