[#25976] tnono dumps core — nobu@...

なかだです。

16 messages 2005/04/02
[#25977] Re: tnono dumps core — Masaki Suketa <masaki.suketa@...> 2005/04/03

助田です。

[#25998] ruby 1.8.3 preview予定 — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

45 messages 2005/04/07
[#26011] bcc32、win32 での install-doc の動作 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/04/10

山本です。

[#26012] Re: bcc32、win32 での install-doc の動作 — nobu@... 2005/04/10

なかだです。

[#26013] Re: bcc32、win32 での install-doc の動作 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/04/11

山本です。

[#26014] Re: bcc32、win32 での install-doc の動作 — "U.Nakamura" <usa@...> 2005/04/11

こんにちは、なかむら(う)です。

[#26034] Re: bcc32、win32 での install-doc の動作 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/04/12

山本です。

[#26035] Re: bcc32、win32 での install-doc の動作 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/04/12

山本です。

[#26036] Re: bcc32、win32 での install-doc の動作 — "U.Nakamura" <usa@...> 2005/04/12

こんにちは、なかむら(う)です。

[#26040] Re: bcc32、win32 での install-doc の動作 — nobu@... 2005/04/13

なかだです。

[#26041] Re: bcc32、win32 での install-doc の動作 — "U.Nakamura" <usa@...> 2005/04/13

こんにちは、なかむら(う)です。

[#26042] Re: bcc32、win32 での install-doc の動作 — nobu@... 2005/04/13

なかだです。

[#26043] Re: bcc32、win32 での install-doc の動作 — "U.Nakamura" <usa@...> 2005/04/13

こんにちは、なかむら(う)です。

[#26045] Re: bcc32、win32 での install-doc の動作 — nobu@... 2005/04/13

なかだです。

[#26049] Re: bcc32、win32 での install-doc の動作 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/04/14

山本です。

[#26051] Re: bcc32、win32 での install-doc の動作 — nobu@... 2005/04/14

なかだです。

[#26059] Re: bcc32、win32 での install-doc の動作 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/04/14

山本です。

[#26060] Re: bcc32、win32 での install-doc の動作 — nobu@... 2005/04/15

なかだです。

[#26100] FileUtils.rm_rf security problem — Tanaka Akira <akr@...17n.org>

ふと、CVE で perl 関係のを見ていたら、File::Path の rmtree に関するも

21 messages 2005/04/26
[#26102] Re: FileUtils.rm_rf security problem — Tanaka Akira <akr@...17n.org> 2005/04/26

[#26190] Re: FileUtils.rm_rf security problem — Minero Aoki <aamine@...> 2005/05/20

青木です。

[#26191] Re: FileUtils.rm_rf security problem — Tanaka Akira <akr@...17n.org> 2005/05/20

In article <20050520171837N.aamine@loveruby.net>,

[#26192] Re: FileUtils.rm_rf security problem — Minero Aoki <aamine@...> 2005/05/20

青木です。

[#26197] Re: FileUtils.rm_rf security problem — Minero Aoki <aamine@...> 2005/05/21

青木です。

[ruby-dev:26070] Re: bcc32、win32 での install-doc の動作

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-04-15 11:09:34 UTC
List: ruby-dev #26070
山本です。

混乱してきたので整理しておきます。

1. スラッシュの重複自体は Dir[] は処理できる。

E:\ruby-cvs\bcc32>miniruby -e "p Dir['e:///temp/lib']"
["e:///temp/lib"]

2. ただし、"//lib" となってしまうと UNC として扱われるのでまずい

>Index: extmk.rb
>===================================================================
>RCS file: /src/ruby/ext/extmk.rb,v
>retrieving revision 1.75
>diff -u -w -b -p -r1.75 extmk.rb
>--- extmk.rb	8 Apr 2005 11:18:01 -0000	1.75
>+++ extmk.rb	15 Apr 2005 06:09:47 -0000
>@@ -267,7 +267,6 @@ def parse_args()
> 
>   $continue = $mflags.set?(?k)
>   if !$destdir.to_s.empty?
>-    $destdir = File.expand_path($destdir)
>     $mflags.defined?("DESTDIR") or $mflags << "DESTDIR=#{$destdir}"
>   end
>   if $extout

このパッチだと、make DESTDIR=/ install とすると UNC になってしまうので
取り下げます。

# しかしややこしい・・・

代わりのパッチです。これで問題がなければいいんですが。

Index: instruby.rb
===================================================================
RCS file: /src/ruby/instruby.rb,v
retrieving revision 1.65
diff -u -w -b -p -r1.65 instruby.rb
--- instruby.rb	3 Mar 2005 09:44:31 -0000	1.65
+++ instruby.rb	15 Apr 2005 10:16:29 -0000
@@ -22,7 +22,7 @@ def parse_args()
   $install = []
   opt = OptionParser.new
   opt.on('-n') {$dryrun = true}
-  opt.on('--dest-dir=DIR') {|dir| $destdir = dir}
+  opt.on('--dest-dir=DIR') {|dir| $destdir = File.expand_path(dir)}
   opt.on('--make=COMMAND') {|make| $make = make}
   opt.on('--mantype=MAN') {|man| $mantype = man}
   opt.on('--make-flags=FLAGS', '--mflags', Shellwords) do |v|
Index: bcc32/Makefile.sub
===================================================================
RCS file: /src/ruby/bcc32/Makefile.sub,v
retrieving revision 1.71
diff -u -w -b -p -r1.71 Makefile.sub
--- bcc32/Makefile.sub	3 Mar 2005 09:44:32 -0000	1.71
+++ bcc32/Makefile.sub	15 Apr 2005 10:58:09 -0000
@@ -101,8 +101,12 @@ datadir = $(prefix)/share
 EXTOUT = .ext
 !endif
 !ifndef RIDATADIR
+!if "$(DESTDIR)" == "/"
+RIDATADIR = $(datadir)/ri/$(MAJOR).$(MINOR)/system
+!else
 RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system
 !endif
+!endif
 !ifndef TESTUI
 TESTUI = console
 !endif
@@ -428,7 +432,7 @@ $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_
 
 post-install-ext::
 	$(MINIRUBY) -I$(srcdir)lib -rrbconfig -rfileutils \
-		-e 'FileUtils.rm_f(Dir[File.join(Config::CONFIG["archdir"],"**","*.tds")])'
+		-e 'FileUtils.rm_f(Dir[File.join(File.expand_path("$(DESTDIR)"),Config::CONFIG["archdir"],"**","*.tds")])
 
 clean-local::
 		@$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib
Index: bcc32/setup.mak
===================================================================
RCS file: /src/ruby/bcc32/setup.mak,v
retrieving revision 1.13
diff -u -w -b -p -r1.13 setup.mak
--- bcc32/setup.mak	16 Nov 2004 08:37:59 -0000	1.13
+++ bcc32/setup.mak	15 Apr 2005 09:23:22 -0000
@@ -30,17 +30,41 @@ i586-$(OS): -prologue- -i586- -epilogue-
 i686-$(OS): -prologue- -i686- -epilogue-
 alpha-$(OS): -prologue- -alpha- -epilogue-
 
--prologue-: nul
+-prologue-: -basic-vars- -prefix- -version-
+
+-basic-vars-: nul
 	@echo Creating $(MAKEFILE)
 	@type > $(MAKEFILE) &&|
 \#\#\# Makefile for ruby $(OS) \#\#\#
 srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
 EXTSTATIC = $(EXTSTATIC)
 !if defined(RDOCTARGET)
 RDOCTARGET = $(RDOCTARGET)
 !endif
 |
+
+-prefix-: nul
+	@type >prefix.c &&|
+#include <ctype.h>
+#include <stdio.h>
+int main(int argc, char **argv)
+{
+    char *prefix = argv[1];
+    if (isalpha(prefix[0]) && prefix[1] == ':') {
+	printf("!ifndef DESTDIR\n");
+	printf("DESTDIR = %c:/\n", prefix[0]);
+	printf("!endif\n");
+	prefix += 2;
+    }
+    printf("prefix = %s\n", prefix);
+    return 0;
+}
+|
+	@$(CC) prefix.c > nul
+	@.\prefix "$(prefix:\=/)" >> $(MAKEFILE)
+	@del prefix.*
+
+-version-: nul
 	@cpp32 -I$(srcdir) -P- -DRUBY_EXTERN="//" -o$(MAKEFILE) > nul &&|
 \#include "version.h"
 MAJOR = RUBY_VERSION_MAJOR
Index: win32/setup.mak
===================================================================
RCS file: /src/ruby/win32/setup.mak,v
retrieving revision 1.22
diff -u -w -b -p -r1.22 setup.mak
--- win32/setup.mak	13 Apr 2005 10:25:41 -0000	1.22
+++ win32/setup.mak	14 Apr 2005 10:20:29 -0000
@@ -32,18 +32,37 @@ i586-$(OS): -prologue- -i586- -epilogue-
 i686-$(OS): -prologue- -i686- -epilogue-
 alpha-$(OS): -prologue- -alpha- -epilogue-
 
--prologue-: -basic-vars- -system-vars- -version-
+-prologue-: -basic-vars- -prefix- -system-vars- -version-
 
 -basic-vars-: nul
 	@type << > $(MAKEFILE)
 ### Makefile for ruby $(OS) ###
 srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
 EXTSTATIC = $(EXTSTATIC)
 !if defined(RDOCTARGET)
 RDOCTARGET = $(RDOCTARGET)
 !endif
 <<
+
+-prefix-: nul
+	@$(CC) <<prefix.c > nul
+#include <ctype.h>
+#include <stdio.h>
+int main(int argc, char **argv)
+{
+    char *prefix = argv[1];
+    if (isalpha(prefix[0]) && prefix[1] == ':') {
+	printf("!ifndef DESTDIR\n");
+	printf("DESTDIR = %c:/\n", prefix[0]);
+	printf("!endif\n");
+	prefix += 2;
+    }
+    printf("prefix = %s\n", prefix);
+    return 0;
+}
+<<
+	@.\prefix "$(prefix:\=/)" >> $(MAKEFILE)
+	@del prefix.*
 
 -system-vars-: -osname- -runtime-
 
Index: wince/setup.mak
===================================================================
RCS file: /src/ruby/wince/setup.mak,v
retrieving revision 1.9
diff -u -w -b -p -r1.9 setup.mak
--- wince/setup.mak	2 Apr 2005 13:35:02 -0000	1.9
+++ wince/setup.mak	14 Apr 2005 10:21:02 -0000
@@ -1,5 +1,9 @@
 # -*- makefile -*-
 
+!ifndef RUBY
+RUBY = ruby
+!endif
+
 !if "$(srcdir)" != ""
 WIN32DIR = $(srcdir)/win32
 !elseif "$(WIN32DIR)" == "win32"
@@ -46,16 +50,28 @@ armv4-.net41-wince: -prologue- -armv4- -
 armv4t-.net41-wince: -prologue- -armv4t- -.net41- -epilogue-
 armv4i-sig3-wince: -prologue- -armv4i- -sig3- -epilogue-
 
--prologue-: nul
+-prologue-: -basic-vars- -prefix- -version-
+
+-basic-vars-: nul
 	@type << > $(MAKEFILE)
 ### Makefile for ruby $(OS) ###
 srcdir = $(srcdir:\=/)
-prefix = $(prefix:\=/)
 EXTSTATIC = $(EXTSTATIC)
 !if defined(RDOCTARGET)
 RDOCTARGET = $(RDOCTARGET)
 !endif
 <<
+
+-prefix-: nul
+	@$(RUBY) -e 'prefix=ARGV[0]' \
+		 -e 'if prefix.sub!(/\A\w:/, "")' \
+		 -e '  puts "!ifndef DESTDIR"' \
+		 -e '  puts "DESTDIR = #{$$&}/"' \
+		 -e '  puts "!endif"' \
+		 -e 'end' \
+		 -e 'puts "prefix = #{prefix}"' "$(prefix:\=/)" >> $(MAKEFILE)
+
+-version-: nul
 	@$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE)
 #include "version.h"
 MAJOR = RUBY_VERSION_MAJOR


In This Thread