Bug#896464: Passing -V as default

Niels Thykier niels at thykier.net
Tue Apr 24 06:29:00 BST 2018


Scott Kitterman:
> 
> 
> On April 23, 2018 10:03:45 PM UTC, "Lisandro Damián Nicanor Pérez Meyer" <perezmeyer at gmail.com> wrote:
>> If I understand correctly and, let's suppose, libQtFoo 5.10.2 is built
>> with a patched compat 12, then all applications rebuilt against 5.10.2
>> would require at very least 5.10.2 even if symbols files allowed it to
>> depend on a minor version.
>>

As far as I understand it, symbols files overrule shlibs.  I.e. if your
symbols files covers all the symbols required by the application, the
version will be derived from the symbols file.

dpkg-shlibdeps(1) seems to agree with this:

> DESCRIPTION
>        dpkg-shlibdeps  calculates  shared  library  dependencies for executables named in its arguments. The dependencies are added to the substitution variables
>        file debian/substvars as variable names shlibs:dependency-field where dependency-field is a dependency field  name.  Any  other  variables  starting  with
>        shlibs: are removed from the file.
> 
>        dpkg-shlibdeps  has  two  possible  sources  of information to generate dependency information. Either symbols files or shlibs files. For each binary that
>        dpkg-shlibdeps analyzes, it finds out the list of libraries that it's linked with.  Then, for each library, it looks up either the symbols  file,  or  the
>        shlibs  file  (if  the  former  doesn't  exist  or if debian/shlibs.local contains the relevant dependency). Both files are supposed to be provided by the
>        library package and should thus be available as /var/lib/dpkg/info/package.symbols or /var/lib/dpkg/info/package.shlibs. The package name is identified in
>        two steps: find the library file on the system (looking in the same directories that ld.so would use), then use dpkg -S library-file to lookup the package
>        providing the library.

Note the "Then, for each library, it looks up either the symbols file,
or the shlibs file (if the former doesn't exist or if
debian/shlibs.local contains the relevant dependency)."  To me that
implies that the symbols file is preferred over the shlibs file when
both are present.


Further, in the concrete case, dh_makeshlibs will still allow you to
override the default when you happen to know that upstream has a sane
versioning scheme.

>> [...]
>>
>> The only thing I don't know from this is iif symbols files dependency
>> info is totally discarded or the dependency on qtbase-abi-x-y-z would
>> still be get trough them for packages using private API.
>>
>> Niels: like in [1] we use dpkg-symbols'
>> "alternative-dependency.template" to track packages using private API.
>> As long as this is kept then the change, I think, should be ok.
>>
>> [1]
>> <https://salsa.debian.org/qt-kde-team/qt/qtbase/blob/master/debian/libqt5core5a.symbols>
> 
> If that's true, I doubt C++ symbols files  are worth the trouble.  
> 
> Scott K
> 

I think this case would still work as it used too (e.g. ok for .debs and
ignored for .udebs - but as I recall, qtbase-abi does not have any udebs
and should not be concerned by that)


Thanks,
~Niels



More information about the pkg-kde-talk mailing list