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.)
WWW: http://www.ruby-lang.org/en/
===> The following configuration options are available for ruby18-1.8.7.371,1:
DEBUG=off: Compile-in debug info
ONIGURUMA=off: Build with oniguruma regular expressions lib
RDOC=on: Build and install Rdoc indexes
===> Use 'make config' to modify these settings
2013-10-10 devel/ruby-sdl: Does not work with Ruby 1.9
2013-10-22 games/magicmaze: Does not work with Ruby 1.9
2013-10-10 lang/ruby18: Please use lang/ruby19
2013-10-10 www/rubygem-mongrel_cluster: Does not work with Ruby 1.9
2013-10-10 www/rubygem-mongrel: Does not work with Ruby 1.9
2013-10-10 www/rubygem-rails-app-installer: Does not work with Ruby 1.9
2013-10-22 www/typo: Does not work with Ruby 1.9
- Fix compile w/ CLANG
upstream openssl changed the return type of openssl HMAC_CTX_copy from void to
int
- The resultant binary is unaffected, so no PORTREVISION bump
Tested by: md5 ruby18
Tested by: make test-all
With Hat: ruby@
- Return my ports back to the pool. I was unable to make any fixes to
my ports in the past 3 weeks while ports were broken on any 10.x
machines, which means I'm unable to maintain them. So let people know
that there's no available support for them until things are back to
normal (which also means that anyone with spare time will be able
to fix them without getting approval).
Fix generation of broken Makefiles in case a setting occurs multiple
times in the auto-generated config.status file (happens with new m4).
This only fixes a potential build error - no package changes.
- Do not try to stop the timer thread in child after fork: at this moment
there's already nothing to stop. Only mark the timer thread as stopped.
That fixes spontaneous lockups in ruby popen call.
Reported by: renchap @ FreeNode
- Don't build ruby with threads support on FreeBSD versions before 7.2
- On FreeBSD >= 7.2 allocate the new thread with adequate amount of stack
space to run the main ruby code in. This allows to mitigate problem
when too low stack space available for ruby when running with pthreads
enabled.
- Bump portrevision.
The long version. Before this change we used to link ruby against pthreads
uncoditionally on all versions of FreeBSD. This is indispensable in order
to load the threaded shared objects withing ruby. However, this causes a
dramatic decrease in the stack space available as pthreads only allows
up to several megabytes of stack space for the main application threads.
The only solution to this is to create the new thread immediately after
the program start with rigth stack size attributes set. Nonetheless this
scheme won't work for us on FreeBSD version before 7.2 as malloc implementation
in these versions was not threaded fork safe (i.e. this is impossible to
fork from the threaded program and expect malloc/free functions to work).
Thus the only solution for now can be to disable pthreads entirely on
FreeBSD <= 7.2. This won't cause any performance/usability problems for
users as Ruby 1.8 uses green threads, however it may prevent <= 7.2
users to load shared libraries linked agains pthreads.
Reported by: "François Montel" <seanmullen@gmail.com>
Tested by: Sean Mullen <seanmullen@gmail.com>
- Add ${PTHREAD_LIBS} to LDFLAGS in threaded build. This fixes the issue
when pthread libraries don't show up in Config::CONFIG["LIBS"] in some
cases.
Reported by: dinoex
- Fix stack overflow detection algorithm. It has not worked before as
we were linking the ruby binary against pthreads, and the default
stack size detection method with getrlimit didn't returned right
values in this case. Now, if threads enabled, it also tries to
determine the stack size via pthreads calls and use this value if
it is smaller than what getrlimit returned. Furthermore, the stack
overflow detection routine now works proactively, generating
exception if there're probability the stack will be exhausted by
the time of the next check (ruby performs checks only in each 256th
call of rb_call0). [1]
- Build pthreads-enabled ruby by default. I have not received any
bug reports for this for years, and this verison will work correctly
with threaded libraries. Also, do not link agains pthreads in non-pthread
case (this breaks stack size detection algorithm), and eliminate the
option to disable pthreads (so only power users who know what they're
doing can disable them).
- Build RDoc by default so it is available in the package.
- Bump portrevision.
PR: ports/132158
Reported by: Eugene Pimenov <libc@libc.st>
- Fix the bug in ruby GC when object finalizer were never called. This has
been triggered by portupgrade which uses finalizers to remove lockfiles.
- Fix the bug in URI module that smashed uri paths in merge method for
ftp uris. [1]
- Fix segmentation fault when cloning objects with dynamically created
methods (via instance_eval). [2]
PR: ports/131775 [1], ports/135533 [2]
Submitted by: Yoshisato YANAGISAWA <osho@pcc-software.org> [2],
Helmut Schneider <jumper99@gmx.de> [1],
Jaakko Heinonen <jh@saunalahti.fi> [1],
Peter Hofer <ph@desktopbsd.net> [1]
Obtained from: ruby_1_8 svn tree (rev 22679) [2]
- Update ruby 1.8.7 to the latest revision available from ruby-lang.org.
This updates also borrows some important bugfixes from Ruby CVS that
is not available in patchlevel 160 yet.
- Drop GC patch support. It is broken with the new ruby version and
seem to require the complete rewriting.
- Ruby socket connect code seems to work unstably in case if connection
to remote host was refused. FreeBSD connect(2) call returns EINVAL in
that case and clears the error code, so there's no way to determine
what happened. Reimplement ruby_connect via select call instead of
polling the status by connect(2). This may also reduce overhead (though,
not verified).
Reported by: Saku Ytti <saku@ytti.fi>
- Add a couple of other patches from ruby SVN repo:
* fix integer overflow in bignums;
* correctly check for string length in regexps;
* fix memory leak in parse.c.
- Bump portrevision.
- Set --mandir and --infodir in CONFIGURE_ARGS if the configure script
supports them. This is determined by running ``configure --help'' in
do-configure target and set the shell variable _LATE_CONFIGURE_ARGS
which is then passed to CONFIGURE_ARGS.
- Remove --mandir and --infodir in ports' Makefile where applicable
Few ports use REINPLACE_CMD to achieve the same effect, remove them too.
- Correct some manual pages location from PREFIX/man to MANPREFIX/man
- Define INFO_PATH where necessary
- Document that .info files are installed in a subdirectory relative to
PREFIX/INFO_PATH and slightly change add-plist-info to use INFO_PATH and
subdirectory detection.
PR: ports/111470
Approved by: portmgr
Discussed with: stas (Mk/*), gerald (info related stuffs)
Tested by: pointyhat exp run
- Delete rb_thread_status prototype from public header, since it causes
problems with some extensions. This also had been fixed in upsteam CVS.
- Bump portrevision.
Reported by: many
- Add a bunch of fixes and patchs from the upstream. These fixes a lot of
serious bugs, some of which can pose security-related problems.
- Bump up PORTREVISION.
Requested by: many
- Update lang/ruby18 to 1.8.5p12 (bugfix release)
- Make RI generation disabled by default (it causes problems
on slow hardware)
- PREFIX-cleaness fixes (in bsd.ruby.mk) [1]
- Take maintainership of bsd.ruby.mk [1]
The patch was tested in the tinderbox with all ruby-dependend ports.
Approved by: portmgr (linimon)
- Back-out the previous commit, as it can cause linking problems (pthread's
unresolved symbols) on some systems (e.g. with libgnomeui). Linking
threading libraries donesn't employ threading in ruby per se, so it's safe
to do that in non-threaded case.
Reported by: mezz
- Add a workaround for the recently disclosed DoS vulnerability in the cgi.rb
ruby18 module
- Bump portrevision
PR: ports/105113
Submitted by: UEDA Hiroyuki <BSDmad@gmail.com>
- Add runtime knob to allow libraries installation under user
privileges. When RB_INSTALL_USER environment variable is set, ruby
will not pass '${_BINOWNGRP}' to install program, thus allowing an
ordinal user to install gem or library (e.g. into home directory).
- Eliminate extra whitespace
- Bump portrevision.
PR: ports/103801 (idea)
Submitted by: Dimitri Aivaliotis <aglarond@gmail.com>
- Prepare port to make ruby libraries PREFIX-clean (also requires bsd.ruby.mk
modifications)
- Add OPTIONS
- Provide automatic pkg-plist generator to simplify updates
- Guarantee permissions safety when installing docs and examples (eliminate
${CP} -r *)
- Create handy docs and examples structure (install examples for external
libraries in separate directories)
- Remove unused KNOB (NORUBYLIB)
- Add knob to disable RDOC generation [1]
- Add knob to disable IPv6 support
- Move list of obsoleted packages to the separate file (files/obsoleted)
- Add additional .keep_me like files to allow shared directories to not
be deleted by dependent ports
- Minor cleanups and modifications
- Bump-up portrevision
All ruby ports were tested in tinderbox with these modifications.
Requested by: VANHULLEBUS Yvan <vanhu_bsd@zeninc.net> [1]
PR: ports/103353 [1], ports/102648, ports/102663, ports/102685,
ports/102646
Approved by: sem (mentor)
Wrong type of integer argument to ioctl(2) cause ruby18 to produce lots
of sign-extension noises through console / kernel log on FreeBSD/amd64.
PR: ports/94088
Submitted by: ariff
Better fix for the problem on AMD64 and Pentium4 since rev1.4.
getcontext() saves EFLAGS and setcontext() restores it. When carry
flag is set in EFLAGS, setcontext() treats it as an system call error.
This problem is filed as misc/92110.
rev1.3 and before hid this problem, and rev1.4 exposed it.
Drop carry flag before getcontext() for workaround for this problem.
Submitted by: Tanaka Akira <akr__at__m17n.org>
Tested by: TAKANO Yuji <takachan__at__running-dog.net>
It was not buildable with CPUTYPE=athlon64 or CPUTYPE=athlon-xp
since my last commit. It spun in 'miniruby' somewhere in a
bigdecimal compile. So, if CPUTYPE is defined as athlon64 or
athlon-xp, ignore CPU_CFLAGS for workaround.
Reported by: Mike Harding <mvh__at__ix.netcom.com>