void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.59k stars 2.15k forks source link

SDL2-devel polutes masterdir with tenths of devel packages. #33796

Closed VoidPorts closed 3 years ago

VoidPorts commented 3 years ago

Void 5.14.14_1 x86_64 GenuineIntel uptodate rrFF

SDL2-devel seems to drag in gazzilions of dependencies. See Below. this is not good. First it install gazzilion of usless things. then it pollutes masterdir needesely.

xbps-install -n SDL2-devel

1.5_7 install x86_64 https://alpha.de.repo.voidlinux.org/current 22432 7776 libusb-compat-devel-0.1.5_7 install x86_64 https://alpha.de.repo.voidlinux.org/current 31039 10236 libogg-devel-1.3.5_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 442500 207445 libvorbis-devel-1.3.7_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 1663600 361136 libflac-devel-1.3.3_3 install x86_64 https://alpha.de.repo.voidlinux.org/current 1350858 169566 sqlite-devel-3.36.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 2384666 865722 opus-devel-1.3.1_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 888068 237096 libsndfile-devel-1.0.31_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 1186314 331734 libfftw-3.3.10_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 4224952 1525149 fftw-devel-3.3.10_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 9384919 1935836 libsamplerate-devel-0.1.9_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 1595943 975348 xorgproto-2021.4_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 4209122 627640 libxshmfence-devel-1.3_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 6925 3164 xtrans-1.4.0_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 243378 47833 python3-3.10.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 23160028 7579409 xcb-proto-1.14.1_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 754117 101187 libXdmcp-devel-1.1.3_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 36211 9848 libXau-devel-1.0.9_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 29027 8080 libxcb-devel-1.14_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 4790164 535649 libX11-devel-1.7.2_3 install x86_64 https://alpha.de.repo.voidlinux.org/current 4501935 1033691 libXext-devel-1.3.4_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 283793 50952 libXxf86vm-devel-1.1.4_3 install x86_64 https://alpha.de.repo.voidlinux.org/current 44489 11976 libXfixes-devel-6.0.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 43474 12044 libXdamage-devel-1.1.5_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 9501 4284 libpciaccess-devel-0.16_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 76624 18884 libdrm-devel-2.4.107_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 590105 131744 libglvnd-devel-1.3.3_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 2246094 180258 libOSMesa-21.2.4_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 12676864 3570831 libclc-12.0.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 80800878 17981118 mesa-opencl-21.2.4_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 1533635 558461 MesaLib-devel-21.2.4_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 147294 35437 glu-9.0.2_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 350288 157096 glu-devel-9.0.2_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 17396 4960 libasyncns-devel-0.8_9 install x86_64 https://alpha.de.repo.voidlinux.org/current 51017 13980 libXi-devel-1.7.10_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 760509 100100 libXtst-devel-1.2.3_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 123191 24508 pulseaudio-devel-15.0_3 install x86_64 https://alpha.de.repo.voidlinux.org/current 398212 76588 pipewire-devel-0.3.38_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 821912 130706 sndio-devel-1.8.1_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 40803 12426 libxkbregistry-1.3.1_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 30712 12520 libxkbcommon-devel-1.3.1_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 354814 63959 libdecor-devel-0.1.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 13139 4639 libffi-devel-3.3_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 123793 39525 wayland-devel-1.19.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 580396 93319 wayland-protocols-1.23_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 448771 71199 libuuid-devel-2.37.2_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 70424 22956 libICE-devel-1.0.10_2 install x86_64 https://alpha.de.repo.voidlinux.org/current 435889 76928 libSM-devel-1.2.3_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 280957 42492 libXcursor-devel-1.2.0_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 82752 24552 libXinerama-devel-1.1.4_1 install x86_64 https://alpha.de.repo.voidlinux.org/current 20612 639

paper42 commented 3 years ago

SDL2-devel seems to drag in gazzilions of dependencies. this is not good. First it install gazzilion of usless things. then it pollutes masterdir needesely.

-devel packages are not often installed for regular users, why is that not good? Why do you think they are useless? What do you mean by needlessly? xbps-src will remove them when the package build is completed, so you don't have to worry about them.

VoidPorts commented 3 years ago
  1. useless - because they aint a dependency of SDl2-devel. You do not need them to compile against SDL2 interface, nor link agaist its lib. They aint real dependencies.
  2. not good because having such a massive chain of headers and libs pulled by a package will inevitably lead to sloppy written packages sooner or later, which might underspecify their dependencies.
  3. I dont know the structure of void builder chroot well yet, but this also may increase build time by a significant factor, if this thing is repeated all over the ports tree, and repeated add / removes happen all the time. this might not be true for a lot of packages, I dont know yet, no time to look in detail at how it works.
  4. if a package like SDK gets fixed to list correct dependencies in future, this will prolly cause issue for a lot of packages using it in tree, if underspecified. And prolly there are a lot of those.
Chocimier commented 3 years ago

Ther aren't useless. Some of libraries are needed for headers (GL mainly), almost all are needed for static linking to SDL2.

ericonr commented 3 years ago

if a package like SDK gets fixed to list correct dependencies in future, this will prolly cause issue for a lot of packages using it in tree, if underspecified. And prolly there are a lot of those.

If someone removes most of the deps, it's expected of them to test dependants and make sure things are still being picked up. The libraries needed for static linking should be in the -devel package as well, even if most of our packages don't make that usage.

I dont know the structure of void builder chroot well yet, but this also may increase build time by a significant factor,

./xbps-src fetch SDL2_image took 20s, including fetching the 11MB distfile and repository indexes, actual unpacking took a few seconds.

Unless you're volunteering to do the work of checking that all of packages are indeed necessary for static linking and that other packages aren't specifying fewer dependencies than they need to, I'd like to close this issue.

VoidPorts commented 3 years ago

Sure Ill close it. When I said increase build time, I was referring to this situation occurring more than one time in tree. Anyways it's all cool. Fixing this is not a priority for me, id rather be more interested in learning more about xbps-src and see if the situation of flavor ports could be improved in tree, so one build sheet can generate multiple packages with different options with no human intervention.