[Momonga-devel.ja:02587] Re: rpm4.2.1への移行手順について
- From: Kazuhiko <kazuhiko@xxxxxxxxxx>
- Date: Sat, 05 Jun 2004 21:27:19 +0900
At Sat, 05 Jun 2004 17:17:54 +0900,
Kazuhiko wrote:
> この件の理由は、/usr/bin/mph-get-remove の
> 101 while ret = remove(localdb,remove_packages) do
> 102 ret.each do |dep|
> 103 remove_packages[dep.owner.signature] = dep.owner
> 104 end
> 105 end
> の部分で、dep.owner と dep.owner.signature の組合せが、
かなり問題箇所がしぼれてきました (が、解決していません)。
> gtkam-gimp-0.1.10-10m <22175>
> gimp-pygimp-2.0.1-1m <22175>
> (snip)
> kdesdk-3.2.2-1m <22175>
> gimp-help-2.0.1-1m <22175>
>
> のように、なぜか dep.owner が異なっても同じ値になってしまっている
これは、ext/rpm/package.c の
448 char *sigmd5;
449 sigmd5 = headerSprintf(RPM_HEADER(pkg),"%{sigmd5}",
450 rpmTagTable, rpmHeaderFormats, NULL);
で、sigmd5 が "(null)" という値になってしまうからです。(何故?)
まあ、/usr/bin/mph-get-remove の '.signature' を '.to_s' に変えたら (つ
まり、'name-version-release' をハッシュのキーにすると)、一応 mph-get
remove hoge で、hoge を「直接」 Require するものは出てくるようになります。
が、「hoge を Require するもの」を Require するもの、が出て来ません。こ
れは、/usr/bin/mph-get-remove の
101 while ret = remove(localdb,remove_packages) do
102 ret.each do |dep|
103 remove_packages[dep.owner.signature] = dep.owner
104 end
105 end
で、remove() が二回目に呼ばれたときに nil を返してしまっているからです。
(何故?)
とりあえず現状報告まで...
--
かずひこ <http://wiki.fdiary.net/kazuhiko/>
★シャア「名字が付いてない」
☆一兵卒「あんなの飾りです。偉い人にはそれが分からんのです」