>So far so good. But for certain technical and political >reasons, I'm not allowed to do things that way; I actually >have to include liblibrary.so.1 in the application-1.0 >package(s), even though it really belongs to product "library". >Furthermore, there may also be a different application, >let's say another-program-2.1, that uses and must have its >own version of liblibrary.so.1. And I would still like to keep >liblibrary-1.0, as it may contain its own "standalone" >utilities etc. I therefore get 3 different packages that >want to own liblibrary.so.1. > >So what do I do? Obviously, I first of all need to make sure that the >different RPMs won't try to install the same file. For >instance, I might package the .so file as follows: > >liblibrary-1.0: /usr/lib/liblibrary.so.1 >application-1.0: /usr/lib/application-1.0/liblibrary.so.1 >another-program-2.1: /usr/lib/another-program-2.1/liblibrary.so.1 Without providing an answer to your more complex "conditional dependency" problem, you might consider letting the FHS guide you on placement of files... http://www.pathname.com/fhs/: ---- /opt : Add-on application software packages Purpose /opt is reserved for the installation of add-on application software packages. A package to be installed in /opt must locate its static files in a separate / opt/<package> or /opt/<provider> directory tree, where <package> is a name that describes the software package and <provider> is the provider's LANANA registered name. ---- In other words, either carve out one directory per product under /opt, or register your company name as a provider-name and use that directory in /opt as you choose.