[Bug 260831] lang/ruby26, lang/ruby27, lang/ruby3[01]: patch for making dtrace an optional feature

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 31 Dec 2021 02:11:13 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260831

            Bug ID: 260831
           Summary: lang/ruby26, lang/ruby27, lang/ruby3[01]: patch for
                    making dtrace an optional feature
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ruby@FreeBSD.org
          Reporter: lab+bsd@thinkum.space
             Flags: maintainer-feedback?(ruby@FreeBSD.org)
          Assignee: ruby@FreeBSD.org

Created attachment 230577
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=230577&action=edit
Patch for providing a dtrace option for lang/ruby* ports

The lang/ruby2[67] port builds will automatically enable dtrace support if
dtrace is installed. 

The lang/ruby3[01] builds - extending of a changeset upstream - will not
provide any dtrace support for these Ruby versions, on FreeBSD.

Referring to the FreeBSD Wiki[2], DTrace support may be available for userspace
in FreeBSD, at least if the kernel is built with -fno-omit-frame-pointer in
CFLAGS then installed as unstripped bytecode. Otherwise, running dtrace on an
application may require superuser privileges.

The Ruby 2.6 and Ruby 2.7 builds presently will incorporate dtrace support, if
available.

The following patch (attached) makes DTrace a build option for Ruby, in all
versions on FreeBSD

This differs from previous port behaviors:

- For Ruby 2.6 and 2.7, ensures that dtrace probes will not be added if the
dtrace option is disabled, whether or not dtrace is installed

- For Ruby 3.0 and 3.1, this adds functionality that may not be available with
upstream Ruby builds on FreeBSD, in those recent Ruby releases. This changeset
includes an autoconf patch ensuring that dtrace will not be disabled on FreeBSD
under autoconf scripting, and will be enabled if requested for the build. 

- If the dtrace option is enabled and dtrace is not installed, the port build
will fail under IGNORE semantics

Corresponding to existing support for dtrace probes with Ruby 2.6 and Ruby 2.7
on FreeBSD, the new dtrace option will be available for these Ruby language
platforms on FreeBSD amd64 and i386 architectures.

This patch has been tested with a rudimentary check using dtrace and a
dtrace-enabled Ruby 3.1 under a local build of FreeBSD 12.1-RELEASE-p1 amd64.
The test was performed with the following shell command, under sudo:

dtrace -l -m libruby31.so.31 -c 'ruby31 -v'


[1] https://github.com/chrisa/ruby-dtrace 
[2] https://wiki.freebsd.org/DTrace/KernelSupport

-- 
You are receiving this mail because:
You are the assignee for the bug.