RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Anders F. Björklund
  Root:   /v/rpm/cvs                       Email:  a...@rpm5.org
  Module: rpm                              Date:   09-Jan-2010 23:03:34
  Branch: HEAD                             Handle: 2010010922033300

  Modified files:
    rpm                     configure.ac
    rpm/rpmio               librpmio.vers rpmio-stub.c rpmio-stub.h rpmio.h
                            rpmrpc.c

  Log:
    add lutimes to rpmio

  Summary:
    Revision    Changes     Path
    2.425       +1  -1      rpm/configure.ac
    2.149       +2  -0      rpm/rpmio/librpmio.vers
    2.11        +1  -0      rpm/rpmio/rpmio-stub.c
    2.8         +1  -0      rpm/rpmio/rpmio-stub.h
    1.95        +8  -0      rpm/rpmio/rpmio.h
    2.97        +36 -0      rpm/rpmio/rpmrpc.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/configure.ac
  ============================================================================
  $ cvs diff -u -r2.424 -r2.425 configure.ac
  --- rpm/configure.ac  6 Jan 2010 07:27:49 -0000       2.424
  +++ rpm/configure.ac  9 Jan 2010 22:03:33 -0000       2.425
  @@ -784,7 +784,7 @@
       asprintf basename chflags clearenv confstr fallocate fchflags fchmod dnl
       ftok getaddrinfo getattrlist getcwd getdelim getline getmode getnameinfo 
dnl
       getpassphrase getxattr getwd iconv inet_aton lchflags lchmod lchown dnl
  -    lgetxattr lsetxattr madvise mempcpy mkdtemp mkstemp mtrace dnl
  +    lgetxattr lsetxattr lutimes madvise mempcpy mkdtemp mkstemp mtrace dnl
       posix_fallocate putenv realpath regcomp __secure_getenv setattrlist dnl
       setenv setlocale setmode setproctitle setxattr sigaddset sigdelset dnl
       sigemptyset sighold sigrelse sigpause sigprocmask sigsuspend sigaction 
dnl
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  ============================================================================
  $ cvs diff -u -r2.148 -r2.149 librpmio.vers
  --- rpm/rpmio/librpmio.vers   24 Dec 2009 16:23:50 -0000      2.148
  +++ rpm/rpmio/librpmio.vers   9 Jan 2010 22:03:33 -0000       2.149
  @@ -175,6 +175,8 @@
       _Lseek;
       Lstat;
       _Lstat;
  +    Lutimes;
  +    _Lutimes;
       lzdio;
       max_macro_depth;
       _max_load_depth;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio-stub.c
  ============================================================================
  $ cvs diff -u -r2.10 -r2.11 rpmio-stub.c
  --- rpm/rpmio/rpmio-stub.c    6 Sep 2009 17:36:03 -0000       2.10
  +++ rpm/rpmio/rpmio-stub.c    9 Jan 2010 22:03:33 -0000       2.11
  @@ -62,6 +62,7 @@
   int (*_Mknod) (const char * path, mode_t mode, dev_t dev) = Mknod;
   int (*_Utime) (const char * path, const struct utimbuf * buf) = Utime;
   int (*_Utimes) (const char * path, const struct timeval * times) = Utimes;
  +int (*_Lutimes) (const char * path, const struct timeval * times) = Lutimes;
   int (*_Symlink) (const char * oldpath, const char * newpath) = Symlink;
   /*...@-type@*/
   int (*_Readlink) (const char * path, char * buf, size_t bufsiz) = Readlink;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio-stub.h
  ============================================================================
  $ cvs diff -u -r2.7 -r2.8 rpmio-stub.h
  --- rpm/rpmio/rpmio-stub.h    6 Sep 2009 17:36:03 -0000       2.7
  +++ rpm/rpmio/rpmio-stub.h    9 Jan 2010 22:03:33 -0000       2.8
  @@ -45,6 +45,7 @@
   extern int (*_Mknod) (const char * path, mode_t mode, dev_t dev);
   extern int (*_Utime) (const char * path, const struct utimbuf * buf);
   extern int (*_Utimes) (const char * path, const struct timeval * times);
  +extern int (*_Lutimes) (const char * path, const struct timeval * times);
   extern int (*_Symlink) (const char * oldpath, const char * newpath);
   extern int (*_Readlink) (const char * path, char * buf, size_t bufsiz);
   extern int (*_Access) (const char * path, int amode);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.h
  ============================================================================
  $ cvs diff -u -r1.94 -r1.95 rpmio.h
  --- rpm/rpmio/rpmio.h 6 Sep 2009 17:36:03 -0000       1.94
  +++ rpm/rpmio/rpmio.h 9 Jan 2010 22:03:33 -0000       1.95
  @@ -416,6 +416,14 @@
        /*...@modifies errno, fileSystem, internalState @*/;
   
   /**
  + * lutimes(2) clone.
  + * @todo Implement remotely.
  + */
  +int Lutimes(const char * path, const struct timeval * times)
  +     /*...@globals errno, fileSystem, internalState @*/
  +     /*...@modifies errno, fileSystem, internalState @*/;
  +
  +/**
    * symlink(3) clone.
    * @todo Implement remotely.
    */
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmrpc.c
  ============================================================================
  $ cvs diff -u -r2.96 -r2.97 rpmrpc.c
  --- rpm/rpmio/rpmrpc.c        6 Jan 2010 23:28:07 -0000       2.96
  +++ rpm/rpmio/rpmrpc.c        9 Jan 2010 22:03:33 -0000       2.97
  @@ -1996,6 +1996,42 @@
   }
   /*...@=fixedformalarray@*/
   
  +/*...@-fixedformalarray@*/
  +int Lutimes(const char * path, const struct timeval times[2])
  +{
  +#ifdef HAVE_LUTIMES
  +    const char * lpath;
  +    int ut = urlPath(path, &lpath);
  +    int rc = -2;
  +
  +    switch (ut) {
  +    case URL_IS_PATH:
  +     path = lpath;
  +     /*...@fallthrough@*/
  +    case URL_IS_UNKNOWN:
  +     break;
  +    case URL_IS_DASH:
  +    case URL_IS_HKP:
  +    case URL_IS_FTP:         /* XXX TODO: implement. */
  +    case URL_IS_HTTPS:               /* XXX TODO: implement. */
  +    case URL_IS_HTTP:                /* XXX TODO: implement. */
  +    default:
  +     errno = EINVAL;         /* XXX W2DO? */
  +     goto exit;
  +     /*...@notreached@*/ break;
  +    }
  +    rc = lutimes(path, times);
  +exit:
  +if (_rpmio_debug)
  +fprintf(stderr, "<-- %s(%s,%p) rc %d\n", __FUNCTION__, path, times, rc);
  +    return rc;
  +#else
  +    errno = ENOSYS;
  +    return -2;
  +#endif
  +}
  +/*...@=fixedformalarray@*/
  +
   int Symlink(const char * oldpath, const char * newpath)
   {
       const char * opath;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to