deller at gmx.de
Mon Jun 23 20:23:24 BST 2003
> b) writePathEntry() in 3.1 (not in 3.1 BRANCH!) was broken and wrote
> always $HOME at the beginning of strings. This should be solvable with an
> #ifdef KDE_IS_VERSION(3,1,2)
of course I meant KDE_IS_VERSION(3,1,3) here....
> Are you sure this is a good solution? As far as I know KDE 3.1.x should be
> BC. So it's no problem to compile with KDE 3.1.2 and run with, say KDE
> 3.1.1. This way the bug will show. Am I right? Since a lot of users are
> installing rpm packages created by other users this may occur more than
> once. I never liked #ifdefs anyway. ;)
> So what can I do instead? I could provide my own implementation (some
> wrapper) for as long as K3b will be Kde 3.1 comp.. I think that would be
> the best solution.
first, just use readPathEntry() where necessary. It is binary compatible.
With the problem about backward binary compatibility (built on 3.1.3, run on 3.1.2,
which I never liked) you might either:
a) just ignore all writePathEntry()s for KDE 3.1.x and continue to use
writeEntry() and then use writePathEntry() only inside an #ifdef KDE_IS_VERSION(3,1,90),
where KDE 3.2 will be the first version with full roaming user support.
b) write a wrapper which detects the KDE version at runtime and use the propriate
writeXXEntry() (as you proposed)
c) build two RPMs, one for <= 3.1.2 and one for 3.1.3 and above
d) force with an RPM dependency to build and run on the same KDE version,
in which case you maybe want this:
writePathEntry(something) // new coding to support roaming users
writeEntry(something) // old "original" coding
I would propose a), b) or d), but of course it's up to you...
More information about the kde-core-devel