From: Fabian Groffen Date: Fri, 18 Dec 2009 08:24:01 +0000 (-0000) Subject: Merged from trunk -r15044:15048 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=3f1f6f62787b104057d566faf54a80b41812da80;p=portage.git Merged from trunk -r15044:15048 | 15045 | Fix typo. | | arfrever | | | 15046 | In movefile mtime rounding code, generate nanosecond | | zmedico | resolution (9 decimal places) in order to ensure that the | | | floating point representation is the highest value possible | | | without rounding up. | | 15047 | Fix typo. | | zmedico | | | 15048 | * Fix type in econf --host argument. * Add missing econf | | zmedico | --build and --target arguments. * Use tabs instead of | | | spaces for indentation. | svn path=/main/branches/prefix/; revision=15114 --- diff --git a/doc/package/ebuild/eapi/3.docbook b/doc/package/ebuild/eapi/3.docbook index 7bab213bb..4665b0955 100644 --- a/doc/package/ebuild/eapi/3.docbook +++ b/doc/package/ebuild/eapi/3.docbook @@ -24,15 +24,17 @@ when appropriate. For example, see econf and einstall below. econf ${ECONF_SOURCE:-.}/configure \ - --prefix="${EPREFIX}"/usr \ - --host="${EPREFIX}${CHOST} \ - --mandir="${EPREFIX}"/usr/share/man \ - --infodir="${EPREFIX}"/usr/share/info \ - --datadir="${EPREFIX}"/usr/share \ - --sysconfdir="${EPREFIX}"/etc \ - --localstatedir="${EPREFIX}"/var/lib \ - ${EXTRA_ECONF} \ - configure options || die "econf failed" + ${CBUILD:+--build=${CBUILD}} \ + --datadir="${EPREFIX}"/usr/share \ + --host=${CHOST} \ + --infodir="${EPREFIX}"/usr/share/info \ + --localstatedir="${EPREFIX}"/var/lib \ + --prefix="${EPREFIX}"/usr \ + --mandir="${EPREFIX}"/usr/share/man \ + --sysconfdir="${EPREFIX}"/etc \ + ${CTARGET:+--target=${CTARGET}} \ + ${EXTRA_ECONF} \ + configure options || die "econf failed"
@@ -43,15 +45,15 @@ DESTDIR=${D} rather than ${ED}) is still preferred over einstall. make \ - prefix=${ED}/usr \ - datadir=${ED}/usr/share \ - infodir=${ED}/usr/share/info \ - localstatedir=${ED}/var/lib \ - mandir=${ED}/usr/share/man \ - sysconfdir=${ED}/etc \ - ${EXTRA_EINSTALL} \ - make options \ - install + prefix=${ED}/usr \ + datadir=${ED}/usr/share \ + infodir=${ED}/usr/share/info \ + localstatedir=${ED}/var/lib \ + mandir=${ED}/usr/share/man \ + sysconfdir=${ED}/etc \ + ${EXTRA_EINSTALL} \ + make options \ + install
diff --git a/man/ebuild.5 b/man/ebuild.5 index 44279e3d4..b3521e222 100644 --- a/man/ebuild.5 +++ b/man/ebuild.5 @@ -783,13 +783,15 @@ directory. The function will append \fIsource\fR to the \fBDISTDIR\fR variable. This is used as a replacement for configure. Performs: .nf ${\fIECONF_SOURCE\fR:-.}/configure \\ + ${CBUILD:+\-\-build=${CBUILD}} \\ + \-\-datadir="${EPREFIX}"/usr/share \\ + \-\-host=${CHOST} \\ + \-\-infodir="${EPREFIX}"/usr/share/info \\ + \-\-localstatedir="${EPREFIX}"/var/lib \\ \-\-prefix="${EPREFIX}"/usr \\ - \-\-host="${EPREFIX}${CHOST} \\ \-\-mandir="${EPREFIX}"/usr/share/man \\ - \-\-infodir="${EPREFIX}"/usr/share/info \\ - \-\-datadir="${EPREFIX}"/usr/share \\ \-\-sysconfdir="${EPREFIX}"/etc \\ - \-\-localstatedir="${EPREFIX}"/var/lib \\ + ${CTARGET:+\-\-target=${CTARGET}} \\ \fI${EXTRA_ECONF}\fR \\ \fIconfigure options\fR || die "econf failed" .fi @@ -798,7 +800,7 @@ writers. If you wish to pass more options to configure, just pass the extra arguments to \fBeconf\fR. Also note that \fBeconf\fR automatically calls \fBdie\fR if the configure script fails. Beginning with \fBEAPI 3\fR, \fBeconf\fR uses the \fB${EPREFIX}\fR -variable which is disregared for prior \fBEAPI\fR values. +variable which is disregarded for prior \fBEAPI\fR values. .TP \fBemake\fR \fI[make options]\fR This is used as a replacement for make. Performs 'make ${MAKEOPTS} diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 183ad17fe..925c7e203 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -7683,29 +7683,23 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None, newmtime = sstat.st_mtime else: # Prevent mtime from rounding up to the next second. + # Generate nanosecond resolution (9 decimal places) in + # order to ensure that the floating point representation + # is the highest value possible without rounding up. int_mtime = sstat[stat.ST_MTIME] mtime_str = "%i." % int_mtime - digits = 0 - max_digits = 9 - while digits < max_digits: - if int_mtime == long(float(mtime_str + "9")): - mtime_str += "9" - digits += 1 - else: - if digits < max_digits: - another_digit = None - for i in range(1, 9): - i_str = str(i) - if int_mtime != \ - long(float(mtime_str + i_str)): - break - else: - another_digit = i_str - if another_digit is not None: - mtime_str += another_digit - digits += 1 - break - if digits > 0: + nonzero_digits = 0 + decimal_places = 9 + for i in range(decimal_places): + for digit in range(9, -1, -1): + digit_str = str(digit) + if int_mtime == long(float(mtime_str + digit_str)): + break + if digit > 0: + nonzero_digits += 1 + mtime_str += digit_str + + if nonzero_digits > 0: newmtime = float(mtime_str) else: newmtime = int_mtime