Hi,
this is indeed a quite intricate matter.
The unterlying problem arises from the fact that the probable uninstall ordering should revert the install ordering. If a product B requires pre-installation of a product A, for example a library, then it could be that the removal of product B still requires product A (possibly for a farewell message). Then A which had to be installed
before B can only be uninstalled
after B. But there is only one ordering of the products which are handled by the opsi-clientagent.
Becaose of this difficulty the product ordering is constructed only based on setup requirements. uninstall ordering requirements are completely ignored. Exactly this is the situation which you encountered. You are right, this should be shown more clearly in the configed display.
At the moment, there are three ways to circumvent the problem:
(1) You build a removal product whose setup script removes the product you wish to uninstall. Dependencies of this product can possess before or after attributes as any other product, and it would be inserted accoriding to them into the product sequence.
(2) You use the server configuration option
opsi-script.global.reverseproductorderbyuninstall true
(In the server host properties, section opsi-script). As the name indidcates, this has the effect that
all uninstall operations are performed before
all setup operations, whereby for the uninstall sequence the inverted ordering of the setup sequence is used
(3) You handle the uninstallation of product X which must not co-exist with product Y by an opsiservicecall construction in the setup script of Y
Hope that this explains the matter and gives the required help.
Regards