public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Ciaran McCreesh <ciaran.mccreesh@googlemail.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] mtime preservation
Date: Tue, 24 Nov 2009 22:21:06 +0000	[thread overview]
Message-ID: <20091124222106.7984b750@snowcone> (raw)
In-Reply-To: <20091123231900.GA6085@hrair>

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

On Mon, 23 Nov 2009 15:19:00 -0800
Brian Harring <ferringb@gmail.com> wrote:
> 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.

It's not in the least bit nasty. It's requiring people to be explicit
about special requirements.

> 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.

You can't have been listening very hard, then. The complaint is that it
results in files with dumb mtimes being merged to /.

> 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.

Wording such as that just isn't suitable for a specification. It
requires implementers to guess what future ebuilds are going to
rely upon (and ebuilds regularly do rely upon weird quirks), and makes
it impossible to produce a package manager that can be shown to be
compliant.

> > 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.

POSIX considers several of the non-nanosecond resolution calls to be
deprecated. Going "la la la I can't hear you!" because Python happens
to have utterly screwed this up is just going to lead to problems when
programs start using sub-second validity checks -- 'make' already does,
and it's given rise to various build-directory-related issues.

> 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.

No, we're after a requirement that the package manager must not screw up
nanosecond-resolution timestamps, and must not partially preserve and
partially not preserve them.

> > "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 ;)

...or you could just fix Python.

-- 
Ciaran McCreesh

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

  parent reply	other threads:[~2009-11-25  0:17 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
2009-11-24 14:26                       ` [gentoo-dev] " Duncan
2009-11-24 22:21                       ` Ciaran McCreesh [this message]
2009-11-26  1:28                         ` [gentoo-dev] " 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=20091124222106.7984b750@snowcone \
    --to=ciaran.mccreesh@googlemail.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