#26 Install issues when both -release and -version-info are used.
Closed 3 years ago by orbea. Opened 3 years ago by orbea.

Some projects use both -release and -version-info and when built with slibtool this will result in library symlinks being missing which can break the build with dependent programs.

For example in libyaml (https://github.com/yaml/libyaml) it fails to create the libyaml-0.so.2 symlink.

The correct solution for the project is to remove one or the other, as done in this libyaml PR.

https://github.com/yaml/libyaml/pull/208

For slibtool it should error when both are used to make the issue more obvious and not something that fails only when trying to build a program that requires that symlink.

The GNU libtool docs state:

-release release

    Specify that the library was generated by release release of your package,
    so that users can easily tell what versions are newer than others. Be warned
    that no two releases of your package will be binary compatible if you use this
    flag. If you want binary compatibility, use the -version-info flag instead (see
    Versioning).
-version-info current[:revision[:age]]

    If output-file is a libtool library, use interface version information current,
    revision, and age to build it (see Versioning). Do not use this flag to
    specify package release information, rather see the -release flag.

https://www.gnu.org/software/libtool/manual/libtool.html


After further discussion it turns out that removing -release causes this difference when using GNU libtool.

--- libyaml-libtool.orig.log    2021-01-23 12:18:34.936318615 -0800
+++ libyaml-libtool.new.log 2021-01-23 12:18:41.728386685 -0800
@@ -1,14 +1,14 @@
-/tmp/libyaml-libtool.orig/
+/tmp/libyaml-libtool.new/
 └── usr
     └── local
         ├── include
         │   └── yaml.h
         └── lib
-            ├── libyaml-0.so.2 -> libyaml-0.so.2.0.9
-            ├── libyaml-0.so.2.0.9
             ├── libyaml.a
             ├── libyaml.la
-            ├── libyaml.so -> libyaml-0.so.2.0.9
+            ├── libyaml.so -> libyaml.so.2.0.9
+            ├── libyaml.so.2 -> libyaml.so.2.0.9
+            ├── libyaml.so.2.0.9
             └── pkgconfig
                 └── yaml-0.1.pc

So I think a fix in slibtool should happen instead.

Metadata Update from @orbea:
- Issue status updated to: Closed (was: Open)

3 years ago

Login to comment on this ticket.

Metadata
Related Pull Requests
  • #27 Closed 3 years ago