Bug#896464: Passing -V as default

2018-04-24 Thread Scott Kitterman
On Tuesday, April 24, 2018 07:46:51 PM Lisandro Damián Nicanor Pérez Meyer 
wrote:
> El mar., 24 de abr. de 2018 02:47, Niels Thykier 
> 
> escribió:
> > Scott Kitterman:
> > > On April 23, 2018 10:03:45 PM UTC, "Lisandro Damián Nicanor Pérez Meyer"
> > 
> >  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:
> [snip]
> 
> Interesting. That sounds pretty good then. I'll check the next time I
> rebuild qt.
> 
> > 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)
> 
> If everything works as we understand it now then yes, it should just simply
> work.

Yes, I agree.  I appreciate the clarification.

Scott K



Bug#896464: Passing -V as default

2018-04-24 Thread Lisandro Damián Nicanor Pérez Meyer
El mar., 24 de abr. de 2018 02:47, Niels Thykier 
escribió:

> Scott Kitterman:
> >
> >
> > On April 23, 2018 10:03:45 PM UTC, "Lisandro Damián Nicanor Pérez Meyer"
>  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:

[snip]

Interesting. That sounds pretty good then. I'll check the next time I
rebuild qt.

> 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)
>

If everything works as we understand it now then yes, it should just simply
work.

>


Bug#896464: Passing -V as default

2018-04-23 Thread Niels Thykier
Scott Kitterman:
> 
> 
> On April 23, 2018 10:03:45 PM UTC, "Lisandro Damián Nicanor Pérez Meyer" 
>  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]
>> 
> 
> 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



Bug#896464: Passing -V as default

2018-04-23 Thread Scott Kitterman


On April 23, 2018 10:03:45 PM UTC, "Lisandro Damián Nicanor Pérez Meyer" 
 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.
>
>If this is true is more or less what we are currently forcing with any
>package that B-Ds on qtbase5-dev, although this would also mean that
>packages that just B-D on qtbase5-private-dev will get the same
>behavior (even if they do not list qtbase5-dev as a B-D and not taking
>into account the qtbase-abi-x-y-z dependency).
>
>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]
>

If that's true, I doubt C++ symbols files  are worth the trouble.  

Scott K



Bug#896464: Passing -V as default

2018-04-23 Thread Lisandro Damián Nicanor Pérez Meyer
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.

If this is true is more or less what we are currently forcing with any
package that B-Ds on qtbase5-dev, although this would also mean that
packages that just B-D on qtbase5-private-dev will get the same
behavior (even if they do not list qtbase5-dev as a B-D and not taking
into account the qtbase-abi-x-y-z dependency).

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] 


-- 
Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/