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 --]
next prev 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