I want to distribute my Gstreamer application with minimal external dependencies (especially of X11, because the app is intended to be used on Linux servers without any window subsystem). I build Gstreamer plugins as single shared library, using the next setup:
meson setup --wipe --default-library=static
–strip
-Dgpl=enabled
-Dgst-full-libraries=gstreamer-app-1.0,gstreamer-video-1.0,gstreamer-base-1.0,gstreamer-audio-1.0
-Dgood=enabled
-Dbad=enabled
-Dugly=disabled
-Dbase=enabled
-Dwebrtc=disabled
-Dlibav=disabled
-Dges=disabled
-Dgtk_doc=disabled
-Dexamples=disabled
-Dtests=disabled
-Dtools=enabled
-Dintrospection=disabled
-Dglib:tests=false
-Dgst-plugins-base:x11=disabled
-Dgst-plugins-base:xvideo=disabled
-Dgst-plugins-base:xshm=disabled
-Dgst-plugins-base:gl=disabled
-Dgst-plugins-base:pango=disabled
-Dgst-plugins-base:alsa=disabled
-Dgst-plugins-base:cdparanoia=disabled
-Dgst-plugins-base:libvisual=disabled
-Dgst-plugins-base:tremor=disabled
-Dgst-plugins-base:gio=disabled
-Dgst-plugins-base:ogg=disabled
-Dgst-plugins-base:theora=disabled
-Dgst-plugins-base:opus=disabled
-Dgst-plugins-base:vorbis=disabled
-Dgst-plugins-good:cairo=disabled
-Dgst-plugins-good:flac=disabled
-Dqt5=disabled
-Dqt6=disabled
-Dgst-plugins-good:cairo=disabled
-Dgst-plugins-good:jpeg=disabled
-Dgst-plugins-good:png=disabled
-Dgst-plugins-good:soup=disabled
-Dgst-plugins-good:pulse=disabled
-Dgst-plugins-good:vpx=disabled
-Dgst-plugins-good:lame=disabled
-Dgst-plugins-good:gtk3=disabled
-Dgst-plugins-good:qt5=disabled
-Dgst-plugins-bad:wayland=disabled
-Dgst-plugins-bad:opencv=disabled
-Dgst-plugins-bad:webrtc=disabled
-Dgst-plugins-bad:nvcodec=disabled
-Dgst-plugins-bad:aja=disabled
-Dgst-plugins-bad:x265=disabled
-Dgst-plugins-bad:va=disabled
-Dgst-plugins-bad:onnx=disabled
-Dgst-plugins-bad:tensordecoders=disabled
-Dgst-plugins-bad:fdkaac=enabled
-Dgst-plugins-bad:gl=disabled
-Dgst-plugins-bad:vulkan=disabled
-Dgst-plugins-bad:kms=disabled
-Dgst-plugins-bad:fbdev=disabled
-Dgst-plugins-bad:directfb=disabled
-Dgst-plugins-bad:msdk=disabled
-Dgst-plugins-bad:qsv=disabled
builddir
```
As you can see, I tried to exclude everything that is not needed, especially related to X11. I disabled pango, cairo, X11, and everything I was able to determine as potentially excessive and bringing Xs.
After compilation, I getting file libgstreamer-full-1.0.so and checking it with ldd:
```
$ ldd builddir/libgstreamer-full-1.0.so
linux-vdso.so.1 (0x00007f77fd34b000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f77f3c9b000)
libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f77f3c38000)
libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f77f3c31000)
libunwind.so.8 => /lib/x86_64-linux-gnu/libunwind.so.8 (0x00007f77f3c16000)
libdw.so.1 => /lib/x86_64-linux-gnu/libdw.so.1 (0x00007f77f3b62000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f77f3b46000)
libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f77f3976000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f77f3962000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f77f392f000)
libv4l2.so.0 => /lib/x86_64-linux-gnu/libv4l2.so.0 (0x00007f77f391f000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f77f37e2000)
libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f77f37ce000)
libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f77f37c6000)
libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f77f37c1000)
libXtst.so.6 => /lib/x86_64-linux-gnu/libXtst.so.6 (0x00007f77f37b9000)
libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f77f35d7000)
libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f77f3582000)
libicuuc.so.74 => /lib/x86_64-linux-gnu/libicuuc.so.74 (0x00007f77f3200000)
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f77f3572000)
libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f77f3544000)
libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f77f3006000)
libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007f77f349a000)
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f77f2a00000)
libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f77f3487000)
libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f77f341c000)
libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f77f28bc000)
libass.so.9 => /lib/x86_64-linux-gnu/libass.so.9 (0x00007f77f2fcd000)
libaom.so.3 => /lib/x86_64-linux-gnu/libaom.so.3 (0x00007f77f2200000)
libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f77f27fb000)
libfdk-aac.so.2 => /lib/x86_64-linux-gnu/libfdk-aac.so.2 (0x00007f77f2f37000)
libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f77f279a000)
libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007f77f21a1000)
librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f77f2f19000)
libwebp.so.7 => /lib/x86_64-linux-gnu/libwebp.so.7 (0x00007f77f2126000)
libwebpmux.so.3 => /lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007f77f278c000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f77f1e00000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f77f1d17000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f77f20f8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f77f1a00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f77fd34d000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f77f1c7d000)
libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f77f2780000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f77f20c6000)
libelf.so.1 => /lib/x86_64-linux-gnu/libelf.so.1 (0x00007f77f20a7000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f77f1946000)
libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f77f1c30000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f77f1919000)
libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f77f209a000)
libv4lconvert.so.0 => /lib/x86_64-linux-gnu/libv4lconvert.so.0 (0x00007f77f189f000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f77f1876000)
libicudata.so.74 => /lib/x86_64-linux-gnu/libicudata.so.74 (0x00007f77efa00000)
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f77f1853000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f77f181b000)
libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f77f1798000)
libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f77ef85c000)
libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f77f1776000)
libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x00007f77ef6af000)
libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f77f2084000)
libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f77ef667000)
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f77ef5e3000)
libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f77f1c15000)
libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f77ef4d6000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f77ef485000)
libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f77ef467000)
libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007f77f176b000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f77ef39b000)
libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f77ef38f000)
libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f77ef380000)
libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f77f207f000)
libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f77ef2d1000)
libunibreak.so.5 => /lib/x86_64-linux-gnu/libunibreak.so.5 (0x00007f77ef2af000)
libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f77ef284000)
libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007f77ef213000)
libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f77ef1ff000)
libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f77ef1ab000)
libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 (0x00007f77ef14d000)
liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 (0x00007f77ef13d000)
libsharpyuv.so.0 => /lib/x86_64-linux-gnu/libsharpyuv.so.0 (0x00007f77f1763000)
libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f77ef102000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f77ef0fc000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f77ef0f4000)
libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f77ef0ce000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f77ef0a2000)
libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f77ef099000)
libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f77eefd0000)
libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f77eefa4000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f77eef9e000)
libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f77eef91000)
libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f77eef77000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f77eef61000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f77eef5a000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f77eef47000)
```
As you can see, X11 is still in the list. Also, there are pango and cairo, despite I explicitly disabled them.
My question is, how I can get rid of X11 and related plugins?
GStreamer 1.27, OS Ubuntu 24 LTS