commit:     49d5b3bd477ba3f38babf58d1b5a98827a573856
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 18 09:12:37 2021 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Feb 18 09:12:37 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49d5b3bd

dev-util/strace: Bump to version 5.11

Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 dev-util/strace/Manifest                       |   1 +
 dev-util/strace/files/strace-5.11-static.patch | 178 +++++++++++++++++++++++++
 dev-util/strace/strace-5.11.ebuild             | 105 +++++++++++++++
 3 files changed, 284 insertions(+)

diff --git a/dev-util/strace/Manifest b/dev-util/strace/Manifest
index 5c145f44a2a..0c5e09b2c42 100644
--- a/dev-util/strace/Manifest
+++ b/dev-util/strace/Manifest
@@ -1,4 +1,5 @@
 DIST strace-5.10.tar.xz 1859688 BLAKE2B 
45c40854c9af95395cb274fbfddc3d0084e77cc403ffe104f72ce7592800452776f5c19d03649cdd6705bccc7a0859364e470bdd5344f64af54b798fab50475e
 SHA512 
1baa41b6d52f2e40e42a22850beee1ae278fafe712796694631898f06a7540d8f2c3fa70807e0062734f0976ebbd0824457c733ccda248f017c218387366ed48
+DIST strace-5.11.tar.xz 1926632 BLAKE2B 
df47612c0928466f8b5788c4a7dc74208fe76c6967d3219b0eb753131fba315e715626c2cd1ed56d3e8ba0eb9a338589a8cbd6205fe876123ac26fdf0fab8d31
 SHA512 
688bec8d620c7ca701561ed7479e42687cc30737f944b82201731d827775cd2864787ecca7c93ba149b06d5d654d9f6bd109a977f8138bab34339cd5930828f0
 DIST strace-5.4.tar.xz 1599396 BLAKE2B 
0a7fd9600488f5f07042ead8123151cf0113f82329c3cc786c8f3ffb8673f73eaaa1a489f1f27c47800a20e5b6327f1bf5fb09a5b798156908f9e10374a04970
 SHA512 
4ddba2ec4457a2257c18b26dca851e49a275813c4eb3069379a93fcc60228f9b63a3dee9e3719ae606a7cc61d55ab21ce147327223903c302c061e381097a8d7
 DIST strace-5.8.tar.xz 1813640 BLAKE2B 
315edf404fa57890dcff512f9fd76818e8e7d5ad06bc297b68561ec7073297c2e5aaf2c3d9a102382f5833bedacb2a54540068a9f9438094c9180f45b5dc4715
 SHA512 
633c3daa2dd3d273839cbb8ebd7f6512a38b39af0d0d89f4676c2067e199f346615406d85e3e13f9e4da8dbeb62095185895ffae986eb99b64775a4287e38f4c
 DIST strace-5.9.tar.xz 1847036 BLAKE2B 
92d6b5e1a7821086b4e0e535d5db7849158e58ac0604fb9bb667e106b72b1ce17dfadd3960efcf553d7c7dec4622db36833aa5cdd4bc924f8b54ec6168ed82dd
 SHA512 
f28d5dcceccb44557b39ed6f295f3250662804dc3ad79959bfadffcecc9b736e532c7c90dc89ebf9d07eb3e02a5ace231605851148ca09d41c8c60dc1ff68206

diff --git a/dev-util/strace/files/strace-5.11-static.patch 
b/dev-util/strace/files/strace-5.11-static.patch
new file mode 100644
index 00000000000..146ace0dd2e
--- /dev/null
+++ b/dev-util/strace/files/strace-5.11-static.patch
@@ -0,0 +1,178 @@
+--- strace-5.11/configure.ac
++++ strace-5.11/configure.ac
+@@ -47,6 +47,15 @@
+ AC_DEFINE([MANPAGE_DATE], "[manpage_date]", [Date])
+ AC_SUBST([MANPAGE_DATE], [manpage_date])
+ 
++AC_ARG_ENABLE([static],
++            [AS_HELP_STRING([--enable-static],
++                            [link strace statically])],
++            [], [enable_static=no])
++if test "$enable_static" = "yes"; then
++      # Add -pthread since strace wants -lrt for timer_create, and -lrt uses 
-lpthread.
++      LDFLAGS="$LDFLAGS -pthread -static"
++fi
++
+ AC_C_BIGENDIAN
+ 
+ dnl arch-specific default for --enable-gcc-Werror
+--- strace-5.11/m4/st_libdw.m4
++++ strace-5.11/m4/st_libdw.m4
+@@ -8,7 +8,6 @@
+ AC_DEFUN([st_ARG_LIBDW], [dnl
+ 
+ : ${libdw_CPPFLAGS=}
+-: ${libdw_CFLAGS=}
+ : ${libdw_LDFLAGS=}
+ : ${libdw_LIBS=}
+ 
+@@ -34,48 +33,14 @@
+ have_libdw=
+ 
+ AS_IF([test "x$with_libdw" != xno && test "x$use_unwinder" = x],
+-      [saved_CPPFLAGS="$CPPFLAGS"
+-       saved_CFLAGS="$CFLAGS"
+-       CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS"
+-       CFLAGS="$CFLAGS $libdw_CFLAGS"
+-
+-       AC_CHECK_HEADERS([elfutils/libdwfl.h],
+-                      [AC_CHECK_LIB([dw], [dwfl_linux_proc_attach],
+-                                    [libdw_LIBS="-ldw $libdw_LIBS"
+-                                     AC_CACHE_CHECK([for elfutils version],
+-                                                    [st_cv_ELFUTILS_VERSION],
+-                                                    
[[st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION |
+-                                                                              
  $CPP $CPPFLAGS -P -imacros elfutils/version.h - |
+-                                                                              
  grep '^[0-9]')"
+-                                                      test -n 
"$st_cv_ELFUTILS_VERSION" ||
+-                                                              
st_cv_ELFUTILS_VERSION=0
+-                                                    ]]
+-                                                   )
+-                                     AS_IF([test "$st_cv_ELFUTILS_VERSION" 
-ge 164],
+-                                           [have_libdw=yes],
+-                                           [AS_IF([test "x$with_libdw" = 
xyes],
+-                                                  [AC_MSG_ERROR([elfutils 
version >= 164 is required for stack tracing support])],
+-                                                  [AC_MSG_WARN([elfutils 
version >= 164 is required for stack tracing support])]
+-                                                 )
+-                                           ]
+-                                          )
+-                                    ],
+-                                    [AS_IF([test "x$with_libdw" = xyes],
+-                                           [AC_MSG_FAILURE([failed to find 
dwfl_linux_proc_attach in libdw])],
+-                                          )
+-                                    ],
+-                                    [$libdw_LDFLAGS $libdw_LIBS]
+-                                   )
+-                      ],
+-                      [AS_IF([test "x$with_libdw" = xyes],
+-                             [AC_MSG_FAILURE([failed to find 
elfutils/libdwfl.h])]
+-                            )
+-                      ]
+-                     )
+-
+-       CFLAGS="$saved_CFLAGS"
+-       CPPFLAGS="$saved_CPPFLAGS"
+-      ]
++      [if test "$enable_static" = "yes"; then
++           PKG_CHECK_MODULES_STATIC([LIBDW], [libdw >= 0.164])
++       else
++           PKG_CHECK_MODULES([LIBDW], [libdw >= 0.164])
++       fi
++       have_libdw=yes
++       libdw_CPPFLAGS="$LIBDW_CFLAGS"
++       libdw_LIBS="$LIBDW_LIBS"]
+ )
+ 
+ AS_IF([test "x$have_libdw" = xyes],
+@@ -84,7 +49,6 @@
+                [Whether to use libdw for stack tracing]
+               )
+        AC_SUBST(libdw_CPPFLAGS)
+-       AC_SUBST(libdw_CFLAGS)
+        AC_SUBST(libdw_LDFLAGS)
+        AC_SUBST(libdw_LIBS)
+       ]
+--- strace-5.11/m4/st_libunwind.m4
++++ strace-5.11/m4/st_libunwind.m4
+@@ -28,64 +28,14 @@
+ AC_DEFUN([st_LIBUNWIND], [dnl
+ 
+ AS_IF([test "x$with_libunwind" != xno && test "x$use_unwinder" = x],
+-      [saved_CPPFLAGS="$CPPFLAGS"
+-       CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
+-
+-       AC_CHECK_HEADERS([libunwind-ptrace.h],
+-       [saved_LDFLAGS="$LDFLAGS"
+-        LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
+-
+-        AC_CHECK_LIB([unwind], [backtrace],
+-          [libunwind_LIBS="-lunwind $libunwind_LIBS"
+-
+-           AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
+-           saved_LIBS="$LIBS"
+-           LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
+-
+-           AC_LINK_IFELSE(
+-             [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
+-                              [[return !unw_create_addr_space(0, 0)]])
+-             ],
+-             [AC_MSG_RESULT([yes])
+-              libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
+-
+-              AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
+-                [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
+-                 use_unwinder=libunwind
+-                ],
+-                [if test "x$with_libunwind" != xcheck; then
+-                   AC_MSG_FAILURE([failed to find _UPT_create in 
libunwind-ptrace])
+-                 fi
+-                ],
+-                [$libunwind_LIBS]
+-              )
+-             ],
+-             [AC_MSG_RESULT([no])
+-              if test "x$with_libunwind" != xcheck; then
+-                AC_MSG_FAILURE([failed to find unw_create_addr_space in 
libunwind-generic])
+-              fi
+-             ]
+-           )
+-
+-           LIBS="$saved_LIBS"
+-          ],
+-          [if test "x$with_libunwind" != xcheck; then
+-             AC_MSG_FAILURE([failed to find libunwind])
+-           fi
+-          ],
+-          [$libunwind_LIBS]
+-        )
+-
+-        LDFLAGS="$saved_LDFLAGS"
+-       ],
+-       [if test "x$with_libunwind" != xcheck; then
+-          AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
+-        fi
+-       ]
+-       )
+-
+-       CPPFLAGS="$saved_CPPFLAGS"
+-      ]
++      [if test "$enable_static" = "yes"; then
++           PKG_CHECK_MODULES_STATIC([LIBUNWIND], [libunwind libunwind-generic 
libunwind-ptrace])
++       else
++           PKG_CHECK_MODULES([LIBUNWIND], [libunwind libunwind-generic 
libunwind-ptrace])
++       fi
++       use_unwinder="libunwind"
++       libunwind_CPPFLAGS="$LIBUNWIND_CFLAGS"
++       libunwind_LIBS="$LIBUNWIND_LIBS"]
+ )
+ 
+ if test "x$use_unwinder" = xlibunwind; then
+--- strace-5.11/src/Makefile.am
++++ strace-5.11/src/Makefile.am
+@@ -393,7 +393,6 @@
+ if USE_LIBDW
+ libstrace_a_SOURCES += unwind-libdw.c
+ strace_CPPFLAGS += $(libdw_CPPFLAGS)
+-strace_CFLAGS += $(libdw_CFLAGS)
+ strace_LDFLAGS += $(libdw_LDFLAGS)
+ strace_LDADD += $(libdw_LIBS)
+ endif

diff --git a/dev-util/strace/strace-5.11.ebuild 
b/dev-util/strace/strace-5.11.ebuild
new file mode 100644
index 00000000000..73df00d83ec
--- /dev/null
+++ b/dev-util/strace/strace-5.11.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+       EGIT_REPO_URI="https://github.com/strace/strace.git";
+       inherit git-r3 autotools
+else
+       
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz";
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="A useful diagnostic, instructional, and debugging tool"
+HOMEPAGE="https://strace.io/";
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="aio perl static unwind elfutils"
+
+REQUIRED_USE="?? ( unwind elfutils )"
+
+BDEPEND="
+       virtual/pkgconfig
+"
+LIB_DEPEND="
+       unwind? ( sys-libs/libunwind[static-libs(+)] )
+       elfutils? ( dev-libs/elfutils[static-libs(+)] )
+"
+# strace only uses the header from libaio to decode structs
+DEPEND="
+       static? ( ${LIB_DEPEND} )
+       aio? ( >=dev-libs/libaio-0.3.106 )
+       sys-kernel/linux-headers
+"
+RDEPEND="
+       !static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+       perl? ( dev-lang/perl )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-5.11-static.patch"
+)
+
+src_prepare() {
+       default
+
+       eautoreconf
+
+       if [[ ! -e configure ]] ; then
+               # git generation
+               sed /autoreconf/d -i bootstrap || die
+               ./bootstrap || die
+               eautoreconf
+               [[ ! -e CREDITS ]] && cp CREDITS{.in,}
+       fi
+
+       filter-lfs-flags # configure handles this sanely
+
+       export ac_cv_header_libaio_h=$(usex aio)
+       use elibc_musl && export ac_cv_header_stdc=no
+
+       # Stub out the -k test since it's known to be flaky. #545812
+       sed -i '1iexit 77' tests*/strace-k.test || die
+}
+
+src_configure() {
+       # Set up the default build settings, and then use the names strace 
expects.
+       tc-export_build_env BUILD_{CC,CPP}
+       local v bv
+       for v in CC CPP {C,CPP,LD}FLAGS ; do
+               bv="BUILD_${v}"
+               export "${v}_FOR_BUILD=${!bv}"
+       done
+
+       # Don't require mpers support on non-multilib systems. #649560
+       local myeconfargs=(
+               --disable-gcc-Werror
+               --enable-mpers=check
+               $(use_enable static)
+               $(use_with unwind libunwind)
+               $(use_with elfutils libdw)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_test() {
+       if has usersandbox ${FEATURES} ; then
+               ewarn "Test suite is known to fail with FEATURES=usersandbox -- 
skipping ..." #643044
+               return 0
+       fi
+
+       default
+}
+
+src_install() {
+       default
+       if use perl ; then
+               exeinto /usr/bin
+               doexe src/strace-graph
+       fi
+       dodoc CREDITS
+}

Reply via email to