RPM Epochヘッダーには制限がありますか?
質問
RPMは、バージョンの比較が十分でない場合(たとえば2.0a3>など)にバージョンの順序付けを提供するエポックヘッダーをサポートしています。 2.0。エポックが指定されていないパッケージは、いくつかのあいまいな要因に応じて、0または-1のエポックを持つと見なされます。ドキュメントでは、エポックは1から始まり、リリースごとに増分されることを示唆しています。
エポック値にはサイズ制限がありますか? 32ビット以上の値を使用した場合、これは何らかのオーバーフローを引き起こしますか?
解決
これは本当に問題ですか? 2 ^ 32のリリースを得るには長い時間がかかります!とにかく、私はこれをrpmソースで見つけました:
int rpmVersionCompare(Header first, Header second)
{
struct rpmtd_s one, two;
static uint32_t zero = 0;
uint32_t *epochOne = &zero, *epochTwo = &zero;
したがって、64ビットのエポック番号を使用しないでください。 (それ以上のことがあります-それはstruct rpmtd_sを介して読み取られます。これは派手なシュマンシーvoidポインターをたくさん持っていますが、ええ、それはuint32です。)
所属していません StackOverflow