Naming scheme for Qt5/KF5-based libraries outside of KF5
Friedrich W. H. Kossebau
kossebau at kde.org
Sun Sep 27 15:48:03 BST 2015
Hi Alexander & all,
thanks for pushing this further.
Am Samstag, 26. September 2015, 18:41:01 schrieb Alexander Potashev:
> Hi everyone,
>
> We had a little discussion on how to name shared libraries in
> kde-core-devel@ thread "Porting to frameworks 2: libkcompactdisc" [1],
> but we did not come to consensus.
>
> The question is, if you release a shared library with deps on Qt5
> and/or KF5, but the lib is not part of KF5, how should the .so file be
> named?
>
> 1. Many people prefer a "KF5" prefix, e.g. libKF5Screen.so).
> 2. Another way of naming is a -qt5 suffix, e.g. libmarblewidget-qt5.so.
> 3. (probably some others?)
>
> Friedrikh said in [1] that using a KF5 prefix for all libraries will
> "blur the hint by the name if something is part of KF5 or not".
Yes, I still think so:
libQt* is left to Qt libs, and IMHO in the same way should libKF5* be only
used with real KF5 libs, if that prefix should have a consistent semantic,
i.e. should say they are part of the KDE Frameworks.
Another reason, though rather less likely:
Even more because someone might start a new lib KF5Foo which they think to be
become the killer lib for Foo purpose and one day to end up in the KDE
Frameworks, but then somebody else writes an even better one and that one than
becomes official KF5 lib for Foo. Would suck if someone occupied the name
KF5Foo already with an existing lib (as in: released and used by 1-2 apps
which are fine with the original lib and do not see a need to switch to the
KF5 one). Better safe than sorry.
WRT to your question on IRC, Alexander:
"
[Samstag, 26. September 2015] [17:32:04 CEST] <aspotashev_> frinring_: you are
saying "it will result in clashes", but that should not be a problem:
packagers can just forbid parallel installation of the standalone version and
the new version which is part of KF5
"
which refers to the thread "Porting to frameworks 2: libkcompactdisc" where I
wrote on 2015-09-04 11:59:57 GMT:
> [...] For once, because it will result in clashes if a lib really
> becomes part of KF5 (and thus becomes part of other packages which might be
> installed together with a package where the lib was initially in, unless the
> lib is the only content of the package, so that can be completely replaced
> by the KF5 package)
Forbidding parallel installation only works if the lib becomes a framework
without any changes.
Given the high standards and required ABI stability there is a good chance
that some API brush up (e.g. due to review feedback while proposed as KF5 lib)
is made before turning into a KF5 lib, as was already pointed out by Sune.
Having the same name would prevent that (for the usual problems with ABI
changes).
((I find the "-qt5" postfix sligthly ugly as well, and personally rather use
postfix integer counters to allow co-installability, but then my libs change
ABI more often, so just qt version does not work ;) Now, looking at "ls
/usr/lib64" things get relative, and with cmake config files the lib target
names used are usually more nice anyway, so "-qt5" should not be such a
bummer, and besides that this postfix seems to have become a pattern with some
libs already, so using them would add to consistency.))
My 2 cents.
Cheers
Friedrich
More information about the kde-core-devel
mailing list