[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rpm-cvs
Subject:    [CVS] RPM: rpm-5_4: rpm/ CHANGES rpm/build/ names.c pack.c
From:       "Jeff Johnson" <jbj () rpm5 ! org>
Date:       2017-04-11 17:04:52
Message-ID: 20170411170452.4ADA655025 () rpm5 ! org
[Download RAW message or body]

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

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
  Module: rpm                              Date:   11-Apr-2017 19:04:52
  Branch: rpm-5_4                          Handle: 2017041117045101

  Modified files:           (Branch: rpm-5_4)
    rpm                     CHANGES
    rpm/build               names.c pack.c

  Log:
    - build: add usecs to RPMTAG_BUILDTIME/RPMTAG_COOKIE.

  Summary:
    Revision    Changes     Path
    1.3501.2.530+1  -0      rpm/CHANGES
    1.40.6.2    +25 -3      rpm/build/names.c
    2.324.2.20  +4  -3      rpm/build/pack.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3501.2.529 -r1.3501.2.530 CHANGES
  --- rpm/CHANGES	11 Apr 2017 17:02:08 -0000	1.3501.2.529
  +++ rpm/CHANGES	11 Apr 2017 17:04:51 -0000	1.3501.2.530
  @@ -1,4 +1,5 @@
   5.4.17 -> 5.4.18:
  +    - jbj: build: add usecs to RPMTAG_BUILDTIME/RPMTAG_COOKIE.
       - jbj: header: minor optimization for headerGet().
       - jbj: header: fix: accomodate rpm.org unsorted signature header bug.
       - jbj: rpmio: pass glibc-peculier 'x' and 'e' to stdio fopen(3).
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/names.c
  ============================================================================
  $ cvs diff -u -r1.40.6.1 -r1.40.6.2 names.c
  --- rpm/build/names.c	26 Jul 2013 08:19:37 -0000	1.40.6.1
  +++ rpm/build/names.c	11 Apr 2017 17:04:52 -0000	1.40.6.2
  @@ -196,10 +196,32 @@
   
   rpmuint32_t * getBuildTime(void)
   {
  -    static rpmuint32_t buildTime[1];
  +    static rpmuint32_t buildTime[2];
  +    struct timespec ts = { 0, 0 };
  +    struct timeval tv = { 0, 0 };
   
  -    if (buildTime[0] == 0)
  -	buildTime[0] = (rpmuint32_t) time(NULL);
  +    if (buildTime[0] != 0)
  +	goto exit;
  +
  +    errno = 0;
  +
  +    if (!clock_gettime(CLOCK_REALTIME, &ts)) {
  +	tv.tv_sec = ts.tv_sec;
  +	tv.tv_usec = ts.tv_nsec/1000;
  +    } else
  +    if (!gettimeofday(&tv, NULL)) {
  +	ts.tv_sec = tv.tv_sec;
  +	ts.tv_nsec = tv.tv_usec * 1000;
  +    } else {
  +	ts.tv_sec = tv.tv_sec = time(NULL);
  +	ts.tv_nsec = tv.tv_usec = 0;
  +    }
  +  
  +    /* XXX avoid "legacy incompatbility" for now.*/
  +    buildTime[0] = (rpm_time_t) tv.tv_sec;
  +    buildTime[1] = (rpm_time_t) tv.tv_usec;
  +
  +exit:
       return buildTime;
   }
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/pack.c
  ============================================================================
  $ cvs diff -u -r2.324.2.19 -r2.324.2.20 pack.c
  --- rpm/build/pack.c	20 Apr 2016 12:05:38 -0000	2.324.2.19
  +++ rpm/build/pack.c	11 Apr 2017 17:04:52 -0000	2.324.2.20
  @@ -761,8 +761,9 @@
   
       /* Create and add the cookie */
       if (cookie) {
  -	sprintf(buf, "%s %u", buildHost(), (unsigned) (*getBuildTime()));
  -	*cookie = xstrdup(buf);		/* XXX memory leak */
  +	rpmuint32_t * bt = getBuildTime();
  +	sprintf(buf, "%s %u.%06u", buildHost(), (unsigned)bt[0], (unsigned)bt[1]);
  +	*cookie = xstrdup(buf);		/* XXX memory leak? */
   	he->tag = RPMTAG_COOKIE;
   	he->t = RPM_STRING_TYPE;
   	he->p.str = *cookie;
  @@ -1138,7 +1139,7 @@
       he->tag = RPMTAG_BUILDTIME;
       he->t = RPM_UINT32_TYPE;
       he->p.ui32p = getBuildTime();
  -    he->c = 1;
  +    he->c = 2;
       xx = headerPut(h, he, 0);
   
       return 0;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic