[Momonga-devel.ja:02587] Re: rpm4.2.1への移行手順について


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/>
  ★シャア「名字が付いてない」
  ☆一兵卒「あんなの飾りです。偉い人にはそれが分からんのです」