He's not dead, he's resting

Good News Everyone!

Good news everyone! Portage no longer corrupts mtimes when merging, which hopefully means the Council won’t force us to screw up EAPI 3 any more. Now Portage will either exactly preserve mtimes to the degree supported by the filesystem, or drop the nanosecond part to 0 (which some filesystems do anyway, so programs have to be aware of that possibility), which is what the sane people have been after all along.

Next up: see how long it takes everyone to see the light and realise that the package mangler should only be preserving mtimes that are after the start of the build process, so you don’t end up with lots of files with mtimes in the past getting merged.


5 responses to “Good News Everyone!

  1. Jason December 14, 2009 at 10:12 am

    Glad it was done your way(ish). Just read the entire bug. Pretty stubborn, wow. ROT13 made me laugh.

    How does portage implement the full precision sub-second stamp with python’s limitations?

    • Jason December 14, 2009 at 11:27 am

      Answered the question my self: It doesn’t.

      +2009-12-12 18:37 zmedico
      + * [r15054] pym/portage/ In movefile mtime preservation
      + code, simply round down to the nearest whole second since
      + python’s float cannot preserve the st_mtim.tv_nsec field with
      + complete precision. Note that we have to use
      + stat_obj[stat.ST_MTIME] here because the float stat_obj.st_mtime
      + rounds *up* sometimes.

    • Nasarius December 19, 2009 at 6:35 pm

      For the sake of idle speculation/suggestion, it’s quite easy to write a C module that’s callable from Python. I don’t remember if there are any compiled bits of Portage, but “Python doesn’t support it natively” really isn’t a valid excuse when it’s something as simple as this.

  2. Mike Lothian December 14, 2009 at 2:43 pm

    You sound like Professor Farnsworth when you say “Good News Everyone!”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s