Ruby is the interpreted scripting language for quick and
easy object-oriented programming. It has many features to
process text files and to do system management tasks (as in
Perl). It is simple, straight-forward, and extensible.
Features of Ruby are shown below.
+ Simple Syntax
+ *Normal* Object-Oriented features(ex. class, method calls)
+ *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
+ Operator Overloading
+ Exception Handling
+ Iterators and Closures
+ Garbage Collection
+ Dynamic Loading of Object files(on some architecture)
+ Highly Portable(works on many UNIX machines, and on DOS,
Windows, Mac, BeOS etc.)
===> The following configuration options are available for ruby30-3.0.6_1,1:
CAPIDOCS=off: Build and install C API documents
DEBUG=off: Build with debugging support
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
GMP=off: Use GMP to accelerate Bignum operations
RDOC=on: Build and install Rdoc indexes
====> Which line editing lib to use: you have to select exactly one of them
LIBEDIT=on: Use libedit
READLINE=off: Use libreadline
===> Use 'make config' to modify these settings
Some of the standard commands and libraries are provided as separate
ports for ease of upgrading:
devel/ruby-gems: gem - RubyGems package manager
devel/rubygem-erb: erb - Templating system for Ruby
devel/rubygem-irb: irb - Interactive Ruby
devel/rubygem-minitest: minitest - Complete suite of testing facilities
devel/rubygem-power_assert: power_assert - Power Assert for Ruby
devel/rubygem-rake: rake - Ruby Make
devel/rubygem-rbs: rbs - Language for type signatures for Ruby and standard library definitions
devel/rubygem-rdoc: rdoc - Ruby Documentation System
devel/rubygem-test-unit: test-unit - Unit testing framework for Ruby
devel/rubygem-typeprof: typeprof - Type analysis tool for Ruby code
sysutils/rubygem-bundler: bundler - Tool that manages gem dependencies for ruby applications
textproc/rubygem-rexml: rexml - XML toolkit for Ruby
www/rubygem-rss: rss - Family of libraries that support various formats of XML "feeds"
And some of the standard libraries are provided as separate ports
since they require extra dependencies:
databases/rubygem-dbm: DBM module
databases/rubygem-gdbm: GDBM module
Install them as occasion demands.
Reason:
The default ruby version has been updated from 3.0 to 3.1.
If you compile your own ports you may keep 3.0 as the default version by
adding the following lines to your /etc/make.conf file:
#
# Keep ruby 3.0 as default version
#
DEFAULT_VERSIONS+=ruby=3.0
If you wish to update to the new default version, you need to first stop any
software that uses ruby. Then, you will need to follow these steps, depending
upon how you manage your system.
If you use pkg, simply upgrade:
# pkg upgrade
If you do not use pkg, please check entry 20220421.
The description there should also work for this version.
Port Moves
port deleted on 2024-03-31 REASON: Has expired: Please migrate to newer versions. Ruby 3.0 will reach its EoL on March 30, 2024
port moved here from lang/ruby27 on 2023-04-13 REASON: Please migrate to newer versions. Ruby 2.7 will reach its EoL on April 12, 2023
lang/ruby30: Remove expired port
2024-03-30 lang/ruby30: Please migrate to newer versions. Ruby 3.0 will reach
its EoL on March 30, 2024
Sort MOVED while here
lang/ruby30: Mark BROKEN on FreeBSD 15
openssl:
Could not be configured. It will not be installed.
/wrkdirs/usr/ports/lang/ruby30/work/ruby-3.0.6/ext/openssl/extconf.rb:113:
OpenSSL >= 1.0.1, < 3.0.0 or LibreSSL >= 2.5.0 is required
Check ext/openssl/mkmf.log for more details.
...
===> Building package for ruby30-3.0.6_1,1
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/amd64-freebsd15/openssl.so:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/openssl.rb:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/openssl/bn.rb:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/openssl/buffering.rb:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/openssl/cipher.rb:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/openssl/config.rb:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ruby30/work/stage/usr/local/lib/ruby/3.0/openssl/digest.rb:No
such file or directory
(Only the first 15 lines of the commit message are shown above )
lang/ruby30: Optionize OPENSSL module builds
- ruby 3.0 do not have official OpenSSL 3 support although some other
vendors are merging patches from 3.1. Untill there is something solid
optionize OPENSSL to build openssl modules only on 12 and 13 while
turning off for 14.
- Utilize USES=localbase
- Considering no upstream support for OpenSSL on ruby 3.0 reduce the
EXPIRATION_DATE to 2024-03-30(Last day of official support) as there
is no point in carrying this over to the next quarterly.
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation
Mk/**ruby.mk: Switch from USE_RUBY=yes to USES=ruby
Switch from Mk/bsd.ruby.mk to Mk/Uses/ruby.mk
Notable changes are.
- Mk/bsd.ruby.mk is moved to Mk/Uses/ruby.mk.
- USE_RUBY=yes is replaced with USES=ruby.
- USE_RUBY_EXTCONF is replaced with USES=ruby:extconf.
- USE_RUBY_RDOC is replaced with USES=ruby:rdoc.
- USE_RUBY_SETUP is replaces with USES=ruby:setup.
- RUBY_NO_BUILD_DEPENDS and RUBY_NO_RUN_DEPENDS are replaced with
USES=ruby:{build,none,run}.
- RUBY_REQUIRE isn't used anywhere, so removed.
- USES=gem now implies USES=ruby.
This is mainly the work of yasu@ at https://reviews.freebsd.org/D27863
I have just made some cosmetic changes and ran exp-run to test that the
tree is not in a BROKEN state.
Approved by: portmgr
Differential Revision: https://reviews.freebsd.org/D37925
lang/ruby30: Fix orphaned .timestamp in 93e3548c57a4a1dbd5fd335e2be23c02d9dcf066
When both CAPIDOCS and DOCS options are enabled, the following commands are
executed:
1. post-install-CAPIDOCS-on: removed the installed .timestamp (in STAGEDIR).
2. post-install-DOCS-on: copied the generated .timestamp (in capi directory) to
the STAGEDIR again.
Therefore, the installed .timestamp is orphaned.
To fix this, we remove both the generated and installed .timestamp in
post-install-CAPIDOCS-on:.
PR: 267775
Reported by: yasu
lang/ruby30: Fix plist error when both CAPIDOCS and DOCS options are on.
When the both options are on, post-install-DOCS-on target is called
after post-install-CAPIDOCS-on has completed. And in the former files
under ${WRKSRC}/doc/ are copied to ${STAGEDIR}${RUBY_DOCDIR}. This
means files under ${WRKSRC}/doc/capi are copied to
${STAGEDIR}${RUBY_DOCDIR}/capi again. And of course
${WRKSRC}/doc/capi/.timestamp is included in them. As a result, even
though ${STAGEDIR}${RUBY_DOCDIR}/capi/.timestamp is removed in
post-install-CAPIDOCS-on target, it is detected as orphaned file at
check-plist phase. So fix it by adding 3rd argument to
${COPYTREE_SHARE} command so .timestamp is excluded from files to be
copied.
PR: 267775
Approved by: meta (ruby@)
Fixes: 93e3548c57a4 lang/ruby30: Simplify CAPIDOCS handling
lang/ruby{27,30,31,32}: Improve qsort_r() detection.
This change merges the following upstream pull request into the Ruby
interpreter:
https://github.com/ruby/ruby/pull/6332
Adding this patch is no-op right now because we are not using POSIX (GNU)
qsort_r(3) interface yet. It will fix build when the change is applied.
Reviewed by: bapt (portmgr@), sunpoet (ruby@)
PR: ports/266227
MFH: 2022Q3
Differential Revision: https://reviews.freebsd.org/D36492
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
lang/ruby*: add a patch to keep amd64-freebsd* as arch
In preparation for the update of config.guess/config.sub, where
amd64-portbld-freebsd14.0 is reported as x86_64-portbld-freebsd14.0,
Add a patch to keep the arch specific directory on amd64 being named amd64
lang: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* Aaron Dalton <aaron@FreeBSD.org>
* Adam Weinberger <adamw@FreeBSD.org>
* Akinori MUSHA aka knu <knu@idaemons.org>
* Alex Dupre <ale@FreeBSD.org>
* Alexey Dokuchaev <danfe@FreeBSD.org>
* Alonso Cardenas Marquez <acm@FreeBSD.org>
* Andreas Klemm <andreas@klemm.gtn.com>
* Andrew Pantyukhin <infofarmer@FreeBSD.org>
* Andrey Zakhvatov
* Anton Berezin <tobez@FreeBSD.org>
* Anton Berezin <tobez@tobez.org>
(Only the first 15 lines of the commit message are shown above )
lang/ruby3[0-2]: Fix build with certain CPUTYPE
When CPUTYPE is set and the CPU supports lzcnt instruction, it fails to
build because x86intrin.h is not included. Fix the test to make it work
on FreeBSD.
PR: 260791
Approved by: ruby (maintainer timeout)
lang/ruby30: Update pkg-message
In Ruby 3.0 following standard libraries are distributed as bundled
gems.
- minitest
- power_assert
- test-unit
- typeprof
- rexml
- rss
But this port doesn't include bundled gems in its package. So add
message to pkg-message that they are provided as separate ports.
PR: 259757
Approved by: maintainer timeout (> 3 weeks)
Mk/bsd.ruby.mk: Remove RUBY_NAME
Use ruby${RUBY_SUFFIX} or libruby${RUBY_SHLIBVER} directly.
It also fixes the inconsistency in lang/ruby{26,27,30}/{Makefile,pkg-plist}.
lang/ruby30: Fix improper substitution in PLIST
Doxygen 1.9.1 update (b8ac15afd00127044d75894e357f697d825ed385) brings improper
substitution in PLIST. %%RUBY_DEFAULT_SUFFIX%% and %%RUBY_SUFFIX%% should not be
used in the path/filename of C API documentations.
devel/doxygen: update to 1.9.1 release
Also regen 'pkg-plist' for affected consumers, with PORTREVISION bump
Touch Mk/bsd.ruby.mk due to all ruby* is affected
MFH: 2021Q2