diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 9c72e1793f3..4ebe801093a 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2024 jgart <jgart@dismail.de>
 ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
 ;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
-;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2025 Karl Hallsby <karl@hallsby.com>
 ;;;
@@ -3171,15 +3171,15 @@ (define-public hivex
 (define-public libguestfs-minimal
   (package
     (name "libguestfs-minimal")
-    (version "1.53.6")
+    (version "1.54.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://libguestfs.org/download/"
+              (uri (string-append "https://download.libguestfs.org/"
                                   (version-major+minor version)
                                   "-stable/libguestfs-" version ".tar.gz"))
               (sha256
                (base32
-                "0vssarc3n4kv26fyjmkrrcvh55v41fhycba43pij3rc2izl72s2y"))
+                "0zhp59hczy2k5zm8hzzsimd3svd36sxn39a052ygfx9636nccgvf"))
               (patches
                (search-patches "libguestfs-syms.patch"))))
     (build-system gnu-build-system)
@@ -3201,7 +3201,7 @@ (define-public libguestfs-minimal
                    "--with-distro=\"Guix System\""
                    "--with-readline"
                    (string-append "LDFLAGS=-Wl,-rpath," %output "/lib"))
-           #:make-flags #~`("REALLY_INSTALL=yes")
+           #:make-flags #~'("REALLY_INSTALL=yes")
            #:phases
            #~(let* ((lib (string-append #$output "/lib"))
                     (lib/ocaml (string-append lib "/ocaml")))
@@ -3210,15 +3210,18 @@ (define-public libguestfs-minimal
                    (lambda _
                      (for-each patch-shebang
                                (find-files "."))
-                     (substitute* "ocaml/Makefile.in"
-                       (("\\$\\(DESTDIR\\)\\$\\(OCAMLLIB\\)")
+                     (substitute* "ocaml/Makefile.am"
+                       (("\\$\\(DESTDIR\\)\\$\\(INSTALL_OCAMLLIB\\)")
                         lib/ocaml))
                      ;; FIXME: Perl bindings have broken runpath,
                      ;; this substitution doesn't seem to work.
                      (substitute* "perl/Build.PL.in"
                        (("extra_linker_flags => \\[")
                         (string-append "extra_linker_flags => [
-        '-L" #$output "/lib',")))))
+        '-L" lib "',")))))
+                 (replace 'bootstrap
+                   (lambda _
+                     (invoke "autoreconf" "-vif")))
                  (replace 'check
                    (lambda* (#:key tests? make-flags #:allow-other-keys)
                      (when tests?
@@ -3254,6 +3257,8 @@ (define-public libguestfs-minimal
                                    (invoke "rm" "-rf" d))
                                  (list man-dir info-dir)))))))))
     (native-inputs (list augeas
+                         autoconf
+                         automake
                          bison
                          cpio
                          flex
@@ -3270,7 +3275,8 @@ (define-public libguestfs-minimal
                          po4a
                          xorriso
                          xz
-                         zstd))
+                         zstd
+                         (list zstd "lib")))
     (inputs
      (list file
            fuse
@@ -3333,9 +3339,6 @@ (define-public libguestfs
                   (substitute* "m4/guestfs-bash-completion.m4"
                     (("`pkg-config --variable=completionsdir bash-completion`")
                      completions))
-                  (substitute* "ocaml/Makefile.am"
-                    (("\\$\\(DESTDIR\\)\\$\\(OCAMLLIB\\)")
-                     lib/ocaml))
                   (substitute* "lua/Makefile.am"
                     (("\\$\\(DESTDIR\\)\\$\\(lualibdir\\)")
                      lib/lua))
@@ -3352,9 +3355,7 @@ (define-public libguestfs
 create_header"))))))))))
     (native-inputs
      (modify-inputs (package-native-inputs libguestfs-minimal)
-       (prepend autoconf
-                automake
-                bash-completion
+       (prepend bash-completion
                 cdrtools
                 gobject-introspection
                 python
