dev-util/smem: amd64 stable wrt bug #723504
[gentoo.git] / dev-util / strace / strace-5.6.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit autotools 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 ~riscv ~s390 ~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 BDEPEND="
26         virtual/pkgconfig
27 "
28 LIB_DEPEND="
29         unwind? ( sys-libs/libunwind[static-libs(+)] )
30         elfutils? ( dev-libs/elfutils[static-libs(+)] )
31 "
32 # strace only uses the header from libaio to decode structs
33 DEPEND="
34         static? ( ${LIB_DEPEND} )
35         aio? ( >=dev-libs/libaio-0.3.106 )
36         sys-kernel/linux-headers
37 "
38 RDEPEND="
39         !static? ( ${LIB_DEPEND//\[static-libs(+)]} )
40         perl? ( dev-lang/perl )
41 "
42
43 PATCHES=(
44         "${FILESDIR}/strace-5.5-static.patch"
45         "${FILESDIR}/strace-5.6-AR.patch"
46 )
47
48 src_prepare() {
49         default
50
51         eautoreconf
52
53         if [[ ! -e configure ]] ; then
54                 # git generation
55                 sed /autoreconf/d -i bootstrap || die
56                 ./bootstrap || die
57                 eautoreconf
58                 [[ ! -e CREDITS ]] && cp CREDITS{.in,}
59         fi
60
61         filter-lfs-flags # configure handles this sanely
62
63         export ac_cv_header_libaio_h=$(usex aio)
64         use elibc_musl && export ac_cv_header_stdc=no
65
66         # Stub out the -k test since it's known to be flaky. #545812
67         sed -i '1iexit 77' tests*/strace-k.test || die
68 }
69
70 src_configure() {
71         # Set up the default build settings, and then use the names strace expects.
72         tc-export_build_env BUILD_{CC,CPP}
73         local v bv
74         for v in CC CPP {C,CPP,LD}FLAGS ; do
75                 bv="BUILD_${v}"
76                 export "${v}_FOR_BUILD=${!bv}"
77         done
78
79         # Don't require mpers support on non-multilib systems. #649560
80         local myeconfargs=(
81                 --disable-gcc-Werror
82                 --enable-mpers=check
83                 $(use_enable static)
84                 $(use_with unwind libunwind)
85                 $(use_with elfutils libdw)
86         )
87         econf "${myeconfargs[@]}"
88 }
89
90 src_test() {
91         if has usersandbox ${FEATURES} ; then
92                 ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." #643044
93                 return 0
94         fi
95
96         default
97 }
98
99 src_install() {
100         default
101         if ! use perl ; then
102                 rm "${ED}"/usr/bin/strace-graph || die
103         fi
104         dodoc CREDITS
105 }