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