太田です。

試して頂きありがとうございます。

On Fri, 20 Jul 2007 16:25:43 +0900
"Dobashi.M" 
<[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]> 
wrote:

> At Mon, 16 Jul 2007 01:08:00 -0400,
> Yoshihiro Ota wrote:
> > gports 第四段
> > http://uyota.asablo.jp/blog/2007/07/15/1655197
> 
> 6.1から 6.2-p6にアップしたところでしたので、portsを更新
> (tag=RELEASE_6_2_0 そして make index 済)後、試してみました。
> 
> # gmake f2c
> gawk -F\| 'BEGIN{ports_base = length("/usr/ports/") + 1}\
>   {printf("%s|%s|%s\n", $1, substr($2, ports_base), $9)}\
>   ' /usr/ports//INDEX-6 > index.list
> ldconfig -r | awk '/=>/ && $NF !~ /compat/{print $NF}' > dynamic.list
> gawk -vsolib=dynamic.list 'BEGIN{origin_len = length("ORIGIN:") + 1;\
> ...
> (cd /usr/ports/lang/f2c &&  echo f2c-3.0.0 to f2c-20060506 &&  MAKEFLAGS="" 
> make build &&
> ( (cd /root/gports/ && pkg_create -b f2c-3.0.0.tar ) && ((MAKEFLAGS="" make 
> deinstall reinstall
> && sed -i.gports -e "/pkgdep/s^f2c-3.0.0^f2c-20060506^g" 
> /var/db/pkg/*-*/+CONTENTS) || pkg_add
> -f /root/gports/f2c-3.0.0.tar ))) f2c-3.0.0 to f2c-20060506 ===>  
> Vulnerability check disabled,
> database not found => f2c.tar doesn't seem to exist in 
> /usr/ports/distfiles/f2c-20060506. =>
> Attempting to fetch from 
> ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/distfiles/f2c-20060506/. ...
> 
> で完了しました。

これは、正しくインストールと受け取ってよろしいのでしょうか。

> /var/db/pkg/f2c-20060506 の
> +CONTENTS.gports
> ...
> @pkgdep f2c-3.0.0
> 
> +CONTENTS
> ...
> @pkgdep f2c-20060506
> 
> と、変更されています。

+CONTENTS.gports は sed を使って +CONTENTS を更新するときに作られる
バックアップファイルです。次に公開するバージョンでは gmake clean で削除
出来るようにします。

/var/db/pkg/f2c-20060506/+CONTENTS には、
@pkgdep f2c-20060506
ではなく、
@name fc2-20060506
があるべきだと思います。もう一度、点検して頂けないでしょうか。

> ただ +REQUIRED_BY が(無い?)あったと思うのですが、f77-0.3の +CONTENTS も
> @pkgdep f2c-20060506 と変更されていますが...

+REQUIRED_BY の存在は見落としていました。
今のところ全く処理していません。

> また
> # gmake xpdf
> (cd /usr/ports/chinese/xpdf && MAKEFLAGS="" make install)
> ===>  Vulnerability check disabled, database not found
> => xpdf-chinese-simplified-2004-jul-27.tar.gz doesn't seem to exist in 
> /usr/ports/distfiles/.
> ...
> 
> chinese版を更新しようとするみたいです...(ja-xpdf-3.00_2 &
> xpdf-3.01_2 を使用中)

この様なケースはありそうな気がしていたのですが、手元ではうまく見つけられませんでした。
こちらは、デザインを含めて、再検討する必要があるので、修正が少し難しくなるので、
後回しになるかと思います。

% echo /usr/ports/*/xpdf
/usr/ports/chinese/xpdf /usr/ports/graphics/xpdf
/usr/ports/japanese/xpdf /usr/ports/korean/xpdf

xpdf はエリアス名なのですが、中国語版が一番最初に INDEX の中に書かれていたため、
起きたようです。


> # gmake /var/db/pkg/xpdf-3.01_2 (とすると)
> gmake: `/var/db/pkg/xpdf-3.01_2' に対して行うべき事はありません。
> 
> しかし Makefileでは
> PORTNAME=       xpdf
> PORTVERSION=    3.01
> PORTREVISION=   3

現在の実装ですと、
# gmake /var/db/pkg/xpdf-3.01_3
と指定することになります。

# gmake /var/db/pkg/xpdf-3.01_2
は make に /var/db/pkg/xpdf-3.01_2 というファイルを作れと命令します。
しかし、ファイルは既に存在しているので、make は何もすることが無いと判断します。

確かに、これでは一つずつバージョンを調べないと更新できなくなってしまうので、
面倒ではあります。make 一般の特性上、回避が少々難しそうですが、試してみます。

修正が出来たら、報告します。

太田

メールによる返信