Keeping binary compatibility

2010-10-01 Thread Lubos Lunak

 Hello,

 as you probably know, the theory is that KDE libraries keep backwards binary 
compatibility. As you might or might not know, that is the theory.

 I've found a tool called abi-compliance-checker 
(http://ispras.linux-foundation.org/index.php/ABI_compliance_checker) and it 
has a page with checks for various libraries including ours 
(http://linuxtesting.org/upstream-tracker/versions/kde-libs.html), which is 
not as green as it should be.

 I've also compared openSUSE packages for 4.4.4 and 4.5.1 and there are 
problems too (http://ktown.kde.org/~seli/abi/ for what I checked). Let me 
point out just one, http://reviewboard.kde.org/r/2608/ , which I think shows 
that this occassionally happening is inevitable.

 Moreover, there seem to be cases where we simply don't seem to have rules (or 
at least I couldn't find them). Do we have rules that say more than kdelibs 
is BC stable, we don't care about the rest? What's the status with e.g. 
kdeedu libs? I'm asking because, consider e.g. these errors from an attempt 
to uninstall kdebase/workspace package here:

libkscreensaver.so.5()(64bit) is needed by (installed)
kdeartwork4-screensaver-4.4.4-2.1.1.x86_64
libkworkspace.so.4()(64bit) is needed by (installed) ktorrent-3.3.4-4.1.x86_64
libkworkspace.so.4()(64bit) is needed by (installed) kor-0.3-2.2s.x86_64
libsolidcontrol.so.4()(64bit) is needed by (installed)
ktorrent-3.3.4-4.1.x86_64 
libsolidcontrol.so.4()(64bit) is needed by (installed)
kbluetooth-0.4.2-3.1.x86_64
libsolidcontrol.so.4()(64bit) is needed by (installed)
NetworkManager-kde4-libs-0.9.svn1057339-4.1.x86_64
libtaskmanager.so.4()(64bit) is needed by (installed)
ktorrent-3.3.4-4.1.x86_64

 Now, an explanation is probably needed for those who live only in the SVN 
world or with distros where breakages are solved by rebuilding everything. If 
you develop e.g. on openSUSE and you notice a library you might like to use, 
then you perhaps install its -devel package, maybe go as far as reading its 
documentation (which doesn't say anything interesting in the case of 
kdebase4-workspace-devel or libkeedu4-devel), or maybe you just read its .h 
files and then make your app use the library.

 Then you release a tarball, some packager builds it, adds also the -devel 
package to the build requirements, the app builds and the packaging system 
records a dependency on the library, as seen above. That is, on the library 
soname (libname.so.+one number). That's how it's done. I read somewhere 
that when using unstable KDE libs the requirement should be on the exact 
version, but that's not how it's done. Can you see above ktorrent requiring 
kdebase4-workspace = 4.4.4? No, and it's unlikely a system like that would 
get as far as the packager knowing and doing so (not only because not 
knowing, but also because it's stupid - why should anybody be forced to 
upgrade ktorrent from a 3rd party repo whenever there's another patchlevel SC 
release).

 Looking at how KDE provides various libraries leads to a number of WTH 
questions, like:
- WTH is the ABI stability documented, besides kdelibs?
- WTH is there e.g. libiris_ksirk.so (i.e. a development .so symlink), where 
are the .h files?
- WTH does e.g. libtaskmanager seem to have soname versioning following SC 
version, like stable kdelibs libraries do, but it's not actually stable?
- WTH does e.g. ksysguard install libraries .so and .h files for something 
that looks a lot like its internal libraries?

 Therefore I propose the following:
- private libraries do not (obviously ...?) install their .h files and do use 
NAMELINK_SKIP option in install (see e.g. 
http://websvn.kde.org/trunk/KDE/kdebase/workspace/khotkeys/libkhotkeysprivate/CMakeLists.txt?r1=862343r2=895764)
- ABI stability for each public library is documented, I would suggest a 
README.library file in sources and in the main doxygen page
- ABI of each stable library (obviously) does not change
- whenever ABI of an unstable library changes, its soname is increased (which 
means that each library will need in its CMakeLists.txt something like this 
http://websvn.kde.org/trunk/KDE/kdelibs/plasma/CMakeLists.txt?r1=879765r2=879766;
 , 
handled manually, instead of generic macros)
- the release team howto gets a new entry 'each new version is ABI tested 
before release'  (I do not have tests for 4.5.2 yet as I'm waiting for the 
packages to rebuild, and as said above I also don't quite know what to check, 
but in general I have a quite easy way of checking the whole KDE SC on each 
release)

-- 
 Lubos Lunak
 openSUSE Boosters team, KDE developer
 l.lu...@suse.cz , l.lu...@kde.org
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: BIC in libkonq

2010-08-04 Thread Lubos Lunak
On Wednesday 04 of August 2010, Modestas Vainius wrote:
 Yes, probably most of libraries are local to kdebase-workspace. But if they
 are local, they should not install headers to the world. But they all do
 (why?). A few libraries in kdebase-workspace are definitely public, for
 example libsolidcontrol (afaik, it broke BC in 4.5 without bumping soname)
 and libtaskmanager [1] (it broke ABI in 4.4 in comparison with 4.3).

 The recent example on top of all that workspace stuff: libsolidinterfaces
 was moved to kdelibs 4.4 with completely reworked API and without any
 soname bump. Looks like KDE violates soname concept for the sake of what?
 Because a single change in CMakeLists.txt is too hard? Or SOVERSION 4 is
 such a good looking number that there is a strict policy not to touch it?
 I'm sorry but I don't know how else I could explain this.

 Laziness and unawareness are pretty good excuses for many things.

 Anyway, at this point I see this as completely lost battle. I guess we will
 need to start adding distro patches (sad) for bumping sonames of those
 public libraries because you do not seem to have much interest in following
 well defined practises in the unix world which are supported by
 libc/ldconfig/ld.so.conf.

 And they seem to be quite good excuses for you too, it seems. If you want 
this problem solved, kde-core-devel is a much better place for the discussion 
then the release-team list at the point when the tarballs are about to be 
released. You apparently have known for quite some time, so yours you is 
actually we.

-- 
 Lubos Lunak
 openSUSE Boosters team, KDE developer
 l.lu...@suse.cz , l.lu...@kde.org
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: BIC in libkonq

2010-08-04 Thread Lubos Lunak
On Wednesday 04 of August 2010, Modestas Vainius wrote:
 On trečiadienis 04 Rugpjūtis 2010 12:31:27 Lubos Lunak wrote:
   Anyway, at this point I see this as completely lost battle. I guess we
   will need to start adding distro patches (sad) for bumping sonames of
   those public libraries because you do not seem to have much interest in
   following well defined practises in the unix world which are supported
   by
   libc/ldconfig/ld.so.conf.
 
   And they seem to be quite good excuses for you too, it seems. If you
  want this problem solved, kde-core-devel is a much better place for the
  discussion then the release-team list at the point when the tarballs are
  about to be released. You apparently have known for quite some time, so
  yours you is actually we.

 s/libsolidinterfaces/libnepomukquery/ in my previous mail.

 Similar topics have been on k-c-d before [1][2],

 There is nothing in either of those mails that supports your position, in 
fact exactly the opposite. They both state that some libraries, by design, do 
not keep binary compatibility, and that when a change happens, soname should 
be changed.

 but POV of Laziness and 
 unawareness are pretty good excuses for many things. simply prevails.
 libnepomukquery is a pretty good example of that. People simply don't
 consider this important enough.

 Or they don't know, or they have forgotten.

 In this case, our arguments were apparently discarded because making an
 exception for libkonq doesn't make that much sense.

 to me is missing at the end of that sentence. And, while I'm at it, the 
consequent any other opinions? is missing too.

 I admit it may be a 
 bit late as we do not package pre-releases nowadays (which may be our fault
 but that's the way it is for now). Therefore, I cannot be in supervisor
 position for these things until it is too late nor anybody would listen
 to me.

 Oh, poor you. But in case you'll get over this attitude and will be 
interested in fixing the problem, you've been told where the right place to 
discuss the problem is.

-- 
 Lubos Lunak
 openSUSE Boosters team, KDE developer
 l.lu...@suse.cz , l.lu...@kde.org
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: KDE 4.4.3 tarballs uploaded (try #1)

2010-04-30 Thread Lubos Lunak
On Friday 30 of April 2010, Dirk Mueller wrote:
 Hi,

 I just finished uploading the first set of 4.4.3 tarballs. They seemed to
 have compiled fine for me over night.

 Please report any issues you might encounter that justify a retag to
 me/release-t...@kde.org. These include compile failures or serious
 regressions.

 kde4-l10n-nl fails at make install with 'file INSTALL cannot 
find 
/usr/src/packages/BUILD/kde-l10n-nl-4.4.3/docs/kdelibs/preparetips/preparetips.1'.
 
It is because make actually creates tips_ter_voorbereiding.1, so I assume the 
problem is because the manpage translates the command name itself.

-- 
 Lubos Lunak
 openSUSE Boosters team, KDE developer
 l.lu...@suse.cz , l.lu...@kde.org
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: KDE 4.4 RC1 (4.3.90) tarballs uploaded

2010-01-07 Thread Lubos Lunak
On Thursday 07 of January 2010, Eric Hameleers wrote:
 I have the following build error in kdebase after having built
 kdelibs and kdepimlibs:

 [ 74%] Building CXX object
 apps/konqueror/sidebar/trees/CMakeFiles/konqsidebar_tree.dir/konqsidebar_tr
ee_final_cpp.o In file included from
 /tmp/kdebase-4.3.90/apps/konqueror/sidebar/module_manager.cpp:21,
   from
 /tmp/kdebase-4.3.90/build/apps/konqueror/sidebar/konq_sidebar_final_cpp.cpp
:4: /tmp/kdebase-4.3.90/apps/konqueror/sidebar/module_manager.h:31: error:
 redefinition of 'class ModuleManager'
 /tmp/kdebase-4.3.90/apps/konqueror/sidebar/module_manager.h:32: error:
 previous definition of 'class ModuleManager'

 Oh, somebody else uses final build mode too :) ? I've fixed this in SVN, but 
I don't think final build failures have even been blockers for tarball 
release (I'd guess there's a number such failures nowadays). Just build it 
normally or get r1071282 from SVN.

-- 
 Lubos Lunak
 openSUSE Boosters team, KDE developer
 l.lu...@suse.cz , l.lu...@kde.org
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: Minor Point Release Policy

2009-12-11 Thread Lubos Lunak
On Friday 11 of December 2009, Jonathan Riddell wrote:
 Over at Kubuntu we're trying to concince our technical board that its
 ok to put KDE minor point releases in updates.  However it seems
 there's no formal rules for what is or isn't acceptable in minor point
 releases.  I think it would be a good thing to have some since it
 gives guidance on what should or shouldn't be put into release
 branches after release.  So I wrote some down quickly.  Does this make
 sense to adopt for KDE?  Additions welcome.

 http://techbase.kde.org/Policies/Minor_Point_Release_Policy/Draft

* Severe bugs: security vulnerabilities, severe regressions from previous
   releases, data loss bugs 

 Every bug is severe to somebody. If you draw the line too far, it means that 
every single stable release will be full of non-major bugs, because that 
simply happens with x.y.0 and people won't be allowed to fix them.

* Fixes to bugs which are easy to verify and have a report in bugs.kde.org 

 So if I notice a problem, I have to first report it?

* Updated translations

They must not contain 
* API changes 

 I expect you mean no new API, since everything else is ruled out already. 
And fixes occassionally do require new API. It is not recommended to have 
older kdelibs than anything else from KDE SC anyway.

* New strings 

 Similar to above. Unlike with API I don't know for sure if this happens, but 
I'd be surprised if not when needed.


 Frankly, I'd prefer if we rather wrote down the existing guidelines, 
with 'use common sense' as first, and named them as such (=guidelines), 
rather than having a policy and pointless discussions about details that do 
not matter.

-- 
Lubos Lunak
KDE developer
--
SUSE LINUX, s.r.o.   e-mail: l.lu...@suse.cz , l.lu...@kde.org
Lihovarska 1060/12   tel: +420 284 028 972
190 00 Prague 9  fax: +420 284 028 951
Czech Republic   http://www.suse.cz
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: Fwd: KDE 4.2.2 xrandr bug, block for dual-head setups

2009-03-26 Thread Lubos Lunak
On Thursday 26 of March 2009, Dirk Mueller wrote:
 Hi,

 does anyone have an idea how to resolve this issue?

 Thanks,
 Dirk
...

 this is only a blocker for dual-head setups, maybe it could still get
 into your list (couldn't tag it).
 https://bugs.kde.org/show_bug.cgi?id=170920
 http://linux-tipps.blogspot.com/2009/03/fixing-high-latency-with-kde4-displ
ay.html

 Kephal bug, commented, reopened and reassigned. According to Novell X 
developers there is currently no way around the problem.

-- 
Lubos Lunak
KDE developer
--
SUSE LINUX, s.r.o.   e-mail: l.lu...@suse.cz , l.lu...@kde.org
Lihovarska 1060/12   tel: +420 284 028 972
190 00 Prague 9  fax: +420 284 028 951
Czech Republic   http://www.suse.cz
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: update the feature plan!

2008-11-18 Thread Lubos Lunak
On Tuesday 18 of November 2008, Sebastian Kügler wrote:
 To prepare the release notes, and to give users and the press exact
 information about the changes, it's important to have an up to date feature
 list.

 I have a question: One of the big new features of KWin in 4.2 is enabling 
compositing by default, which technically is not a feature (and neither new, 
in a way). Since I think this definitely should go into the release 
notesCo., should I still add it to the feature list at techbase, or is there 
some better way how to handle this?

-- 
Lubos Lunak
KDE developer
--
SUSE LINUX, s.r.o.   e-mail: [EMAIL PROTECTED] , [EMAIL PROTECTED]
Lihovarska 1060/12   tel: +420 284 028 972
190 00 Prague 9  fax: +420 284 028 951
Czech Republic   http://www.suse.cz
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team


Re: KDE/kdelibs/cmake/modules

2008-01-04 Thread Lubos Lunak
On Friday 04 of January 2008, Alexander Neundorf wrote:
 Yes, it is very unlikely, but very unlikely != impossible.
 The thing is, the names were in sync with the names of the variables in the
 FindX11.cmake of cmake cvs since several months.
 So since several months some cmake cvs users may already use that variable.
 Ok, it is the cvs version only, but still it is there for quite some time
 already and changing this can break the build of somebody (you never know
 what somebody does with the variables). So this change means either we can
 never use the module from cmake or I need to add some transition logic on
 the cmake side.
 So is it really necessary to change the name ?

 I guess that depends on which of changing a rarely used name from cmake cvs 
and having a confusing rarely used name you consider to be worse.

   We are at the day of the tagging, IMO too late for such changes.
 
   It was broken.

 In which way was it exactly broken ?

 Somebody got confused by the names and it didn't match in 
kdebase/workspace/CMakeChecks.cmake.

-- 
Lubos Lunak
KDE developer
--
SUSE LINUX, s.r.o.   e-mail: [EMAIL PROTECTED] , [EMAIL PROTECTED]
Lihovarska 1060/12   tel: +420 284 028 972
190 00 Prague 9  fax: +420 284 028 951
Czech Republic   http//www.suse.cz
___
release-team mailing list
release-team@kde.org
https://mail.kde.org/mailman/listinfo/release-team