From ba0da9dc793d36929ed1d8f0f9a267e6a0fd4281 Mon Sep 17 00:00:00 2001
From: Zach van Rijn <me@zv.io>
Date: Sun, 18 Dec 2022 19:32:10 -0600
Subject: user/gambit: add patch for overflow on 32-bit platforms. fixes #926.

Previous commits erroneously mentioned issue #924.
---
 ...m-overflow-on-32-bit-machines-in-port-set.patch | 439 +++++++++++++++++++++
 user/gambit-c/APKBUILD                             |  27 +-
 2 files changed, 463 insertions(+), 3 deletions(-)
 create mode 100644 user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch

(limited to 'user')

diff --git a/user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch b/user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch
new file mode 100644
index 000000000..9432f10a7
--- /dev/null
+++ b/user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch
@@ -0,0 +1,439 @@
+Patch requires bootstrap to regenerate C source file(s).
+
+See also:
+
+  * https://git.adelielinux.org/adelie/packages/-/issues/926
+  * https://github.com/gambit/gambit/issues/806
+
+From eb287205c10b3bcf5f497b33b520f468837a18ec Mon Sep 17 00:00:00 2001
+From: Marc Feeley <feeley@iro.umontreal.ca>
+Date: Sun, 18 Dec 2022 07:39:38 -0500
+Subject: [PATCH] Avoid fixnum overflow on 32 bit machines in
+ port-settings-set!
+
+
+diff --git a/lib/_io#.scm b/lib/_io#.scm
+index e205e8ad..f55124dc 100644
+--- a/lib/_io#.scm
++++ b/lib/_io#.scm
+@@ -2,7 +2,7 @@
+ 
+ ;;; File: "_io#.scm"
+ 
+-;;; Copyright (c) 1994-2021 by Marc Feeley, All Rights Reserved.
++;;; Copyright (c) 1994-2022 by Marc Feeley, All Rights Reserved.
+ 
+ ;;;============================================================================
+ 
+@@ -817,36 +817,37 @@
+ 
+ (##define-macro (macro-default-readtable) #f)
+ 
+-(##define-macro (macro-char-encoding-shift)                     1)
+-(##define-macro (macro-char-encoding-range)                     32)
+-(##define-macro (macro-default-char-encoding)                   0)
+-(##define-macro (macro-char-encoding-ASCII)                     1)
+-(##define-macro (macro-char-encoding-ISO-8859-1)                2)
+-(##define-macro (macro-char-encoding-UTF-8)                     3)
+-(##define-macro (macro-char-encoding-UTF-16)                    4)
+-(##define-macro (macro-char-encoding-UTF-16BE)                  5)
+-(##define-macro (macro-char-encoding-UTF-16LE)                  6)
+-(##define-macro (macro-char-encoding-UTF-fallback-ASCII)        7)
+-(##define-macro (macro-char-encoding-UTF-fallback-ISO-8859-1)   8)
+-(##define-macro (macro-char-encoding-UTF-fallback-UTF-8)        9)
+-(##define-macro (macro-char-encoding-UTF-fallback-UTF-16)       10)
+-(##define-macro (macro-char-encoding-UTF-fallback-UTF-16BE)     11)
+-(##define-macro (macro-char-encoding-UTF-fallback-UTF-16LE)     12)
+-(##define-macro (macro-char-encoding-UCS-2)                     13)
+-(##define-macro (macro-char-encoding-UCS-2BE)                   14)
+-(##define-macro (macro-char-encoding-UCS-2LE)                   15)
+-(##define-macro (macro-char-encoding-UCS-4)                     16)
+-(##define-macro (macro-char-encoding-UCS-4BE)                   17)
+-(##define-macro (macro-char-encoding-UCS-4LE)                   18)
+-(##define-macro (macro-char-encoding-wchar)                     19)
+-(##define-macro (macro-char-encoding-native)                    20)
++(##define-macro (macro-char-encoding-shift)                  0)
++(##define-macro (macro-char-encoding-mask)                   (* 31 (expt 2 0)))
++(##define-macro (macro-default-char-encoding)                0)
++(##define-macro (macro-char-encoding-ASCII)                  1)
++(##define-macro (macro-char-encoding-ISO-8859-1)             2)
++(##define-macro (macro-char-encoding-UTF-8)                  3)
++(##define-macro (macro-char-encoding-UTF-16)                 4)
++(##define-macro (macro-char-encoding-UTF-16BE)               5)
++(##define-macro (macro-char-encoding-UTF-16LE)               6)
++(##define-macro (macro-char-encoding-UTF-fallback-ASCII)     7)
++(##define-macro (macro-char-encoding-UTF-fallback-ISO-8859-1)8)
++(##define-macro (macro-char-encoding-UTF-fallback-UTF-8)     9)
++(##define-macro (macro-char-encoding-UTF-fallback-UTF-16)    10)
++(##define-macro (macro-char-encoding-UTF-fallback-UTF-16BE)  11)
++(##define-macro (macro-char-encoding-UTF-fallback-UTF-16LE)  12)
++(##define-macro (macro-char-encoding-UCS-2)                  13)
++(##define-macro (macro-char-encoding-UCS-2BE)                14)
++(##define-macro (macro-char-encoding-UCS-2LE)                15)
++(##define-macro (macro-char-encoding-UCS-4)                  16)
++(##define-macro (macro-char-encoding-UCS-4BE)                17)
++(##define-macro (macro-char-encoding-UCS-4LE)                18)
++(##define-macro (macro-char-encoding-wchar)                  19)
++(##define-macro (macro-char-encoding-native)                 20)
+ 
+ (##define-macro (macro-char-encoding-UTF)
+   `(macro-char-encoding-UTF-fallback-UTF-8))
+ 
+ (##define-macro (macro-max-unescaped-char options)
+-  `(let ((e (##fxmodulo (##fxquotient ,options (macro-char-encoding-shift))
+-                        (macro-char-encoding-range))))
++  `(let ((e (##fxarithmetic-shift-right
++             (##fxand ,options (macro-char-encoding-mask))
++             (macro-char-encoding-shift))))
+      (cond ((##fx<= e (macro-char-encoding-ISO-8859-1))
+             (if (##fx= e (macro-char-encoding-ISO-8859-1))
+                 (##integer->char #xff)
+@@ -857,21 +858,21 @@
+            (else
+             (##integer->char #x10ffff)))))
+ 
+-(##define-macro (macro-char-encoding-errors-shift)   32)
+-(##define-macro (macro-char-encoding-errors-range)   4)
++(##define-macro (macro-char-encoding-errors-shift)   5)
++(##define-macro (macro-char-encoding-errors-mask)    (* 3 (expt 2 5)))
+ (##define-macro (macro-default-char-encoding-errors) 0)
+ (##define-macro (macro-char-encoding-errors-on)      1)
+ (##define-macro (macro-char-encoding-errors-off)     2)
+ 
+-(##define-macro (macro-eol-encoding-shift)   128)
+-(##define-macro (macro-eol-encoding-range)   4)
++(##define-macro (macro-eol-encoding-shift)   7)
++(##define-macro (macro-eol-encoding-mask)    (* 3 (expt 2 7)))
+ (##define-macro (macro-default-eol-encoding) 0)
+ (##define-macro (macro-eol-encoding-lf)      1)
+ (##define-macro (macro-eol-encoding-cr)      2)
+ (##define-macro (macro-eol-encoding-crlf)    3)
+ 
+-(##define-macro (macro-buffering-shift)   512)
+-(##define-macro (macro-buffering-range)   4)
++(##define-macro (macro-buffering-shift)   9)
++(##define-macro (macro-buffering-mask)    (* 3 (expt 2 9)))
+ (##define-macro (macro-default-buffering) 0)
+ (##define-macro (macro-no-buffering)      1)
+ (##define-macro (macro-line-buffering)    2)
+@@ -883,14 +884,14 @@
+ (##define-macro (macro-fully-buffered? options)
+   `(##not (##fx< (##fxand ,options 2047) 1536)))
+ 
+-(##define-macro (macro-decode-state-shift)  2048)
+-(##define-macro (macro-decode-state-range)  4)
++(##define-macro (macro-decode-state-shift)  11)
++(##define-macro (macro-decode-state-mask)   (* 3 (expt 2 11)))
+ (##define-macro (macro-decode-state-none)   0)
+ (##define-macro (macro-decode-state-lf)     1)
+ (##define-macro (macro-decode-state-cr)     2)
+ 
+-(##define-macro (macro-open-state-shift)  8192)
+-(##define-macro (macro-open-state-range)  2)
++(##define-macro (macro-open-state-shift)  13)
++(##define-macro (macro-open-state-mask)   (* 1 (expt 2 13)))
+ (##define-macro (macro-open-state-open)   0)
+ (##define-macro (macro-open-state-closed) 1)
+ 
+@@ -903,15 +904,15 @@
+ (##define-macro (macro-unclose! options)
+   `(##fxand ,options -8193))
+ 
+-(##define-macro (macro-permanent-close-shift)  16384)
+-(##define-macro (macro-permanent-close-range)  2)
++(##define-macro (macro-permanent-close-shift)  14)
++(##define-macro (macro-permanent-close-mask)   (* 1 (expt 2 14)))
+ (##define-macro (macro-permanent-close-no)     0)
+ (##define-macro (macro-permanent-close-yes)    1)
+ 
+ (##define-macro (macro-perm-close? options)
+   `(##not (##fx= (##fxand ,options 16384) 0)))
+ 
+-(##define-macro (macro-direction-shift) 16)
++(##define-macro (macro-direction-shift) 4)
+ (##define-macro (macro-direction-in)    1)
+ (##define-macro (macro-direction-out)   2)
+ (##define-macro (macro-direction-inout) 3)
+@@ -926,18 +927,18 @@
+ 
+ (##define-macro (macro-default-directory) #f)
+ 
+-(##define-macro (macro-append-shift)   8)
++(##define-macro (macro-append-shift)   3)
+ (##define-macro (macro-no-append)      0)
+ (##define-macro (macro-append)         1)
+ (##define-macro (macro-default-append) 2)
+ 
+-(##define-macro (macro-create-shift)   2)
++(##define-macro (macro-create-shift)   1)
+ (##define-macro (macro-no-create)      0)
+ (##define-macro (macro-maybe-create)   1)
+ (##define-macro (macro-create)         2)
+ (##define-macro (macro-default-create) 3)
+ 
+-(##define-macro (macro-truncate-shift)   1)
++(##define-macro (macro-truncate-shift)   0)
+ (##define-macro (macro-no-truncate)      0)
+ (##define-macro (macro-truncate)         1)
+ (##define-macro (macro-default-truncate) 2)
+diff --git a/lib/_io.scm b/lib/_io.scm
+index d9387536..563d9664 100644
+--- a/lib/_io.scm
++++ b/lib/_io.scm
+@@ -1046,17 +1046,22 @@
+             (else
+              (error-improper-list))))))
+ 
+-(##define-macro (macro-stream-options-output-shift) 32768)
++(##define-macro (macro-stream-options-output-shift) 15)
++(##define-macro (macro-stream-options-input-mask) 32767)
+ 
+ (define-prim (##psettings->roptions psettings default-options)
+   (##psettings-options->options
+    (macro-psettings-roptions psettings)
+-   (##fxmodulo default-options (macro-stream-options-output-shift))))
++   (##fxand
++    default-options
++    (macro-stream-options-input-mask))))
+ 
+ (define-prim (##psettings->woptions psettings default-options)
+   (##psettings-options->options
+    (macro-psettings-woptions psettings)
+-   (##fxquotient default-options (macro-stream-options-output-shift))))
++   (##fxwraplogical-shift-right
++    default-options
++    (macro-stream-options-output-shift))))
+ 
+ (define-prim (##psettings->input-readtable psettings)
+   (or (macro-psettings-options-readtable
+@@ -1081,45 +1086,52 @@
+          (macro-psettings-options-char-encoding-errors options)))
+     (##fx+
+      (##fx+
+-      (##fx* (macro-char-encoding-shift)
+-             (if (##fx= char-encoding (macro-default-char-encoding))
+-                 (##fxmodulo
+-                  (##fxquotient default-options
+-                                (macro-char-encoding-shift))
+-                  (macro-char-encoding-range))
+-                 char-encoding))
+-      (##fx* (macro-char-encoding-errors-shift)
+-             (if (##fx= char-encoding-errors (macro-default-char-encoding-errors))
+-                 (##fxmodulo
+-                  (##fxquotient default-options
+-                                (macro-char-encoding-errors-shift))
+-                  (macro-char-encoding-errors-range))
+-                 char-encoding-errors))
++      (##fxarithmetic-shift-left
++       (if (##fx= char-encoding (macro-default-char-encoding))
++           (##fxarithmetic-shift-right
++            (##fxand
++             default-options
++             (macro-char-encoding-mask))
++            (macro-char-encoding-shift))
++           char-encoding)
++       (macro-char-encoding-shift))
++      (##fxarithmetic-shift-left
++       (if (##fx= char-encoding-errors (macro-default-char-encoding-errors))
++           (##fxarithmetic-shift-right
++            (##fxand
++             default-options
++             (macro-char-encoding-errors-mask))
++            (macro-char-encoding-errors-shift))
++           char-encoding-errors)
++       (macro-char-encoding-errors-shift))
+       (##fx+
+        (##fx+
+-        (##fx* (macro-eol-encoding-shift)
+-               (if (##fx= eol-encoding (macro-default-eol-encoding))
+-                   (##fxmodulo
+-                    (##fxquotient default-options
+-                                  (macro-eol-encoding-shift))
+-                    (macro-eol-encoding-range))
+-                   eol-encoding))
++        (##fxarithmetic-shift-left
++         (if (##fx= eol-encoding (macro-default-eol-encoding))
++             (##fxarithmetic-shift-right
++              (##fxand
++               default-options
++               (macro-eol-encoding-mask))
++              (macro-eol-encoding-shift))
++             eol-encoding)
++         (macro-eol-encoding-shift))
+         (##fx+
+-         (##fx* (macro-open-state-shift)
+-                (##fxmodulo
+-                 (##fxquotient default-options
+-                               (macro-open-state-shift))
+-                 (macro-open-state-range)))
++         (##fxand
++          default-options
++          (macro-open-state-mask))
+          (##fx+
+-          (##fx* (macro-permanent-close-shift)
+-                 permanent-close)
+-          (##fx* (macro-buffering-shift)
+-                 (if (##fx= buffering (macro-default-buffering))
+-                     (##fxmodulo
+-                      (##fxquotient default-options
+-                                    (macro-buffering-shift))
+-                      (macro-buffering-range))
+-                     buffering))))))))))
++          (##fxarithmetic-shift-left
++           permanent-close
++           (macro-permanent-close-shift))
++          (##fxarithmetic-shift-left
++           (if (##fx= buffering (macro-default-buffering))
++               (##fxarithmetic-shift-right
++                (##fxand
++                 default-options
++                 (macro-buffering-mask))
++                (macro-buffering-shift))
++               buffering)
++           (macro-buffering-shift))))))))))
+ 
+ (define-prim (##psettings->device-flags psettings)
+   (let ((direction
+@@ -1131,30 +1143,34 @@
+         (truncate
+          (macro-psettings-truncate psettings)))
+     (##fx+
+-     (##fx* (macro-direction-shift)
+-            direction)
++     (##fxarithmetic-shift-left
++      direction
++      (macro-direction-shift))
+      (##fx+
+-      (##fx* (macro-append-shift)
+-             (if (##not (##fx= append (macro-default-append)))
+-                 append
+-                 (macro-no-append)))
++      (##fxarithmetic-shift-left
++       (if (##not (##fx= append (macro-default-append)))
++           append
++           (macro-no-append))
++       (macro-append-shift))
+       (##fx+
+-       (##fx* (macro-create-shift)
+-              (cond ((##not (##fx= create (macro-default-create)))
+-                     create)
+-                    ((##fx= direction (macro-direction-out))
+-                     (macro-maybe-create))
+-                    (else
+-                     (macro-no-create))))
+-       (##fx* (macro-truncate-shift)
+-              (cond ((##not (##fx= truncate (macro-default-truncate)))
+-                     truncate)
+-                    ((##fx= direction (macro-direction-out))
+-                     (if (##fx= append (macro-append))
+-                         (macro-no-truncate)
+-                         (macro-truncate)))
+-                    (else
+-                     (macro-no-truncate)))))))))
++       (##fxarithmetic-shift-left
++        (cond ((##not (##fx= create (macro-default-create)))
++               create)
++              ((##fx= direction (macro-direction-out))
++               (macro-maybe-create))
++              (else
++               (macro-no-create)))
++        (macro-create-shift))
++       (##fxarithmetic-shift-left
++        (cond ((##not (##fx= truncate (macro-default-truncate)))
++               truncate)
++              ((##fx= direction (macro-direction-out))
++               (if (##fx= append (macro-append))
++                   (macro-no-truncate)
++                   (macro-truncate)))
++              (else
++               (macro-no-truncate)))
++        (macro-truncate-shift)))))))
+ 
+ (define-prim (##psettings->permissions psettings default-permissions)
+   (let ((permissions (macro-psettings-permissions psettings)))
+@@ -3282,12 +3298,14 @@
+   (##psettings-options->options
+    options
+    (##fx+
+-    (##fx* (macro-open-state-shift)
+-           (if (##fx= kind (macro-none-kind))
+-               (macro-open-state-closed)
+-               (macro-open-state-open)))
+-    (##fx* (macro-buffering-shift)
+-           buffering))))
++    (##fxarithmetic-shift-left
++     (if (##fx= kind (macro-none-kind))
++         (macro-open-state-closed)
++         (macro-open-state-open))
++     (macro-open-state-shift))
++    (##fxarithmetic-shift-left
++     buffering
++     (macro-buffering-shift)))))
+ 
+ ;;;----------------------------------------------------------------------------
+ 
+@@ -6690,8 +6708,9 @@
+               (macro-port-woptions port))
+              (woptions
+               (##psettings->woptions psettings
+-                                     (##fx* old-woptions
+-                                            (macro-stream-options-output-shift)))))
++                                     (##fxarithmetic-shift-left
++                                      old-woptions
++                                      (macro-stream-options-output-shift)))))
+         (let ((code
+                (and (macro-output-port? port)
+                     (##not (##fx= woptions old-woptions))
+@@ -6716,8 +6735,9 @@
+                           (##options-set!
+                            port
+                            (##fx+ roptions
+-                                  (##fx* woptions
+-                                         (macro-stream-options-output-shift)))))))
++                                  (##fxarithmetic-shift-left
++                                   woptions
++                                   (macro-stream-options-output-shift)))))))
+                 (if (##fixnum? result)
+                     (begin
+                       (macro-port-mutex-unlock! port)
+diff --git a/lib/_kernel#.scm b/lib/_kernel#.scm
+index 9d3578f2..e00a4bba 100644
+--- a/lib/_kernel#.scm
++++ b/lib/_kernel#.scm
+@@ -249,28 +249,28 @@
+ 
+ ;;; Debug settings.
+ 
+-(##define-macro (macro-debug-settings-level-mask)          15)
++(##define-macro (macro-debug-settings-level-mask)          (* 15 (expt 2 0)))
+ (##define-macro (macro-debug-settings-level-shift)         0)
+ 
+-(##define-macro (macro-debug-settings-uncaught-mask)       16)
++(##define-macro (macro-debug-settings-uncaught-mask)       (* 1 (expt 2 4)))
+ (##define-macro (macro-debug-settings-uncaught-primordial) 0)
+ (##define-macro (macro-debug-settings-uncaught-all)        1)
+ (##define-macro (macro-debug-settings-uncaught-shift)      4)
+ 
+-(##define-macro (macro-debug-settings-error-mask)          96)
++(##define-macro (macro-debug-settings-error-mask)          (* 3 (expt 2 5)))
+ (##define-macro (macro-debug-settings-error-repl)          0)
+ (##define-macro (macro-debug-settings-error-single-step)   1)
+ (##define-macro (macro-debug-settings-error-quit)          2)
+ (##define-macro (macro-debug-settings-error-shift)         5)
+ 
+-(##define-macro (macro-debug-settings-repl-mask)           896)
++(##define-macro (macro-debug-settings-repl-mask)           (* 7 (expt 2 7)))
+ (##define-macro (macro-debug-settings-repl-console)        0)
+ (##define-macro (macro-debug-settings-repl-stdio)          1)
+ (##define-macro (macro-debug-settings-repl-stdio-and-err)  2)
+ (##define-macro (macro-debug-settings-repl-client)         3)
+ (##define-macro (macro-debug-settings-repl-shift)          7)
+ 
+-(##define-macro (macro-debug-settings-user-intr-mask)      3072)
++(##define-macro (macro-debug-settings-user-intr-mask)      (* 3 (expt 2 10)))
+ (##define-macro (macro-debug-settings-user-intr-repl)      0)
+ (##define-macro (macro-debug-settings-user-intr-defer)     1)
+ (##define-macro (macro-debug-settings-user-intr-quit)      2)
+-- 
+2.25.1
+
diff --git a/user/gambit-c/APKBUILD b/user/gambit-c/APKBUILD
index 73a03981f..4cffffae5 100644
--- a/user/gambit-c/APKBUILD
+++ b/user/gambit-c/APKBUILD
@@ -3,11 +3,10 @@
 pkgname=gambit-c
 pkgver=4.9.4
 _pkgver=$(printf "%s" "${pkgver}" | tr . _)
-pkgrel=1
+pkgrel=2
 pkgdesc="An efficient implementation of the Scheme programming language."
 url="https://gambitscheme.org/"
 arch="all"
-options="!check"  # temporary until #924 is fixed
 license="Apache-2.0"
 depends=""
 makedepends="openssl-dev texinfo gnu-ghostscript"
@@ -16,6 +15,7 @@ source="https://gambitscheme.org/$pkgver/gambit-v${_pkgver}.tgz
 	fix-incompatible-stat-usage.patch
 	remove-non-ascii-character-from-gambit-txi.patch
 	reproducibility.patch
+	0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch
 
 	disable-srfi-179.patch
 	"
@@ -25,6 +25,25 @@ build() {
 	# https://github.com/gambit/gambit/issues/249
 	export CFLAGS="${CFLAGS} --param max-gcse-memory=600000000";
 
+	# We need to bootstrap if we patch .scm files that are
+	# used to generate .c files; using unpatched official
+	# releases should be OK if the patches are upstream.
+	#
+	# Disable versioned shlibs b/c buggy build scripts.
+	#
+	# There is no 'makefile' without an initial 'configure'.
+	./configure \
+		--build=$CBUILD \
+		--host=$CHOST \
+		--enable-single-host \
+		--enable-c-opt \
+		--enable-dynamic-clib \
+		--enable-debug-c-backtrace \
+		--enable-gcc-opts \
+		;
+	make bootstrap
+	make bootclean
+
 	./configure \
 		--build=$CBUILD \
 		--host=$CHOST \
@@ -40,7 +59,8 @@ build() {
 		--enable-shared \
 		--enable-versioned-shared-libs \
 		--disable-absolute-shared-libs \
-		--enable-openssl
+		--enable-openssl \
+		;
 	make
 	make modules
 }
@@ -57,4 +77,5 @@ sha512sums="3471062618949fe4e1eba19ca3170b8334065797d0c2f440050520ebca2af8bb6d57
 a878994ea7c40b301d30b4d05879c335ad42e1ca8c25387556691192b6945276d6d6ff017ff568302558b23c42c61f223bddb3596b8203fbee8edbf4fdd9b813  fix-incompatible-stat-usage.patch
 45336179d3f61fa3d70c3517f368fd8ccd744b5981c4bbc2091ed0016e10940c1b24dd58ee4c8d59637d89865a4c6f0ea80dc49a8859b7a900331fdb0e1efe49  remove-non-ascii-character-from-gambit-txi.patch
 133ef5442c1bfe51e57caecd509c12cdecd86cfb941114a5038fad2c3e2bda1770fde7e367561039d523db5ea9cba5cebae7a9ed9daca699863267e7224f1ad6  reproducibility.patch
+2b11fe9957c22a4410070f887f507215703e7476f050ef90ee8ea04e66f0f602f5cf2877a6efb71e7355a767e50a4f2fa4ecdc7b4bd9b1971f3d1234ca980b8c  0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch
 d0da7949db7a83020fc7e4e139c7df292b4671adf0ba42fdfee4448915e6b697fbcecb3ca206507a3756dc39506e0d0c1f8d07ea5906bb5ce6ab6b42c18f0781  disable-srfi-179.patch"
-- 
cgit v1.2.3-70-g09d2