Package: libc0.3 Version: 2.3.6.ds1-4 Severity: important Tags: patch Newer coreutils' touch uses futimes() to set the current date/time. This fails badly on the Hurd right now:
[EMAIL PROTECTED]:~/tmp$ touch foo [EMAIL PROTECTED]:~/tmp$ ls -l foo -rw-r--r-- 1 mbanck mbanck 0 Sep 22 16:18 foo [EMAIL PROTECTED]:~/tmp$ ./bin/touch foo [EMAIL PROTECTED]:~/tmp$ ls -l foo -rw-r--r-- 1 mbanck mbanck 0 Jan 1 1970 foo I have attached a proposed patch by Alfred M. Szmidt and Barry deFreese. Michael
--- futimes.org 2006-09-19 13:00:49.000000000 +0000 +++ futimes.c 2006-09-19 13:05:13.000000000 +0000 @@ -28,20 +28,28 @@ int __futimes (int fd, const struct timeval tvp[2]) { - struct timeval timevals[2]; error_t err; - + if (tvp == NULL) { + volatile struct timeval timevals[2]; /* Setting the number of microseconds to `-1' tells the underlying filesystems to use the current time. */ timevals[1].tv_usec = timevals[0].tv_usec = (time_t)-1; - tvp = timevals; + + err = HURD_DPORT_USE (fd, __file_utimes (port, + *(time_value_t *) &timevals[0], + *(time_value_t *) &timevals[1])); + } + else + { - err = HURD_DPORT_USE (fd, __file_utimes (port, - *(time_value_t *) &tvp[0], - *(time_value_t *) &tvp[1])); + err = HURD_DPORT_USE (fd, __file_utimes (port, + *(time_value_t *) &tvp[0], + *(time_value_t *) &tvp[1])); + + } return err ? __hurd_dfail (fd, err) : 0; } weak_alias (__futimes, futimes)