commit:     22056ad8a098f01b7604f91022b448cead417a10
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 30 21:59:46 2023 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Thu Mar 30 22:09:06 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=22056ad8

dev-util/ltrace: add 0.7.91_pre20221216

First attempt to move away from Debian tarballs and towards the somewhat
revived upstream. Unfortunately upstream has yet to release any versions
newer than 0.7.3 so we have to use a git snapshot for that. The suffix
_pre, with the date being that of the chosen commit, has been added
because the version number 0.7.91 got set in the repository almost a
decade ago and it is unknown at this point whether upstream intends to
increment it before the next release or not, assuming they ever make
one.

Tests are still restricted because even though they do not fail as badly
as 0.7.3 ones, all the reasons for having restricted them in the first
place remain valid.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 dev-util/ltrace/Manifest                           |  1 +
 .../files/ltrace-0.7.91-debian-patchset-6.4.patch  | 77 ++++++++++++++++++++++
 dev-util/ltrace/files/ltrace-0.7.91-pid_t.patch    | 10 +++
 .../files/ltrace-0.7.91-test-glibc-2.33.patch      | 11 ++++
 .../ltrace/files/ltrace-0.7.91-tuple-tests.patch   | 11 ++++
 dev-util/ltrace/ltrace-0.7.91_pre20221216.ebuild   | 59 +++++++++++++++++
 6 files changed, 169 insertions(+)

diff --git a/dev-util/ltrace/Manifest b/dev-util/ltrace/Manifest
index a3cf12b70cab..c1d8595eb775 100644
--- a/dev-util/ltrace/Manifest
+++ b/dev-util/ltrace/Manifest
@@ -1,2 +1,3 @@
+DIST ltrace-0.7.91_pre20221216.tar.bz2 288077 BLAKE2B 
cadc2ac551a96dfa95aee0d0eb251d8f41a8631350ba3be3f67d0cb10774a3db6abbd42481d24febdfcb0d565107e66b4de0056a85a7954bb050adb8e8fa5b4a
 SHA512 
993c247797551b4fbb202c04f9af08063c8641946825b17d1f32c4647c606ece803a6b049c4afa3046c798add161ab58f01d90106f3b6029a223af03bca27a99
 DIST ltrace_0.7.3-6.1.debian.tar.xz 11404 BLAKE2B 
d38ce51dfcbf809d7622029fb6dd0acd61c8d8213be0bf2625fd746adbe6dd6830faf208b7e864c1185013d7d5e17f3e10e8a8fb45f8e0a4bc9859fde96a55d7
 SHA512 
c0753935d74be530886ce5202429cabbbe73814c9ac120eaf90a1c4e03dfd4de5381e3e85a27fbbbce694b23cd72a273199575419446b6159b0925d85e1938ab
 DIST ltrace_0.7.3.orig.tar.bz2 482658 BLAKE2B 
30d1dbb178a41043e4bbbac17a23676db202b64327c9bb4393ae7ace9f5e1a1e2a5ded56cabc7faf2ea55b22ed17126a94c121147aeefb40250710b7307a50d3
 SHA512 
a842b16dcb81da869afa0bddc755fdff0d57b35672505bf2c7164fd983b1938d28b126714128930994cc1230ced69d779456d0cfc16f4008c9b6d19f0852285d

diff --git a/dev-util/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch 
b/dev-util/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch
new file mode 100644
index 000000000000..1f3bb5ec6a21
--- /dev/null
+++ b/dev-util/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch
@@ -0,0 +1,77 @@
+Patches imported from the Debian patch set 6.4 for ltrace-0.7.3:
+ - 01-avoid-libstdc++ (adapted to account for the absence of configure),
+ - 03-alpha-debug.h
+ - 05-sparc-ftbfs
+ - 06-unexpected-breakpoint
+The other two have since been merged upstream.
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -126,6 +126,15 @@
+       libstdcxx_LIBS=""])
+ AC_SUBST(libstdcxx_LIBS)
+ 
++if test "x$liberty_LIBS" != "x"
++then
++  libsupcxx_LIBS=""
++  libstdcxx_LIBS=""
++elif test "x$libsupcxx_LIBS" != "x"
++then
++  libstdcxx_LIBS=""
++fi
++
+ 
+ dnl Check security_get_boolean_active availability.
+ AC_CHECK_HEADERS(selinux/selinux.h)
+--- a/handle_event.c
++++ b/handle_event.c
+@@ -740,9 +740,12 @@
+ 
+       if ((sbp = address2bpstruct(leader, brk_addr)) != NULL)
+               breakpoint_on_hit(sbp, event->proc);
+-      else if (event->proc->state != STATE_IGNORED)
++      else if (event->proc->state != STATE_IGNORED) {
+               output_line(event->proc,
+                           "unexpected breakpoint at %p", brk_addr);
++              continue_process(event->proc->pid);
++              return;
++      }
+ 
+       /* breakpoint_on_hit may delete its own breakpoint, so we have
+        * to look it up again.  */
+--- a/sysdeps/linux-gnu/alpha/trace.c
++++ b/sysdeps/linux-gnu/alpha/trace.c
+@@ -29,7 +29,6 @@
+ 
+ #include "proc.h"
+ #include "common.h"
+-#include "debug.h"
+ 
+ #if (!defined(PTRACE_PEEKUSER) && defined(PTRACE_PEEKUSR))
+ # define PTRACE_PEEKUSER PTRACE_PEEKUSR
+--- a/sysdeps/linux-gnu/sparc/plt.c
++++ b/sysdeps/linux-gnu/sparc/plt.c
+@@ -19,8 +19,9 @@
+  */
+ 
+ #include <gelf.h>
++
+ #include "proc.h"
+-#include "common.h"
++#include "library.h"
+ 
+ GElf_Addr
+ arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) {
+--- a/sysdeps/linux-gnu/sparc/trace.c
++++ b/sysdeps/linux-gnu/sparc/trace.c
+@@ -26,8 +26,10 @@
+ #include <sys/wait.h>
+ #include <signal.h>
+ #include <string.h>
++
+ #include "ptrace.h"
+ #include "proc.h"
++#include "backend.h"
+ #include "common.h"
+ 
+ void

diff --git a/dev-util/ltrace/files/ltrace-0.7.91-pid_t.patch 
b/dev-util/ltrace/files/ltrace-0.7.91-pid_t.patch
new file mode 100644
index 000000000000..06075006b2e1
--- /dev/null
+++ b/dev-util/ltrace/files/ltrace-0.7.91-pid_t.patch
@@ -0,0 +1,10 @@
+--- a/proc.h
++++ b/proc.h
+@@ -27,6 +27,7 @@
+ 
+ #include <sys/time.h>
+ #include <stdint.h>
++#include <unistd.h> /* pid_t */
+ 
+ #if defined(HAVE_LIBDW)
+ # include <elfutils/libdwfl.h>

diff --git a/dev-util/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch 
b/dev-util/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch
new file mode 100644
index 000000000000..b78d4580b050
--- /dev/null
+++ b/dev-util/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch
@@ -0,0 +1,11 @@
+--- a/testsuite/ltrace.main/system_calls.exp
++++ b/testsuite/ltrace.main/system_calls.exp
+@@ -133,7 +133,7 @@
+     { {^write$} == 1 }
+     { {^unlink(at)?$} >= 2 }
+     { {^open(at)?$} == 1 }
+-    { {^(new|f)?stat(64)?$} >= 1 }
++    { {^(new)?stat|fstatat64|newfstatat$} >= 1 }
+     { {^close$} == 1 }
+     { {^getcwd$} == 1 }
+     { {^chdir$} == 1 }

diff --git a/dev-util/ltrace/files/ltrace-0.7.91-tuple-tests.patch 
b/dev-util/ltrace/files/ltrace-0.7.91-tuple-tests.patch
new file mode 100644
index 000000000000..c7c997d5545e
--- /dev/null
+++ b/dev-util/ltrace/files/ltrace-0.7.91-tuple-tests.patch
@@ -0,0 +1,11 @@
+--- a/testsuite/Makefile.am
++++ b/testsuite/Makefile.am
+@@ -42,6 +42,8 @@
+       echo set elfutils_LD_LIBRARY_PATH '"$(elfutils_LD_LIBRARY_PATH)"' >> $@
+       echo set libunwind_LD_LIBRARY_PATH '"$(libunwind_LD_LIBRARY_PATH)"' >> 
$@
+       echo set PREFIX '"$(prefix)"' >> $@
++      echo set CC_FOR_TARGET '"$(CC)"' >> $@
++      echo set CXX_FOR_TARGET '"$(CXX)"' >> $@
+ 
+ CLEANFILES = *.o *.so *.log *.sum *.ltrace site.bak setval.tmp site.exp 
env.exp
+ 

diff --git a/dev-util/ltrace/ltrace-0.7.91_pre20221216.ebuild 
b/dev-util/ltrace/ltrace-0.7.91_pre20221216.ebuild
new file mode 100644
index 000000000000..24b86f41a73f
--- /dev/null
+++ b/dev-util/ltrace/ltrace-0.7.91_pre20221216.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+EGIT_COMMIT="5cffc0d2134f697fbac8627ec5b5f0085cd47c8a"
+
+DESCRIPTION="trace library calls made at runtime"
+HOMEPAGE="https://gitlab.com/cespedes/ltrace";
+SRC_URI="https://gitlab.com/cespedes/${PN}/-/archive/${EGIT_COMMIT}.tar.bz2 -> 
${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug selinux test unwind"
+
+RDEPEND="virtual/libelf:=
+       selinux? ( sys-libs/libselinux )
+       unwind? ( sys-libs/libunwind:= )"
+DEPEND="${RDEPEND}
+       sys-libs/binutils-libs
+       test? ( dev-util/dejagnu )"
+
+# Effectively abandoned upstream. Extremely sensitive to the sandbox, versions
+# of core libraries, kernel security settings...
+RESTRICT="test"
+
+S=${WORKDIR}/${PN}-${EGIT_COMMIT}
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.7.91-debian-patchset-6.4.patch
+       "${FILESDIR}"/${PN}-0.7.3-CXX-for-tests.patch
+       "${FILESDIR}"/${PN}-0.7.3-alpha-protos.patch
+       "${FILESDIR}"/${PN}-0.7.3-ia64.patch
+       "${FILESDIR}"/${PN}-0.7.3-ia64-pid_t.patch
+       "${FILESDIR}"/${PN}-0.7.3-musl-host.patch
+       "${FILESDIR}"/${PN}-0.7.3-print-test-pie.patch
+       "${FILESDIR}"/${PN}-0.7.91-pid_t.patch
+       "${FILESDIR}"/${PN}-0.7.91-test-glibc-2.33.patch
+       "${FILESDIR}"/${PN}-0.7.91-tuple-tests.patch
+)
+
+src_prepare() {
+       default
+
+       sed -i '/^dist_doc_DATA/d' Makefile.am || die
+       eautoreconf
+}
+
+src_configure() {
+       ac_cv_header_selinux_selinux_h=$(usex selinux) \
+       ac_cv_lib_selinux_security_get_boolean_active=$(usex selinux) \
+       econf \
+               --disable-werror \
+               $(use_enable debug) \
+               $(use_with unwind libunwind)
+}

Reply via email to