This question is related to components Dell EMC (my current employer) are contributing to the Linux Foundation's openswitch project.
Our architecture is made up of platform independent components/packages, which are adapted to specific hardware platforms (ie. switches) by with platform specific packages that provide a common API. Each concrete platform specific package implementation "provides" a virtual package corresponding to that API. However, we've found a problem that when the virtual package is listed as a build dependency, when ${shlibs:Depends} is expanded, it contains the concrete package name that was used during the build, rather than the virtual package. This now ties what should be a platform independent package to specific hardware. Although we can work around this by avoiding ${shlibs:Depends} and maintaining the list of dependencies manually, this adds overhead and a source of potential errors. I've tried adading a debian/shlibs file to map the library name to the virtual package name. I may be just getting the syntax wrong, or perhaps I'm barking up the wrong tree. Any advice or pointers would be most welcome, --jtc