I am write something uses libzypp. There is a lot of code, so I hope problem is in my understanding of libzypp internals.
When some conflict occurs, I show UI to handle it. I forward possible solutions and problems from libzypp to this UI. But… everything worked, but when user select do not install … and my software checks resolve->pool(), there still problem exist (it was no deleted). When selecting other option, the problem disappear.
I probably found problem. I am trying to extend zypp backend of packagekit with dependency handling. Problem is here (backend_install_files_thread function):
for_(it, repo.solvablesBegin(), repo.solvablesEnd()){
MIL << "Setting " << *it << " for installation" << endl;
PoolItem(*it).status().setToBeInstalled(ResStatus::USER);
}
So we set item to be installed. I think problem is with flag ResStatus::USER, so solution removing this package from list to install can not be applied. I will check I can change this flag to another.