- archivers/zstd is installed
- building emulators/virtualbox-ose using portmaster
- /usr/local/lib/virtualbox/VirtualBox.so links against /usr/local/lib/libzstd.so.1 but this is not recorded as a dependency in the port
- Either emulators/virtualbox is modified to not pick up zstd spuriously
- or zstd is noted as an explicit dependency
OK. Why is this a problem? Many ports install libraries that they can use but don't require when present. In multimedia I have used several ports that would install codecs that the build procedure found on the system.
The only real problem I have seen is that the codecs are NOT dependencies and, if one is deleted, the application will not start when the loader can't find the shareable.
Since you seemingly have no problem seeing the problem, why do you ask what the problem is? ;-)
The point is that this is a decision that is the maintainer's (sunpoet) choice as this behavior is part of VB as supplied by Oracle and the maintainer needs to choose whether to change this behavior. It's simply not a bug as everything works as designed. (And I don't really care for this, myself.) It seems that mail to sunpoet or a discussion on the mailing list would be more appropriate.
It seems that this is actually some qt5 library which is picking up zstd.
I have not yet found out which one - probably devel/qt5-core.
Both devel/qt5-core and x11-toolkits/qt5-gui pick up zstd during configure:
Checking for zlib... yes
Checking for Intrinsics without -mXXX argument... yes
Checking for Zstandard... yes
Checking for clock_gettime()... yes
Checking for POSIX monotonic clock... yes
Maybe other qt5 ports as well.
One of them then really links against it, it is hard to find out which because the complete QT source code is expanded for each port build.