aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysutils/DTraceToolkit/Makefile7
-rw-r--r--sysutils/DTraceToolkit/files/patch-Apps-shellsnoop35
-rw-r--r--sysutils/DTraceToolkit/files/patch-opensnoop29
-rw-r--r--sysutils/DTraceToolkit/pkg-plist2
4 files changed, 71 insertions, 2 deletions
diff --git a/sysutils/DTraceToolkit/Makefile b/sysutils/DTraceToolkit/Makefile
index 189e9be3e268..cddab2525438 100644
--- a/sysutils/DTraceToolkit/Makefile
+++ b/sysutils/DTraceToolkit/Makefile
@@ -3,6 +3,7 @@
PORTNAME= DTraceToolkit
PORTVERSION= 0.99
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= http://www.brendangregg.com/DTraceToolkit/
@@ -14,7 +15,7 @@ sh_OLD_CMD= /usr/bin/sh
sh_CMD= ${SH}
SHEBANG_LANG+= sh
-SHEBANG_FILES= hotkernel procsystime
+SHEBANG_FILES= hotkernel procsystime opensnoop Apps/shellsnoop
NO_BUILD= YES
.include <bsd.port.pre.mk>
@@ -25,12 +26,14 @@ IGNORE= needs to have dtrace enabled kernel
do-install:
${MKDIR} ${STAGEDIR}${DATADIR}
- (cd ${WRKSRC}; ${TAR} cf - . ) | \
+ (cd ${WRKSRC}; ${TAR} --exclude '*.orig' -cf - . ) | \
(cd ${STAGEDIR}${DATADIR}/; ${TAR} xvf -)
post-install:
${LN} -fs ${DATADIR}/hotkernel ${STAGEDIR}${PREFIX}/bin/hotkernel
${LN} -fs ${DATADIR}/procsystime ${STAGEDIR}${PREFIX}/bin/procsystime
+ ${LN} -fs ${DATADIR}/opensnoop ${STAGEDIR}${PREFIX}/bin/opensnoop
+ ${LN} -fs ${DATADIR}/Apps/shellsnoop ${STAGEDIR}${PREFIX}/bin/shellsnoop
@${CAT} ${PKGMESSAGE}
.include <bsd.port.post.mk>
diff --git a/sysutils/DTraceToolkit/files/patch-Apps-shellsnoop b/sysutils/DTraceToolkit/files/patch-Apps-shellsnoop
new file mode 100644
index 000000000000..0e586e285f10
--- /dev/null
+++ b/sysutils/DTraceToolkit/files/patch-Apps-shellsnoop
@@ -0,0 +1,35 @@
+--- Apps/shellsnoop.orig 2014-06-04 09:00:10.000000000 -0400
++++ Apps/shellsnoop 2014-06-04 09:01:29.000000000 -0400
+@@ -140,7 +140,7 @@
+ /*
+ * Remember this PID is a shell child
+ */
+- syscall::exec:entry, syscall::exece:entry
++ syscall::exec:entry
+ /execname == "sh" || execname == "ksh" || execname == "csh" ||
+ execname == "tcsh" || execname == "zsh" || execname == "bash"/
+ {
+@@ -151,7 +151,7 @@
+ OPT_debug == 1 ? printf("PID %d CMD %s started. (%s)\n",
+ pid, execname, stringof(this->parent)) : 1;
+ }
+- syscall::exec:entry, syscall::exece:entry
++ syscall::exec:entry
+ /(OPT_pid == 1 && PID != ppid) || (OPT_uid == 1 && UID != uid)/
+ {
+ /* forget if filtered */
+@@ -256,12 +256,12 @@
+ /*
+ * Cleanup
+ */
+- syscall::rexit:entry
++ syscall::exit:entry
+ {
+ child[pid] = 0;
+
+ /* debug */
+- this->parent = (char *)curthread->t_procp->p_parent->p_user.u_comm;
++ this->parent = (char *)curthread->td_proc->p_pptr->p_comm;
+ OPT_debug == 1 ? printf("PID %d CMD %s exited. (%s)\n",
+ pid, execname, stringof(this->parent)) : 1;
+ }
diff --git a/sysutils/DTraceToolkit/files/patch-opensnoop b/sysutils/DTraceToolkit/files/patch-opensnoop
new file mode 100644
index 000000000000..9e09a7f45b45
--- /dev/null
+++ b/sysutils/DTraceToolkit/files/patch-opensnoop
@@ -0,0 +1,29 @@
+--- opensnoop.orig 2014-06-04 08:58:11.000000000 -0400
++++ opensnoop 2014-06-04 08:58:42.000000000 -0400
+@@ -189,7 +189,7 @@
+ /*
+ * Print open event
+ */
+- syscall::open:entry, syscall::open64:entry
++ syscall::open:entry
+ {
+ /* save pathname */
+ self->pathp = arg0;
+@@ -203,7 +203,7 @@
+ /* OPT_file is checked on return to ensure pathp is mapped */
+ }
+
+- syscall::open:return, syscall::open64:return
++ syscall::open:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) &&
+ ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+@@ -235,7 +235,7 @@
+ /*
+ * Cleanup
+ */
+- syscall::open:return, syscall::open64:return
++ syscall::open:return
+ /self->ok/
+ {
+ self->pathp = 0;
diff --git a/sysutils/DTraceToolkit/pkg-plist b/sysutils/DTraceToolkit/pkg-plist
index 50c59856dcb5..c6fd5d3f2749 100644
--- a/sysutils/DTraceToolkit/pkg-plist
+++ b/sysutils/DTraceToolkit/pkg-plist
@@ -1007,6 +1007,8 @@
%%DATADIR%%/opensnoop
bin/procsystime
bin/hotkernel
+bin/shellsnoop
+bin/opensnoop
@dirrm %%DATADIR%%/Mem
@dirrm %%DATADIR%%/Man/man1m
@dirrm %%DATADIR%%/Man