Huge dependency of GTK4

I have installed GTK3 on MSYS2, then try to install GTK4 4.2, found its has a huge dependency, does it right? Could we reduce the dependency and install size?

$ pacman -S mingw-w64-x86_64-gtk4
resolving dependencies...
looking for conflicting packages...
warning: dependency cycle detected:
warning: mingw-w64-x86_64-ffms2 will be installed before its mingw-w64-x86_64-ffmpeg dependency

Packages (108) mingw-w64-x86_64-SDL2-2.0.14-2  mingw-w64-x86_64-aom-3.1.1-4
               mingw-w64-x86_64-boost-1.75.0-4  mingw-w64-x86_64-celt-0.11.3-4
               mingw-w64-x86_64-ceres-solver-2.0.0-2
               mingw-w64-x86_64-chromaprint-1.5.0-1
               mingw-w64-x86_64-cppunit-1.15.1-2
               mingw-w64-x86_64-dav1d-0.9.0-1
               mingw-w64-x86_64-djvulibre-3.5.28-2
               mingw-w64-x86_64-eigen3-3.3.9-1  mingw-w64-x86_64-faac-1.30-2
               mingw-w64-x86_64-faad2-2.10.0-1
               mingw-w64-x86_64-fdk-aac-2.0.1-1  mingw-w64-x86_64-ffmpeg-4.4-6
               mingw-w64-x86_64-ffms2-2.40-1  mingw-w64-x86_64-fftw-3.3.9-2
               mingw-w64-x86_64-flac-1.3.3-3  mingw-w64-x86_64-flif-0.3-1
               mingw-w64-x86_64-fluidsynth-2.2.0-1
               mingw-w64-x86_64-freeimage-3.18.0-6
               mingw-w64-x86_64-frei0r-plugins-1.7.0-3
               mingw-w64-x86_64-gavl-1.4.0-1
               mingw-w64-x86_64-gcc-libgfortran-10.3.0-2
               mingw-w64-x86_64-gflags-2.2.2-2  mingw-w64-x86_64-glog-0.5.0-1
               mingw-w64-x86_64-glsl-optimizer-git-r66917.d78c3d2f24-1
               mingw-w64-x86_64-gsfonts-20200910-2  mingw-w64-x86_64-gsl-2.7-1
               mingw-w64-x86_64-gsm-1.0.19-1
               mingw-w64-x86_64-gst-plugins-bad-1.18.4-7
               mingw-w64-x86_64-gst-plugins-base-1.18.4-3
               mingw-w64-x86_64-gstreamer-1.18.4-1
               mingw-w64-x86_64-hdf5-1.12.0-4
               mingw-w64-x86_64-hlsl2glsl-git-r852.14dd189-1
               mingw-w64-x86_64-imagemagick-7.0.10.11-4
               mingw-w64-x86_64-intel-tbb-1~2020.2-2
               mingw-w64-x86_64-jxrlib-1.1-3  mingw-w64-x86_64-l-smash-2.14.5-1
               mingw-w64-x86_64-lame-3.100-1
               mingw-w64-x86_64-leptonica-1.81.1-1
               mingw-w64-x86_64-libaec-1.0.5-2
               mingw-w64-x86_64-libass-0.15.1-1
               mingw-w64-x86_64-libbluray-1.2.1-1
               mingw-w64-x86_64-libbs2b-3.1.0-1
               mingw-w64-x86_64-libcaca-0.99.beta19-6
               mingw-w64-x86_64-libcue-2.2.1-2  mingw-w64-x86_64-libdca-0.0.7-1
               mingw-w64-x86_64-libde265-1.0.8-1
               mingw-w64-x86_64-libdvdcss-1.4.2-1
               mingw-w64-x86_64-libdvdnav-6.1.0-2
               mingw-w64-x86_64-libdvdread-6.1.1-1
               mingw-w64-x86_64-libexif-0.6.22-1
               mingw-w64-x86_64-libgme-0.6.3-3
               mingw-w64-x86_64-libheif-1.12.0-2
               mingw-w64-x86_64-liblqr-0.4.2-4  mingw-w64-x86_64-libmfx-1.25-1
               mingw-w64-x86_64-libmicrodns-0.2.0-2
               mingw-w64-x86_64-libmodplug-0.8.9.0-4
               mingw-w64-x86_64-libmpcdec-1~0.1+r475-1
               mingw-w64-x86_64-libmpeg2-git-r1108.946bf4b-1
               mingw-w64-x86_64-libmysofa-1.1-1
               mingw-w64-x86_64-libnice-0.1.18-2
               mingw-w64-x86_64-libogg-1.3.5-1
               mingw-w64-x86_64-libraqm-0.7.1-1
               mingw-w64-x86_64-libraw-0.20.2-2
               mingw-w64-x86_64-libreplaygain-475-2
               mingw-w64-x86_64-libsndfile-1.0.31-1
               mingw-w64-x86_64-libsoxr-0.1.3-2
               mingw-w64-x86_64-libsrtp-2.3.0-2
               mingw-w64-x86_64-libtheora-1.1.1-6
               mingw-w64-x86_64-libunwind-12.0.0-7
               mingw-w64-x86_64-libvorbis-1.3.7-1
               mingw-w64-x86_64-libvpx-1.10.0-1
               mingw-w64-x86_64-libwmf-0.2.12-3  mingw-w64-x86_64-metis-5.1.0-3
               mingw-w64-x86_64-ogre3d-1.12.6-3
               mingw-w64-x86_64-openal-1.21.0-2
               mingw-w64-x86_64-openblas-0.3.13-2
               mingw-w64-x86_64-opencore-amr-0.1.5-1
               mingw-w64-x86_64-opencv-4.5.2-1
               mingw-w64-x86_64-openh264-2.1.1-1  mingw-w64-x86_64-opus-1.3.1-4
               mingw-w64-x86_64-orc-0.4.31-2
               mingw-w64-x86_64-portaudio-190600_20161030-3
               mingw-w64-x86_64-protobuf-3.16.0-1
               mingw-w64-x86_64-pugixml-1.11.4-1
               mingw-w64-x86_64-rav1e-0.4.1-1
               mingw-w64-x86_64-rtmpdump-git-r514.c5f04a5-4
               mingw-w64-x86_64-soundtouch-2.2-1
               mingw-w64-x86_64-spandsp-0.0.6-2  mingw-w64-x86_64-speex-1.2.0-1
               mingw-w64-x86_64-speexdsp-1.2.0-1  mingw-w64-x86_64-srt-1.4.2-1
               mingw-w64-x86_64-suitesparse-5.8.1-1
               mingw-w64-x86_64-tesseract-ocr-4.1.1-7
               mingw-w64-x86_64-tinyxml-2.6.2-5
               mingw-w64-x86_64-ttf-dejavu-2.37-3
               mingw-w64-x86_64-vo-amrwbenc-0.1.3-1
               mingw-w64-x86_64-vulkan-headers-1.2.179-1
               mingw-w64-x86_64-vulkan-loader-1.2.179-2
               mingw-w64-x86_64-vulkan-validation-layers-1.2.179-1
               mingw-w64-x86_64-webrtc-audio-processing-0.3.1-1
               mingw-w64-x86_64-x264-0.161.r3039.544c61f-1
               mingw-w64-x86_64-x265-3.4-2  mingw-w64-x86_64-xvidcore-1.3.7-2
               mingw-w64-x86_64-zbar-0.23.1-3
               mingw-w64-x86_64-zziplib-0.13.72-3
               mingw-w64-x86_64-gtk4-4.2.0-1

Total Download Size:    284.86 MiB
Total Installed Size:  1451.14 MiB

The vast majority of those dependency seems to be coming as dependency of ffmpeg and gstreamer, since GTK4 has media backends for them. I’m surprised though that there’s SDL2 and ogre3d that get pulled in, but they are probably pulled in by ffmpeg/gstreamer for some demos.

I haven’t ever used MSYS2, but maybe it has an option to avoid downloading the GTK4 media backends if you don’t need them.

It’s worth noting how Arch solved that recently: GTK4 depends on gst-plugins-bad-libs, which itself has very few dependencies.

See Arch Linux - gtk4 1:4.2.1-2 (x86_64)

Maybe MSYS2 should follow Arch in that regard :slight_smile:

1 Like

media backends are loadable modules, so if you are into that sort of thing, you can package them separately.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.