From 43ba2af621b8d35313bc98c75fbf9c477e3fe158 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 2 Feb 2009 12:44:38 +0000 Subject: * debian/patches/stat-fix.patch: New patch, fixes some timestamp issues. --- debian/patches/stat-fix.patch | 163 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 debian/patches/stat-fix.patch (limited to 'debian/patches/stat-fix.patch') diff --git a/debian/patches/stat-fix.patch b/debian/patches/stat-fix.patch new file mode 100644 index 00000000..74a4c131 --- /dev/null +++ b/debian/patches/stat-fix.patch @@ -0,0 +1,163 @@ +Index: libftpconn/unix.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/libftpconn/unix.c,v +retrieving revision 1.12 +diff -u -p -r1.12 unix.c +--- libftpconn/unix.c 19 Oct 2002 20:11:14 -0000 1.12 ++++ libftpconn/unix.c 2 Feb 2009 01:36:56 -0000 +@@ -510,12 +510,13 @@ drwxrwxrwt 7 34 archive 51 + else + tm.tm_year = PARSE_INT () - 1900; + +- stat->st_mtime = mktime (&tm); +- if (stat->st_mtime == (time_t)-1) ++ stat->st_mtim.tv_sec = mktime (&tm); ++ if (stat->st_mtim.tv_sec == (time_t)-1) + return EGRATUITOUS; + + /* atime and ctime are the same as mtime. */ +- stat->st_atime = stat->st_ctime = stat->st_mtime; ++ stat->st_atim.tv_sec = stat->st_ctim.tv_sec = stat->st_mtim.tv_sec; ++ stat->st_atim.tv_nsec = stat->st_ctim.tv_nsec = stat->st_mtim.tv_nsec = 0; + + /* Update *LINE to point to the filename. */ + SKIP_WS (); +Index: tmpfs/tmpfs.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/tmpfs/tmpfs.c,v +retrieving revision 1.16 +diff -u -p -r1.16 tmpfs.c +--- tmpfs/tmpfs.c 20 Mar 2005 02:21:31 -0000 1.16 ++++ tmpfs/tmpfs.c 2 Feb 2009 01:36:56 -0000 +@@ -355,9 +355,9 @@ main (int argc, char **argv) + diskfs_root_node->dn_stat.st_uid = st.st_uid; + diskfs_root_node->dn_stat.st_author = st.st_author; + diskfs_root_node->dn_stat.st_gid = st.st_gid; +- diskfs_root_node->dn_stat.st_atime = st.st_atime; +- diskfs_root_node->dn_stat.st_mtime = st.st_mtime; +- diskfs_root_node->dn_stat.st_ctime = st.st_ctime; ++ diskfs_root_node->dn_stat.st_atim = st.st_atim; ++ diskfs_root_node->dn_stat.st_mtim = st.st_mtim; ++ diskfs_root_node->dn_stat.st_ctim = st.st_ctim; + diskfs_root_node->dn_stat.st_flags = st.st_flags; + } + diskfs_root_node->dn_stat.st_mode &= ~S_ITRANS; +Index: tmpfs/tmpfs.h +=================================================================== +RCS file: /cvsroot/hurd/hurd/tmpfs/tmpfs.h,v +retrieving revision 1.2 +diff -u -p -r1.2 tmpfs.h +--- tmpfs/tmpfs.h 30 Dec 2000 19:11:29 -0000 1.2 ++++ tmpfs/tmpfs.h 2 Feb 2009 01:36:56 -0000 +@@ -35,7 +35,7 @@ struct disknode + nlink_t nlink; + uid_t uid, author; + gid_t gid; +- time_t atime, mtime, ctime; ++ struct timespec atime, mtime, ctime; + unsigned int flags; + + char *trans; +Index: tmpfs/node.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/tmpfs/node.c,v +retrieving revision 1.12 +diff -u -p -r1.12 node.c +--- tmpfs/node.c 11 Jun 2002 21:40:50 -0000 1.12 ++++ tmpfs/node.c 2 Feb 2009 01:36:56 -0000 +@@ -96,9 +96,9 @@ diskfs_node_norefs (struct node *np) + np->dn->uid = np->dn_stat.st_uid; + np->dn->author = np->dn_stat.st_author; + np->dn->gid = np->dn_stat.st_gid; +- np->dn->atime = np->dn_stat.st_atime; +- np->dn->mtime = np->dn_stat.st_mtime; +- np->dn->ctime = np->dn_stat.st_ctime; ++ np->dn->atime = np->dn_stat.st_atim; ++ np->dn->mtime = np->dn_stat.st_mtim; ++ np->dn->ctime = np->dn_stat.st_ctim; + np->dn->flags = np->dn_stat.st_flags; + + switch (np->dn->type) +@@ -200,9 +200,9 @@ diskfs_cached_lookup (ino_t inum, struct + st->st_uid = dn->uid; + st->st_author = dn->author; + st->st_gid = dn->gid; +- st->st_atime = dn->atime; +- st->st_mtime = dn->mtime; +- st->st_ctime = dn->ctime; ++ st->st_atim = dn->atime; ++ st->st_mtim = dn->mtime; ++ st->st_ctim = dn->ctime; + st->st_flags = dn->flags; + + st->st_rdev = 0; +Index: ftpfs/dir.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/ftpfs/dir.c,v +retrieving revision 1.14 +diff -u -p -r1.14 dir.c +--- ftpfs/dir.c 23 Oct 2002 02:36:53 -0000 1.14 ++++ ftpfs/dir.c 2 Feb 2009 01:36:56 -0000 +@@ -532,7 +532,9 @@ ftpfs_refresh_node (struct node *node) + } + } + +- if ((entry->stat.st_mtime < node->nn_stat.st_mtime ++ if ((entry->stat.st_mtim.tv_sec < node->nn_stat.st_mtim.tv_sec ++ || (entry->stat.st_mtim.tv_sec == node->nn_stat.st_mtim.tv_sec ++ && entry->stat.st_mtim.tv_nsec < node->nn_stat.st_mtim.tv_nsec) + || entry->stat.st_size != node->nn_stat.st_size) + && nn && nn->contents) + /* The file has changed. */ +Index: login/utmp.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/login/utmp.c,v +retrieving revision 1.4 +diff -u -p -r1.4 utmp.c +--- login/utmp.c 11 Jul 1999 05:31:04 -0000 1.4 ++++ login/utmp.c 2 Feb 2009 01:36:56 -0000 +@@ -326,12 +326,12 @@ S_login_get_idle_time(file_t utmp, time_ + { + struct stat stat; + if (stat(dev, &state) == 0 +- && (stat.st_atime < tv->seconds +- || (stat.st_atime == tv->seconds +- && stat.st_atime_usec < tv->microseconds))) ++ && (stat.st_atim.tv_sec < tv->seconds ++ || (stat.st_atim.tv_sec == tv->seconds ++ && stat.st_atim.tv_nsec / 1000 < tv->microseconds))) + { +- tv->seconds = stat.st_atime; +- tv->microseconds = stat.st_atime_usec; ++ tv->seconds = stat.st_atim.tv_sc; ++ tv->microseconds = stat.st_atim.tv_nsec / 1000; + } + } + } +Index: libdiskfs/file-utimes.c +=================================================================== +RCS file: /cvsroot/hurd/hurd/libdiskfs/file-utimes.c,v +retrieving revision 1.8 +diff -u -p -r1.8 file-utimes.c +--- libdiskfs/file-utimes.c 31 Jan 1999 23:49:27 -0000 1.8 ++++ libdiskfs/file-utimes.c 2 Feb 2009 01:36:56 -0000 +@@ -32,7 +32,8 @@ diskfs_S_file_utimes (struct protid *cre + np->dn_set_atime = 1; + else + { +- np->dn_stat.st_atime = atime.seconds; ++ np->dn_stat.st_atim.tv_sec = atime.seconds; ++ np->dn_stat.st_atim.tv_nsec = atime.microseconds * 1000; + np->dn_set_atime = 0; + } + +@@ -40,7 +41,8 @@ diskfs_S_file_utimes (struct protid *cre + np->dn_set_mtime = 1; + else + { +- np->dn_stat.st_mtime = mtime.seconds; ++ np->dn_stat.st_mtim.tv_sec = mtime.seconds; ++ np->dn_stat.st_mtim.tv_nsec = mtime.microseconds * 1000; + np->dn_set_mtime = 0; + } + -- cgit v1.2.3