[KDE/Mac] Review Request 121960: Support an infix for libqtcurve-utils so different versions can co-exist for GTk2, Qt4 and Qt5 support
René J.V. Bertin
rjvbertin at gmail.com
Fri Jan 9 21:45:09 UTC 2015
> On Jan. 9, 2015, 9:18 p.m., Yichao Yu wrote:
> > Why is this needed? The lib compiled with different version should be exactly the same.
No:
```
> ls -lL /opt/local/lib/libqtcurve-utils*[245].dylib
-rwxr-xr-x 1 bertin admin 139264 Jan 9 21:00 /opt/local/lib/libqtcurve-utils-gtk2.dylib
-rwxr-xr-x 1 bertin admin 49996 Jan 9 20:50 /opt/local/lib/libqtcurve-utils-qt4.dylib
-rwxr-xr-x 1 bertin admin 50076 Jan 9 21:06 /opt/local/lib/libqtcurve-utils-qt5.dylib
```
```
> otool -L /opt/local/lib/libqtcurve-utils*[245].dylib
/opt/local/lib/libqtcurve-utils-gtk2.dylib:
/opt/local/lib/libqtcurve-utils-gtk2.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/Volumes/Debian/MacPorts/lib/libX11-xcb.1.dylib (compatibility version 2.0.0, current version 2.0.0)
/Volumes/Debian/MacPorts/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0)
/opt/local/lib/libxcb.1.dylib (compatibility version 3.0.0, current version 3.0.0)
/opt/local/lib/libqtcurve-utils-qt4.dylib:
/opt/local/lib/libqtcurve-utils-qt4.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/opt/local/lib/libqtcurve-utils-qt5.dylib:
/opt/local/lib/libqtcurve-utils-qt5.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
250 22:35 ldd /opt/local/lib/libqtcurve-utils*[245].dylib
```
You are right though that the Qt versions do not depend on any Qt library (and hence not on KDE/KF5 libraries either).
But that doesn't change the fact that packaging systems cannot always handle this. On Linux and other Unices you could probably put libqtcurve-utils.so into a shared package (so qtcurve-common, qtcurve-qt4, qtcurve-qt5, qtcurve-gtk2 etc). With MacPorts on OS X this is not feasible, and a single file cannot be part of multiple packages either.
However, if you don't like this patch and think only MacPorts is served by it, it can go among the MacPorts patches ...
- René J.V.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121960/#review73630
-----------------------------------------------------------
On Jan. 9, 2015, 9:14 p.m., René J.V. Bertin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121960/
> -----------------------------------------------------------
>
> (Updated Jan. 9, 2015, 9:14 p.m.)
>
>
> Review request for KDE Software on Mac OS X and Yichao Yu.
>
>
> Repository: qtcurve
>
>
> Description
> -------
>
> When building separate QtCurve packages for independent GTk2, Qt4/KDE4 and Qt5/KF5 versions of the style, a conflict arises with libqtcurve-utils. Each of the three versions uses this library, and it needs to be linked with the rendering SDK itself.
>
> This patch introduces a CMake infix option, `QTC_UTILSLIB_INFIX` that can be used to change the library name to something unique for each package. When the option is not defined, the current behaviour is preserved; this is the default.
>
>
> Diffs
> -----
>
> CMakeLists.txt e8dd723
> gtk2/style/CMakeLists.txt 451ecdd
> lib/cairo/CMakeLists.txt 3363e46
> lib/utils/CMakeLists.txt 0dd71c1
> qt4/config/CMakeLists.txt 3b65e09
> qt4/kwin/CMakeLists.txt 52c7c03
> qt4/kwinconfig/CMakeLists.txt 1de6dc2
> qt4/style/CMakeLists.txt 4ac461f
> qt5/config/CMakeLists.txt b4184dd
> qt5/kwin/CMakeLists.txt 52c7c03
> qt5/kwinconfig/CMakeLists.txt 1de6dc2
> qt5/style/CMakeLists.txt c78a73d
> test/CMakeLists.txt 007c595
>
> Diff: https://git.reviewboard.kde.org/r/121960/diff/
>
>
> Testing
> -------
>
> On OS X 10.9.5 with Qt4.8/kdelibs 4.14.4 (using libqtcurve-utils-qt4.dylib), GTk2/X11 (libqtcurve-utils-gtk2.dylib) and "pure" Qt 5.3.2 (libqtcurve-utils-qt5.dylib).
>
>
> Thanks,
>
> René J.V. Bertin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20150109/cc92d561/attachment.html>
More information about the kde-mac
mailing list