Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Elisamuel Resto (124605985d4747abf870c714df5b951ecb8c6237)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Elisamuel Resto <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Elisamuel Resto (124605985d4747abf870c714df5b951ecb8c6237)
  • Date: Mon, 9 Jun 2008 18:41:12 -0500

GIT changes to master grimoire by Elisamuel Resto <ryuji AT sourcemage.org>:

utils/coreutils/DETAILS | 1
utils/coreutils/HISTORY | 5 +
utils/coreutils/PRE_BUILD | 3
utils/coreutils/coreutils-utimens.patch | 113
++++++++++++++++++++++++++++++++
4 files changed, 122 insertions(+)

New commits:
commit 124605985d4747abf870c714df5b951ecb8c6237
Author: Elisamuel Resto <ryuji AT sourcemage.org>
Commit: Elisamuel Resto <ryuji AT sourcemage.org>

utils/coreutils: Adding a patch that fixes the use of utimens on certain
conditions (bug #14538)

diff --git a/utils/coreutils/DETAILS b/utils/coreutils/DETAILS
index 89bb5eb..5a3c23f 100755
--- a/utils/coreutils/DETAILS
+++ b/utils/coreutils/DETAILS
@@ -1,5 +1,6 @@
SPELL=coreutils
VERSION=6.12
+ PATCHLEVEL=1
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE2=$SOURCE.sig
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
diff --git a/utils/coreutils/HISTORY b/utils/coreutils/HISTORY
index afdbb50..8e1a4f6 100644
--- a/utils/coreutils/HISTORY
+++ b/utils/coreutils/HISTORY
@@ -1,3 +1,8 @@
+2008-06-08 Elisamuel Resto <ryuji AT sourcemage.org>
+ * DETAILS: PATCHLEVEL=1
+ * PRE_BUILD, coreutils-utimens.patch: patch that fixes the use of
+ utimens on certain conditions (bug #14538)
+
2008-06-02 Vlad Glagolev <stealth AT sourcemage.org>
* DETAILS: updated spell to 6.12

diff --git a/utils/coreutils/PRE_BUILD b/utils/coreutils/PRE_BUILD
new file mode 100755
index 0000000..739739a
--- /dev/null
+++ b/utils/coreutils/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&
+patch -p1 < ${SPELL_DIRECTORY}/coreutils-utimens.patch
diff --git a/utils/coreutils/coreutils-utimens.patch
b/utils/coreutils/coreutils-utimens.patch
new file mode 100644
index 0000000..4cdcc86
--- /dev/null
+++ b/utils/coreutils/coreutils-utimens.patch
@@ -0,0 +1,113 @@
+--- a/lib/utimens.c 2008-05-29 09:21:57.000000000 -0400
++++ b/lib/utimens.c 2008-06-07 11:36:50.000000000 -0400
+@@ -96,20 +96,42 @@
+ #endif
+
+ /* POSIX 200x added two interfaces to set file timestamps with
+- nanosecond resolution. */
++ nanosecond resolution. We provide a fallback for ENOSYS (for
++ example, compiling against Linux 2.6.25 kernel headers and glibc
++ 2.7, but running on Linux 2.6.18 kernel). */
+ #if HAVE_UTIMENSAT
+ if (fd < 0)
+- return utimensat (AT_FDCWD, file, timespec, 0);
++ {
++ int result = utimensat (AT_FDCWD, file, timespec, 0);
++#ifdef __linux__
++ /* Work around what might be a kernel bug:
++ http://bugzilla.redhat.com/442352
++ http://bugzilla.redhat.com/449910
++ It appears that utimensat can mistakenly return 280 rather
++ than 0 to indicate success.
++ FIXME: remove in 2010 or whenever the offending kernels
++ are no longer in common use. */
++ if (0 < result)
++ result = 0;
++#endif
++
++ if (result == 0 || errno != ENOSYS)
++ return result;
++ }
+ #endif
+ #if HAVE_FUTIMENS
+- return futimens (fd, timespec);
+-#else
++ {
++ int result = futimens (fd, timespec);
++ if (result == 0 || errno != ENOSYS)
++ return result;
++ }
++#endif
+
+ /* The platform lacks an interface to set file timestamps with
+ nanosecond resolution, so do the best we can, discarding any
+ fractional part of the timestamp. */
+ {
+-# if HAVE_FUTIMESAT || HAVE_WORKING_UTIMES
++#if HAVE_FUTIMESAT || HAVE_WORKING_UTIMES
+ struct timeval timeval[2];
+ struct timeval const *t;
+ if (timespec)
+@@ -125,9 +147,9 @@
+
+ if (fd < 0)
+ {
+-# if HAVE_FUTIMESAT
++# if HAVE_FUTIMESAT
+ return futimesat (AT_FDCWD, file, t);
+-# endif
++# endif
+ }
+ else
+ {
+@@ -141,21 +163,21 @@
+ worth optimizing, and who knows what other messed-up systems
+ are out there? So play it safe and fall back on the code
+ below. */
+-# if HAVE_FUTIMESAT
++# if HAVE_FUTIMESAT
+ if (futimesat (fd, NULL, t) == 0)
+ return 0;
+-# elif HAVE_FUTIMES
++# elif HAVE_FUTIMES
+ if (futimes (fd, t) == 0)
+ return 0;
+-# endif
++# endif
+ }
+-# endif /* HAVE_FUTIMESAT || HAVE_WORKING_UTIMES */
++#endif /* HAVE_FUTIMESAT || HAVE_WORKING_UTIMES */
+
+ if (!file)
+ {
+-# if ! (HAVE_FUTIMESAT || (HAVE_WORKING_UTIMES && HAVE_FUTIMES))
++#if ! (HAVE_FUTIMESAT || (HAVE_WORKING_UTIMES && HAVE_FUTIMES))
+ errno = ENOSYS;
+-# endif
++#endif
+
+ /* Prefer EBADF to ENOSYS if both error numbers apply. */
+ if (errno == ENOSYS)
+@@ -170,9 +192,9 @@
+ return -1;
+ }
+
+-# if HAVE_WORKING_UTIMES
++#if HAVE_WORKING_UTIMES
+ return utimes (file, t);
+-# else
++#else
+ {
+ struct utimbuf utimbuf;
+ struct utimbuf const *ut;
+@@ -187,9 +209,8 @@
+
+ return utime (file, ut);
+ }
+-# endif /* !HAVE_WORKING_UTIMES */
++#endif /* !HAVE_WORKING_UTIMES */
+ }
+-#endif /* !HAVE_FUTIMENS */
+ }
+
+ /* Set the access and modification time stamps of FILE to be



  • [SM-Commit] GIT changes to master grimoire by Elisamuel Resto (124605985d4747abf870c714df5b951ecb8c6237), Elisamuel Resto, 06/09/2008

Archive powered by MHonArc 2.6.24.

Top of Page