summaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2017-06-28 10:23:08 +0000
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2017-06-28 10:23:33 +0000
commit4dffcd235c726c6425edbdc00a1e4c88b2e0e875 (patch)
tree19a928467d41e2763d76c221d03fad898b8eb846 /user
parent5383b7106d8806da086b9fd7fa88b66ab4c0ef0c (diff)
downloadpackages-4dffcd235c726c6425edbdc00a1e4c88b2e0e875.tar.gz
packages-4dffcd235c726c6425edbdc00a1e4c88b2e0e875.tar.bz2
packages-4dffcd235c726c6425edbdc00a1e4c88b2e0e875.tar.xz
packages-4dffcd235c726c6425edbdc00a1e4c88b2e0e875.zip
user/psmisc: patches to make peekfd work portably
Diffstat (limited to 'user')
-rw-r--r--user/psmisc/APKBUILD16
-rw-r--r--user/psmisc/dont-underlink-peekfd.patch10
-rw-r--r--user/psmisc/fix-peekfd-on-ppc.patch19
3 files changed, 40 insertions, 5 deletions
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, &regs);