summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/Makefile1
-rw-r--r--devel/rubygem-rbtrace/Makefile20
-rw-r--r--devel/rubygem-rbtrace/distinfo2
-rw-r--r--devel/rubygem-rbtrace/files/patch-ext__rbtrace.c34
-rw-r--r--devel/rubygem-rbtrace/pkg-descr4
5 files changed, 61 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index 0c65e6f58685..d11fb152ad95 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4466,6 +4466,7 @@
SUBDIR += rubygem-rb-fsevent
SUBDIR += rubygem-rb-inotify
SUBDIR += rubygem-rb-kqueue
+ SUBDIR += rubygem-rbtrace
SUBDIR += rubygem-rcov
SUBDIR += rubygem-rdoc
SUBDIR += rubygem-recaptcha
diff --git a/devel/rubygem-rbtrace/Makefile b/devel/rubygem-rbtrace/Makefile
new file mode 100644
index 000000000000..5c2e68b3fe54
--- /dev/null
+++ b/devel/rubygem-rbtrace/Makefile
@@ -0,0 +1,20 @@
+# Created by: Steve Wills <swills@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= rbtrace
+PORTVERSION= 0.4.5
+CATEGORIES= devel rubygems
+MASTER_SITES= RG
+
+MAINTAINER= ruby@FreeBSD.org
+COMMENT= Shows method calls inside another ruby process in real time
+
+RUN_DEPENDS= rubygem-ffi>=1.0.6:${PORTSDIR}/devel/rubygem-ffi \
+ rubygem-trollop>=1.16.2:${PORTSDIR}/devel/rubygem-trollop \
+ rubygem-msgpack>=0.4.3:${PORTSDIR}/devel/rubygem-msgpack
+
+USE_RUBY= yes
+USE_RUBYGEMS= yes
+RUBYGEM_AUTOPLIST=yes
+
+.include <bsd.port.mk>
diff --git a/devel/rubygem-rbtrace/distinfo b/devel/rubygem-rbtrace/distinfo
new file mode 100644
index 000000000000..247081245bbd
--- /dev/null
+++ b/devel/rubygem-rbtrace/distinfo
@@ -0,0 +1,2 @@
+SHA256 (rubygem/rbtrace-0.4.5.gem) = da3c1bb8a356e11bc96ac466d8d374478511beb55643c0a85f379f4a255d714e
+SIZE (rubygem/rbtrace-0.4.5.gem) = 431616
diff --git a/devel/rubygem-rbtrace/files/patch-ext__rbtrace.c b/devel/rubygem-rbtrace/files/patch-ext__rbtrace.c
new file mode 100644
index 000000000000..f14efe66d913
--- /dev/null
+++ b/devel/rubygem-rbtrace/files/patch-ext__rbtrace.c
@@ -0,0 +1,34 @@
+--- ext/rbtrace.c
++++ ext/rbtrace.c
+@@ -40,6 +40,16 @@
+ #define RSTRING_LEN(str) RSTRING(str)->len
+ #endif
+
++
++#ifdef __FreeBSD__
++ #define PLATFORM_FREEBSD
++#endif
++
++#ifdef __linux__
++ #define PLATFORM_LINUX
++#endif
++
++
+ static uint64_t
+ ru_utime_usec()
+ {
+@@ -953,7 +963,14 @@ rbtrace__process_event(msgpack_object cmd)
+
+ if (outer == 0) {
+ rb_eval_string_protect("$0 = \"[DEBUG] #{Process.ppid}\"", 0);
++
++#ifdef PLATFORM_FREEBSD
++ // The call setpgrp() is equivalent to setpgid(0,0).
++ setpgid(0,0);
++#else
+ setpgrp();
++#endif
++
+ pid_t inner = fork();
+
+ if (inner == 0) {
diff --git a/devel/rubygem-rbtrace/pkg-descr b/devel/rubygem-rbtrace/pkg-descr
new file mode 100644
index 000000000000..0453268dc8e0
--- /dev/null
+++ b/devel/rubygem-rbtrace/pkg-descr
@@ -0,0 +1,4 @@
+rbtrace shows you method calls happening inside another ruby process in real
+time.
+
+WWW: http://github.com/tmm1/rbtrace