domoticz: backport patch to fix compilation with uClibc-ng
authorJosef Schlehofer <pepe.schlehofer@gmail.com>
Thu, 6 Jan 2022 15:56:58 +0000 (16:56 +0100)
committerRosen Penev <rosenp@gmail.com>
Wed, 19 Jan 2022 02:07:49 +0000 (18:07 -0800)
This helps to compile domoticz on arc target.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
utils/domoticz/patches/010-sunriseset-use-round-for-uClibc.patch [new file with mode: 0644]

diff --git a/utils/domoticz/patches/010-sunriseset-use-round-for-uClibc.patch b/utils/domoticz/patches/010-sunriseset-use-round-for-uClibc.patch
new file mode 100644 (file)
index 0000000..cd8ff75
--- /dev/null
@@ -0,0 +1,77 @@
+From 01d0b036179e12284880fb2d29ae579399e5fe91 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Fri, 25 Oct 2019 15:05:14 -0700
+Subject: [PATCH] SunRiseSet: Use round instead of std::round.
+
+The latter is not available with uClibc-ng.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ main/SunRiseSet.cpp | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/main/SunRiseSet.cpp
++++ b/main/SunRiseSet.cpp
+@@ -144,7 +144,7 @@ bool SunRiseSet::GetSunRiseSet(const dou
+       //astrlen = day_astronomical_twilight_length(year,month,day,longit,latit);
+       double _tmpH;
+-      result.DaylengthMins = static_cast<int>(std::round(modf(daylen, &_tmpH)*60));
++      result.DaylengthMins = static_cast<int>(round(modf(daylen, &_tmpH)*60));
+       result.DaylengthHours = static_cast<int>(_tmpH);
+       rs = sun_rise_set(year, month, day, longit, latit, &rise, &set);
+@@ -154,14 +154,14 @@ bool SunRiseSet::GetSunRiseSet(const dou
+       rise = UtcToLocal(rise, timezone);
+       set = UtcToLocal(set, timezone);
+-      result.SunAtSouthMin = static_cast<int>(std::round(modf((rise+set)/2.0, &_tmpH)*60));
++      result.SunAtSouthMin = static_cast<int>(round(modf((rise+set)/2.0, &_tmpH)*60));
+       result.SunAtSouthHour = static_cast<int>(_tmpH);
+       switch(rs) {
+               case 0:
+-                      result.SunRiseMin = static_cast<int>(std::round(modf(rise, &_tmpH)*60));
++                      result.SunRiseMin = static_cast<int>(round(modf(rise, &_tmpH)*60));
+                       result.SunRiseHour = static_cast<int>(_tmpH);
+-                      result.SunSetMin = static_cast<int>(std::round(modf(set, &_tmpH)*60));
++                      result.SunSetMin = static_cast<int>(round(modf(set, &_tmpH)*60));
+                       result.SunSetHour = static_cast<int>(_tmpH);
+                       //fix a possible rounding issue above
+                       if (result.SunRiseMin > 59)
+@@ -189,9 +189,9 @@ bool SunRiseSet::GetSunRiseSet(const dou
+               case 0:
+                       civ_start = UtcToLocal(civ_start, timezone);
+                       civ_end = UtcToLocal(civ_end, timezone);
+-                      result.CivilTwilightStartMin = static_cast<int>(std::round(modf(civ_start, &_tmpH)*60));
++                      result.CivilTwilightStartMin = static_cast<int>(round(modf(civ_start, &_tmpH)*60));
+                       result.CivilTwilightStartHour = static_cast<int>(_tmpH);
+-                      result.CivilTwilightEndMin = static_cast<int>(std::round(modf(civ_end, &_tmpH)*60));
++                      result.CivilTwilightEndMin = static_cast<int>(round(modf(civ_end, &_tmpH)*60));
+                       result.CivilTwilightEndHour = static_cast<int>(_tmpH);
+                       break;
+               case +1:
+@@ -208,9 +208,9 @@ bool SunRiseSet::GetSunRiseSet(const dou
+               case 0:
+                       naut_start = UtcToLocal(naut_start, timezone);
+                       naut_end = UtcToLocal(naut_end, timezone);
+-                      result.NauticalTwilightStartMin = static_cast<int>(std::round(modf(naut_start, &_tmpH)*60));
++                      result.NauticalTwilightStartMin = static_cast<int>(round(modf(naut_start, &_tmpH)*60));
+                       result.NauticalTwilightStartHour = static_cast<int>(_tmpH);
+-                      result.NauticalTwilightEndMin = static_cast<int>(std::round(modf(naut_end, &_tmpH)*60));
++                      result.NauticalTwilightEndMin = static_cast<int>(round(modf(naut_end, &_tmpH)*60));
+                       result.NauticalTwilightEndHour = static_cast<int>(_tmpH);
+                       break;
+               case +1:
+@@ -227,9 +227,9 @@ bool SunRiseSet::GetSunRiseSet(const dou
+               case 0:
+                       astr_start = UtcToLocal(astr_start, timezone);
+                       astr_end = UtcToLocal(astr_end, timezone);
+-                      result.AstronomicalTwilightStartMin = static_cast<int>(std::round(modf(astr_start, &_tmpH)*60));
++                      result.AstronomicalTwilightStartMin = static_cast<int>(round(modf(astr_start, &_tmpH)*60));
+                       result.AstronomicalTwilightStartHour = static_cast<int>(_tmpH);
+-                      result.AstronomicalTwilightEndMin = static_cast<int>(std::round(modf(astr_end, &_tmpH)*60));
++                      result.AstronomicalTwilightEndMin = static_cast<int>(round(modf(astr_end, &_tmpH)*60));
+                       result.AstronomicalTwilightEndHour = static_cast<int>(_tmpH);
+                       break;
+               case +1: