From 4dffcd235c726c6425edbdc00a1e4c88b2e0e875 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Wed, 28 Jun 2017 10:23:08 +0000 Subject: user/psmisc: patches to make peekfd work portably --- user/psmisc/APKBUILD | 16 +++++++++++----- user/psmisc/dont-underlink-peekfd.patch | 10 ++++++++++ user/psmisc/fix-peekfd-on-ppc.patch | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 user/psmisc/dont-underlink-peekfd.patch create mode 100644 user/psmisc/fix-peekfd-on-ppc.patch diff --git a/user/psmisc/APKBUILD b/user/psmisc/APKBUILD index c36a37fec..c896a5882 100644 --- a/user/psmisc/APKBUILD +++ b/user/psmisc/APKBUILD @@ -8,16 +8,20 @@ pkgdesc="Miscellaneous utilities that use the proc filesystem" url="https://gitlab.com/psmisc/psmisc" arch="all" license="GPLv2+" -makedepends="ncurses-dev gettext-dev autoconf>=2.69 automake dejagnu" +makedepends="ncurses-dev gettext-dev autoconf>=2.69 automake" +checkdepends="dejagnu" subpackages="$pkgname-doc $pkgname-lang" -source="$pkgname-$pkgver.tar.bz2::https://gitlab.com/$pkgname/$pkgname/repository/archive.tar.bz2?ref=v$pkgver" +source="$pkgname-$pkgver.tar.bz2::https://gitlab.com/$pkgname/$pkgname/repository/archive.tar.bz2?ref=v$pkgver + dont-underlink-peekfd.patch + fix-peekfd-on-ppc.patch + " options="!strip" builddir="$srcdir/$pkgname-$pkgver" prepare() { - ln -fs $pkgname-v$pkgver-* "$builddir" || return 1 + ln -fs $pkgname-v$pkgver-* "$builddir" - default_prepare || return 1 + default_prepare cd "$builddir" sh autogen.sh @@ -48,4 +52,6 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d4f1d90fb92f83b7583cd82a3c1027de0e53fbee85253d796878878d03a52fc220bd25beaec34c651a1ed547fc13919c5c014a522124308a7421d3f64238a70f psmisc-23.0.tar.bz2" +sha512sums="d4f1d90fb92f83b7583cd82a3c1027de0e53fbee85253d796878878d03a52fc220bd25beaec34c651a1ed547fc13919c5c014a522124308a7421d3f64238a70f psmisc-23.0.tar.bz2 +a68c75eb3c66a9df0d4e574a9439eeed0cd2dc97b3cad3fcd8b945619c2ec238b73bf479d1b55ddd4821471cd8934ee1fbc7871c92de7ef72c3d3f989ab62c9f dont-underlink-peekfd.patch +b16139606e1ccaebd94b7b7a14f49f530b180f1fd24338008e4c4d48761b57953458c46e57b0f7ec191353514f68126f79c281875c4cd56ed2f1220ace131ce1 fix-peekfd-on-ppc.patch" diff --git a/user/psmisc/dont-underlink-peekfd.patch b/user/psmisc/dont-underlink-peekfd.patch new file mode 100644 index 000000000..e1623f193 --- /dev/null +++ b/user/psmisc/dont-underlink-peekfd.patch @@ -0,0 +1,10 @@ +--- psmisc-23.0/Makefile.am.old 2017-06-12 00:29:46.000000000 +0000 ++++ psmisc-23.0/Makefile.am 2017-06-28 10:21:04.148955051 +0000 +@@ -65,6 +65,7 @@ + src_killall_SOURCES = src/killall.c src/comm.h src/signals.c src/signals.h src/i18n.h + src_killall_LDADD = @LIBINTL@ @SELINUX_LIB@ + src_peekfd_SOURCES = src/peekfd.c ++src_peekfd_LDADD = @LIBINTL@ + src_pslog_SOURCES = src/pslog.c + src_pstree_SOURCES = src/pstree.c src/comm.h src/i18n.h + src_pstree_LDADD = @LIBINTL@ @TERMCAP_LIB@ @SELINUX_LIB@ diff --git a/user/psmisc/fix-peekfd-on-ppc.patch b/user/psmisc/fix-peekfd-on-ppc.patch new file mode 100644 index 000000000..d9fc1d5f1 --- /dev/null +++ b/user/psmisc/fix-peekfd-on-ppc.patch @@ -0,0 +1,19 @@ +--- psmisc-23.0/src/peekfd.c.old 2017-06-12 00:29:46.000000000 +0000 ++++ psmisc-23.0/src/peekfd.c 2017-06-28 10:15:18.635344983 +0000 +@@ -233,11 +233,11 @@ + if (WIFSTOPPED(status)) { + #ifdef PPC + struct pt_regs regs; +- regs.gpr[0] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R0, 0); +- regs.gpr[3] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R3, 0); +- regs.gpr[4] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R4, 0); +- regs.gpr[5] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R5, 0); +- regs.orig_gpr3 = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_ORIG_R3, 0); ++ regs.gpr[0] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R0, 0); ++ regs.gpr[3] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R3, 0); ++ regs.gpr[4] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R4, 0); ++ regs.gpr[5] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R5, 0); ++ regs.orig_gpr3 = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_ORIG_R3, 0); + #elif defined(ARM) + struct pt_regs regs; + ptrace(PTRACE_GETREGS, pid, 0, ®s); -- cgit v1.2.3-70-g09d2