diff --git a/Formula/s/sile.rb b/Formula/s/sile.rb
index a4a5444dd8d8c..2c7e7a4a8c304 100644
--- a/Formula/s/sile.rb
+++ b/Formula/s/sile.rb
@@ -1,10 +1,10 @@
 class Sile < Formula
   desc "Modern typesetting system inspired by TeX"
   homepage "https://sile-typesetter.org"
-  url "https://github.com/sile-typesetter/sile/releases/download/v0.15.5/sile-0.15.5.tar.zst"
-  sha256 "d20137b02d16302d287670fd285ad28ac3b8d3af916460aa6bc8cbff9321b9f9"
+  url "https://github.com/sile-typesetter/sile/releases/download/v0.15.6/sile-0.15.6.tar.zst"
+  sha256 "0ad3efc5ba6adbfab0b8034fa7d5c32501e5c486c589a35926f619794c7fc321"
   license "MIT"
-  revision 3
+  revision 1
 
   bottle do
     sha256 cellar: :any,                 arm64_sequoia: "702f167def540e5073692fb507ca92697cae0e8e97b81b89168323e0f152dcc0"
@@ -45,8 +45,8 @@ class Sile < Formula
   end
 
   resource "compat53" do
-    url "https://luarocks.org/manifests/lunarmodules/compat53-0.12-1.rockspec"
-    sha256 "880cdad8d1789a0756f2023d2c98f36d94e6d2c1cc507190b4f9883420435746"
+    url "https://luarocks.org/manifests/lunarmodules/compat53-0.14.3-1.rockspec"
+    sha256 "16218188112c20e9afa9e9057f753d29d7affb10fe3fb2ac74cab17c6de9a030"
   end
 
   resource "linenoise" do
@@ -74,11 +74,9 @@ class Sile < Formula
     sha256 "adc3e279ce67fb477ce7bf88cfb87607491d1c50d9c785b1567066c353f192f9"
   end
 
-  # This resource cannot be updated
-  # Ref: https://github.com/Homebrew/homebrew-core/pull/128136#issuecomment-1505583956
   resource "luaexpat" do
-    url "https://luarocks.org/manifests/lunarmodules/luaexpat-1.4.1-1.src.rock"
-    sha256 "b2b31f62fd09252d7ec0218d083cf9b8d9fc6a20f4594559f96649beee172233"
+    url "https://luarocks.org/manifests/lunarmodules/luaexpat-1.5.2-1.src.rock"
+    sha256 "a88ac147d2ceaf168fddedd2245928f35d4c0218094142b054db7e9bae0b5b82"
   end
 
   # depends on lpeg
@@ -110,8 +108,8 @@ class Sile < Formula
 
   # depends on luafilesystem
   resource "penlight" do
-    url "https://luarocks.org/manifests/tieske/penlight-1.13.1-1.src.rock"
-    sha256 "fa028f7057cad49cdb84acdd9fe362f090734329ceca8cc6abb2d95d43b91835"
+    url "https://luarocks.org/manifests/tieske/penlight-1.14.0-2.src.rock"
+    sha256 "f36affa14fb43e208a59f2e96d214f774b957bcd05d9c07ec52b39eac7f4a05d"
   end
 
   # depends on penlight
@@ -143,10 +141,6 @@ class Sile < Formula
   end
 
   def install
-    # Workaround for ICU 76+.
-    # Issue ref: https://github.com/sile-typesetter/sile/issues/2152
-    inreplace "configure", '"icu-uc icu-io"', '"icu-uc icu-i18n icu-io"' if build.stable?
-
     lua = Formula["luajit"]
     luaversion = "5.1"
     luapath = libexec/"vendor"
@@ -182,17 +176,17 @@ def install
       r.stage do
         rock = Pathname.pwd.children(false).first
         unpack_dir = Utils.safe_popen_read("luarocks", "unpack", rock).split("\n")[-2]
-
         spec = "#{r.name}-#{r.version}.rockspec"
         cd(unpack_dir) { system "luarocks", "make", *luarocks_args, spec }
       end
     end
 
-    configure_args = %w[
+    configure_args = %W[
       FCMATCH=true
       --disable-silent-rules
       --with-system-luarocks
       --with-system-lua-sources
+      --with-vendored-luarocks-dir=#{luapath}
     ]
 
     system "./bootstrap.sh" if build.head?