[Bug 97630] export macros for tp-qt-service are wrong / should tp-qt-service be separate?

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Sep 7 21:30:33 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=97630

--- Comment #1 from Alexandr Akulich <akulichalexander at gmail.com> ---
I agree that current "position" of the service library is wrong, but in fact,
the service library API is not stable yet and experience shows that there would
be more API/ABI incompatible changes. If the libraries would be merged, we
probably would force clients to rebuild on every service API change.

I even thought about the opposite solution: split the service library into its
own project and repository with a different release cycle.

Detached library can easily depend on, say, TpQt-0.9.5, so we would be able to
distribute a CM with statically or dynamically linked TpQt-service across all
distribution, regardless of their TpQt version.
This was been an issue, because TpQt-0.9.5 works pretty well, while "services"
was not been really useful until at least 0.9.6. Release 0.9.7 is useful enough
to let users just live with it and wait for the next release instead of
compiling code from git.

We have three logical components of TpQt:
1) client
  - local client dbus interface
    - AbstractClient
    - ClientRegistrar
    - ...
  - client side bindings to remote dbus interfaces with generated code
    - ConnectionManager
    - Protocol
    - Connection
    - Channel
    - ...

2) service
  - service side bindings to local dbus interfaces with generated code
    - BaseConnectionManager
    - BaseProtocol
    - BaseConnection
    - BaseChannel
    - ...

3) shared (common).
  - Generated types and constants
    - TelepathyQt/_gen/types.h
    - TelepathyQt/_gen/constants.h
  - Hand-written types and constants
    - TelepathyQt/types.h
    - TelepathyQt/constants.h
    - AvatarSpec
    - LocationInfo
    - Presence
    - ...
  - Utilities
    - DBusProxy
    - ReadyObject
    - Callback classes
    - TelepathyQt/utils.h
    - ...

I also would place BaseDebug into shared, because in fact it can be used by any
Telepathy application.

The only purpose of having all three components together is testing. It's
convenient to test BaseChannelFileTransferType via FileTransferChannel and vice
versa.

I don't think we would end up with splitting the project, because it would
require even more efforts.
Let's go with unified library since TpQt-0.10.0, but before that make 0.9.8
release with Qt4 support and two libraries.

For the 0.10.0 release we also can rework the build process.

Thank you for the bugreport — I just realised that probably this is why I could
not link the service library in windows: TP_QT_EXPORT macro in the main library
should expand into import declaration on include from the service library.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.


More information about the telepathy-bugs mailing list