diff --git a/gnu/local.mk b/gnu/local.mk
index b432a95026..60f0167979 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -41,7 +41,7 @@
 # Copyright © 2020, 2023 Vinicius Monego <monego@posteo.net>
 # Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 # Copyright © 2021 Greg Hogan <code@greghogan.com>
-# Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
+# Copyright © 2021, 2022, 2023 Philip McGrath <philip@philipmcgrath.com>
 # Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 # Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 # Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
@@ -1798,7 +1798,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ripperx-missing-file.patch		\
   %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
   %D%/packages/patches/rtags-separate-rct.patch			\
-  %D%/packages/patches/racket-backport-8.7-pkg-strip.patch	\
   %D%/packages/patches/racket-chez-scheme-bin-sh.patch		\
   %D%/packages/patches/racket-rktio-bin-sh.patch		\
   %D%/packages/patches/racket-zuo-bin-sh.patch			\
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 1f178d2c72..0b3c813658 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -466,7 +466,7 @@ (define-public chez-scheme-for-racket
   (package
     (inherit chez-scheme)
     (name "chez-scheme-for-racket")
-    (version "9.5.9.8")
+    (version "9.9.9-pre-release.14")
     ;; The version should match `scheme-version`.
     ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
     ;; It will always be different than the upstream version!
diff --git a/gnu/packages/patches/racket-backport-8.7-pkg-strip.patch b/gnu/packages/patches/racket-backport-8.7-pkg-strip.patch
deleted file mode 100644
index 703b6e8e82..0000000000
--- a/gnu/packages/patches/racket-backport-8.7-pkg-strip.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 1b7e15c23baf1fda44b1d0752902ddea11419fc5 Mon Sep 17 00:00:00 2001
-From: Philip McGrath <philip@philipmcgrath.com>
-Date: Fri, 7 Oct 2022 02:15:13 -0400
-Subject: [PATCH] pkg/strip: handle read-only input
-
-A package directory supplied to the functions from `pkg/strip` might
-have had all of its write permission bits unset. Since `copy-file`
-preserves the permissions of the source file, we may end up with a
-read-only file that we want to overwrite (e.g. an `info.rkt` file).
-Explicitly setting `user-write-bit` before writing avoids this problem.
-Conservatively, we only set the permissions when actually needed,
-and we restore the original permissions when we are done.
-
-(cherry picked from commit 8c647c8cc9b66112198fcf9bea27fc0e3737162f)
----
- racket/collects/pkg/strip.rkt | 35 +++++++++++++++++++++++++++++------
- 1 file changed, 29 insertions(+), 6 deletions(-)
-
-diff --git a/racket/collects/pkg/strip.rkt b/racket/collects/pkg/strip.rkt
-index 0ff58cea02..5899dbc6e6 100644
---- a/racket/collects/pkg/strip.rkt
-+++ b/racket/collects/pkg/strip.rkt
-@@ -306,9 +306,8 @@
-            #t
-            new-mod*-subs))))
-   (unless (eq? mod new-mod)
--    (call-with-output-file*
-+    (call-with-output-file/writable
-      new-p
--     #:exists 'truncate/replace
-      (lambda (out) (write new-mod out)))))
- 
- (define (fixup-local-redirect-reference p js-path #:user [user-js-path js-path])
-@@ -340,9 +339,8 @@
-                                       (string->bytes/utf-8 user-js-path)
-                                       (subbytes s (+ delta end2)))]
-                        [else s]))))
--    (call-with-output-file*
-+    (call-with-output-file/writable
-      p
--     #:exists 'truncate/replace
-      (lambda (out) (write-bytes new-bstr out)))))
- 
- ;; Used in binary[-lib] mode:
-@@ -383,9 +381,8 @@
-          (convert-mod info-lib defns)]))
-     (unless (equal? new-content content)
-       ;; write updated:
--      (call-with-output-file* 
-+      (call-with-output-file/writable
-        new-p
--       #:exists 'truncate
-        (lambda (out)
-          (write new-content out)
-          (newline out)))
-@@ -503,3 +500,29 @@
-                     which
-                     dir)
-             (current-continuation-marks)))))
-+
-+(define (call-with-output-file/writable pth proc)
-+  ;; In case `pth` was copied from a file without the user-write-bit set,
-+  ;; explicitly make it writable while we overwrite it.
-+  (define (run)
-+    (call-with-output-file* pth
-+      #:exists 'truncate/replace
-+      proc))
-+  (cond
-+    [(file-exists? pth)
-+     (define old-mode
-+       (file-or-directory-permissions pth 'bits))
-+     (define new-mode
-+       (if (eq? (system-type) 'windows)
-+           (bitwise-ior old-mode user-write-bit group-write-bit other-write-bit)
-+           (bitwise-ior old-mode user-write-bit)))
-+     (if (= old-mode new-mode)
-+         (run)
-+         (dynamic-wind
-+          (λ ()
-+            (file-or-directory-permissions pth new-mode))
-+          run
-+          (λ ()
-+            (file-or-directory-permissions pth old-mode))))]
-+    [else
-+     (run)]))
-
-base-commit: 7e4f6e2362d4a08affbbae3c7ee4b98e325274c6
--- 
-2.38.0
-
diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index 2cda2b6b9c..e845b7d683 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013-2016, 2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2021, 2022, 2023 Philip McGrath <philip@philipmcgrath.com>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -191,8 +191,8 @@ (define-module (gnu packages racket)
 ;;
 ;; CODE:
 
-(define %racket-version "8.7") ; Remember to update chez-scheme-for-racket!
-(define %zuo-version "1.0") ; defined in racket/src/zuo/zuo.c
+(define %racket-version "8.8") ; Remember to update chez-scheme-for-racket!
+(define %zuo-version "1.6") ; defined in racket/src/zuo/zuo.c
 (define %racket-commit
   (string-append "v" %racket-version))
 (define %racket-origin
@@ -202,10 +202,9 @@ (define %racket-origin
           (url "https://github.com/racket/racket")
           (commit %racket-commit)))
     (sha256
-     (base32 "0agwa1nrv8mizkqg9nffjli00djyx1r9n6y6b6ry7k13pb6i7xnj"))
+     (base32 "0d1dknnj93r6rmz9zhgn93z937csrni5xpjam2ci41zc070p09y7"))
     (file-name (git-file-name "racket" %racket-version))
-    (patches (search-patches "racket-backport-8.7-pkg-strip.patch"
-                             "racket-chez-scheme-bin-sh.patch"
+    (patches (search-patches "racket-chez-scheme-bin-sh.patch"
                              "racket-rktio-bin-sh.patch"
                              "racket-zuo-bin-sh.patch"))
     (modules '((guix build utils)))
@@ -672,7 +671,7 @@ (define-public racket
        "2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7")
        '("2d" "2d-doc" "2d-lib"))
       (simple-racket-origin
-       "algol60" (base32 "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx")
+       "algol60" (base32 "03akd7xhn4l7y66qgaimvdbn6gq7ay6j03dc11mz80n06z21dfb6")
        '(("algol60" ".")))
       (racket-packages-origin
        "racket" %racket-origin
@@ -688,7 +687,7 @@ (define-public racket
          ("sandbox-lib" "pkgs/sandbox-lib")
          ("zo-lib" "pkgs/zo-lib")))
       (simple-racket-origin
-       "cext-lib" (base32 "00w38jpv88fpl4pgj6ndnysvn0s21rjvj0xhznay80msan0vc341")
+       "cext-lib" (base32 "01dirj5nq9s384xqpzh1p07la38vcycsim0k1ls04a52sgyglgwc")
        '("cext-lib" "dynext-lib"))
       (simple-racket-origin
        "class-iop" (base32 "08z57q83cr7wnh6g8ah3hdhmsmf9zp1jfs7yvxv188l3hzvygy5l")
@@ -709,16 +708,16 @@ (define-public racket
        "db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5")
        '("db" "db-doc" "db-lib"))
       (simple-racket-origin
-       "deinprogramm" (base32 "1ngdjky4n1vy2b9jz1z4pnzl0vgvaqr3p0ff5sx82hs38qvvi5di")
+       "deinprogramm" (base32 "0glnk8f1gi8r9y27glmz59fjib2vx8xwwil9jsds99bsvbp24g06")
        '("deinprogramm" "deinprogramm-signature"))
       (simple-racket-origin
        "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0")
        '("distributed-places" "distributed-places-doc" "distributed-places-lib"))
       (simple-racket-origin
-       "draw" (base32 "0pxpay04rylq3hqfpdrha2pw78hhwsjzq8w4f156gipin74lb7a2")
+       "draw" (base32 "0p69yk1c1jad5xmr8xxbxvrmq5yb3cr5zlj1kydx3nd0ij3g5dir")
        '("draw" "draw-doc" "draw-lib"))
       (simple-racket-origin
-       "drracket" (base32 "12khv954v7xpi3wv50pp5l28ww1382apbvzvs67d6ik10nn3d0y4")
+       "drracket" (base32 "19x5j1zj8zyg3kfhjshwqayiddbv7kqlsjd5zw0cpv7a3adkjr65")
        '("drracket"
          "drracket-plugin-lib"
          "drracket-tool"
@@ -738,7 +737,7 @@ (define-public racket
        "errortrace" (base32 "0l9k2rx6z4jkid7kxhbs763s66pxbzvfrgxajykbrmqkv77lhb3w")
        '("errortrace" "errortrace-doc" "errortrace-lib"))
       (simple-racket-origin
-       "expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q")
+       "expeditor" (base32 "10841c60nxqvwnjn6f9c6dcp4vsqbvi7n8nvi59vjk7d3b2qfpbq")
        '("expeditor" "expeditor-doc" "expeditor-lib"))
       (simple-racket-origin
        "frtime" (base32 "0ydz2yn8vvv6z7brwlswcyx0f31a6y6d443i89rysfvd2xkhpfd5")
@@ -752,13 +751,13 @@ (define-public racket
        "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d")
        '(("games" ".")))
       (simple-racket-origin
-       "gui" (base32 "027imnxwm0663yn9mbkq8sjm1qr1pw7zf4ra168k746hp446ah58")
+       "gui" (base32 "1dddr8c5v6vp42jmnrrfsm1v1hgha0q0wvvpdkl7x0ri23plgcrm")
        '("gui" "gui-doc" "gui-lib" "tex-table"))
       (simple-racket-origin
        "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5")
        '("gui-pkg-manager-lib"))
       (simple-racket-origin
-       "htdp" (base32 "0pf2kf63xj9s0n44vaxlmnd1bdb1a44gcp807a3b3cmlc1lkb36z")
+       "htdp" (base32 "1ba4pj7v8mi8kvwdn7iw4jc435hm2d04i7gqgys79b47i6qyyf6h")
        '("htdp" "htdp-doc" "htdp-lib"))
       (simple-racket-origin
        "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x")
@@ -782,7 +781,7 @@ (define-public racket
        "make" (base32 "10852fj30bz5r46c3d99s37fkgy5yh44gb01j29sf3kxnhi0g2sa")
        '(("make" ".")))
       (simple-racket-origin
-       "math" (base32 "00ld38in5jfshs1q4zf07w84cyv4yjr40kmw30pyd5wqgs2zq9ai")
+       "math" (base32 "072hkk9lih1265pyjvafd4pill9x5wjs41kmm6cgwzwy5hqv0qyw")
        '("math" "math-doc" "math-lib"))
       (simple-racket-origin
        "mysterx" (base32 "11p9jzrafw0hizhl0cs4sxx7rv281185q8hryic2rpk0kzjdyr48")
@@ -826,7 +825,7 @@ (define-public racket
        "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1")
        '("pconvert-lib"))
       (simple-racket-origin
-       "pict" (base32 "063a1lc6v1i8ywxcskkvvfxdvlx0qhr0l4l3dkibmnli47mdhv7g")
+       "pict" (base32 "0hiwld84kd5s07rppswv8hd83sx8vk78xbhkbbwrnc51cfqwvvfj")
        '("pict" "pict-doc" "pict-lib"))
       (simple-racket-origin
        "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x")
@@ -860,7 +859,7 @@ (define-public racket
                        (file-name (git-file-name "Metaxal-quickscript" %racket-version)))
        '(("quickscript" ".")))
       (simple-racket-origin
-       "r5rs" (base32 "1g3cysj7z88r38vkzvi8g2fb2hn4yg1fdhy5smxw303jxgl3inp6")
+       "r5rs" (base32 "0iciz6khmynly0901kl9m7rnd1d3nxrin0rl6d9rjwvsks30aqad")
        '("r5rs" "r5rs-doc" "r5rs-lib"))
       (simple-racket-origin
        "r6rs" (base32 "1mgcxd88s67w47a2z1i6snz8qhbngjbmr6rs4pchpnrfap96ssgl")
@@ -896,7 +895,7 @@ (define-public racket
        "realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g")
        '(("realm" ".")))
       (simple-racket-origin
-       "redex" (base32 "1v5p65y3hnp1mfvy0jl4lhmaw9s3qzzfcfh3fhihhqxsybbqp3q3")
+       "redex" (base32 "1dlivxllz1y7lsh402i6bmljbwbbphcvhbgf8jsnhip2vhck5rp4")
        '("redex"
          "redex-benchmark"
          "redex-doc"
@@ -905,13 +904,13 @@ (define-public racket
          "redex-lib"
          "redex-pict-lib"))
       (simple-racket-origin
-       "sasl" (base32 "0ibh4wb4gn8pggx6gkv4vk4d6rwzn5nrvjibhvkzhaynf6lhb824")
+       "sasl" (base32 "1l74rkp8m2jfb82678k3lhd2y5k9l8csazwshf9m969i67gzbjh8")
        '("sasl" "sasl-doc" "sasl-lib"))
       (simple-racket-origin
        "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x")
        '(("scheme-lib" ".")))
       (simple-racket-origin
-       "scribble" (base32 "1n0ywdham53h2ibkhc0cnrhhaxfkl7ax0bx5sdfpnyh2yrabxwqf")
+       "scribble" (base32 "1m3s7nz4qk71hnl2qhnm4fbk4mfz1z53ig21czhinbxpall8l4d1")
        '("scribble"
          "scribble-doc"
          "scribble-html-lib"
@@ -943,7 +942,7 @@ (define-public racket
        "snip" (base32 "19n2i1m2nysrbv38jxk32abymdbhcxdcrrjsg4ppfbng8niygc8x")
        '("snip" "snip-lib"))
       (simple-racket-origin
-       "typed-racket" (base32 "0yh9vcg1bjamf6nq3hqxwjg07kjkxyqhvymv3r64j1n4hiiwz6iv")
+       "typed-racket" (base32 "1hhc0nss68814xsxhl5rnw4smnm06573j6ka0wp77almqg5nzhpv")
        '("source-syntax"
          "typed-racket"
          "typed-racket-compatibility"
@@ -954,13 +953,13 @@ (define-public racket
        "srfi" (base32 "13xvfzr5546m3a4kksyawzcl93nrklasr1slfa5ar3p77h962la4")
        '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib"))
       (simple-racket-origin
-       "string-constants" (base32 "174q3ihcp8s52mmlk7z0sipjksiac432pfkm0inlwi92s6p7dlb3")
+       "string-constants" (base32 "1lxab9323xmxqs4mxbgr504xgcgsf9dvx2xsb4p92fjzsif0d64y")
        '("string-constants" "string-constants-doc" "string-constants-lib"))
       (simple-racket-origin
        "swindle" (base32 "03n9ymjhrw45h7hxkw4nq8nidnvs9mfzb4228s2cjfaqbgqxvsyb")
        '(("swindle" ".")))
       (simple-racket-origin
-       "syntax-color" (base32 "02dcd4yvdnw35m3srvfd43csxffxw3j4rk6zi379b8dsvbbrjyq1")
+       "syntax-color" (base32 "1xxbvcqca99px01cnh40r69w1ica8zl97yyryb6xz30j6nblsmb6")
        '("syntax-color" "syntax-color-doc" "syntax-color-lib"))
       (simple-racket-origin
        "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia")
