diff --git a/.orchestra/config/components/libltdl.yml b/.orchestra/config/components/libltdl.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1966c1a2f06417aae434ff797abe5a3aee892dff
--- /dev/null
+++ b/.orchestra/config/components/libltdl.yml
@@ -0,0 +1,30 @@
+#@ load("@ytt:overlay", "overlay")
+#@ load("/lib/create_component.lib.yml", "single_build_component")
+
+#@ load("/global_options.lib.yml", "options")
+
+#@ source_url = "https://mirror.kumi.systems/gnu/libtool/libtool-2.4.6.tar.gz"
+
+#@yaml/text-templated-strings
+---
+#@ def _libltdl_args():
+configure: |
+  mkdir -p "$BUILD_DIR"
+  extract.sh --into "$BUILD_DIR" "(@= source_url @)"
+  cd "$BUILD_DIR"
+  ./configure \
+    --enable-ltdl-install \
+    --disable-static \
+    --prefix="$ORCHESTRA_ROOT" \
+    CFLAGS="(@= options["use_old_glibc_cflags"] @) -Wno-error" \
+    LDFLAGS="(@= options["use_old_glibc_lflags"] @) (@= options["modern_linker_flags"] @) -Wl,-rpath,$RPATH_PLACEHOLDER/lib"
+build_system: make
+dependencies:
+  - toolchain/host/gcc
+#@ end
+
+#@overlay/match by=overlay.all
+#@overlay/match-child-defaults missing_ok=True
+---
+components:
+  libltdl: #@ single_build_component(**_libltdl_args())
diff --git a/.orchestra/config/components/ui/graphviz.lib.yml b/.orchestra/config/components/ui/graphviz.lib.yml
index fe58c1441906fc6145db4b3c98688c6556f8d148..e633aada488cff89ede9371389892e2f5d4a5ee1 100644
--- a/.orchestra/config/components/ui/graphviz.lib.yml
+++ b/.orchestra/config/components/ui/graphviz.lib.yml
@@ -13,7 +13,7 @@ configure: |
 
   cd $BUILD_DIR
   ./configure \
-    --disable-ltdl \
+    --enable-ltdl \
     --disable-gdk-pixbuf \
     --without-pangocairo \
     --without-devil \
@@ -64,6 +64,7 @@ configure: |
 build_system: make
 dependencies:
   - clang-release
+  - libltdl
 #@ end
 
 ---