I want to run subversion with sys-libs/db-4.3 which is package.masked yet. I unmasked/emerged db-4.3. Then, emerged subversion-1.2.1 but subverion was going to link with db-4.2. After that, I tried to add 'db-4.3' to files/subversion-db4.patch. But the result was same. I know a masked ebuild is not supported well. But if you have any chance, can you take care of it please? Reproducible: Always Steps to Reproduce: 1. 2. 3. Actual Results: subversion always link db-4.2. Expected Results: suversion with db-4.3 works fine.
Well, it actually will link against the db version that apr/apr-util was linked against. To link it against 4.3 you therefore need to remerge apr and/or apr-util.
This can cause problems when upgrading from subversion 1.1.x to 1.2.x. As an example, Subversion 1.1.x, which apparently didn't utilize apr-util, may have been compiled against db4.1. During an upgrade to 1.2.1, subversion uses whatever version of db that apr-util was compiled against (as you mentioned). Because the apr-util ebuilds do not take into account version db4.1 or db4.3, this results in the 1.2.1 subversion package being compiled against db4.0. As a result, subversion repositories created with the 1.1.x subversion installation will not be readable by the newly installed subversion package. Re emerging apr-util + subversion will not fix this problem, because the apr-util ebuild will still only look for db4.0 and db4.2. To fix this problem for myself, I changed the apr-util ebuild to take into account db4.1, and re-emerged apr-util and subversion. This may or may not be the proper fix. Let me know if you me to submit a patch.
I'm CC'ing the apache team on this. They maintain apr/apr-util. Probably the reason that 4.1 is not used by apache has to do with bugs. Usage of 4.3 is probably just not enabled.
*** Bug 106978 has been marked as a duplicate of this bug. ***
Please note that berkeley db is kind of problematic in the update path. For this reason fsfs is now the default subversion filesystem. If you want to avoid these issues, you might want to consider using fsfs.
apr-util now uses the db-use.eclass with the fixing of bug 133871. The issue of which db version subversion links against is probably now resolved.
Happy to see the db-use eclass being of some use ;-). I consider this closed then. If it is still an issue, please reopen.