Ciaran McCreesh posted on Wed, 25 Nov 2009 21:27:18 +0000 as excerpted:
> Portage uses two ways of merging a file: os.rename() and the manual way.
>
> os.rename() correctly preserves mtimes.
>
> Python's os.utime call, which is what Portage uses to preserve mtimes
> for files that it installs the hard way, and which is not a wrapper for
> the Unix utime call, uses an IEEE 754 double to handle timestamps. But a
> double only gives sixteen accurate decimal digits, and you've got ten to
> the left of the decimal point, leaving only six reliably preserved, with
> the remaining three digits being corrupted.
>
> Thus, packages can end up being installed with some files having
> accurately-preserved mtimes, and some having corrupted mtimes, which
> will lead to mtime comparisons giving incorrect results.
That's a great explanation (thanks, I now know the details to the degree
I'd be interested), but what was asked for was examples of breakage, aka
actual bugs. I seem to remember either you or someone else mentioning
that there had been a couple issues already, and I'll take the claim at
face value, but actual bug numbers would be nice. =:^)
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
|