diff --git a/gnu/local.mk b/gnu/local.mk
index a013647d7e1e..a6b9585bb6df 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1685,7 +1685,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/psm-disable-memory-stats.patch		\
   %D%/packages/patches/psm-ldflags.patch			\
   %D%/packages/patches/psm-repro.patch				\
-  %D%/packages/patches/public-inbox-fix-spawn-test.patch	\
   %D%/packages/patches/pulseaudio-fix-mult-test.patch		\
   %D%/packages/patches/pulseaudio-longer-test-timeout.patch	\
   %D%/packages/patches/pulseview-qt515-compat.patch		\
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 65d806086205..82126f5a3bbe 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -4141,7 +4141,7 @@ (define-public l2md
 (define-public public-inbox
   (package
     (name "public-inbox")
-    (version "1.8.0")
+    (version "1.9.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -4149,9 +4149,8 @@ (define-public public-inbox
                    (commit (string-append "v" version))))
              (sha256
               (base32
-               "0xni1l54v1z3p0zb52807maay0yqabp8jgf5iras5zmhgjyk3swz"))
-             (file-name (git-file-name name version))
-             (patches (search-patches "public-inbox-fix-spawn-test.patch"))))
+               "0cgvxg0f32nvb3079x46gjkfis4bc98s6nx6kl8rm90kmb1kxkx9"))
+             (file-name (git-file-name name version))))
     (build-system perl-build-system)
     (arguments
      `(#:imported-modules (,@%perl-build-system-modules
@@ -4227,33 +4226,39 @@ (define-public public-inbox
      (list ;; For testing.
            lsof openssl tini))
     (inputs
-     (list bash-minimal
-           curl
-           git
-           perl-dbd-sqlite
-           perl-dbi
-           perl-email-address-xs
-           perl-email-mime-contenttype
-           perl-email-mime
-           perl-email-simple
-           perl-net-server
-           perl-plack-middleware-deflater
-           perl-plack-middleware-reverseproxy
-           perl-plack
-           perl-search-xapian
-           perl-socket-msghdr
-           perl-timedate
-           perl-uri-escape
-           perl-inline-c
-           perl-parse-recdescent
-           perl-linux-inotify2
-           ;; FIXME: Perl modules are unable to find the config file for highlight
-           ;; https://issues.guix.gnu.org/48033#4
-           ;; ("highlight" ,highlight)
-           ;; For testing.
-           perl-ipc-run
-           perl-xml-feed
-           xapian))
+     (append
+      (if (target-x86-32?)
+          ;; Required by test t/pop3d.t, otherwise fails with
+          ;; “sizeof(off_t)=8 requires File::FcntlLock”.
+          (list perl-file-fcntllock)
+          '())
+      (list bash-minimal
+            curl
+            git
+            perl-dbd-sqlite
+            perl-dbi
+            perl-email-address-xs
+            perl-email-mime-contenttype
+            perl-email-mime
+            perl-email-simple
+            perl-net-server
+            perl-plack-middleware-deflater
+            perl-plack-middleware-reverseproxy
+            perl-plack
+            perl-search-xapian
+            perl-socket-msghdr
+            perl-timedate
+            perl-uri-escape
+            perl-inline-c
+            perl-parse-recdescent
+            perl-linux-inotify2
+            ;; FIXME: Perl modules are unable to find the config file for highlight
+            ;; https://issues.guix.gnu.org/48033#4
+            ;; ("highlight" ,highlight)
+            ;; For testing.
+            perl-ipc-run
+            perl-xml-feed
+            xapian)))
     (home-page "https://public-inbox.org/README.html")
     (synopsis "Archive mailing lists in Git repositories")
     (description
diff --git a/gnu/packages/patches/public-inbox-fix-spawn-test.patch b/gnu/packages/patches/public-inbox-fix-spawn-test.patch
deleted file mode 100644
index 2739b1974de8..000000000000
--- a/gnu/packages/patches/public-inbox-fix-spawn-test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5593489d9c3ce22b1942f35c7ebb0e06fcf2bfa8 Mon Sep 17 00:00:00 2001
-From: Thiago Jung Bauermann <bauermann@kolabnow.com>
-Date: Fri, 10 Jun 2022 12:39:18 -0300
-Subject: [PATCH] t/spawn: Find invalid PID to try to join its process group
-
-In the container used to build packages of the GNU Guix distribution, PID 1
-runs as the same user as the test so this spawn that should fail actually
-succeeds.
-
-Fix the problem by going through different PIDs and picking one that
-either doesn't exist or we aren't allowed to signal.
----
-
-This patch is taken from the public-inbox repository and will appear in the
-release after v1.8.
-
- t/spawn.t | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/t/spawn.t b/t/spawn.t
-index 6168c1f6171c..5fc99a2a101c 100644
---- a/t/spawn.t
-+++ b/t/spawn.t
-@@ -24,7 +24,18 @@ SKIP: {
- 	is(waitpid($pid, 0), $pid, 'waitpid succeeds on spawned process');
- 	is($?, 0, 'true exited successfully');
- 	pipe(my ($r, $w)) or BAIL_OUT;
--	$pid = eval { spawn(['true'], undef, { pgid => 1, 2 => $w }) };
-+
-+	# Find invalid PID to try to join its process group.
-+	my $wrong_pgid = 1;
-+	for (my $i=0x7fffffff; $i >= 2; $i--) {
-+		if (kill(0, $i) == 0) {
-+			$wrong_pgid = $i;
-+			last;
-+		}
-+	}
-+
-+	# Test spawn behavior when it can't join the requested process group.
-+	$pid = eval { spawn(['true'], undef, { pgid => $wrong_pgid, 2 => $w }) };
- 	close $w;
- 	my $err = do { local $/; <$r> };
- 	# diag "$err ($@)";
