Bug#989790: libogdi4.1: rename plugin files to include the SOVERSION

Sebastiaan Couwenberg sebastic at xs4all.nl
Sun Jun 13 13:08:21 BST 2021


On 6/13/21 12:02 PM, Sebastian Ramacher wrote:
> On 2021-06-13 11:53:00 +0200, Sebastiaan Couwenberg wrote:
>> On 6/13/21 11:36 AM, Sebastian Ramacher wrote:
>>> "If your package contains files whose names do not change with each
>>> change in the library shared object version, you must not put them in
>>> the shared library package."
>>
>> The files should no included in libogdi4.1:
>>
>>  "you must not put them in the shared library package"
> 
> It's fine if the paths are versioned in the same way.

There is no versioning of the path.

>> The plugins should move to the libogdi-plugins package.
>> One question: are the plugins required for libogdi4.1 to be useful?

I think so. I don't really use ogdi, I only maintain the package because
its a dependency of gdal.

> If
> so, that would require a Depends from libogdi4.1 on libogdi-plugins and
> breaking coinstallability once again. In that case, the libogdi-plugins
> package also needs to be versioned and the paths will need to be
> versioned again.

Since the path of the modules are unversioned, the package name
shouldn't be either. Having Breaks/Replace should suffice:

 Package: libogdi4.1
 Architecture: any
 Depends: libogdi-modules (= ${binary:Version}),
          ${shlibs:Depends},
          ${misc:Depends}
 Suggests: ogdi-bin
 Breaks: libogdi3.2 (<< 4.0.0)
 Replaces: libogdi3.2 (<< 4.0.0)
 [...]

 Package: libogdi-modules
 Architecture: any
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Breaks: libogdi3.2 (<< 4.0.0),
         libogdi4.0 (<< 4.1.0),
         libogdi4.1 (<< 4.1.0+ds-4~)
 Replaces: libogdi3.2 (<< 4.0.0),
           libogdi4.0 (<< 4.1.0),
           libogdi4.1 (<< 4.1.0+ds-4~)
 [...]

I don't want to diverge further from upstream, the buildsystem is hacked
enough as it is. The packaging per the above should be policy compliant.

But is seems that the modules require libogdi, the dependency gets set
via shlib:Depends which introduces a circular dependency:

 intra-source-package-circular-dependency libogdi-modules libogdi4.1

Splitting the modules out into a separate package may not be such a good
idea after all. The module path is built into libogdi via

 -DMODULES_PATH="\"$(INST_LIB)/ogdi/\""

And is used by ecs_OpenDynamicLib() to dlopen() the modules.

I guess we'll have to patch the makefile to use:

 -DMODULES_PATH="\"$(INST_LIB)/ogdi/4.1/\""

And move the files there.

Kind Regards,

Bas

-- 
 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1



More information about the Pkg-grass-devel mailing list