Drop arm-linux keyword from tree.
[gentoo.git] / dev-util / strace / strace-9999.ebuild
1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5
6 inherit flag-o-matic toolchain-funcs
7
8 if [[ ${PV} == "9999" ]] ; then
9         EGIT_REPO_URI="https://github.com/strace/strace.git"
10         inherit git-r3 autotools
11 else
12         SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
13         KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
14 fi
15
16 DESCRIPTION="A useful diagnostic, instructional, and debugging tool"
17 HOMEPAGE="https://strace.io/"
18
19 LICENSE="BSD"
20 SLOT="0"
21 IUSE="aio perl static unwind elfutils"
22
23 REQUIRED_USE="?? ( unwind elfutils )"
24
25 LIB_DEPEND="
26         unwind? ( sys-libs/libunwind[static-libs(+)] )
27         elfutils? ( dev-libs/elfutils[static-libs(+)] )
28 "
29 # strace only uses the header from libaio to decode structs
30 DEPEND="
31         static? ( ${LIB_DEPEND} )
32         aio? ( >=dev-libs/libaio-0.3.106 )
33         sys-kernel/linux-headers
34 "
35 RDEPEND="
36         !static? ( ${LIB_DEPEND//\[static-libs(+)]} )
37         perl? ( dev-lang/perl )
38 "
39
40 src_prepare() {
41         default
42
43         if [[ ! -e configure ]] ; then
44                 # git generation
45                 sed /autoreconf/d -i bootstrap || die
46                 ./bootstrap || die
47                 eautoreconf
48                 [[ ! -e CREDITS ]] && cp CREDITS{.in,}
49         fi
50
51         filter-lfs-flags # configure handles this sanely
52         # Add -pthread since strace wants -lrt for timer_create, and -lrt uses -lpthread.
53         use static && append-ldflags -static -pthread
54
55         export ac_cv_header_libaio_h=$(usex aio)
56         use elibc_musl && export ac_cv_header_stdc=no
57
58         # Stub out the -k test since it's known to be flaky. #545812
59         sed -i '1iexit 77' tests*/strace-k.test || die
60 }
61
62 src_configure() {
63         # Set up the default build settings, and then use the names strace expects.
64         tc-export_build_env BUILD_{CC,CPP}
65         local v bv
66         for v in CC CPP {C,CPP,LD}FLAGS ; do
67                 bv="BUILD_${v}"
68                 export "${v}_FOR_BUILD=${!bv}"
69         done
70
71         # Don't require mpers support on non-multilib systems. #649560
72         econf \
73                 --enable-mpers=check \
74                 $(use_with unwind libunwind) \
75                 $(use_with elfutils libdw)
76 }
77
78 src_test() {
79         if has usersandbox $FEATURES ; then
80                 ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." #643044
81                 return 0
82         fi
83
84         default
85 }
86
87 src_install() {
88         default
89         use perl || rm "${ED%/}"/usr/bin/strace-graph
90         dodoc CREDITS
91 }