Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / qt / 2009-08

Please version the libqt4intf.so!

8 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Matthias Klumpp

Hello!
I try to package the libqt4intf.so library for Ubuntu, so that we can create Lazarus Qt4 applications on that platform. (The package will then be available in Debian too)
But unfortunately the library is not versioned, which gives me the lintian (a package-checking application for Debian) error
shlib-without-versioned-soname usr/lib/libqt4intf.so.1.70 libqt4intf.so Could you please version the library to make the maintaining easier? Thanks!

Matthias Klumpp

Reply by email

Den Jean
to Matthias Klumpp
I try to package the libqt4intf.so library for Ubuntu, so that we can create Lazarus Qt4 applications on that platform. (The package will then be

nice

Show quoted text 5 lines
available in Debian too) But unfortunately the library is not versioned, which gives me the lintian (a package-checking application for Debian) error shlib-without-versioned-soname usr/lib/libqt4intf.so.1.70 libqt4intf.so Could you please version the library to make the maintaining easier?

the problem is that the version stands for progression of completeness of the binding (request after request). The same version V1.70 could generate a Qt4.3, 4.4 or 4.5 binary lib. (Qt 4.3 not needed anymore I guess)

should we do something like
Qt4.5: libqt4intf.so.5.70
Qt4.4: libqt4intf.so.4.70

Or just start recounting, V2.1 (and omit the 2 part in the lib) Qt4.5: libqt4intf.so.5.1
Qt4.4: libqt4intf.so.4.1

or put the Qt version numbers together:
Qt4.5: libqt45intf.so.1
Qt4.4: libqt44intf.so.1

or put all version numbers at the end
(could generate confusion when I restart numbering with Qt versioning Qt4.5.1) Qt4.5: libqtintf.so.4.5.1
Qt4.4: libqtintf.so.4.4.1

or simply
Qt4.5: libqt4intf.so.5_1.70 -> libqt4intf.so.5
Qt4.4: libqt4intf.so.4_1.70 -> libqt4intf.so.4

open for input, I prefer last solution

I will need to modify qt4.pas ofcourse to search
for the correct libqt4intf.so.x_y
so this is only possible for future versions.

old versions can be package liked this (no help from me needed): Qt4.5: libqt4intf.so.5_1.70 -> libqt4intf.so
Qt4.4: libqt4intf.so.4_1.70 -> libqt4intf.so
(conflict ofcourse, not able to install both packages)

Reply by email

Matthias Klumpp
to Den Jean

Hello Den!
Thank you for your response! I versioned the Debian package 1.70Qt4.5.1 (We can use numbers for versioning too)
I would prefer the last solution too. This is very easy to remember for the users and makes no more lintian problems.
The only important thing is that the version number changes if you break the API. So if a change for support of minor Qt4 releases does not break the API it is not important for the release number. Thank you very much for your help!
When can I expect a new version?
Best regards
Matthias Klumpp

Den Jean wrote 55 lines
> I try to package the libqt4intf.so library for Ubuntu, so that we can > create Lazarus Qt4 applications on that platform. (The package will then > be nice > available in Debian too) > But unfortunately the library is not versioned, which gives me the > lintian > (a package-checking application for Debian) error > shlib-without-versioned-soname usr/lib/libqt4intf.so.1.70 libqt4intf.so > Could you please version the library to make the maintaining easier? the problem is that the version stands for progression of completeness of the binding (request after request). The same version V1.70 could generate a Qt4.3, 4.4 or 4.5 binary lib. (Qt 4.3 not needed anymore I guess) should we do something like Qt4.5: libqt4intf.so.5.70 Qt4.4: libqt4intf.so.4.70 Or just start recounting, V2.1 (and omit the 2 part in the lib) Qt4.5: libqt4intf.so.5.1 Qt4.4: libqt4intf.so.4.1 or put the Qt version numbers together: Qt4.5: libqt45intf.so.1 Qt4.4: libqt44intf.so.1 or put all version numbers at the end (could generate confusion when I restart numbering with Qt versioning Qt4.5.1) Qt4.5: libqtintf.so.4.5.1 Qt4.4: libqtintf.so.4.4.1 or simply Qt4.5: libqt4intf.so.5_1.70 -> libqt4intf.so.5 Qt4.4: libqt4intf.so.4_1.70 -> libqt4intf.so.4 open for input, I prefer last solution I will need to modify qt4.pas ofcourse to search for the correct libqt4intf.so.x_y so this is only possible for future versions. old versions can be package liked this (no help from me needed): Qt4.5: libqt4intf.so.5_1.70 -> libqt4intf.so Qt4.4: libqt4intf.so.4_1.70 -> libqt4intf.so (conflict ofcourse, not able to install both packages) _______________________________________________ Qt mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/qt

Reply by email

Den Jean
to Matthias Klumpp
Matthias Klumpp wrote
Okay, then I will add this as Todo for Ubuntu 10.04 (Debian experimental is always open ^^)

I am working on it. After some reading about linux library versioning it appears to me that our proposed solution with a letter is not standard.
I will therefore do the following:
$ ls l libqt*
... libqt4intf.so -> libqt4intf.so.5
... libqt4intf.so.5 -> libqt4intf.so.5.1.71
... libqt4intf.so.5.1.71

Qt 4.4: libqt4intf.so.5.1.71 with an internal soname of libqt4intf.so.5 Qt 4.5: libqt4intf.so.4.1.71 with an internal soname of libqt4intf.so.4 Both linker names however become libqt4intf.so (without versioning)

I have changed the pascal interface so that is uses the soname:
{$IFDEF QTOPIA}
  QtIntf = 'libqt4intf.so.5';
{$ENDIF}
{$IFNDEF QTOPIA}
  {$IF DEFINED(LINUX) or DEFINED(FREEBSD) or DEFINED(NETBSD)}
    {$DEFINE BINUX}
    QtIntf = 'libqt4intf.so.5';
  {$ENDIF}
{$ENDIF}

However I noticed that the so called linker name of the library also needs to be present, so this was useless.
(... libqt4intf.so -> libqt4intf.so.5)

Do you know of a way to specify in the source for compile/link time:
- that pascal qt4.pas needs libqt4intf.so.5 and not libqt4intf.so.4
- that c++ qtpas.cpp needs libQtCore.so.4.5 and not libQtCore.so.4.4.

Any ideas ?

Den Jean

Reply by email

Matthias Klumpp
to Den Jean

Hi!

Show quoted text 5 lines
Do you know of a way to specify in the source for compile/link time: - that pascal qt4.pas needs libqt4intf.so.5 and not libqt4intf.so.4 - that c++ qtpas.cpp needs libQtCore.so.4.5 and not libQtCore.so.4.4. Any ideas ?

This dependency is specified in a Makefile. So the build script checks if the correct version is present. I dont's know a way to check the correct version at build time... Maybe you should just write an instruction for developers to check the right versions? Or modify the build script to check those files.

Matthias

Reply by email

Matthias Klumpp
to Den Jean: I am working on it. After some reading about linux library versioning it appears to me…

Hi!

Show quoted text 5 lines
Do you know of a way to specify in the source for compile/link time: - that pascal qt4.pas needs libqt4intf.so.5 and not libqt4intf.so.4 - that c++ qtpas.cpp needs libQtCore.so.4.5 and not libQtCore.so.4.4. Any ideas ?

This dependency is specified in a Makefile. So the build script checks if the correct version is present. I dont's know a way to check the correct version at build time... Maybe you should just write an instruction for developers to check the right versions? Or modify the build script to check those files.

Matthias

Reply by email