[#39954] Fwd: [ruby-cvs:33451] Ruby:r26235 (trunk): * trace.h: new file. wraps tracing mechanisms. — SASADA Koichi <ko1@...>

 ささだです.

16 messages 2010/01/04
[#39957] Re: Fwd: [ruby-cvs:33451] Ruby:r26235 (trunk): * trace.h: new file. wraps tracing mechanisms. — Yugui <yugui@...> 2010/01/04

2010/1/4 SASADA Koichi <ko1@atdot.net>:

[#39959] Re: Fwd: [ruby-cvs:33451] Ruby:r26235 (trunk): * trace.h: new file. wraps tracing mechanisms. — SASADA Koichi <ko1@...> 2010/01/04

 ささだです.

[#39975] [Feature #2571] 文字列のハミング距離 — Kenta Murata <redmine@...>

Feature #2571: 文字列のハミング距離

14 messages 2010/01/07

[#39978] "require 'logge'" fails on ruby 1.8.7 from http://github.com/shyouhei/ruby — MOROHASHI Kyosuke <moronatural@...>

諸橋です。

7 messages 2010/01/07

[#40004] [Bug:trunk] require_relative depends on current directory — Yusuke ENDOH <mame@...>

遠藤です。

13 messages 2010/01/09

[#40074] [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — Takahiro Kambe <redmine@...>

Bug #2603: NetBSD 5.0以降でpthreadの処理に由来する不具合

29 messages 2010/01/14
[#40086] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — f-miura@... (MIURA, Fumiaki) 2010/01/14

NTTレゾナントの三浦です。不完全なpatchを書いてすみません。

[#40088] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — Takahiro Kambe <taca@...> 2010/01/14

こんばんは。

[#40091] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — KOSAKI Motohiro <kosaki.motohiro@...> 2010/01/15

kosakiです

[#40092] Re: [Bug #2603] NetBSD 5.0以降でpthreadの処理に由来する不具合 — Takahiro Kambe <taca@...> 2010/01/15

こんにちは。

[#40077] [Bug #2604] test_dsa_sign_verify() in test/openssl/test_ec.rb failes — Takahiro Kambe <redmine@...>

Bug #2604: test_dsa_sign_verify() in test/openssl/test_ec.rb failes

11 messages 2010/01/14

[#40153] [Bug:trunk] three bugs of Matrix::Scalar — Yusuke ENDOH <mame@...>

連投すみません。

19 messages 2010/01/25
[#40184] Re: [Bug:trunk] three bugs of Matrix::Scalar — keiju@... (石塚圭樹) 2010/01/27

けいじゅ@いしつかです.

[#40189] Re: [Bug:trunk] three bugs of Matrix::Scalar — Yusuke ENDOH <mame@...> 2010/01/27

遠藤です。

[#40191] Re: [Bug:trunk] three bugs of Matrix::Scalar — keiju@... (石塚圭樹) 2010/01/27

けいじゅ@いしつかです.

[#40224] Re: [Bug:trunk] three bugs of Matrix::Scalar — Yukihiro Matsumoto <matz@...> 2010/01/28

まつもと ゆきひろです

[#40162] [Bug #2658] rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR — Yusuke Endoh <redmine@...>

Bug #2658: rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR

8 messages 2010/01/26
[#40163] Re: [Bug #2658] rubyspec: Ruby character strings interpolates the return value of Object#inspect, without ivars, if Object#to_s does not return a String instance ERROR — Tanaka Akira <akr@...> 2010/01/26

2010年1月26日20:39 Yusuke Endoh <redmine@ruby-lang.org>:

[#40168] [Bug #2662] BigDecimal#ceil, etc. should not return Integer — Yusuke Endoh <redmine@...>

Bug #2662: BigDecimal#ceil, etc. should not return Integer

10 messages 2010/01/26

[#40200] [Feature #2673] the length for an enumerator generated by Array#permutation and Array#combination — Kenta Murata <redmine@...>

Feature #2673: the length for an enumerator generated by Array#permutation and Array#combination

14 messages 2010/01/28

[#40221] [Bug:trunk] rubyspec: SimpleDelegator when frozen creates a frozen clone ERROR — Yusuke ENDOH <mame@...>

まつもとさん、または lib/delegator.rb についてわかる誰か

13 messages 2010/01/28

[#40265] MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...>

手元の Ubuntu 9.10 の環境で Ruby 1.9.2 を make test-all すると

38 messages 2010/01/30
[#40326] Re: MonitorMixin::ConditionVariable#wait timeout — Shugo Maeda <shugo@...> 2010/02/05

前田です。

[#41155] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/05

前田さん、akr さん

[#41157] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/05

2010年5月5日9:32 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41158] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/05

遠藤です。

[#41159] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/05

2010年5月5日11:46 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41160] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/05

遠藤です。

[#41182] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/06

2010年5月5日13:22 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41183] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/06

遠藤です。

[#41186] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/06

2010年5月6日19:58 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41205] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/06

遠藤です。

[#41207] Re: MonitorMixin::ConditionVariable#wait timeout — KOSAKI Motohiro <kosaki.motohiro@...> 2010/05/06

2010年5月6日23:08 Yusuke ENDOH <mame@tsg.ne.jp>:

[#41208] Re: MonitorMixin::ConditionVariable#wait timeout — Tanaka Akira <akr@...> 2010/05/06

2010年5月6日23:15 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:

[#41245] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/10

遠藤です。

[#41252] Re: MonitorMixin::ConditionVariable#wait timeout — KOSAKI Motohiro <kosaki.motohiro@...> 2010/05/10

kosakiです

[#41255] Re: MonitorMixin::ConditionVariable#wait timeout — Yusuke ENDOH <mame@...> 2010/05/10

遠藤です。

[#41256] Re: MonitorMixin::ConditionVariable#wait timeout — Masaya TARUI <tarui@...> 2010/05/10

樽家です。

[#40269] [Feature #2695] Supported Platforms — Kazuhiro NISHIYAMA <redmine@...>

Feature #2695: Supported Platforms

17 messages 2010/01/31
[#40760] [Feature #2695] Supported Platforms — Yusuke Endoh <redmine@...> 2010/03/25

チケット #2695 が更新されました。 (by Yusuke Endoh)

[ruby-dev:39971] Fedora12上でrubyがビルドできません

From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2010-01-05 14:29:18 UTC
List: ruby-dev #39971
kosaki と申します。

本日はじめてrubyのコンパイルをトライしてみた初心者なのですが、手元の環境(Fedora12 上でrubyのtrunkをビルド)ではビルドできないようです。
具体的に言うと、ext/opensslがコンパイルとおりません。以下のエラーが出ます。

gcc -I. -I../../.ext/include/x86_64-linux -I../.././include
-I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\"    -fPIC -O3
-ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
-Wwrite-strings -Wno-missing-field-initializers -Wno-long-long  -o
ossl_ssl.o -c ossl_ssl.c
ossl_ssl.c:107: 警告: initialization from incompatible pointer type
ossl_ssl.c:108: 警告: initialization from incompatible pointer type
ossl_ssl.c:109: 警告: initialization from incompatible pointer type
ossl_ssl.c:110: 警告: initialization from incompatible pointer type
ossl_ssl.c:111: 警告: initialization from incompatible pointer type
ossl_ssl.c:112: 警告: initialization from incompatible pointer type
ossl_ssl.c:113: 警告: initialization from incompatible pointer type
ossl_ssl.c:114: 警告: initialization from incompatible pointer type
ossl_ssl.c:115: 警告: initialization from incompatible pointer type
ossl_ssl.c:116: 警告: initialization from incompatible pointer type
ossl_ssl.c:117: 警告: initialization from incompatible pointer type
ossl_ssl.c:118: 警告: initialization from incompatible pointer type
ossl_ssl.c: In function ‘ossl_sslctx_set_ssl_version’:
ossl_ssl.c:162: 警告: 符合付きと符合無しの整数式同士の比較です
ossl_ssl.c: In function ‘ossl_sslctx_initialize’:
ossl_ssl.c:193: 警告: 符合付きと符合無しの整数式同士の比較です
ossl_ssl.c: In function ‘ossl_sslctx_get_ciphers’:
ossl_ssl.c:703: error: ‘STACK’ undeclared (first use in this function)
ossl_ssl.c:703: error: (Each undeclared identifier is reported only once
ossl_ssl.c:703: error: for each function it appears in.)
ossl_ssl.c:703: error: expected expression before ‘)’ token
ossl_ssl.c:706: error: expected expression before ‘)’ token
ossl_ssl.c:706: error: too few arguments to function ‘sk_value’
ossl_ssl.c: In function ‘ossl_ssl_get_peer_cert_chain’:
ossl_ssl.c:1406: 警告: passing argument 1 of ‘sk_num’ from incompatible
pointer type
/usr/include/openssl/stack.h:79: note: expected ‘const struct _STACK
*’ but argument is of type ‘struct stack_st_X509 *’
ossl_ssl.c:1409: 警告: passing argument 1 of ‘sk_value’ from
incompatible pointer type
/usr/include/openssl/stack.h:80: note: expected ‘const struct _STACK
*’ but argument is of type ‘struct stack_st_X509 *’
ossl_ssl.c: In function ‘ossl_ssl_get_cipher’:
ossl_ssl.c:1431: 警告: assignment discards qualifiers from pointer target type
ossl_ssl.c: In function ‘Init_ossl_ssl’:
ossl_ssl.c:1577: 警告: 符合付きと符合無しの整数式同士の比較です
ossl_ssl.c:1606: 警告: 符合付きと符合無しの整数式同士の比較です
ossl_ssl.c:1621: 警告: 符合付きと符合無しの整数式同士の比較です
ossl_ssl.c:1623: 警告: 符合付きと符合無しの整数式同士の比較です
make[1]: *** [ossl_ssl.o] エラー 1


で、理由なんですが、Fedora12ではopensslが1.0.0-beta4 が収録されており、stack_st がrenameされてしまっているようです。

openssl-1.0.0-beta4のstack.h の定義

typedef struct stack_st
        {
        int num;
        char **data;
        int sorted;

        int num_alloc;
        int (*comp)(const void *, const void *);
        } _STACK;  /* Use STACK_OF(...) instead */

openssl-0.9.8l (安定版、たぶんdebianとかが使っているのはこちら)

typedef struct stack_st
        {
        int num;
        char **data;
        int sorted;

        int num_alloc;
        int (*comp)(const char * const *, const char * const *);
        } STACK;


解決案として 4案考えました
1)ruby側でSTACKの代わりに struct stack_stを使うよう置換してまわる
2)ruby側を、ただしくSTACK_OFを使うよう置換して回る
3)openssl 側に勝手にrenameすんなと文句をいう
4)もういっそのことrubyのビルドはあきらめて、yuguiさんにはごめんという ;-)

ためしに2)の方針で作ったパッチが添付のものです。

2つ汚い点があります。

1) ossl.h に

+/* for compatible ssl-0.9.x */
+#ifndef lh_CONF_VALUE_doall_arg
+#define lh_CONF_VALUE_doall_arg(lh,fn,arg_type,arg) lh_doall_arg(lh,fn,arg)
+#endif

なんていう行を足してしまっている

2)ossl_x509attr.c が以下の警告を出す

ossl_x509attr.c: In function ‘ossl_x509attr_get_value’:
ossl_x509attr.c:221: 警告: passing argument 1 of ‘i2d_ASN1_SET’ from
incompatible pointer type
/usr/include/openssl/asn1.h:894: note: expected ‘struct
stack_st_OPENSSL_BLOCK *’ but argument is of type ‘struct \
_STACK *’
ossl_x509attr.c:225: 警告: passing argument 1 of ‘i2d_ASN1_SET’ from
incompatible pointer type
/usr/include/openssl/asn1.h:894: note: expected ‘struct
stack_st_OPENSSL_BLOCK *’ but argument is of type ‘struct \
_STACK *’

これは、openssl-1.0.0-beta4 の SKM_ASN1_SET_OF_i2d 定義が間違っていて

#define SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \
        i2d_ASN1_SET(CHECKED_PTR_OF(STACK_OF(type), st), pp,            \
                CHECKED_I2D_OF(type, i2d_func), \
                     ex_tag, ex_class, is_set)

としなければいけないのに、

#define SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \
        i2d_ASN1_SET(CHECKED_STACK_OF(type, st), pp, \
                                CHECKED_I2D_OF(type, i2d_func), \
                                ex_tag, ex_class, is_set)

としてしまっているからで、ruby側では直しようがないと判断して放置してあります。
手元で openssl-0.9.8l と openssl-1.0.0-beta4 でコンパイルテストだけしてありますが、実テストは0です。
(そもそもどうやって使うクラスなんだろう状態なので)

誰か詳しい人が降臨して、直してくれないかなぁ。とか思いつつパッチを投稿してみます。



ps 細かいことですが、trunkのビルドをするのに、--with-baseruby=RUBY オプションが必須という情報がどこにもドキュメントがない気がします
ps2 さらに細かいことですが、ビルド用の前提ソフト一覧(ruby, autoconf,
bisonを新規インストールする必要がありました)もあるとうれしいような気がします

Attachments (1)

0001-ext-openssl-fix-compile-error.patch (7.27 KB, application/mbox)

In This Thread

Prev Next