diff mbox

Fix lintian errors, make .deb build multiarch-aware

Message ID 1404840578-16623-1-git-send-email-Max.Suraev@fairwaves.co
State Superseded
Headers show

Commit Message

Max July 8, 2014, 5:29 p.m. UTC
Signed-off-by: Max Suraev <Max.Suraev@fairwaves.co>
---
 debian/README.source           |  1 +
 debian/compat                  |  2 +-
 debian/control                 | 34 ++++++++++++++++++++++++++++++----
 debian/copyright               | 15 ++-------------
 debian/libosmocodec0.install   |  2 +-
 debian/libosmocore-dev.install |  8 ++++----
 debian/libosmocore4.install    |  2 +-
 debian/libosmogb3.install      |  2 +-
 debian/libosmogsm5.install     |  2 +-
 debian/libosmovty0.install     |  2 +-
 10 files changed, 43 insertions(+), 27 deletions(-)
 create mode 100644 debian/README.source

Comments

Max July 8, 2014, 5:46 p.m. UTC | #1
This patch fixes all the packaging errors reported by lintian and most of the
warnings: see http://openbsc.osmocom.org/trac/wiki/Tasks/MISCDebianPackaging for
details. Few which still remains are either jquery-related (could it be doxygen
error?) or due to lack of manpage (help2man, anyone?)

The patch also adds basic multiarch support - everything should work as it used to be
if you're using pkg_config but review and testing will be greatly appreciated.

N. B. 1: this isn't complete and ready2use multiarch support - just some groundwork
which might be useful later on.

N. B. 2: I don't get at all quilt patching we're using so I've added only dummy
README. Anyone who understands why those patches are not merged to master branch
welcomed to write an explanation.

cheers,
Max.
Paul Wise July 9, 2014, 4:09 a.m. UTC | #2
On Wed, Jul 9, 2014 at 1:29 AM, Max Suraev wrote:

>  debian/...

If you would like any osmocom packages uploaded to Debian, I would be
happy to sponsor them.

Of course the usual Debian requirements apply; free licenses, source,
proper ABI tracking etc.
Paul Wise July 9, 2014, 4:13 a.m. UTC | #3
On Wed, Jul 9, 2014 at 12:09 PM, Paul Wise wrote:
> On Wed, Jul 9, 2014 at 1:29 AM, Max Suraev wrote:
>
>>  debian/...
>
> If you would like any osmocom packages uploaded to Debian, I would be
> happy to sponsor them.

I should mention that there are two source packages from OsmoSDR in
Debian, these were uploaded by the Debian Gnuradio package
maintainers:

https://packages.debian.org/source/sid/gr-osmosdr
https://packages.debian.org/source/sid/libosmosdr
Holger Freyther July 9, 2014, 11:21 a.m. UTC | #4
On Wed, Jul 09, 2014 at 12:09:56PM +0800, Paul Wise wrote:

Hi,

> Of course the usual Debian requirements apply; free licenses, source,
> proper ABI tracking etc.

the debian maintainer guide is painful to read. Can you point me to
how ABI tracking should be implemented?
Paul Wise July 10, 2014, 2:41 a.m. UTC | #5
On Wed, 2014-07-09 at 13:21 +0200, Holger Hans Peter Freyther wrote:

> the debian maintainer guide is painful to read. Can you point me to
> how ABI tracking should be implemented?

It is pretty simple; when library ABI is broken (when new code is
binary-incompatible with old code) the library SONAME (libc.so.6 for
example) should be bumped. The ABI Compliance Checker (ACC) can help
analyse the ABI and report incompatible changes but doesn't cover every
situation AFAIK. The libtool manual has a bunch of useful information
about maintaining shared libraries. 

http://ispras.linuxbase.org/index.php/ABI_compliance_checker
https://www.gnu.org/software/libtool/manual/libtool.html

For the Debian side of library packaging, maint-guide covers the very
basics, debian-policy covers requirements and the (quite outdated,
possibly still useful) libpkg-guide covers library packaging generally.

https://www.debian.org/doc/manuals/maint-guide/advanced.en.html#library
https://www.debian.org/doc/debian-policy/ch-sharedlibs.html
http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html

Two things I would like to highlight in particular:

Debian likes library upstreams who set their default symbol visibility
to hidden and then whitelist their public symbols.

Debian likes library upstreams who implement symbol versioning.
diff mbox

Patch

diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..9ba5c67
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1 @@ 
+We do some Debian-specific source patching magic. This file should contain explanation of what the hell we do and why until we fix that one way or another.
\ No newline at end of file
diff --git a/debian/compat b/debian/compat
index 45a4fb7..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@ 
-8
+9
diff --git a/debian/control b/debian/control
index 4af7e85..bce5738 100644
--- a/debian/control
+++ b/debian/control
@@ -2,8 +2,8 @@  Source: libosmocore
 Section: libs
 Priority: optional
 Maintainer: Harald Welte <laforge@gnumonks.org>
-Build-Depends: debhelper (>= 8.0.0), autotools-dev, autoconf, automake, libtool, dh-autoreconf, libdpkg-perl, git, doxygen
-Standards-Version: 3.9.3
+Build-Depends: debhelper (>= 9), autotools-dev, autoconf, automake, libtool, dh-autoreconf, libdpkg-perl, git, doxygen, quilt
+Standards-Version: 3.9.5
 Homepage: http://bb.osmocom.org/trac/wiki/libosmocore
 Vcs-Git: git://git.osmocom.org/libosmocore.git
 Vcs-Browser: http://git.osmocom.org/gitweb?p=libosmocore.git;a=summary
@@ -11,53 +11,79 @@  Vcs-Browser: http://git.osmocom.org/gitweb?p=libosmocore.git;a=summary
 Package: libosmocore
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: libosmocodec0, libosmocore4, libosmogb3, libosmogsm5, libosmovty0, ${misc:Depends}
-Description: Open Source MObile COMmunications CORE library
+Description: Open Source MObile COMmunications CORE library metapackage
+ Metapackage for Open Source MObile COMmunications CORE library.
 
 Package: libosmocodec0
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Osmo codec library
+ Open Source MObile COMmunications codec library.
 
 Package: libosmocore4
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Osmo Core library
+ Open Source MObile COMmunications CORE library.
 
 Package: libosmogb3
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Osmo GPRS GB library
+ Open Source MObile COMmunications library containing GPRS support functions.
 
 Package: libosmogsm5
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Osmo GSM utility library
+ Open Source MObile COMmunications library implementing various GSM routines.
 
 Package: libosmovty0
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Osmo VTY library
+ Open Source MObile COMmunications library implementing VTY interface.
 
 Package: libosmocore-dev
 Section: libdevel
 Architecture: any
-Depends: ${misc:Depends}, libosmocore
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, libosmocore, libjs-jquery
 Description: Development headers for Open Source MObile COMmunications CORE library
+ Open Source MObile COMmunications library development files.
 
 Package: libosmocore-utils
 Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}, libosmocore
 Description: Utilities for gsm
+ Open Source MObile COMmunications library utilities.
 
 Package: libosmocore-dbg
 Architecture: any
 Section: debug
 Priority: extra
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: libosmocore (= ${binary:Version}), ${misc:Depends}
 Description: Debug symbols for Open Source MObile COMmunications CORE library
+ Debug version of Open Source MObile COMmunications CORE library.
diff --git a/debian/copyright b/debian/copyright
index c450be5..c2bfe66 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -6,7 +6,7 @@  It was downloaded from:
 
     git://git.osmocom.org/libosmocore.git
 
-Upstream Author(s):
+Upstream Authors:
 
     Harald Welte <laforge@gnumonks.org>
     Holger Hans Peter Freyther <zecke@selfish.org>
@@ -36,19 +36,8 @@  Copyright:
 License:
 
     GNU General Public License, Version 2 or later
+    see "/usr/share/common-licenses/GPL-2"
 
 The Debian packaging is:
 
     Copyright (C) 2010 Harald Welte <laforge@gnumonks.org>
-
-# Please chose a license for your packaging work. If the program you package
-# uses a mainstream license, using the same license is the safest choice.
-# Please avoid to pick license terms that are more restrictive than the
-# packaged work, as it may make Debian's contributions unacceptable upstream.
-# If you just want it to be GPL version 3, leave the following lines in.
-
-and is licensed under the GPL version 3,
-see "/usr/share/common-licenses/GPL-3".
-
-# Please also look if there are files or directories which have a
-# different copyright/license attached and list them here.
diff --git a/debian/libosmocodec0.install b/debian/libosmocodec0.install
index 2743b53..2676133 100644
--- a/debian/libosmocodec0.install
+++ b/debian/libosmocodec0.install
@@ -1 +1 @@ 
-usr/lib/libosmocodec*.so.*
+usr/lib/*/libosmocodec*.so.*
diff --git a/debian/libosmocore-dev.install b/debian/libosmocore-dev.install
index ece5b08..7c5a789 100644
--- a/debian/libosmocore-dev.install
+++ b/debian/libosmocore-dev.install
@@ -1,6 +1,6 @@ 
 usr/include/*
-usr/lib/lib*.a
-usr/lib/lib*.so
-usr/lib/lib*.la
-usr/lib/pkgconfig/*
+usr/lib/*/lib*.a
+usr/lib/*/lib*.so
+usr/lib/*/lib*.la
+usr/lib/*/pkgconfig/*
 usr/share/doc/libosmocore/*
diff --git a/debian/libosmocore4.install b/debian/libosmocore4.install
index d134902..b73331b 100644
--- a/debian/libosmocore4.install
+++ b/debian/libosmocore4.install
@@ -1 +1 @@ 
-usr/lib/libosmocore*.so.*
+usr/lib/*/libosmocore*.so.*
diff --git a/debian/libosmogb3.install b/debian/libosmogb3.install
index 73ad3d3..4c47425 100644
--- a/debian/libosmogb3.install
+++ b/debian/libosmogb3.install
@@ -1 +1 @@ 
-usr/lib/libosmogb*.so.*
+usr/lib/*/libosmogb*.so.*
diff --git a/debian/libosmogsm5.install b/debian/libosmogsm5.install
index 12c9180..5e61729 100644
--- a/debian/libosmogsm5.install
+++ b/debian/libosmogsm5.install
@@ -1 +1 @@ 
-usr/lib/libosmogsm*.so.*
+usr/lib/*/libosmogsm*.so.*
diff --git a/debian/libosmovty0.install b/debian/libosmovty0.install
index 1b993e8..fbf6a5f 100644
--- a/debian/libosmovty0.install
+++ b/debian/libosmovty0.install
@@ -1 +1 @@ 
-usr/lib/libosmovty*.so.*
+usr/lib/*/libosmovty*.so.*