diff options
author | Akinori MUSHA <knu@FreeBSD.org> | 2002-12-12 12:53:03 +0000 |
---|---|---|
committer | Akinori MUSHA <knu@FreeBSD.org> | 2002-12-12 12:53:03 +0000 |
commit | 0d3df60c24898be91b03264458423280da3d3f20 (patch) | |
tree | 58b3536eb3544ea1fa71ed7cb2522606b66751d0 /lang | |
parent | Woops, forgot the post-install part (diff) |
Update lang/ruby to 1.6.8-preview3, lang/ruby16-shim-ruby18 to
1.7.3.2002.12.11, and lang/ruby-devel to 1.7.3-2002.12.12.
- Fix a few bugs that lead to core dump, one in the ruby interpreter
and another in the syslog module.
Reported by: ume (net/dtcp was a victim)
- Fix an installation problem occasionally seen on bento. (a bug in
Makefile that caused race)
Submitted by: bento
- Fix a problem that irb(1) didn't work because the symlink was wrong.
Submitted by: Jos Backus <jos@catnook.com>
- Get rid of move & symlink spaghetti completely from the installation
process.
Discussed with: portmgr (will)
Notes
Notes:
svn path=/head/; revision=71577
Diffstat (limited to 'lang')
-rw-r--r-- | lang/ruby-devel/Makefile | 31 | ||||
-rw-r--r-- | lang/ruby-devel/distinfo | 2 | ||||
-rw-r--r-- | lang/ruby/Makefile | 48 | ||||
-rw-r--r-- | lang/ruby/distinfo | 2 | ||||
-rw-r--r-- | lang/ruby/files/patch-tempfile.rb | 147 | ||||
-rw-r--r-- | lang/ruby/pkg-plist | 1 | ||||
-rw-r--r-- | lang/ruby16-shim-ruby18/Makefile | 20 | ||||
-rw-r--r-- | lang/ruby16-shim-ruby18/distinfo | 2 | ||||
-rw-r--r-- | lang/ruby16-shim-ruby18/pkg-plist | 2 | ||||
-rw-r--r-- | lang/ruby16/Makefile | 48 | ||||
-rw-r--r-- | lang/ruby16/distinfo | 2 | ||||
-rw-r--r-- | lang/ruby16/files/patch-tempfile.rb | 147 | ||||
-rw-r--r-- | lang/ruby16/pkg-plist | 1 | ||||
-rw-r--r-- | lang/ruby18/Makefile | 31 | ||||
-rw-r--r-- | lang/ruby18/distinfo | 2 |
15 files changed, 52 insertions, 434 deletions
diff --git a/lang/ruby-devel/Makefile b/lang/ruby-devel/Makefile index 33e6f238e06a..d919b28864e2 100644 --- a/lang/ruby-devel/Makefile +++ b/lang/ruby-devel/Makefile @@ -10,7 +10,7 @@ PORTVERSION= ${RUBY_PORTVERSION} CATEGORIES= lang ruby ipv6 MASTER_SITES= ${MASTER_SITE_RUBY} \ ${ONIGURUMA_MASTER_SITES:S,$,:oniguruma,} -MASTER_SITE_SUBDIR= snapshots \ +MASTER_SITE_SUBDIR= ${MASTER_SITE_SUBDIR_RUBY} \ ${ONIGURUMA_MASTER_SITE_SUBDIR:S,$,/:oniguruma,} DISTFILES= ${RUBY_DISTNAME}${EXTRACT_SUFX} \ ${ONIGURUMA_DISTFILE:S,$,:oniguruma,} @@ -115,34 +115,17 @@ post-patch: ${MV} ${WRKSRC}/ext/${d} ${WRKDIR}/ .endfor -pre-install: - ${RM} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1 \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1.gz - post-install: .if defined(STRIP) && ${STRIP} == -s ${STRIP_CMD} ${RUBY} .endif .if ${RUBY_VER} == ${RUBY_DEFAULT_VER} - ${MV} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} - ${MV} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 -.endif - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ]; then \ - ${LN} -fs ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ${RUBY_WITHOUT_SUFFIX}${RUBY_R}; \ - ${LN} -fs ruby${RUBY_DEFAULT_SUFFIX}${RUBY_R}.1${MANEXT} ${PREFIX}/man/man1/ruby${RUBY_R}.1${MANEXT}; \ - fi - if [ -x ${RUBY_WITHOUT_SUFFIX} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${RUBY_DEFAULT_SUFFIX} $${f}; \ - done; \ - fi -.if !empty(RUBY_R) - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${_RUBY_SUFFIX} $${f}${RUBY_R}; \ - done; \ - fi +# Link just installed "ruby" to "ruby17", etc. + ${LN} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} + ${LN} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 + for f in ${INSTALLED_SCRIPTS}; do \ + ${LN} -f $${f}${RUBY_R} $${f}${_RUBY_SUFFIX}; \ + done .endif ${LDCONFIG} -m ${PREFIX}/lib ${MKDIR} ${RUBY_ELISPDIR} diff --git a/lang/ruby-devel/distinfo b/lang/ruby-devel/distinfo index c274e83098fa..49443af3684c 100644 --- a/lang/ruby-devel/distinfo +++ b/lang/ruby-devel/distinfo @@ -1,2 +1,2 @@ -MD5 (ruby/ruby-1.7.3-2002.11.22.tar.bz2) = fafe9cbd17e49dbf356710bc5751d78a +MD5 (ruby/ruby-1.7.3-2002.12.12.tar.bz2) = d200f52d1f7c3a624408b2ebabc66823 MD5 (ruby/onigd20020424.tar.gz) = d5e6505aa776378a58cdb0fd4ef9cdc0 diff --git a/lang/ruby/Makefile b/lang/ruby/Makefile index a98a37f92e3f..e17bcabb2967 100644 --- a/lang/ruby/Makefile +++ b/lang/ruby/Makefile @@ -7,11 +7,10 @@ PORTNAME= ruby${RUBY_R} PORTVERSION= ${RUBY_PORTVERSION} -PORTREVISION= 1 CATEGORIES= lang ruby ipv6 MASTER_SITES= ${MASTER_SITE_RUBY} \ ${ONIGURUMA_MASTER_SITES:S,$,:oniguruma,} -MASTER_SITE_SUBDIR= ${RUBY_VER} \ +MASTER_SITE_SUBDIR= ${MASTER_SITE_SUBDIR_RUBY} \ ${ONIGURUMA_MASTER_SITE_SUBDIR:S,$,/:oniguruma,} DISTFILES= ${RUBY_DISTNAME}${EXTRACT_SUFX} \ ${ONIGURUMA_DISTFILE:S,$,:oniguruma,} @@ -98,54 +97,19 @@ post-patch: ${MV} ${WRKSRC}/ext/${d} ${WRKDIR}/ .endfor -pre-install: - ${RM} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1 \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1.gz - for f in ${INSTALLED_SCRIPTS}; do \ - ${RM} -f $${f}${RUBY_R}; \ - done - post-install: .if defined(STRIP) && ${STRIP} == -s - strip ${RUBY} + ${STRIP_CMD} ${RUBY} .endif .if ${RUBY_VER} == ${RUBY_DEFAULT_VER} - ${MV} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} - ${MV} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 -.endif +# Link just installed "ruby" to "ruby16", etc. + ${LN} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} + ${LN} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 for f in ${INSTALLED_SCRIPTS}; do \ - ${MV} -f $${f} $${f}${_RUBY_SUFFIX}; \ + ${LN} -f $${f}${RUBY_R} $${f}${_RUBY_SUFFIX}; \ done - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ]; then \ - ${LN} -fs ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ${RUBY_WITHOUT_SUFFIX}${RUBY_R}; \ - ${LN} -fs ruby${RUBY_DEFAULT_SUFFIX}${RUBY_R}.1${MANEXT} ${PREFIX}/man/man1/ruby${RUBY_R}.1${MANEXT}; \ - fi - if [ -x ${RUBY_WITHOUT_SUFFIX} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${RUBY_DEFAULT_SUFFIX} $${f}; \ - done; \ - fi -.if !empty(RUBY_R) - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${_RUBY_SUFFIX} $${f}${RUBY_R}; \ - done; \ - fi .endif ${LDCONFIG} -m ${PREFIX}/lib -.for f in ${INSTALLED_SCRIPTS} - ${RUBY_WITH_SUFFIX} ${RUBY_FLAGS} -i -p \ - -e 'if $$. == 1; ' \ - -e ' if /^#!/; ' \ - -e ' sub /^#!\s*\S*(\benv\s+)?\bruby/, "#!${RUBY_WITH_SUFFIX}";' \ - -e ' else;' \ - -e ' $$_ = "#!${RUBY_WITH_SUFFIX}\n" + $$_;' \ - -e ' end;' \ - -e 'end' \ - ${f}${_RUBY_SUFFIX} - ${CHMOD} ${BINMODE} ${f}${_RUBY_SUFFIX} -.endfor ${MKDIR} ${RUBY_ELISPDIR} ${TOUCH} ${RUBY_ELISPDIR}/.keep_me ${MKDIR} ${RUBY_EXAMPLESDIR} diff --git a/lang/ruby/distinfo b/lang/ruby/distinfo index b3222d665b72..f56d489e170b 100644 --- a/lang/ruby/distinfo +++ b/lang/ruby/distinfo @@ -1,2 +1,2 @@ -MD5 (ruby/ruby-1.6.8-preview2.tar.gz) = ff93e8f0c7a5050cba5dcd3f7dba2d7e +MD5 (ruby/ruby-1.6.8-preview3.tar.gz) = 6b8fb98d9e11307b087bcfd4f38b2f6a MD5 (ruby/onigd20020424.tar.gz) = d5e6505aa776378a58cdb0fd4ef9cdc0 diff --git a/lang/ruby/files/patch-tempfile.rb b/lang/ruby/files/patch-tempfile.rb deleted file mode 100644 index c245ec48c254..000000000000 --- a/lang/ruby/files/patch-tempfile.rb +++ /dev/null @@ -1,147 +0,0 @@ -Index: lib/tempfile.rb -=================================================================== -RCS file: /src/ruby/lib/tempfile.rb,v -retrieving revision 1.6.2.2 -retrieving revision 1.6.2.4 -diff -u -r1.6.2.2 -r1.6.2.4 ---- lib/tempfile.rb 11 Sep 2002 07:17:18 -0000 1.6.2.2 -+++ lib/tempfile.rb 18 Nov 2002 07:26:44 -0000 1.6.2.4 -@@ -1,31 +1,43 @@ - # --# $Id: tempfile.rb,v 1.6.2.2 2002/09/11 07:17:18 knu Exp $ -+# $Id: tempfile.rb,v 1.6.2.4 2002/11/18 07:26:44 knu Exp $ - # --# The class for temporary files. --# o creates a temporary file, which name is "basename.pid.n" with mode "w+". --# o Tempfile objects can be used like IO object. --# o with tempfile.close(true) created temporary files are removed. --# o created files are also removed on script termination. --# o with Tempfile#open, you can reopen the temporary file. --# o file mode of the temporary files are 0600. -+# This is a class for managing temporary files. -+# -+# o Tempfile::new("basename") creates a temporary file whose name is -+# "basename.pid.n" and opens with mode "w+". -+# o A Tempfile object can be treated as an IO object. -+# o The temporary directory is determined by ENV['TMPDIR'], -+# ENV['TMP'], and ENV['TEMP'] in the order named, and if none of -+# them is available, it is set to /tmp. -+# o When $SAFE > 0, you should specify a directory via the second argument -+# of Tempfile::new(), or it will end up finding an ENV value tainted and -+# pick /tmp. In case you don't have it, an exception will be raised. -+# o Tempfile#close(true) gets the temporary file removed immediately. -+# o Otherwise, the removal is delayed until the object is finalized. -+# o With Tempfile#open, you can reopen the temporary file. -+# o The file mode for the temporary files is 0600. -+# o This library is (considered to be) thread safe. - - require 'delegate' - - class Tempfile < SimpleDelegator - Max_try = 10 -+ @@cleanlist = [] - -- def Tempfile.callback(path, data) -+ def Tempfile.callback(data) - pid = $$ - lambda{ - if pid == $$ -+ path, tmpfile, cleanlist = *data -+ - print "removing ", path, "..." if $DEBUG -- data[0].close if data[0] -- if File.exist?(path) -- File.unlink(path) -- end -- if File.exist?(path + '.lock') -- Dir.rmdir(path + '.lock') -- end -+ -+ tmpfile.close if tmpfile -+ -+ # keep this order for thread safeness -+ File.unlink(path) if File.exist?(path) -+ cleanlist.delete(path) if cleanlist -+ - print "done\n" if $DEBUG - end - } -@@ -35,30 +47,44 @@ - if $SAFE > 0 and tmpdir.tainted? - tmpdir = '/tmp' - end -- n = 0 -- while true -+ -+ lock = nil -+ n = failure = 0 -+ -+ begin -+ Thread.critical = true -+ - begin - tmpname = sprintf('%s/%s%d.%d', tmpdir, basename, $$, n) - lock = tmpname + '.lock' -- unless File.exist?(tmpname) or File.exist?(lock) -- Dir.mkdir(lock) -- break -- end -- rescue -- raise "cannot generate tempfile `%s'" % tmpname if n >= Max_try -- #sleep(1) -- end -- n += 1 -+ n += 1 -+ end while @@cleanlist.include?(tmpname) or -+ File.exist?(lock) or File.exist?(tmpname) -+ -+ Dir.mkdir(lock) -+ rescue -+ failure += 1 -+ retry if failure < Max_try -+ raise "cannot generate tempfile `%s'" % tmpname -+ ensure -+ Thread.critical = false - end - -- @protect = [] -- @clean_files = Tempfile.callback(tmpname, @protect) -- ObjectSpace.define_finalizer(self, @clean_files) -+ @data = [tmpname] -+ @clean_proc = Tempfile.callback(@data) -+ ObjectSpace.define_finalizer(self, @clean_proc) - - @tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL, 0600) -- @protect[0] = @tmpfile - @tmpname = tmpname -+ @@cleanlist << @tmpname -+ @data[1] = @tmpfile -+ @data[2] = @@cleanlist -+ - super(@tmpfile) -+ -+ # Now we have all the File/IO methods defined, you must not -+ # carelessly put bare puts(), etc. after this. -+ - Dir.rmdir(lock) - end - -@@ -69,15 +95,15 @@ - def open - @tmpfile.close if @tmpfile - @tmpfile = File.open(@tmpname, 'r+') -- @protect[0] = @tmpfile -+ @data[1] = @tmpfile - __setobj__(@tmpfile) - end - - def close(real=false) - @tmpfile.close if @tmpfile -- @protect[0] = @tmpfile = nil -+ @data[1] = @tmpfile = nil - if real -- @clean_files.call -+ @clean_proc.call - ObjectSpace.undefine_finalizer(self) - end - end diff --git a/lang/ruby/pkg-plist b/lang/ruby/pkg-plist index d2559ed5c3d4..8df9c173f247 100644 --- a/lang/ruby/pkg-plist +++ b/lang/ruby/pkg-plist @@ -217,7 +217,6 @@ lib/lib%%RUBY_NAME%%.so.%%RUBY_SHLIBVER%% %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/fullpath.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/getopts.test %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/goodfriday.rb -%%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/irb.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/less.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/list.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/list2.rb diff --git a/lang/ruby16-shim-ruby18/Makefile b/lang/ruby16-shim-ruby18/Makefile index dcc7367d0fa4..d5a6bab51f13 100644 --- a/lang/ruby16-shim-ruby18/Makefile +++ b/lang/ruby16-shim-ruby18/Makefile @@ -6,7 +6,7 @@ # PORTNAME= shim-ruby18 -PORTVERSION= 1.7.3.2002.11.10 +PORTVERSION= 1.7.3.2002.12.11 CATEGORIES= lang devel ruby MASTER_SITES= ${MASTER_SITE_RUBY} MASTER_SITE_SUBDIR= shim @@ -30,7 +30,25 @@ WRKSRC= ${WRKDIR}/shim/ruby16 IGNORE= is only for ruby 1.6, ruby ${RUBY_VER} does not need it .endif +.if ${RUBY_VER} == ${RUBY_DEFAULT_VER} +IF_DEFAULT= "" +.else +IF_DEFAULT= "@comment " +.endif + +INSTALLED_SCRIPTS= ${PREFIX}/bin/erb + +PLIST_SUB+= IF_DEFAULT=${IF_DEFAULT} \ + pre-install: ${SETENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL +post-install: +.if ${RUBY_VER} == ${RUBY_DEFAULT_VER} + for f in ${INSTALLED_SCRIPTS}; do \ + ${LN} -f $${f}${RUBY_R} $${f}${_RUBY_SUFFIX}; \ + done +.endif + + .include <bsd.port.post.mk> diff --git a/lang/ruby16-shim-ruby18/distinfo b/lang/ruby16-shim-ruby18/distinfo index 5398c13066a9..a39230c5c5a0 100644 --- a/lang/ruby16-shim-ruby18/distinfo +++ b/lang/ruby16-shim-ruby18/distinfo @@ -1 +1 @@ -MD5 (ruby/shim-ruby16_18-1.7.3.2002.11.10.tar.bz2) = 04ff91afa6db0b33153b871d64bbb453 +MD5 (ruby/shim-ruby16_18-1.7.3.2002.12.11.tar.bz2) = 66b2e02c5d64b4c684d0e0ff39039d65 diff --git a/lang/ruby16-shim-ruby18/pkg-plist b/lang/ruby16-shim-ruby18/pkg-plist index b3234ef33adf..00e950195a68 100644 --- a/lang/ruby16-shim-ruby18/pkg-plist +++ b/lang/ruby16-shim-ruby18/pkg-plist @@ -1,3 +1,5 @@ +%%IF_DEFAULT%%bin/erb%%RUBY_R%% +bin/erb%%_RUBY_SUFFIX%% @comment features/ruby18 %%RUBY_SITEARCHLIBDIR%%/features/ruby18/file_ruby18.so %%RUBY_SITEARCHLIBDIR%%/features/ruby18/io_ruby18.so diff --git a/lang/ruby16/Makefile b/lang/ruby16/Makefile index a98a37f92e3f..e17bcabb2967 100644 --- a/lang/ruby16/Makefile +++ b/lang/ruby16/Makefile @@ -7,11 +7,10 @@ PORTNAME= ruby${RUBY_R} PORTVERSION= ${RUBY_PORTVERSION} -PORTREVISION= 1 CATEGORIES= lang ruby ipv6 MASTER_SITES= ${MASTER_SITE_RUBY} \ ${ONIGURUMA_MASTER_SITES:S,$,:oniguruma,} -MASTER_SITE_SUBDIR= ${RUBY_VER} \ +MASTER_SITE_SUBDIR= ${MASTER_SITE_SUBDIR_RUBY} \ ${ONIGURUMA_MASTER_SITE_SUBDIR:S,$,/:oniguruma,} DISTFILES= ${RUBY_DISTNAME}${EXTRACT_SUFX} \ ${ONIGURUMA_DISTFILE:S,$,:oniguruma,} @@ -98,54 +97,19 @@ post-patch: ${MV} ${WRKSRC}/ext/${d} ${WRKDIR}/ .endfor -pre-install: - ${RM} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1 \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1.gz - for f in ${INSTALLED_SCRIPTS}; do \ - ${RM} -f $${f}${RUBY_R}; \ - done - post-install: .if defined(STRIP) && ${STRIP} == -s - strip ${RUBY} + ${STRIP_CMD} ${RUBY} .endif .if ${RUBY_VER} == ${RUBY_DEFAULT_VER} - ${MV} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} - ${MV} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 -.endif +# Link just installed "ruby" to "ruby16", etc. + ${LN} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} + ${LN} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 for f in ${INSTALLED_SCRIPTS}; do \ - ${MV} -f $${f} $${f}${_RUBY_SUFFIX}; \ + ${LN} -f $${f}${RUBY_R} $${f}${_RUBY_SUFFIX}; \ done - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ]; then \ - ${LN} -fs ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ${RUBY_WITHOUT_SUFFIX}${RUBY_R}; \ - ${LN} -fs ruby${RUBY_DEFAULT_SUFFIX}${RUBY_R}.1${MANEXT} ${PREFIX}/man/man1/ruby${RUBY_R}.1${MANEXT}; \ - fi - if [ -x ${RUBY_WITHOUT_SUFFIX} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${RUBY_DEFAULT_SUFFIX} $${f}; \ - done; \ - fi -.if !empty(RUBY_R) - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${_RUBY_SUFFIX} $${f}${RUBY_R}; \ - done; \ - fi .endif ${LDCONFIG} -m ${PREFIX}/lib -.for f in ${INSTALLED_SCRIPTS} - ${RUBY_WITH_SUFFIX} ${RUBY_FLAGS} -i -p \ - -e 'if $$. == 1; ' \ - -e ' if /^#!/; ' \ - -e ' sub /^#!\s*\S*(\benv\s+)?\bruby/, "#!${RUBY_WITH_SUFFIX}";' \ - -e ' else;' \ - -e ' $$_ = "#!${RUBY_WITH_SUFFIX}\n" + $$_;' \ - -e ' end;' \ - -e 'end' \ - ${f}${_RUBY_SUFFIX} - ${CHMOD} ${BINMODE} ${f}${_RUBY_SUFFIX} -.endfor ${MKDIR} ${RUBY_ELISPDIR} ${TOUCH} ${RUBY_ELISPDIR}/.keep_me ${MKDIR} ${RUBY_EXAMPLESDIR} diff --git a/lang/ruby16/distinfo b/lang/ruby16/distinfo index b3222d665b72..f56d489e170b 100644 --- a/lang/ruby16/distinfo +++ b/lang/ruby16/distinfo @@ -1,2 +1,2 @@ -MD5 (ruby/ruby-1.6.8-preview2.tar.gz) = ff93e8f0c7a5050cba5dcd3f7dba2d7e +MD5 (ruby/ruby-1.6.8-preview3.tar.gz) = 6b8fb98d9e11307b087bcfd4f38b2f6a MD5 (ruby/onigd20020424.tar.gz) = d5e6505aa776378a58cdb0fd4ef9cdc0 diff --git a/lang/ruby16/files/patch-tempfile.rb b/lang/ruby16/files/patch-tempfile.rb deleted file mode 100644 index c245ec48c254..000000000000 --- a/lang/ruby16/files/patch-tempfile.rb +++ /dev/null @@ -1,147 +0,0 @@ -Index: lib/tempfile.rb -=================================================================== -RCS file: /src/ruby/lib/tempfile.rb,v -retrieving revision 1.6.2.2 -retrieving revision 1.6.2.4 -diff -u -r1.6.2.2 -r1.6.2.4 ---- lib/tempfile.rb 11 Sep 2002 07:17:18 -0000 1.6.2.2 -+++ lib/tempfile.rb 18 Nov 2002 07:26:44 -0000 1.6.2.4 -@@ -1,31 +1,43 @@ - # --# $Id: tempfile.rb,v 1.6.2.2 2002/09/11 07:17:18 knu Exp $ -+# $Id: tempfile.rb,v 1.6.2.4 2002/11/18 07:26:44 knu Exp $ - # --# The class for temporary files. --# o creates a temporary file, which name is "basename.pid.n" with mode "w+". --# o Tempfile objects can be used like IO object. --# o with tempfile.close(true) created temporary files are removed. --# o created files are also removed on script termination. --# o with Tempfile#open, you can reopen the temporary file. --# o file mode of the temporary files are 0600. -+# This is a class for managing temporary files. -+# -+# o Tempfile::new("basename") creates a temporary file whose name is -+# "basename.pid.n" and opens with mode "w+". -+# o A Tempfile object can be treated as an IO object. -+# o The temporary directory is determined by ENV['TMPDIR'], -+# ENV['TMP'], and ENV['TEMP'] in the order named, and if none of -+# them is available, it is set to /tmp. -+# o When $SAFE > 0, you should specify a directory via the second argument -+# of Tempfile::new(), or it will end up finding an ENV value tainted and -+# pick /tmp. In case you don't have it, an exception will be raised. -+# o Tempfile#close(true) gets the temporary file removed immediately. -+# o Otherwise, the removal is delayed until the object is finalized. -+# o With Tempfile#open, you can reopen the temporary file. -+# o The file mode for the temporary files is 0600. -+# o This library is (considered to be) thread safe. - - require 'delegate' - - class Tempfile < SimpleDelegator - Max_try = 10 -+ @@cleanlist = [] - -- def Tempfile.callback(path, data) -+ def Tempfile.callback(data) - pid = $$ - lambda{ - if pid == $$ -+ path, tmpfile, cleanlist = *data -+ - print "removing ", path, "..." if $DEBUG -- data[0].close if data[0] -- if File.exist?(path) -- File.unlink(path) -- end -- if File.exist?(path + '.lock') -- Dir.rmdir(path + '.lock') -- end -+ -+ tmpfile.close if tmpfile -+ -+ # keep this order for thread safeness -+ File.unlink(path) if File.exist?(path) -+ cleanlist.delete(path) if cleanlist -+ - print "done\n" if $DEBUG - end - } -@@ -35,30 +47,44 @@ - if $SAFE > 0 and tmpdir.tainted? - tmpdir = '/tmp' - end -- n = 0 -- while true -+ -+ lock = nil -+ n = failure = 0 -+ -+ begin -+ Thread.critical = true -+ - begin - tmpname = sprintf('%s/%s%d.%d', tmpdir, basename, $$, n) - lock = tmpname + '.lock' -- unless File.exist?(tmpname) or File.exist?(lock) -- Dir.mkdir(lock) -- break -- end -- rescue -- raise "cannot generate tempfile `%s'" % tmpname if n >= Max_try -- #sleep(1) -- end -- n += 1 -+ n += 1 -+ end while @@cleanlist.include?(tmpname) or -+ File.exist?(lock) or File.exist?(tmpname) -+ -+ Dir.mkdir(lock) -+ rescue -+ failure += 1 -+ retry if failure < Max_try -+ raise "cannot generate tempfile `%s'" % tmpname -+ ensure -+ Thread.critical = false - end - -- @protect = [] -- @clean_files = Tempfile.callback(tmpname, @protect) -- ObjectSpace.define_finalizer(self, @clean_files) -+ @data = [tmpname] -+ @clean_proc = Tempfile.callback(@data) -+ ObjectSpace.define_finalizer(self, @clean_proc) - - @tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL, 0600) -- @protect[0] = @tmpfile - @tmpname = tmpname -+ @@cleanlist << @tmpname -+ @data[1] = @tmpfile -+ @data[2] = @@cleanlist -+ - super(@tmpfile) -+ -+ # Now we have all the File/IO methods defined, you must not -+ # carelessly put bare puts(), etc. after this. -+ - Dir.rmdir(lock) - end - -@@ -69,15 +95,15 @@ - def open - @tmpfile.close if @tmpfile - @tmpfile = File.open(@tmpname, 'r+') -- @protect[0] = @tmpfile -+ @data[1] = @tmpfile - __setobj__(@tmpfile) - end - - def close(real=false) - @tmpfile.close if @tmpfile -- @protect[0] = @tmpfile = nil -+ @data[1] = @tmpfile = nil - if real -- @clean_files.call -+ @clean_proc.call - ObjectSpace.undefine_finalizer(self) - end - end diff --git a/lang/ruby16/pkg-plist b/lang/ruby16/pkg-plist index d2559ed5c3d4..8df9c173f247 100644 --- a/lang/ruby16/pkg-plist +++ b/lang/ruby16/pkg-plist @@ -217,7 +217,6 @@ lib/lib%%RUBY_NAME%%.so.%%RUBY_SHLIBVER%% %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/fullpath.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/getopts.test %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/goodfriday.rb -%%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/irb.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/less.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/list.rb %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/list2.rb diff --git a/lang/ruby18/Makefile b/lang/ruby18/Makefile index 33e6f238e06a..d919b28864e2 100644 --- a/lang/ruby18/Makefile +++ b/lang/ruby18/Makefile @@ -10,7 +10,7 @@ PORTVERSION= ${RUBY_PORTVERSION} CATEGORIES= lang ruby ipv6 MASTER_SITES= ${MASTER_SITE_RUBY} \ ${ONIGURUMA_MASTER_SITES:S,$,:oniguruma,} -MASTER_SITE_SUBDIR= snapshots \ +MASTER_SITE_SUBDIR= ${MASTER_SITE_SUBDIR_RUBY} \ ${ONIGURUMA_MASTER_SITE_SUBDIR:S,$,/:oniguruma,} DISTFILES= ${RUBY_DISTNAME}${EXTRACT_SUFX} \ ${ONIGURUMA_DISTFILE:S,$,:oniguruma,} @@ -115,34 +115,17 @@ post-patch: ${MV} ${WRKSRC}/ext/${d} ${WRKDIR}/ .endfor -pre-install: - ${RM} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1 \ - ${PREFIX}/man/man1/ruby${RUBY_R}.1.gz - post-install: .if defined(STRIP) && ${STRIP} == -s ${STRIP_CMD} ${RUBY} .endif .if ${RUBY_VER} == ${RUBY_DEFAULT_VER} - ${MV} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} - ${MV} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 -.endif - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ]; then \ - ${LN} -fs ${RUBY_WITHOUT_SUFFIX}${RUBY_DEFAULT_SUFFIX}${RUBY_R} ${RUBY_WITHOUT_SUFFIX}${RUBY_R}; \ - ${LN} -fs ruby${RUBY_DEFAULT_SUFFIX}${RUBY_R}.1${MANEXT} ${PREFIX}/man/man1/ruby${RUBY_R}.1${MANEXT}; \ - fi - if [ -x ${RUBY_WITHOUT_SUFFIX} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${RUBY_DEFAULT_SUFFIX} $${f}; \ - done; \ - fi -.if !empty(RUBY_R) - if [ -x ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ]; then \ - for f in ${INSTALLED_SCRIPTS}; do \ - ${LN} -fs $${f}${_RUBY_SUFFIX} $${f}${RUBY_R}; \ - done; \ - fi +# Link just installed "ruby" to "ruby17", etc. + ${LN} -f ${RUBY_WITHOUT_SUFFIX}${RUBY_R} ${RUBY_WITH_SUFFIX} + ${LN} -f ${PREFIX}/man/man1/ruby${RUBY_R}.1 ${PREFIX}/man/man1/ruby${_RUBY_SUFFIX}.1 + for f in ${INSTALLED_SCRIPTS}; do \ + ${LN} -f $${f}${RUBY_R} $${f}${_RUBY_SUFFIX}; \ + done .endif ${LDCONFIG} -m ${PREFIX}/lib ${MKDIR} ${RUBY_ELISPDIR} diff --git a/lang/ruby18/distinfo b/lang/ruby18/distinfo index c274e83098fa..49443af3684c 100644 --- a/lang/ruby18/distinfo +++ b/lang/ruby18/distinfo @@ -1,2 +1,2 @@ -MD5 (ruby/ruby-1.7.3-2002.11.22.tar.bz2) = fafe9cbd17e49dbf356710bc5751d78a +MD5 (ruby/ruby-1.7.3-2002.12.12.tar.bz2) = d200f52d1f7c3a624408b2ebabc66823 MD5 (ruby/onigd20020424.tar.gz) = d5e6505aa776378a58cdb0fd4ef9cdc0 |