Just another Ruby porter,

〜2003年7月上旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2003-07-01 (Tue)

6月のspam

1297通。先月と同じぐらい。

[Linux] uClibc 0.9.20

gmon-start.cをコンパイルするところでstddef.hが見つからないと言われる。 何を実行してるのかじっと見てみると

-I/usr/local/lib/gcc-lib/i586-pc-linuxnu/3.3/include

という謎の指定を発見。 i586-pc-linux-gnuのはずなんだけど、-gはいずこへ? libc/sysdeps/linux/i386/Makefileを見てみると

ifeq ($(strip $(UCLIBC_PROFILING)),y)
SAFECFLAGS := $(subst -g,,$(CFLAGS))
gmon-start.S: ../common/gmon-start.c
        $(CC) $(SAFECFLAGS) -c $< -S -o $*.S
gcrt1.o: $(CRT0_DEPS)
endif

となってた。これか。

SAFECFLAGS := $(subst -g ,,$(CFLAGS))

としとこう。

[Win32] bcc32

strerror()が"\n"を追加して返してくる。やめてくれー。

[Win32] Borland make

なんかとってもいやな仕様のmakeだが、 まあ、大文字のICONDIRSを使えば問題なく渡せるわけだし、それでいいんじゃない?

[Ruby] ChangeLogその他

commitする前にChangeLogも書くように。 インデントも周りと合わせるように。 version.hの更新も忘れずに。 あ、あとmake testしてからcommitするように。


2003-07-02 (Wed)

[Cygwin][MinGW][Ruby] make 3.80-1

困ったことにCygwin版make 3.80-1のVPATHはドライブ:を認識しなくなった。 このままだとCygwin上でMinGW版Rubyをmakeすると拡張ライブラリのところでエラーになる。

たとえばMakefileに

srcdir = C:/src/ruby/ext/bigdecimal
VPATH = $(srcdir)

と書かれていた場合、 make 3.79.1-7ではcygpath -u相当の処理が入っていたので問題なかったんだが、 make 3.80-1でunix modeのときはその処理が入らなくなった。 字面通りCと/src/ruby/ext/bigdecimalの2つのパスとみなされるので、 ソースファイルが見つからないというエラーになる。

SHELL = /bin/shを削除すればwin32 modeでも動くことがわかったので、 拡張ライブラリだけwin32 modeでmakeを起動すればよさそう。 build_osがCygwinのときという判断も必要か。

ad hocな実験。これでうまくいくか明日試そう。

Index: ext/extmk.rb
===================================================================
RCS file: /src/ruby/ext/extmk.rb,v
retrieving revision 1.34
diff -u -1 -r1.34 extmk.rb
--- ext/extmk.rb	24 Apr 2003 10:49:57 -0000	1.34
+++ ext/extmk.rb	2 Jul 2003 16:15:40 -0000
@@ -140,2 +140,6 @@
   $make, *rest = Shellwords.shellwords($make)
+  if $mingw and CONFIG["build_os"] == "cygwin"
+    $mflags.delete("--unix")
+    $mflags.unshift("--win32")
+  end
   $mflags.unshift(*rest) unless rest.empty?
@@ -274,2 +278,5 @@
 
+if $mingw and CONFIG["build_os"] == "cygwin"
+  $mflags.delete("--win32")
+end
 system($make, *sysquote($mflags)) or exit($?.exitstatus)
Index: lib/mkmf.rb
===================================================================
RCS file: /src/ruby/lib/mkmf.rb,v
retrieving revision 1.132
diff -u -1 -r1.132 mkmf.rb
--- lib/mkmf.rb	25 Jun 2003 05:28:24 -0000	1.132
+++ lib/mkmf.rb	2 Jul 2003 16:15:40 -0000
@@ -539,3 +539,3 @@
   mk << %{
-SHELL = /bin/sh
+#{$mingw ? "" : "SHELL = /bin/sh"}

2003-07-03 (Thu)

[Ruby] VPATHドライブレター問題

結局VPATHだけ騙せればいいので、

VPATH = $(shell cygpath -u $(srcdir))

とした。


2003-07-04 (Fri)

[Ruby] LDFLAGS

うーむ。難しい。ccとldのオプションは共通ではないから共有には無理がある。 たぶん共有したいのは-Lぐらいだから、これだけ抜き出すのはどうだろう?

[TV] Mステ

まったくt.A.T.u.に触れることなく進行。 そういえばアルバムランキングを発表しなかった。 ってことはランキングに入ってるわけだ。徹底的に無視か。


2003-07-05 (Sat)

[autoconf] AC_CHECK_PROG

info autoconfするとわかるけど

- Macro: AC_CHECK_PROG (VARIABLE, PROG-TO-CHECK-FOR, VALUE-IF-FOUND,
         [VALUE-IF-NOT-FOUND], [PATH], [REJECT])

なので、3番目の引数は省略不可。 AC_CHECK_PROG(RUBY, ruby, ruby)としないとだめです。

[Cygwin] cygwin 1.5.0 coming - 64 bit file I/O and more

Large file対応になるのはいいとして、やっぱ1.4を飛ばして1.5か。

[Windows 2000] SP4

Windows Updateで更新。特に問題なし。

[Soft] openssl.pc

cURLをupdateすると、ssl機能が死んでいることに後で気づく。 configure時になぜ見つけてくれないのか注意して見てみると

checking for OpenSSL options using pkg-config... no

とあった。pkg-configを使ってるのか。 pkg-config --list-allしてみるとたしかにOpenSSLは出てこない。 locate openssl.pcしてみると/usr/local/ssl/lib/pkgconfigにあった。 なるほど。prefixが違うからこうなるわけね。

ln -s /usr/local/{ssl/,}lib/pkgconfig/openssl.pc

としとこう。cURL的には--with-ssl=/usr/local/sslでもいいんだけどね。


2003-07-06 (Sun)

[Emacs][cmail] S/MIME

さてcmailでS/MIMEを送るにはどうすればいいのか? SEMIにはsmime.elがあるのでこれでできそうだけど、 smimeというコマンドを呼ぶようだ。なにそれ? これか?consが必要だと言わちゃったよ。

consはPerlスクリプトで/usr/local/binにコピーすればok。 cons smimeしてみると

keygen.c: In function `add_attribute_object':
keygen.c:165: structure has no member named `set'
keygen.c: In function `keygen':
keygen.c:336: structure has no member named `req_kludge'

というエラーに。全然更新されてないし、最近のOpenSSLには対応してないようだな。 setはsingleでよさそう。req_kludgeは他に使ってないから削除してもいいだろう。 これでコンパイルは警告だらけだが一応通った。 でもリンクでMalloc,Free,Reallocがundefinedに。 単純に小文字にすればよさそうだけど、 不思議なことに小文字のmallocやreallocも存在してたりで、 よくわからん。


2003-07-07 (Mon)

[Ruby] bdb 0.4.5

更新。

[Ruby] ruby-talk ML

いちいちspamに反応するなよ。


2003-07-08 (Tue)

[S/MIME] openssl smime

とりあえず復号して検証すれば読めることはわかった。

% openssl smime -decrypt -in mail.txt \
  -recip eban@os.rim.or.jp.crt -inkey keypair.pem | \
  openssl smime -verify -CApath ~/.certs

[S/MIME] S/MIME implementation for Emacs and Gnus

Gnus用のsmime.elはopensslコマンドを使うようだ。


2003-07-09 (Wed)

[Ruby] バグ報告

今頃になって1.8.0 preview3のバグ報告が山のようにやってきた。 preview3が出てからもう2週間以上経つのにね。 このくらい待たないと駄目ってことか。

[Ruby] CR+LF

text mountしてるとconfig.statusがCR+LFになって、

srcdir=.^M

となっていると推察。mount -f -t -uでremountして見ると再現した。 面倒なのでmkconfig.rbでString#stripしちゃおう。


2003-07-10 (Thu)

[Ruby][Cygwin] extern double nan _PARAMS((const char *));

Cygwin 1.5.0になったら、nanがダミーの引数を取るようになった。 というわけで、math.cは

#if defined __CYGWIN__
# include <cygwin/version.h>
# if CYGWIN_VERSION_DLL_MAJOR < 1005
#  define nan(x) nan()
# endif
# define log(x) ((x) < 0.0 ? nan("") : log(x))
# define log10(x) ((x) < 0.0 ? nan("") : log10(x))
#endif

とした。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!