public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Brian Harring <ferringb@gmail.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] mtime preservation
Date: Mon, 23 Nov 2009 15:19:00 -0800	[thread overview]
Message-ID: <20091123231900.GA6085@hrair> (raw)
In-Reply-To: <7c612fc60911231049n4a51ddb0u30ae72d8ed93cdec@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3913 bytes --]

On Mon, Nov 23, 2009 at 11:49:25AM -0700, Denis Dupeyron wrote:
> 2- Here's the second idea, shamelessly pasted (note that it says EAPI4
> below instead of EAPI3 but this is irrelevant to the idea):
> 
> "Thus, I would let EAPI 4 ebuilds call dopreservemtimes (with an API
> similar to docompress) in both src_install and pkg_preinst. Doing so
> would instruct the package manager that it must preserve mtimes
> (including subsecond, if supported on the filesystem) for a particular
> set of paths, even if doing so means no stripping etc. All other mtimes
> may be rewritten as the package manager sees fit, and from EAPI 4
> onwards must be rewritten at merge time for anything predating the
> start of the build."

Someone mind explaining to me why we're making mtime preservation so 
nasty?  Having to enumerate every pathway that requires mtime 
preservation is pretty arduous for the ebuild dev, meaning it's 
unlikely they'll get it right, leading to bugs.

The thing I'm not understanding here is that pkgcore since day one has 
preserved mtime- I've yet to see any complaints about that nor any 
issues caused by it.  Portage shifted over a year or two back, same 
thing, haven't heard complaints.

The thing that's bugging me about this whole discussion is that we're 
spending more time focusing on stupid things the manager could do to 
(basically intentionally) screw up the mtime preservation.

I know it won't fly, but realistically stating "the package manager 
must preserve mtime- if there are instances where it does not (due to 
some feature, perhaps splitdebug or some form of compression) it is 
the package managers responsibility to ensure this does not break the 
ebuilds resultant merge/runtime invocation".

Via such wording an exemption is created and it's made clear it's the 
managers responsibility to keep things playing nice... if the manager 
can't do that, then the feature/functionality that is changing the 
mtime (resulting in the pkg on disk failing) must be fixed or 
disabled.

The nice thing about this wording is that it basically matches what 
the case is now, and what has worked for quite a few years.


> In both cases nanosecond resolution may be required and is a problem
> due to python. The following workaround can be used until the
> nanosecond issue is fixed in python:

It'd be nice if someone enumerated merge scenarios where nanosecond 
resolution is actually required.  Seems like a white elephant to me, 
especially in combination w/ the fact that the target fs may not 
support nanosecond.

Basically, if it's required the manager support nanosecond resolution 
for merging, ebuilds must be able to rely on that- end result, any 
merging to FS's that do not support nanosecond (this includes the 
intermediate ${D}) are no longer supported.  Unless I'm missing 
something, iso-9660 doesn't look to support nanosecond resolution.  
Beyond that, does cramfs/squashfs?  If not, taking this to the 
logical conclusion the livecds aren't technically supported as a merge 
environment.

Essentially If we're going to require the manager support NS 
resolution w/out requiring all FS's involved support NS level 
resolution, in reality ebuilds can't rely on NS level resolution.  

Thus drop the requirement since we gain nothing from it- if it's not a 
gurantee ebuilds can rely on then they should be writing to the lowest 
common denominator- second level resolution.  That may sound heinous, 
but it's also being realistic.


> "Alternatively, we could simply make portage spawn the mv binary
> whenever rename fails (it fails when the source and destination are
> on different devices). Although it's relatively slow, it should
> solve the problem."

Yeah... no.  Slowing down the main manager for a thereotical edge case 
doesn't seem particularly useful to me ;)

~harring

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

  parent reply	other threads:[~2009-11-24  0:25 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <19184.25176.380022.392451@a1i15.kph.uni-mainz.de>
     [not found] ` <19186.42949.760878.199957@a1i15.kph.uni-mainz.de>
     [not found]   ` <20091108191439.3fcee79d@snowcone>
     [not found]     ` <7c612fc60911090718y144319f5lc9827a5e2e153c2@mail.gmail.com>
     [not found]       ` <20091109153429.502e272f@snowcone>
     [not found]         ` <19193.4389.637969.727075@a1i15.kph.uni-mainz.de>
     [not found]           ` <20091119221248.539eedd9@snowmobile>
     [not found]             ` <7c612fc60911191614h5e37c849y50ad217a828fa744@mail.gmail.com>
     [not found]               ` <20091120001820.7274bdf7@snowmobile>
     [not found]                 ` <4B07362D.2010108@gentoo.org>
2009-11-23 18:49                   ` [gentoo-dev] mtime preservation Denis Dupeyron
2009-11-23 20:39                     ` Zac Medico
2009-11-23 23:19                     ` Brian Harring [this message]
2009-11-24 14:26                       ` [gentoo-dev] " Duncan
2009-11-24 22:21                       ` [gentoo-dev] " Ciaran McCreesh
2009-11-26  1:28                         ` Brian Harring
2009-11-26 12:41                           ` David Leverton
2009-11-26 13:21                             ` Brian Harring
2009-11-26 18:22                               ` David Leverton
2009-11-26 15:15                           ` Ciaran McCreesh
2009-11-25 21:13                     ` [gentoo-dev] " Denis Dupeyron
2009-11-25 21:27                       ` Ciaran McCreesh
2009-11-25 21:52                         ` Duncan
2009-11-25 22:13                           ` Ciaran McCreesh
2009-11-25 22:59                             ` [gentoo-dev] " Ulrich Mueller
2009-11-26  0:15                               ` Ciaran McCreesh
2009-11-26  0:49                                 ` Zac Medico
2009-11-26  1:14                                   ` Brian Harring
2009-11-26  5:26                                     ` Zac Medico
2009-11-26  5:33                                       ` [gentoo-dev] " Duncan
2009-11-26  5:35                                       ` [gentoo-dev] " Brian Harring
2009-11-26  5:30                                     ` [gentoo-dev] " Duncan
2009-11-26 12:35                                     ` [gentoo-dev] " David Leverton
2009-11-26 12:40                                       ` [gentoo-dev] " Duncan
2009-11-26 21:55                                         ` Zac Medico
2009-11-26 13:31                                       ` [gentoo-dev] " Brian Harring
2009-11-26 15:24                                     ` Ciaran McCreesh
2009-11-26  7:59                                   ` Ulrich Mueller
2009-11-26  9:07                                     ` Ulrich Mueller
2009-11-26  9:54                                     ` Łukasz Michalik
2009-11-26 11:47                                       ` Ulrich Mueller
2009-11-26 15:27                                     ` Ciaran McCreesh
2009-11-26 15:21                                   ` Ciaran McCreesh
2009-11-26  7:51                                 ` Ulrich Mueller
2009-11-26  5:07                               ` [gentoo-dev] " Duncan
2009-11-26  5:04                             ` Duncan
2009-11-28 20:57                               ` Peter Hjalmarsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091123231900.GA6085@hrair \
    --to=ferringb@gmail.com \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox