Can't build debian packages of libosmocore
diff mbox

Message ID 54060266.1060300@autistici.org
State Superseded
Headers show

Commit Message

Ciaby Sept. 2, 2014, 5:46 p.m. UTC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 09/01/2014 01:43 PM, Holger Hans Peter Freyther wrote:
> On Sun, Aug 31, 2014 at 04:02:17PM -0500, Ciaby wrote:
> 
> Hi!
> 
>>> So, it looks like it's trying to build a libosmogsm6 package,
>>> but only libosmogsm5.1.0 gets built. I looked around, and the
>>> only reference I found is in src/gsm/Makefile.am, and it's
>>> correct (6:0:1). What am I doing wrong? :)
>> This is a tentative patch to fix the issue. It works for me, 
>> libosmogsm6 and libosmoctrl0 are built successfully, however I'm
>> not sure if that's the right thing to do.
> 
> 
> can you try to use the -M option? It will show plain renames.
Ok, will do.

>> --- a/src/gsm/Makefile.am +++ b/src/gsm/Makefile.am @@ -1,6 +1,6
>> @@ # This is _NOT_ the library release version, it's an API
>> version. # Please read Chapter 6 "Library interface versions" of
>> the libtool documentation before making any modification 
>> -LIBVERSION=6:0:1 +LIBVERSION=6:0:0
> 
> that is odd. What build issue do you get without the versioning?
libosmogsm gets built as libosmogsm.so.5.1.0, which of course doesn't
work if you try to package libosmogsm6. Also, libosmoctrl is missing
libosmoctrl0.install in debian/ and the package declaration in
debian/rules.
My build box is Ubuntu 12.04, 64-bit, all packages updated.
This is the updated patch.
Cheers

Ciaby

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iF4EAREKAAYFAlQGAlwACgkQC30ZhxNccpERYAD+J0WCn/Oo01sVsVmz3Dq+f0cK
r9eTGhhfEi2ZVCVXGlwA/1tv0Wl53be5R5UKGNF01OJ0Jp7xXBErJ5PLV88guTJ2
=qGdK
-----END PGP SIGNATURE-----

Comments

Holger Freyther Sept. 3, 2014, 6:13 a.m. UTC | #1
On Tue, Sep 02, 2014 at 12:46:14PM -0500, Ciaby wrote:

> >> -LIBVERSION=6:0:1 +LIBVERSION=6:0:0
> > 
> > that is odd. What build issue do you get without the versioning?
> libosmogsm gets built as libosmogsm.so.5.1.0, which of course doesn't
> work if you try to package libosmogsm6. Also, libosmoctrl is missing
> libosmoctrl0.install in debian/ and the package declaration in
> debian/rules.

5 vs. 6 and missing libosmoctrl is obvious. But why doesn't 6.0.1
as version work? I would be a bit surprised if that doesn't work.

$ dpkg -S /usr/lib/liblwres.so.90.0.7
liblwres90: /usr/lib/liblwres.so.90.0.7

I will probably just build the package and then drop that hunk.

holger
Ciaby Sept. 3, 2014, 9:21 a.m. UTC | #2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 09/03/2014 01:13 AM, Holger Hans Peter Freyther wrote:
[...]
> 5 vs. 6 and missing libosmoctrl is obvious. But why doesn't 6.0.1 
> as version work? I would be a bit surprised if that doesn't work.
> 
> $ dpkg -S /usr/lib/liblwres.so.90.0.7 liblwres90:
> /usr/lib/liblwres.so.90.0.7
> 
> I will probably just build the package and then drop that hunk.
I know, it doesn't make sense... but that's what I got out of building
it with 6.0.1 as version. 6.0.0 works fine. Can you reproduce it?
Cheers

Ciaby


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iF4EAREKAAYFAlQG3YQACgkQC30ZhxNccpHiQQEAgoVeNL22rMwHDpPXB67Ih4SK
5rzM97TkWpKDhJfmEaAA/2G6fIsncEpJIcy5V0WYvFOo5hC7u1k4tUZFbAz6WkhI
=ba7Y
-----END PGP SIGNATURE-----
Holger Freyther Sept. 3, 2014, 1:25 p.m. UTC | #3
On Wed, Sep 03, 2014 at 04:21:13AM -0500, Ciaby wrote:

> > I will probably just build the package and then drop that hunk.
> I know, it doesn't make sense... but that's what I got out of building
> it with 6.0.1 as version. 6.0.0 works fine. Can you reproduce it?

yes, it is odd. 6:0:1 gives me a so where the major version is 5
something :)

There seems to be a similar issue with the libosmocore library as
well. Did you see the warning generated by lintian?
Vasil Velichkov Sept. 3, 2014, 3:57 p.m. UTC | #4
Hi Holger, Ciaby,

On 3.09.2014 16:25, Holger Hans Peter Freyther wrote:
> On Wed, Sep 03, 2014 at 04:21:13AM -0500, Ciaby wrote:
>
>> I know, it doesn't make sense... but that's what I got out of building
>> it with 6.0.1 as version. 6.0.0 works fine. Can you reproduce it?
> yes, it is odd. 6:0:1 gives me a so where the major version is 5
> something :)
>
> There seems to be a similar issue with the libosmocore library as
> well. Did you see the warning generated by lintian?
>
>
It is normal that 6:0:1 gives a so with major version 5, because 6:0:1 
means that the library supports interfaces 5 and 6

See 
http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html

     So, libtool library versions are described by three integers:
     current
         The most recent interface number that this library implements.
     revision
         The implementation number of the current interface.
     age
         The difference between the newest and oldest interfaces that 
this library implements.
         In other words, the library implements all the interface 
numbers in the range from number current - age to current.

Vasil
Ciaby Sept. 3, 2014, 11:01 p.m. UTC | #5
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 09/03/2014 10:57 AM, Vasil Velichkov wrote:
> Hi Holger, Ciaby,
> 
> On 3.09.2014 16:25, Holger Hans Peter Freyther wrote:
>> On Wed, Sep 03, 2014 at 04:21:13AM -0500, Ciaby wrote:
>> 
>>> I know, it doesn't make sense... but that's what I got out of
>>> building it with 6.0.1 as version. 6.0.0 works fine. Can you
>>> reproduce it?
>> yes, it is odd. 6:0:1 gives me a so where the major version is 5 
>> something :)
>> 
>> There seems to be a similar issue with the libosmocore library
>> as well. Did you see the warning generated by lintian?
>> 
>> 
> It is normal that 6:0:1 gives a so with major version 5, because
> 6:0:1 means that the library supports interfaces 5 and 6
Ok, that's what I found as well. So, what's the solution here?
Keep packaging it as 5, or move to 6-only?
Cheers

Ciaby

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iF4EAREKAAYFAlQHncYACgkQC30ZhxNccpGegQD/fI5xgA9cwvJnm6BGpyKEKDpm
GwKSBGTShyfOkL5Xa4oBAKu9L8gLjn+sGCfWdcVwTcJrCbV1oGFT09s6FQsszMji
=UV8T
-----END PGP SIGNATURE-----
Holger Freyther Sept. 4, 2014, 6:10 a.m. UTC | #6
On Wed, Sep 03, 2014 at 06:01:31PM -0500, Ciaby wrote:

> Ok, that's what I found as well. So, what's the solution here?
> Keep packaging it as 5, or move to 6-only?

-#define OSMO_NUM_DLIB  7
+#define DLCTRL         -8
+#define OSMO_NUM_DLIB  8

might break ABI, so let's stick with 6:0:0. Could you updated
your patch to address the libosmocore4 warning as well?

thanks
	holger
Pablo Neira Ayuso Sept. 4, 2014, 9:35 a.m. UTC | #7
On Wed, Sep 03, 2014 at 06:57:50PM +0300, Vasil Velichkov wrote:
> Hi Holger, Ciaby,
> 
> On 3.09.2014 16:25, Holger Hans Peter Freyther wrote:
> >On Wed, Sep 03, 2014 at 04:21:13AM -0500, Ciaby wrote:
> >
> >>I know, it doesn't make sense... but that's what I got out of building
> >>it with 6.0.1 as version. 6.0.0 works fine. Can you reproduce it?
> >yes, it is odd. 6:0:1 gives me a so where the major version is 5
> >something :)
> >
> >There seems to be a similar issue with the libosmocore library as
> >well. Did you see the warning generated by lintian?
> >
> >
> It is normal that 6:0:1 gives a so with major version 5, because
> 6:0:1 means that the library supports interfaces 5 and 6
> 
> See http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
> 
>     So, libtool library versions are described by three integers:
>     current
>         The most recent interface number that this library implements.
>     revision
>         The implementation number of the current interface.
>     age
>         The difference between the newest and oldest interfaces that
> this library implements.
>         In other words, the library implements all the interface
> numbers in the range from number current - age to current.

Right.

A new library version that still supports the previous interfaces
needs to bump current and age, if the base is 6:0:0, then the update
needs to be 7:0:1.

If you remove interfaces you don't want anymore, ie. you break
backward compatibility, you have to reset age and bump current, ie.
7:0:0

Patch
diff mbox

From 412be4e74d5cb09cadeffb5a03e20c1be825867a Mon Sep 17 00:00:00 2001
From: Ciaby <ciaby@rhizomatica.org>
Date: Sun, 31 Aug 2014 15:35:29 -0500
Subject: [PATCH] debian: fix build errors with libosmogsm and libosmoctrl

libosmogsm: the transition from 5 to 6 wasn't done properly. Fixed version number.
libosmoctrl: missing definition in debian/control and also missing libosmoctrl0.install.
---
 debian/control              |    6 ++++++
 debian/libosmoctrl0.install |    1 +
 debian/libosmogsm5.install  |    1 -
 debian/libosmogsm6.install  |    1 +
 src/gsm/Makefile.am         |    2 +-
 5 files changed, 9 insertions(+), 2 deletions(-)
 create mode 100644 debian/libosmoctrl0.install
 delete mode 100644 debian/libosmogsm5.install
 create mode 100644 debian/libosmogsm6.install

diff --git a/debian/control b/debian/control
index 3204f0f..e81f7cf 100644
--- a/debian/control
+++ b/debian/control
@@ -44,6 +44,12 @@  Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Osmo VTY library
 
+Package: libosmoctrl0
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Osmo control library
+
 Package: libosmocore-dev
 Section: libdevel
 Architecture: any
diff --git a/debian/libosmoctrl0.install b/debian/libosmoctrl0.install
new file mode 100644
index 0000000..6b23be8
--- /dev/null
+++ b/debian/libosmoctrl0.install
@@ -0,0 +1 @@ 
+usr/lib/libosmoctrl*.so.*
diff --git a/debian/libosmogsm5.install b/debian/libosmogsm5.install
deleted file mode 100644
index 12c9180..0000000
--- a/debian/libosmogsm5.install
+++ /dev/null
@@ -1 +0,0 @@ 
-usr/lib/libosmogsm*.so.*
diff --git a/debian/libosmogsm6.install b/debian/libosmogsm6.install
new file mode 100644
index 0000000..12c9180
--- /dev/null
+++ b/debian/libosmogsm6.install
@@ -0,0 +1 @@ 
+usr/lib/libosmogsm*.so.*
diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am
index 4207959..1e2d893 100644
--- a/src/gsm/Makefile.am
+++ b/src/gsm/Makefile.am
@@ -1,6 +1,6 @@ 
 # This is _NOT_ the library release version, it's an API version.
 # Please read Chapter 6 "Library interface versions" of the libtool documentation before making any modification
-LIBVERSION=6:0:1
+LIBVERSION=6:0:0
 
 AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} $(all_includes) -I$(top_srcdir)/include
 
-- 
1.7.9.5