[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:06819] ruby-modules compilation error (and also ruby itself).
- From: Masato Taruishi <taru@xxxxxxxxxxxxx>
- Subject: [debian-devel:06819] ruby-modules compilation error (and also ruby itself).
- Date: Fri, 8 Jan 1999 12:39:12 +0900
- X-ml-info: If you have a question, send a mail with the body "# help" (without quotes) to the address debian-devel-ctl@debian.or.jp; help=<mailto:debian-devel-ctl@debian.or.jp?body=help>
- X-ml-name: debian-devel
- X-mlserver: fml [fml 2.2]; post only (only members can post)
- Message-id: <13973.31974.332486.93949M@xxxxxxxxxxxxxxxxxxxx>
- X-mail-count: 06819
- User-agent: Wanderlust/0.9.3 (Last Christmas) WEMI/1.12.0 (Shimizu) Chao/1.12.2 (Inari) Emacs/20.3 (i386-debian-linux-gnu) MULE/4.0 (HANANOEN)
樽石です。
ほぼすべての ruby-module 関係を sparc 環境で build できませんでした。
で、ちょっと調べたところ、 install があやしいようです。
# Add here commands to install the package into debian/tmp.
cd extmath && make libdir=/home/taru/TEMP/ruby-extmath-module-0.1/debian/tmp/usr/lib/ruby/sparc-linux install
make[1]: Entering directory `/home/taru/TEMP/ruby-extmath-module-0.1/extmath'
/usr/bin/install -c extmath.so /usr/lib/ruby/sparc-linux/extmath.so
/usr/bin/install: /usr/lib/ruby/sparc-linux/extmath.so: Permission denied
make[1]: *** [/usr/lib/ruby/sparc-linux/extmath.so] Error 1
原因は archdir が適切にセットされていないのからのようです。
# Add here commands to install the package into debian/tmp.
cd extmath && $(MAKE) libdir=$(destdir)$(libdir) archdir=$(destdir)$(libdir) install
^^^^^^^^^^^^^^^^^^^^^^^^^^^
を付け加えることで build できることを確認しました。
BTS だと思いますが、 ruby-module がどれくらいあるかわからないので、
devel に投げておきます。メンテナの方は修正をお願いします。
# QA check で引っかかる問題の気もする。
# sudo だと問題の部分は通過するが、ものが debian/tmp/ 以下にインストール
# されないのでエラーになる。
それから、ついでに言っておくと ruby は glibc 2.1 だとソースを直さないとだめのようです。
dln.c:59: macro `strdup' used without args
となります。
/usr/include/bits/string2.h
にある
# ifndef _HAVE_STRING_ARCH_strdup
# define __strdup(s) \
(__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) \
? (((__const char *) (s))[0] == '\0' \
? (char *) calloc (1, 1) \
: ({ size_t __len = strlen (s) + 1; \
char *__retval = (char *) malloc (__len); \
if (__retval != NULL) \
__retval = (char *) memcpy (__retval, s, __len); \
__retval; })) \
: __strdup (s)))
# if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
# define strdup(s) __strdup (s)
# endif
# endif
と干渉してるからだと思います。
とりあえず、 すべての ruby ソースの strdup をコメントアウトすることにより
build はできましたが、汚いので _HAVE_STRING_ARCH_strdup を利用するように
変更するのがきれいでしょう。
----
Masato Taruishi <taruis-m@xxxxxxxxxxxxx> | University of Electro Comunications
<taru@debian.or.jp> | Department of Computer Science
<taru@xxxxxxxxxxxxx> | Junior
<taru@debian.org> | Chofu City Tokyo, JAPAN
Key fingerprint = 49 46 74 E1 8D D1 EB 56 8D CA 2A 20 14 9E A9 25