[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:14388] Re: dgs
反応が遅くなってすみません。
佐野@浜松です。
In <87y9q58srl.wl@xxxxxxxxxxxxxxxxxxxx>,
on "Wed, 4 Jul 2001 09:03:47 +0900",
Ryuichi Arafune <arafune@debian.org> さん wrote:
> >>>>> In [debian-devel : No.14356]
> >>>>> Taketoshi Sano <kgh12351@xxxxxxxxxxx> wrote:
> T.S.> 佐野@浜松です。
>
> T.S.> P.S.
> T.S.> 荒船さん、dgs の件 (Bug #100972) は解決できそうですか ?
>
> すいません。本業が忙がしく対処できていません。
> 主な理由
> 1) dgs は現在 potato にしかない(はず) → woody 以降は削除した。
> 2) woody 環境では現在(なぜか) build できない。
> 3) 手元に potato 環境が無い。
> もちろん、あらたにpotato環境を作りだしてやるってのも手なんですが、
> ちょっと時間がありません。 佐野さんの方で時間があったらNMUして
> いただけると、私としては非常にありがたく思います。
まだ NMU できるような状況ではない (bug の修正まではしていない)
のですが、とりあえず i386 な woody 環境で dgs_0.5.9.1+000216-6 を
build できるようにはなりました。
エラーのログを script で取ってみると、
(これは new upstream の 0.5.10 を make した時のログですが、
エラーの内容は同様でした)
gcc `cat ./obj/cc.tr` -DDISPLAYGHOSTSCRIPT -DVERSION=\"0.5.10\" -DGS_VERSION=\"5
.50\" -O2 -Wall -Wcast-align -Wstrict-prototypes -Wwrite-strings -fno-common -g
-O2 -DHAVE_TCPD_H -DHAVE_SYSLOG_H -I. -I./obj -I. -I./obj -o ./obj/zdevcal.o -c
./zdevcal.c
./zdevcal.c: In function `calendar_get_params':
./zdevcal.c:52: storage size of `ltime' isn't known
./zdevcal.c:54: dereferencing pointer to incomplete type
./zdevcal.c:54: initializer element is not constant
./zdevcal.c:54: (near initialization for `items[0].offset')
となっており、該当する部分のコードは
/* Get the date and time. */
private int
calendar_get_params(gx_io_device * iodev, gs_param_list * plist)
{
int code;
time_t t;
struct tm *pltime;
struct tm ltime;
static const gs_param_item_t items[] = {
{"Year", gs_param_type_int, offset_of(struct tm, tm_year)},
{"Month", gs_param_type_int, offset_of(struct tm, tm_mon)},
{"Day", gs_param_type_int, offset_of(struct tm, tm_mday)},
{"Weekday", gs_param_type_int, offset_of(struct tm, tm_wday)},
{"Hour", gs_param_type_int, offset_of(struct tm, tm_hour)},
{"Minute", gs_param_type_int, offset_of(struct tm, tm_min)},
{"Second", gs_param_type_int, offset_of(struct tm, tm_sec)},
gs_param_item_end
};
こんな感じ。つまり struct tm が認識されていない現象。これはわりと
最近 (といっても 1 ヶ月やそこら前 ?) に time 関連の関数を使う場合
sys/time.h の include だけでは NG で time.h の include が必須に
なったという話 (fdclone とか、あと他にもこれで bug report もらった
ことがあったな) に関係しそうだな、と思ってこのファイルから include
されている time_.h を見てみるとやはり
/*
* Some System V environments don't include sys/time.h.
* The HAVE_SYS_TIME_H switch in gconfig_.h reflects this.
*/
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# if defined(Plan9) || defined(M_UNIX) || defined(_IBMR2) || defined(_SEQUENT_)
/* Plan 9, SCO, AIX and Sequent's DYNIX/ptx need both time.h and sys/time.h! */
# include <time.h>
# endif
#else
# include <time.h>
# ifndef __DECC
struct timeval {
long tv_sec, tv_usec;
};
# endif
となっていて Linux の場合には time.h が include されない。
なので、とりあえずここを
/*
* Some System V environments don't include sys/time.h.
* The HAVE_SYS_TIME_H switch in gconfig_.h reflects this.
*/
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# if defined(linux) || defined(Plan9) || defined(M_UNIX) || defined(_IBMR2) ||
defined(_SEQUENT_) /* Linux (glibc2.2), Plan 9, SCO, AIX and Sequent's DYNIX/ptx need both time.h and sys/time.h! */
# include <time.h>
# endif
#else
# include <time.h>
# ifndef __DECC
struct timeval {
long tv_sec, tv_usec;
};
# endif
として linux な環境でも time.h を include させるようにすると
(従来は sys/time.h から time.h を include していたので
昔の環境でも特に問題は起きないはず)
ひとまず
dgs_0.5.9.1+000216-6_i386.deb
dpsclient-demos_0.5.9.1+000216-6_i386.deb
dpsclient-dev_0.5.9.1+000216-6_i386.deb
dpsclient_0.5.9.1+000216-6_i386.deb
を手元の woody 環境で build できました。
それはいいのですが Build-Depends が無いとか、lintian にかけると
いろいろと警告が出ますね。
ところで「woody 以降は削除した」というのは、woody 以降では
dgs は不要になったということですか ? ちょっと調べた範囲では
代替になるパッケージが見つからなかったような気がするんですが。
もし sid/woody にも必要、という話なら、unstable への NMU に
ついては検討してみます。
sgmltools-lite を更新セヨ! という指令が aph 方面から出ているので
そっちの bug fix もしないといけないので週末はそちらの作業を予定
しているのですが、もし時間が取れたら dgs のほうも見てみようかと
思います。
あと yatex の wishlist 来てたな、、、 いっそ上川さん yatex を
adopt しませんか ? 養ってもらえるならお譲りしますけど。
他にも extipl と fdclone の new upstream release 追随や
ncurses-base の linux entry への bug report も宿題になってたり。
うーん、いまちょっと dgs のコード見てみましたけど、
サブディレクトリ gs/ の Makefile はそのまま使うみたいだから、
直接これを debian diff でいじってしまってもいいんじゃないかな。
こいつの
datadir = ${prefix}/share
gsdir = $(datadir)/ghostscript
となっているところを、例えば
gsdir = $(daradir)/dgs
とかしてしまえば (あるいは gsdir = $(datadir)/dgs/ghostscript とか)
他のパッケージと干渉しなくなっていいんじゃないかな、とか。
まだ試してませんが。
(今日はもう寝ます。明日も仕事だし。)
--
# (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
<kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)