From 89e1c9415fb8438310036d5810cdb7da75ee3a7f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 26 Jul 2023 12:27:14 -0700
Subject: [PATCH] Adjust printf formats for 64bit time_t on 32bit systems

Fixes format specifier mismatch warnings as well while here

e.g.
warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'time_t'

Upstream-Status: Submitted [https://github.com/rpm-software-management/createrepo_c/pull/376]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 src/createrepo_c.c    | 4 ++--
 src/misc.c            | 4 ++--
 src/xml_dump_repomd.c | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/createrepo_c.c b/src/createrepo_c.c
index 8681419..0f9048a 100644
--- a/src/createrepo_c.c
+++ b/src/createrepo_c.c
@@ -582,9 +582,9 @@ duplicates_warning(const char *nevra, GArray *locations, CmdDupNevra option)
   for (size_t i=0; i<locations->len; i++) {
       struct DuplicateLocation location = g_array_index(locations, struct
                                                         DuplicateLocation, i);
-      g_warning("    Sourced from location: \'%s\', build timestamp: %ld%s",
+      g_warning("    Sourced from location: \'%s\', build timestamp: %jd%s",
                 location.location,
-                location.pkg->time_build,
+                (intmax_t) location.pkg->time_build,
                 location.pkg->skip_dump ? skip_reason : "");
 
   }
diff --git a/src/misc.c b/src/misc.c
index 8511ca2..7866c7b 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1512,11 +1512,11 @@ cr_append_pid_and_datetime(const char *str, const char *suffix)
     gettimeofday(&tv, NULL);
     timeinfo = localtime (&(tv.tv_sec));
     strftime(datetime, 80, "%Y%m%d%H%M%S", timeinfo);
-    gchar *result = g_strdup_printf("%s%jd.%s.%ld%s",
+    gchar *result = g_strdup_printf("%s%jd.%s.%jd%s",
                                     str ? str : "",
                                     (intmax_t) getpid(),
                                     datetime,
-                                    tv.tv_usec,
+                                    (intmax_t) tv.tv_usec,
                                     suffix ? suffix : "");
     return result;
 }
diff --git a/src/xml_dump_repomd.c b/src/xml_dump_repomd.c
index 33b0e09..9d24249 100644
--- a/src/xml_dump_repomd.c
+++ b/src/xml_dump_repomd.c
@@ -143,7 +143,7 @@ cr_xml_dump_repomd_body(xmlNodePtr root, cr_Repomd *repomd)
                            BAD_CAST repomd->revision);
     } else {
         // Use the current time if no revision was explicitly specified
-        gchar *rev = g_strdup_printf("%ld", time(NULL));
+        gchar *rev = g_strdup_printf("%jd", (intmax_t) time(NULL));
         xmlNewChild(root, NULL, BAD_CAST "revision", BAD_CAST rev);
         g_free(rev);
     }
-- 
2.41.0

