From b7a1a4d3259557f2587f7d5d47502691d94c21c2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 16 Sep 2022 20:00:30 -0700
Subject: [PATCH 1/2] typecast time_t and suseconds_t from std::chrono

This fixes build on some architectures like mips
progress.cc:125:31: error: non-constant-expression cannot be narrowed from type 'std::chrono::duration<long long>::rep' (aka 'long long') to '__time_t' (aka 'long') in initializer list [-Wc++11-narrowing]
   struct timeval NowTime = { Now_sec.count(), Now_usec.count() };

Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/259]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 apt-pkg/acquire.cc           | 4 ++--
 apt-pkg/contrib/progress.cc  | 2 +-
 ftparchive/apt-ftparchive.cc | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 100ccde..dd0624a 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -53,11 +53,11 @@
 using namespace std;
 
 // helper to convert time_point to a timeval
-static struct timeval SteadyDurationToTimeVal(std::chrono::steady_clock::duration Time)
+constexpr struct timeval SteadyDurationToTimeVal(std::chrono::steady_clock::duration Time)
 {
    auto const Time_sec = std::chrono::duration_cast<std::chrono::seconds>(Time);
    auto const Time_usec = std::chrono::duration_cast<std::chrono::microseconds>(Time - Time_sec);
-   return {Time_sec.count(), Time_usec.count()};
+   return timeval{static_cast<time_t>(Time_sec.count()), static_cast<suseconds_t>(Time_usec.count())};
 }
 
 std::string pkgAcquire::URIEncode(std::string const &part)		/*{{{*/
diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc
index 03f88d4..eb688b9 100644
--- a/apt-pkg/contrib/progress.cc
+++ b/apt-pkg/contrib/progress.cc
@@ -122,7 +122,7 @@ bool OpProgress::CheckChange(float Interval)
    auto const Now = std::chrono::steady_clock::now().time_since_epoch();
    auto const Now_sec = std::chrono::duration_cast<std::chrono::seconds>(Now);
    auto const Now_usec = std::chrono::duration_cast<std::chrono::microseconds>(Now - Now_sec);
-   struct timeval NowTime = { Now_sec.count(), Now_usec.count() };
+   struct timeval NowTime = { static_cast<time_t>(Now_sec.count()), static_cast<suseconds_t>(Now_usec.count()) };
 
    std::chrono::duration<decltype(Interval)> Delta =
       std::chrono::seconds(NowTime.tv_sec - LastTime.tv_sec) +
diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc
index 56fdc22..0a253b1 100644
--- a/ftparchive/apt-ftparchive.cc
+++ b/ftparchive/apt-ftparchive.cc
@@ -58,7 +58,7 @@ static struct timeval GetTimevalFromSteadyClock()			/*{{{*/
    auto const Time = std::chrono::steady_clock::now().time_since_epoch();
    auto const Time_sec = std::chrono::duration_cast<std::chrono::seconds>(Time);
    auto const Time_usec = std::chrono::duration_cast<std::chrono::microseconds>(Time - Time_sec);
-   return { Time_sec.count(), Time_usec.count() };
+   return { static_cast<time_t>(Time_sec.count()), static_cast<suseconds_t>(Time_usec.count()) };
 }
 									/*}}}*/
 static auto GetTimeDeltaSince(struct timeval StartTime)			/*{{{*/
-- 
2.37.3

