A lot of circular dependencies have been removed from FreeBSD's ports tree, which is good. There are still a lot of circular categories in the port's options. For instance graphical ports will call audio or internet dependencies, then they will call on graphical dependencies, and repeatedly vice versa.
I understand that's how many of the programs were designed, and this was simply brought over. This happens a lot with gtk, and ffmpeg which want to reinstall everything all over and redundantly, both overlapping each other and the program's specific dependencies on audio and graphics. It may take a lot of work to organize the dependencies by category/type. Another example is when Alsa has to repeat OSS, when if Alsa has something that OSS is missing, why can't Alsa be trimmed down, and built with OSS as the base. Most BSD made dependencies should be on the base layer, unless a GPL licensing restriction prevents that.
I'm pointing out, that making structural guidances, and passively fixing it when this is found, instead of proactively overhauling the ports tree may be a more manageable way to fix inefficiencies.
I understand that's how many of the programs were designed, and this was simply brought over. This happens a lot with gtk, and ffmpeg which want to reinstall everything all over and redundantly, both overlapping each other and the program's specific dependencies on audio and graphics. It may take a lot of work to organize the dependencies by category/type. Another example is when Alsa has to repeat OSS, when if Alsa has something that OSS is missing, why can't Alsa be trimmed down, and built with OSS as the base. Most BSD made dependencies should be on the base layer, unless a GPL licensing restriction prevents that.
I'm pointing out, that making structural guidances, and passively fixing it when this is found, instead of proactively overhauling the ports tree may be a more manageable way to fix inefficiencies.