summaryrefslogtreecommitdiff
path: root/math/nickle
diff options
context:
space:
mode:
authorjperkin <jperkin@pkgsrc.org>2018-01-03 12:12:07 +0000
committerjperkin <jperkin@pkgsrc.org>2018-01-03 12:12:07 +0000
commitb1ed757a33bcdd3820267d25191e5a153ea0b487 (patch)
treefd74c00c6d0da8cb1bb7b740f07d5bce4e8a2b34 /math/nickle
parent8d2653a9899bae921ca0c96c87402a28c37e9040 (diff)
downloadpkgsrc-b1ed757a33bcdd3820267d25191e5a153ea0b487.tar.gz
nickle: Fix build on SunOS and systems without timelocal().
Diffstat (limited to 'math/nickle')
-rw-r--r--math/nickle/distinfo3
-rw-r--r--math/nickle/patches/patch-builtin-date.c38
2 files changed, 40 insertions, 1 deletions
diff --git a/math/nickle/distinfo b/math/nickle/distinfo
index c7ea46ae132..7cf9b3d1be1 100644
--- a/math/nickle/distinfo
+++ b/math/nickle/distinfo
@@ -1,8 +1,9 @@
-$NetBSD: distinfo,v 1.12 2017/11/23 16:15:23 wiz Exp $
+$NetBSD: distinfo,v 1.13 2018/01/03 12:12:07 jperkin Exp $
SHA1 (nickle-2.81.tar.gz) = ef9c6de7ad2a544a3245657fbfd46dbfa9675476
RMD160 (nickle-2.81.tar.gz) = 03c8ffbebfd0104b3cd54f748f702de7e6f999f5
SHA512 (nickle-2.81.tar.gz) = b11755f824b3abf74f104db7bfaf58f52fef0b76e194ffd8c562693d5497f9de69121f9ce98777fb0366a7e02be7b32e7d800a31be03f5a5921b9d8bc3502aca
Size (nickle-2.81.tar.gz) = 579140 bytes
SHA1 (patch-aa) = 4cbb563244883f6c9f7a3594875052f8d9a9e9b3
+SHA1 (patch-builtin-date.c) = ca55181a501cfbe3437d38728398852e96b0111a
SHA1 (patch-lex.c) = f9d5f3f282f97a94195730062525e9f6310bb316
diff --git a/math/nickle/patches/patch-builtin-date.c b/math/nickle/patches/patch-builtin-date.c
new file mode 100644
index 00000000000..b7ff81f3edd
--- /dev/null
+++ b/math/nickle/patches/patch-builtin-date.c
@@ -0,0 +1,38 @@
+$NetBSD: patch-builtin-date.c,v 1.1 2018/01/03 12:12:07 jperkin Exp $
+
+Fix missing tm_zone on SunOS.
+Pull in upstream fix for missing timelocal().
+
+--- builtin-date.c.orig 2017-11-14 10:30:06.000000000 +0000
++++ builtin-date.c
+@@ -76,7 +76,11 @@ to_date(struct tm *tm)
+ BoxValueSet (box, 6, int_value(tm->tm_wday));
+ BoxValueSet (box, 7, int_value(tm->tm_yday));
+ BoxValueSet (box, 8, tm->tm_isdst ? TrueVal : FalseVal);
++#ifdef __sun
++ BoxValueSet (box, 9, NewStrString("GMT"));
++#else
+ BoxValueSet (box, 9, NewStrString(tm->tm_zone));
++#endif
+ return ret;
+ }
+
+@@ -92,7 +96,9 @@ from_date(Value date, struct tm *tm)
+ tm->tm_wday = value_int(date, "wday", "invalid wday", 0);
+ tm->tm_yday = value_int(date, "yday", "invalid yday", 0);
+ tm->tm_isdst = value_bool(date, "isdst", "invalid isdst", 0);
++#ifndef __sun
+ tm->tm_zone = NULL;
++#endif
+ }
+
+ static Value
+@@ -143,7 +149,7 @@ do_Date_timelocal(Value v)
+ time_t seconds;
+
+ from_date(v, &tm);
+- seconds = timelocal(&tm);
++ seconds = mktime(&tm);
+ RETURN(Reduce(NewSignedDigitInteger((signed_digit) seconds)));
+ }
+