[Momonga-devel.ja:00092] Re: mph-get problem?
- From: Kazuhiko <kazuhiko@xxxxxxxxxx>
- Date: Sat, 13 Jul 2002 22:06:01 +0900
かずひこです。
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
もちろん今回もこうなっています。ご安心を。