[Momonga-devel.ja:00092] Re: mph-get problem?


かずひこです。

At Sun, 07 Jul 2002 01:09:27 +0900,
Kazuhiko wrote:

> > rpm の vercmp 関数も同様の判断を下していますが、これは要するに
> > 2桁の36進数同士の比較と考えれば理解は簡単ですよね。2桁目が 4 >
> > 1 だから1桁目がどうなっていようと 4k > 1m になります。すごく普
> > 通な事だと思います。
> 
> 結局、↑という「すごく普通」な実装にしました。
> 
> def m_relcmp( sFirst, sSecond )
>   #
>   # m_relcmp: 'releace' compare module
>   #
>   # sFirst > sSecond : 1
>   # sFirst = sSecond : 0
>   # sFirst < sSecond : -1
>   # sFirst != sSecond : nil
>   return sFirst <=> sSecond
> end

これだと、9m > 10m となってしまい、リリース番号の桁が増えた時に upgrade
できない、というとんでもないバグがありました。

で、結局このあたりの仕様は独自で実装せずに、よくもわるくも rpm の仕様に
合わせることにしました。

def m_relcmp( sFirst, sSecond )
  #
  # m_relcmp: 'releace' compare module
  #
  # sFirst > sSecond : 1
  # sFirst = sSecond : 0
  # sFirst < sSecond : -1
  return RPM.vercmp(sFirst, sSecond) <=> 0
end

これまたあっさりとした実装です。

> 肝心の mph 自身は、もちろん release ではなく version を上げていますので
> ご安心を。 :p

もちろん今回もこうなっています。ご安心を。