Processed: Re: Bug#956510: spirv-tools: change to shared libraries breaks dpkg-shlibdeps during the build of reverse dependencies

2020-05-15 Thread Debian Bug Tracking System
Processing control commands:

> forwarded -1 https://github.com/KhronosGroup/SPIRV-Tools/issues/3214
Bug #956510 [spirv-tools] spirv-tools: change to shared libraries breaks 
dpkg-shlibdeps during the build of reverse dependencies
Set Bug forwarded-to-address to 
'https://github.com/KhronosGroup/SPIRV-Tools/issues/3214'.

-- 
956510: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=956510
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#956510: spirv-tools: change to shared libraries breaks dpkg-shlibdeps during the build of reverse dependencies

2020-05-15 Thread Simon McVittie
Control: forwarded -1 https://github.com/KhronosGroup/SPIRV-Tools/issues/3214

On Fri, 15 May 2020 at 10:16:33 +0200, Sebastian Ramacher wrote:
> On 2020-05-14 17:18:38 +0100, Simon McVittie wrote:
> > Are these libraries intended to be a public API, or are they intended to be
> > a private implementation detail of the CLI tools?
> 
> They are intended to be public.

In that case I think the necessary steps are:

- wait for upstream to set an official SONAME
  - someone from Collabora can propose a PR if upstream say it would be
helpful, or if that seems to be necessary to unblock the upstream issue

- change the Debian package to be built like a Policy §8 shared library:
  - libspirv-tools-dev
  - libspirv-tools0
  - possibly also libspirv-tools-link0, etc., depending whether upstream
say the SONAMEs are meant to go up in lockstep or separately
(the safe/conservative option is one binary package per shared library)
  - again, someone from Collabora can propose patches for this if necessary
  - the upstream action needs to happen first, to avoid Debian producing an
ABI that is incompatible with upstream

- NEW queue processing

Thanks,
smcv



Bug#956510: spirv-tools: change to shared libraries breaks dpkg-shlibdeps during the build of reverse dependencies

2020-05-15 Thread Sebastian Ramacher
Hi Simon

On 2020-05-14 17:18:38 +0100, Simon McVittie wrote:
> On Sun, 12 Apr 2020 at 11:04:38 +0200, Sebastian Ramacher wrote:
> > libplacebo now manually links the libraries from spirv-tools
> > (libSPIRV-Tools and libSPIRV-Tools-opt) to work-around #951988 and
> > #955431. Since the switch to shared libraries, however, dpkg-shlibdeps
> > is unable to produce the correct dependencies when linking those
> > libraries.
> 
> Are these libraries intended to be a public API, or are they intended to be
> a private implementation detail of the CLI tools?

They are intended to be public. From upstream's README:

| The library contains all of the
| implementation details, and is used in the standalone tools whilst also
| enabling integration into other code bases directly.

> If they're considered to be public libraries, then there are two options,
> depending how stable they are:
> 
> If their API/ABI are totally unmanaged, then they should probably be
> provided as static-only, with libplacebo binNMU'd to pick up new versions.
> 
> Or, if their API/ABI are managed, then they should have proper SONAMEs
> (see upstream issues, as previously mentioned), and they should be
> packaged like shared libraries, with a runtime library package per shared
> library (or a single runtime library package if the upstream developer
> guarantees that their SONAMEs all change in lockstep, like libglib2.0-0),
> and one or more -dev packages. (See Policy §8 for details.)

According to upstream's README, at least the API should be stable:

| The interfaces have stabilized: We don't anticipate making a breaking
| change for existing features.

Cheers
-- 
Sebastian Ramacher


signature.asc
Description: PGP signature


Bug#956510: spirv-tools: change to shared libraries breaks dpkg-shlibdeps during the build of reverse dependencies

2020-05-14 Thread Simon McVittie
On Sun, 12 Apr 2020 at 11:04:38 +0200, Sebastian Ramacher wrote:
> libplacebo now manually links the libraries from spirv-tools
> (libSPIRV-Tools and libSPIRV-Tools-opt) to work-around #951988 and
> #955431. Since the switch to shared libraries, however, dpkg-shlibdeps
> is unable to produce the correct dependencies when linking those
> libraries.

Are these libraries intended to be a public API, or are they intended to be
a private implementation detail of the CLI tools?

If they're a private implementation detail, then libplacebo shouldn't be
linked to them, and they should either be statically linked into the
various CLI tools, or installed to a private directory with a RUNPATH
so that the CLI tools will find them (like the way /usr/bin/sudo links
to the private library libsudo_util.so.0).

If they're considered to be public libraries, then there are two options,
depending how stable they are:

If their API/ABI are totally unmanaged, then they should probably be
provided as static-only, with libplacebo binNMU'd to pick up new versions.

Or, if their API/ABI are managed, then they should have proper SONAMEs
(see upstream issues, as previously mentioned), and they should be
packaged like shared libraries, with a runtime library package per shared
library (or a single runtime library package if the upstream developer
guarantees that their SONAMEs all change in lockstep, like libglib2.0-0),
and one or more -dev packages. (See Policy §8 for details.)

smcv



Bug#956510: spirv-tools: change to shared libraries breaks dpkg-shlibdeps during the build of reverse dependencies

2020-04-12 Thread Sebastian Ramacher
On 2020-04-12 11:04:38 +0200, Sebastian Ramacher wrote:
> Package: spirv-tools
> Version: 2020.2-1
> Severity: serious
> 
> libplacebo now manually links the libraries from spirv-tools
> (libSPIRV-Tools and libSPIRV-Tools-opt) to work-around #951988 and
> #955431. Since the switch to shared libraries, however, dpkg-shlibdeps
> is unable to produce the correct dependencies when linking those
> libraries. During the build of libplacebo 1.29.1 it emits
> 
> dpkg-shlibdeps: warning: can't extract name and version from library name 
> 'libSPIRV-Tools.so'
> dpkg-shlibdeps: warning: can't extract name and version from library name 
> 'libSPIRV-Tools.so'
> dpkg-shlibdeps: warning: can't extract name and version from library name 
> 'libSPIRV-Tools-opt.so'
> dpkg-shlibdeps: warning: can't extract name and version from library name 
> 'libSPIRV-Tools-opt.so'
> 
> and libplacebo29 is missing the dependencies for those libraries as a
> consequence.

And that's due to the libraries missing a SONAME. The corresponding
upstream issues are
https://github.com/KhronosGroup/SPIRV-Tools/issues/3046 and
https://github.com/KhronosGroup/SPIRV-Tools/issues/3214

Cheers
-- 
Sebastian Ramacher


signature.asc
Description: PGP signature


Bug#956510: spirv-tools: change to shared libraries breaks dpkg-shlibdeps during the build of reverse dependencies

2020-04-12 Thread Sebastian Ramacher
Package: spirv-tools
Version: 2020.2-1
Severity: serious

libplacebo now manually links the libraries from spirv-tools
(libSPIRV-Tools and libSPIRV-Tools-opt) to work-around #951988 and
#955431. Since the switch to shared libraries, however, dpkg-shlibdeps
is unable to produce the correct dependencies when linking those
libraries. During the build of libplacebo 1.29.1 it emits

dpkg-shlibdeps: warning: can't extract name and version from library name 
'libSPIRV-Tools.so'
dpkg-shlibdeps: warning: can't extract name and version from library name 
'libSPIRV-Tools.so'
dpkg-shlibdeps: warning: can't extract name and version from library name 
'libSPIRV-Tools-opt.so'
dpkg-shlibdeps: warning: can't extract name and version from library name 
'libSPIRV-Tools-opt.so'

and libplacebo29 is missing the dependencies for those libraries as a
consequence.

Cheers
-- 
Sebastian Ramacher


signature.asc
Description: PGP signature