mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-util/rr: drop 5.6.0-r2, 5.6.0-r4
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -1,2 +1 @@
|
||||
DIST mozilla-rr-5.6.0.tar.gz 1579320 BLAKE2B 14ea99c4486c72db844b5cad3f0c300d7bf5d49449e7080ed0484f89022be6d9b7f81b3808b65f59028a5256a6b3f6508729d5b7e8f3f45d8353ceb7ae2a577a SHA512 4b5ef65b6c6a4b62fc72949b4541aaf608f6133ea0b6c2e529a8eed725e6a0b5186f20ed60b210821e6929410e1f21723840eacfdc85bf12c87703e7ebf5f9a7
|
||||
DIST mozilla-rr-5.7.0.tar.gz 1688069 BLAKE2B 613196a441b8c384765403838d4c89248eeb85af203b596ff01610fe65c62650cbeb7f8bde4c97ac4bb65f2bdcf7caa605ca1b6cb2f8f36b0355d816ed39a4f1 SHA512 e0e45f47a5f1de9e0e3f982e9eb5565699189ed23c52de03bf68b8215e7b8ac267619c04495c19e75a55aa8e0face08b9bb6c7f325650384c10a719c17ecf576
|
||||
|
||||
@@ -1,222 +0,0 @@
|
||||
https://bugs.gentoo.org/897874
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109420
|
||||
https://github.com/rr-debugger/rr/issues/3485
|
||||
https://github.com/rr-debugger/rr/commit/e32502d00b18a5225d3b7fbab75fb1e63cb367d2
|
||||
|
||||
From e32502d00b18a5225d3b7fbab75fb1e63cb367d2 Mon Sep 17 00:00:00 2001
|
||||
From: Robert O'Callahan <robert@ocallahan.org>
|
||||
Date: Wed, 5 Apr 2023 08:15:23 +1200
|
||||
Subject: [PATCH] Avoid having type members and enum members of `Arch` with the
|
||||
same name
|
||||
|
||||
Resolves #3485
|
||||
--- a/src/kernel_abi.h
|
||||
+++ b/src/kernel_abi.h
|
||||
@@ -1282,7 +1282,7 @@ struct BaseArch : public wordsize,
|
||||
};
|
||||
RR_VERIFY_TYPE_EXPLICIT(struct ::timezone, timezone);
|
||||
|
||||
- struct statfs {
|
||||
+ struct statfs_t {
|
||||
__statfs_word f_type;
|
||||
__statfs_word f_bsize;
|
||||
__statfs_word f_blocks;
|
||||
@@ -1298,9 +1298,9 @@ struct BaseArch : public wordsize,
|
||||
__statfs_word f_flags;
|
||||
__statfs_word f_spare[4];
|
||||
};
|
||||
- RR_VERIFY_TYPE_EXPLICIT(struct ::statfs, statfs);
|
||||
+ RR_VERIFY_TYPE_EXPLICIT(struct ::statfs, statfs_t);
|
||||
|
||||
- struct statfs64 {
|
||||
+ struct statfs64_t {
|
||||
__statfs_word f_type;
|
||||
__statfs_word f_bsize;
|
||||
uint64_t f_blocks;
|
||||
@@ -1316,7 +1316,7 @@ struct BaseArch : public wordsize,
|
||||
__statfs_word f_flags;
|
||||
__statfs_word f_spare[4];
|
||||
};
|
||||
- RR_VERIFY_TYPE_EXPLICIT(struct ::statfs64, statfs64);
|
||||
+ RR_VERIFY_TYPE_EXPLICIT(struct ::statfs64, statfs64_t);
|
||||
|
||||
struct itimerval {
|
||||
timeval it_interval;
|
||||
@@ -1338,7 +1338,7 @@ struct BaseArch : public wordsize,
|
||||
} stack_t;
|
||||
RR_VERIFY_TYPE(stack_t);
|
||||
|
||||
- struct sysinfo {
|
||||
+ struct sysinfo_t {
|
||||
__kernel_long_t uptime;
|
||||
__kernel_ulong_t loads[3];
|
||||
__kernel_ulong_t totalram;
|
||||
@@ -1355,7 +1355,7 @@ struct BaseArch : public wordsize,
|
||||
uint32_t mem_unit;
|
||||
char _f[20 - 2 * sizeof(__kernel_ulong_t) - sizeof(uint32_t)];
|
||||
};
|
||||
- RR_VERIFY_TYPE_EXPLICIT(struct ::sysinfo, sysinfo);
|
||||
+ RR_VERIFY_TYPE_EXPLICIT(struct ::sysinfo, sysinfo_t);
|
||||
|
||||
static const ::size_t UTSNAME_LENGTH = 65;
|
||||
struct utsname {
|
||||
@@ -2093,7 +2093,7 @@ struct X64Arch : public BaseArch<SupportedArch::x86_64, WordSize64Defs> {
|
||||
// Can't verify this one because glibc leaves out the last two members and the
|
||||
// kernel header isn't available to userspace.
|
||||
|
||||
- struct stat {
|
||||
+ struct stat_t {
|
||||
dev_t st_dev;
|
||||
ino_t st_ino;
|
||||
nlink_t st_nlink;
|
||||
@@ -2110,10 +2110,10 @@ struct X64Arch : public BaseArch<SupportedArch::x86_64, WordSize64Defs> {
|
||||
struct timespec st_ctim;
|
||||
syscall_slong_t __rr_unused[3];
|
||||
};
|
||||
- RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat, struct stat);
|
||||
+ RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat, struct stat_t);
|
||||
|
||||
- struct stat64 : public stat {};
|
||||
- RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat64, struct stat64);
|
||||
+ struct stat64_t : public stat_t {};
|
||||
+ RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat64, struct stat64_t);
|
||||
|
||||
struct semid64_ds {
|
||||
ipc64_perm sem_perm;
|
||||
@@ -2291,7 +2291,7 @@ struct X86Arch : public BaseArch<SupportedArch::x86, WordSize32Defs> {
|
||||
};
|
||||
RR_VERIFY_TYPE_X86_ARCH(SupportedArch::x86, ::user, user);
|
||||
|
||||
- struct stat {
|
||||
+ struct stat_t {
|
||||
dev_t st_dev;
|
||||
unsigned_short __pad1;
|
||||
ino_t st_ino;
|
||||
@@ -2310,9 +2310,9 @@ struct X86Arch : public BaseArch<SupportedArch::x86, WordSize32Defs> {
|
||||
unsigned_long __unused4;
|
||||
unsigned_long __unused5;
|
||||
};
|
||||
- RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat, struct stat);
|
||||
+ RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat, struct stat_t);
|
||||
|
||||
- struct __attribute__((packed)) stat64 {
|
||||
+ struct __attribute__((packed)) stat64_t {
|
||||
dev_t st_dev;
|
||||
unsigned_int __pad1;
|
||||
ino_t __st_ino;
|
||||
@@ -2330,7 +2330,7 @@ struct X86Arch : public BaseArch<SupportedArch::x86, WordSize32Defs> {
|
||||
timespec st_ctim;
|
||||
ino64_t st_ino;
|
||||
};
|
||||
- RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat64, struct stat64);
|
||||
+ RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat64, struct stat64_t);
|
||||
|
||||
struct semid64_ds {
|
||||
ipc64_perm sem_perm;
|
||||
@@ -2377,7 +2377,7 @@ struct GenericArch : public BaseArch<arch_, wordsize> {
|
||||
typedef uint32_t legacy_uid_t;
|
||||
typedef uint32_t legacy_gid_t;
|
||||
|
||||
- struct stat {
|
||||
+ struct stat_t {
|
||||
dev_t st_dev;
|
||||
ino_t st_ino;
|
||||
mode_t st_mode;
|
||||
@@ -2405,7 +2405,7 @@ struct GenericArch : public BaseArch<arch_, wordsize> {
|
||||
typename BaseArch<arch_, wordsize>::unsigned_long __unused4;
|
||||
};
|
||||
|
||||
- struct stat64 : public stat {};
|
||||
+ struct stat64_t : public stat_t {};
|
||||
};
|
||||
|
||||
struct ARM64Arch : public GenericArch<SupportedArch::aarch64, WordSize64Defs> {
|
||||
--- a/src/syscalls.py
|
||||
+++ b/src/syscalls.py
|
||||
@@ -544,7 +544,7 @@ def __init__(self, **kwargs):
|
||||
# system. path is the pathname of any file within the mounted file
|
||||
# system. buf is a pointer to a statfs structure defined
|
||||
# approximately as follows:
|
||||
-statfs = EmulatedSyscall(x86=99, x64=137, generic=43, arg2="struct Arch::statfs")
|
||||
+statfs = EmulatedSyscall(x86=99, x64=137, generic=43, arg2="struct Arch::statfs_t")
|
||||
|
||||
# int fstatfs(int fd, struct statfs *buf)
|
||||
#
|
||||
@@ -552,7 +552,7 @@ def __init__(self, **kwargs):
|
||||
# system. path is the pathname of any file within the
|
||||
# get_time(GET_TID(thread_id));mounted file system. buf is a pointer
|
||||
# to a statfs structure defined approximately as follows:
|
||||
-fstatfs = EmulatedSyscall(x86=100, x64=138, generic=44, arg2="struct Arch::statfs")
|
||||
+fstatfs = EmulatedSyscall(x86=100, x64=138, generic=44, arg2="struct Arch::statfs_t")
|
||||
|
||||
ioperm = EmulatedSyscall(x86=101, x64=173)
|
||||
|
||||
@@ -574,9 +574,9 @@ def __init__(self, **kwargs):
|
||||
# stored there.
|
||||
setitimer = EmulatedSyscall(x86=104, x64=38, generic=103, arg3="typename Arch::itimerval")
|
||||
getitimer = EmulatedSyscall(x86=105, x64=36, generic=102, arg2="typename Arch::itimerval")
|
||||
-stat = EmulatedSyscall(x86=106, x64=4, arg2="struct Arch::stat")
|
||||
-lstat = EmulatedSyscall(x86=107, x64=6, arg2="struct Arch::stat")
|
||||
-fstat = EmulatedSyscall(x86=108, x64=5, generic=80, arg2="struct Arch::stat")
|
||||
+stat = EmulatedSyscall(x86=106, x64=4, arg2="struct Arch::stat_t")
|
||||
+lstat = EmulatedSyscall(x86=107, x64=6, arg2="struct Arch::stat_t")
|
||||
+fstat = EmulatedSyscall(x86=108, x64=5, generic=80, arg2="struct Arch::stat_t")
|
||||
olduname = UnsupportedSyscall(x86=109)
|
||||
iopl = EmulatedSyscall(x86=110, x64=172)
|
||||
vhangup = UnsupportedSyscall(x86=111, x64=153, generic=58)
|
||||
@@ -596,7 +596,7 @@ def __init__(self, **kwargs):
|
||||
#
|
||||
# sysinfo() provides a simple way of getting overall system
|
||||
# statistics.
|
||||
-sysinfo = EmulatedSyscall(x86=116, x64=99, generic=179, arg1="struct Arch::sysinfo")
|
||||
+sysinfo = EmulatedSyscall(x86=116, x64=99, generic=179, arg1="struct Arch::sysinfo_t")
|
||||
# int ipc(unsigned int call, int first, int second, int third, void *ptr, long
|
||||
#fifth);
|
||||
#
|
||||
@@ -992,20 +992,20 @@ def __init__(self, **kwargs):
|
||||
# int stat(const char *path, struct stat *buf);
|
||||
#
|
||||
# stat() stats the file pointed to by path and fills in buf.
|
||||
-stat64 = EmulatedSyscall(x86=195, arg2="struct Arch::stat64")
|
||||
+stat64 = EmulatedSyscall(x86=195, arg2="struct Arch::stat64_t")
|
||||
|
||||
# int lstat(const char *path, struct stat *buf);
|
||||
#
|
||||
# lstat() is identical to stat(), except that if path is a symbolic
|
||||
# link, then the link itself is stat-ed, not the file that it refers
|
||||
# to.
|
||||
-lstat64 = EmulatedSyscall(x86=196, arg2="struct Arch::stat64")
|
||||
+lstat64 = EmulatedSyscall(x86=196, arg2="struct Arch::stat64_t")
|
||||
|
||||
# int fstat(int fd, struct stat *buf)
|
||||
#
|
||||
# fstat() is identical to stat(), except that the file to be stat-ed
|
||||
# is specified by the file descriptor fd.
|
||||
-fstat64 = EmulatedSyscall(x86=197, arg2="struct Arch::stat64")
|
||||
+fstat64 = EmulatedSyscall(x86=197, arg2="struct Arch::stat64_t")
|
||||
|
||||
lchown32 = EmulatedSyscall(x86=198)
|
||||
|
||||
@@ -1342,8 +1342,8 @@ def __init__(self, **kwargs):
|
||||
#
|
||||
# FIXME: we use arg3() here, although according to man pages this system
|
||||
# call has only 2 paramaters. However, strace tells another story...
|
||||
-statfs64 = EmulatedSyscall(x86=268, arg3="struct Arch::statfs64")
|
||||
-fstatfs64 = EmulatedSyscall(x86=269, arg3="struct Arch::statfs64")
|
||||
+statfs64 = EmulatedSyscall(x86=268, arg3="struct Arch::statfs64_t")
|
||||
+fstatfs64 = EmulatedSyscall(x86=269, arg3="struct Arch::statfs64_t")
|
||||
|
||||
# int tgkill(int tgid, int tid, int sig)
|
||||
#
|
||||
@@ -1443,8 +1443,8 @@ def __init__(self, **kwargs):
|
||||
# The fstatat() system call operates in exactly the same way as
|
||||
# stat(2), except for the differences described in this manual
|
||||
# page....
|
||||
-fstatat = EmulatedSyscall(x64=262, generic=79, arg3="struct Arch::stat")
|
||||
-fstatat64 = EmulatedSyscall(x86=300, arg3="struct Arch::stat64")
|
||||
+fstatat = EmulatedSyscall(x64=262, generic=79, arg3="struct Arch::stat_t")
|
||||
+fstatat64 = EmulatedSyscall(x86=300, arg3="struct Arch::stat64_t")
|
||||
|
||||
# int unlinkat(int dirfd, const char *pathname, int flags)
|
||||
#
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
https://github.com/rr-debugger/rr/commit/2248c85c424e8c257ca88af2732782574d6a3544
|
||||
|
||||
From 2248c85c424e8c257ca88af2732782574d6a3544 Mon Sep 17 00:00:00 2001
|
||||
From: William Cohen <wcohen@redhat.com>
|
||||
Date: Wed, 18 Jan 2023 12:15:04 -0500
|
||||
Subject: [PATCH] Explicitly include <cstdint> where required.
|
||||
|
||||
The uint8_t and uintptr_t ptr types are from the header <cstdint>.
|
||||
Earlier versions of gcc appear to declare them even if the header
|
||||
is not included, but gcc-13 does not. Explicitly including the
|
||||
header to allow compilations with gcc-13.
|
||||
--- a/src/log.h
|
||||
+++ b/src/log.h
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <iostream>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
/**
|
||||
* Print siginfo on ostream.
|
||||
--- a/src/remote_ptr.h
|
||||
+++ b/src/remote_ptr.h
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <cstddef>
|
||||
#include <iostream>
|
||||
+#include <cstdint>
|
||||
|
||||
namespace rr {
|
||||
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
https://github.com/rr-debugger/rr/commit/2979c60ef8bbf7c940afd90172ddc5d8863f766e
|
||||
https://github.com/rr-debugger/rr/issues/3369
|
||||
https://bugs.gentoo.org/877157
|
||||
|
||||
From 2979c60ef8bbf7c940afd90172ddc5d8863f766e Mon Sep 17 00:00:00 2001
|
||||
From: Robert O'Callahan <robert@ocallahan.org>
|
||||
Date: Thu, 25 Aug 2022 20:40:59 +1200
|
||||
Subject: [PATCH] Avoid creating a struct with elements after
|
||||
ethtool_sset_info's variable-length-array.
|
||||
|
||||
Resolves #3369
|
||||
--- a/src/record_syscall.cc
|
||||
+++ b/src/record_syscall.cc
|
||||
@@ -1450,17 +1450,17 @@ template <typename Arch> void get_ethtool_gstrings_arch(RecordTask* t) {
|
||||
AutoRemoteSyscalls remote(t);
|
||||
|
||||
// Do a ETHTOOL_GSSET_INFO to get the number of strings
|
||||
- struct SingleStringSet {
|
||||
- ethtool_sset_info et;
|
||||
- uint32_t data;
|
||||
- };
|
||||
- SingleStringSet sss;
|
||||
- sss.et.cmd = ETHTOOL_GSSET_INFO;
|
||||
- sss.et.reserved = 0;
|
||||
- sss.et.sset_mask = 1 << et_gstrings.string_set;
|
||||
- AutoRestoreMem sss_mem(remote, &sss, sizeof(sss));
|
||||
-
|
||||
- ifreq.ifr_ifru.ifru_data = sss_mem.get();
|
||||
+ ethtool_sset_info et;
|
||||
+ et.cmd = ETHTOOL_GSSET_INFO;
|
||||
+ et.reserved = 0;
|
||||
+ et.sset_mask = 1 << et_gstrings.string_set;
|
||||
+ std::vector<uint8_t> buffer;
|
||||
+ buffer.resize(sizeof(et) + sizeof(uint32_t));
|
||||
+ memcpy(buffer.data(), &et, sizeof(et));
|
||||
+ memset(buffer.data() + sizeof(et), 0, sizeof(uint32_t));
|
||||
+ AutoRestoreMem et_mem(remote, buffer.data(), buffer.size());
|
||||
+
|
||||
+ ifreq.ifr_ifru.ifru_data = et_mem.get();
|
||||
AutoRestoreMem ifr_mem(remote, &ifreq, sizeof(ifreq));
|
||||
|
||||
long ret = remote.syscall(regs.original_syscallno(), regs.arg1(),
|
||||
@@ -1470,8 +1470,7 @@ template <typename Arch> void get_ethtool_gstrings_arch(RecordTask* t) {
|
||||
return;
|
||||
}
|
||||
|
||||
- sss = t->read_mem(sss_mem.get().cast<SingleStringSet>());
|
||||
-
|
||||
+ uint32_t data = t->read_mem((et_mem.get() + sizeof(et)).cast<uint32_t>());
|
||||
// Now do the ETHTOOL_GSTRINGS call
|
||||
ret = remote.syscall(regs.original_syscallno(), regs.arg1(), SIOCETHTOOL,
|
||||
regs.arg3());
|
||||
@@ -1479,7 +1478,7 @@ template <typename Arch> void get_ethtool_gstrings_arch(RecordTask* t) {
|
||||
if (ret < 0) {
|
||||
return;
|
||||
}
|
||||
- t->record_remote(orig_gstrings, sizeof(ethtool_gstrings) + ETH_GSTRING_LEN*sss.data);
|
||||
+ t->record_remote(orig_gstrings, sizeof(ethtool_gstrings) + ETH_GSTRING_LEN*data);
|
||||
}
|
||||
|
||||
static void get_ethtool_gstrings(RecordTask* t) {
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
https://github.com/rr-debugger/rr/commit/548fab2071054cb7e906c53930b6fab19316dd61
|
||||
|
||||
From 548fab2071054cb7e906c53930b6fab19316dd61 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Sat, 3 Dec 2022 12:44:48 +0100
|
||||
Subject: [PATCH] test: Include <sys/mount.h> in util.h
|
||||
|
||||
The mount_ns_exec test needs it to call the mount function.
|
||||
--- a/src/test/util.h
|
||||
+++ b/src/test/util.h
|
||||
@@ -80,6 +80,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/mman.h>
|
||||
+#include <sys/mount.h>
|
||||
#include <sys/msg.h>
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/ptrace.h>
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
CMAKE_BUILD_TYPE=Release
|
||||
|
||||
inherit cmake linux-info python-single-r1
|
||||
|
||||
DESCRIPTION="Record and Replay Framework"
|
||||
HOMEPAGE="https://rr-project.org/"
|
||||
SRC_URI="https://github.com/rr-debugger/${PN}/archive/${PV}.tar.gz -> mozilla-${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="multilib test"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-libs/capnproto:=
|
||||
sys-libs/zlib:=
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
dev-debug/gdb[xml]
|
||||
"
|
||||
# Add all the deps needed only at build/test time.
|
||||
DEPEND+="
|
||||
test? (
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/pexpect[${PYTHON_USEDEP}]
|
||||
')
|
||||
dev-debug/gdb[xml]
|
||||
)"
|
||||
|
||||
QA_FLAGS_IGNORED="
|
||||
usr/lib.*/rr/librrpage.so
|
||||
usr/lib.*/rr/librrpage_32.so
|
||||
"
|
||||
|
||||
RESTRICT="test" # toolchain and kernel version dependent
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-linux-headers-6.0.patch
|
||||
"${FILESDIR}"/${P}-tests-clang16.patch
|
||||
"${FILESDIR}"/${P}-gcc13.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use kernel_linux; then
|
||||
CONFIG_CHECK="SECCOMP"
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
sed -i 's:-Werror::' CMakeLists.txt || die #609192
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if has usersandbox ${FEATURES} ; then
|
||||
ewarn "Test suite fails under FEATURES=usersandbox (bug #632394). Skipping."
|
||||
return 0
|
||||
fi
|
||||
|
||||
cmake_src_test
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DBUILD_TESTS=$(usex test)
|
||||
-Ddisable32bit=$(usex !multilib) #636786
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
python_fix_shebang "${ED}"/usr/bin/rr-collect-symbols.py
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
CMAKE_BUILD_TYPE=Release
|
||||
|
||||
inherit cmake linux-info python-single-r1
|
||||
|
||||
DESCRIPTION="Record and Replay Framework"
|
||||
HOMEPAGE="https://rr-project.org/"
|
||||
SRC_URI="https://github.com/rr-debugger/${PN}/archive/${PV}.tar.gz -> mozilla-${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
IUSE="multilib test"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-libs/capnproto:=
|
||||
sys-libs/zlib:=
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
dev-debug/gdb[xml]
|
||||
"
|
||||
# Add all the deps needed only at build/test time.
|
||||
DEPEND+="
|
||||
test? (
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/pexpect[${PYTHON_USEDEP}]
|
||||
')
|
||||
dev-debug/gdb[xml]
|
||||
)"
|
||||
|
||||
QA_FLAGS_IGNORED="
|
||||
usr/lib.*/rr/librrpage.so
|
||||
usr/lib.*/rr/librrpage_32.so
|
||||
"
|
||||
|
||||
RESTRICT="test" # toolchain and kernel version dependent
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-linux-headers-6.0.patch
|
||||
"${FILESDIR}"/${P}-tests-clang16.patch
|
||||
"${FILESDIR}"/${P}-gcc13.patch
|
||||
"${FILESDIR}"/${P}-gcc13-workaround.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use kernel_linux; then
|
||||
CONFIG_CHECK="SECCOMP"
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
sed -i 's:-Werror::' CMakeLists.txt || die #609192
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if has usersandbox ${FEATURES} ; then
|
||||
ewarn "Test suite fails under FEATURES=usersandbox (bug #632394). Skipping."
|
||||
return 0
|
||||
fi
|
||||
|
||||
cmake_src_test
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DBUILD_TESTS=$(usex test)
|
||||
-Ddisable32bit=$(usex !multilib) #636786
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
python_fix_shebang "${ED}"/usr/bin/rr-collect-symbols.py
|
||||
}
|
||||
Reference in New Issue
Block a user