Dig more and find this is not related to rpm/zypper. it is cairo upgration specific issue:
In cairo 1.8.10, it only contains library, so according to the Debian renaming hook, the package is renamed to libcairo2. the generated rpm is libcairo2-1.8.10-r0.i586.rpm
when upgrade to cairo 1.10.0, it also has bin executable, so the package name becomes cairo. the generated rpm is cairo-1.10.0-r0.i586.rpm.
in this case, those packages (e.g. screenshot) which depend on libcairo2-1.8.10-r0.i586.rpm can not find libcairo-1.10.0-r0.i586.rpm, and reports dependency failure.
I will update the cairo patch to specifiy the package name as libcairo2 to fix this issue.
Dig more and find this is not related to rpm/zypper. it is cairo upgration specific issue:
In cairo 1.8.10, it only contains library, so according to the Debian renaming hook, the package is renamed to libcairo2. the generated rpm is libcairo2- 1.8.10- r0.i586. rpm
when upgrade to cairo 1.10.0, it also has bin executable, so the package name becomes cairo. the generated rpm is cairo-1. 10.0-r0. i586.rpm.
in this case, those packages (e.g. screenshot) which depend on libcairo2- 1.8.10- r0.i586. rpm can not find libcairo- 1.10.0- r0.i586. rpm, and reports dependency failure.
I will update the cairo patch to specifiy the package name as libcairo2 to fix this issue.