Source: libosmocore
Maintainer: Harald Welte <laforge@gnumonks.org>
Section: libs
Priority: optional
Build-Depends: debhelper (>= 9),
               autotools-dev,
               autoconf,
               automake,
               libtool,
               dh-autoreconf,
               libdpkg-perl,
               git,
               libgnutls28-dev,
               doxygen,
               libpcsclite-dev,
               pkg-config,
               libtalloc-dev,
               python (>= 2.7.6)
Standards-Version: 3.9.8
Vcs-Git: git://git.osmocom.org/libosmocore.git
Vcs-Browser: http://git.osmocom.org/libosmocore/
Homepage: https://projects.osmocom.org/projects/libosmocore

Package: libosmocore
Section: libs
Architecture: any
Multi-Arch: foreign
Depends: libosmocodec0 (= ${binary:Version}),
         libosmocoding0 (= ${binary:Version}),
         libosmocore10 (= ${binary:Version}),
         libosmogb6 (= ${binary:Version}),
         libosmogsm9 (= ${binary:Version}),
         libosmovty4 (= ${binary:Version}),
         libosmoctrl0 (= ${binary:Version}),
         libosmosim0 (= ${binary:Version}),
         ${misc:Depends}
Description: Open Source MObile COMmunications CORE library (metapackage)
 The libraries provided by this package contain various utility functions.
 These were originally developed as part of the
 OpenBSC project but are of a more generic nature and thus useful to (at
 least) other programs that are developed in the sphere of Free Software / Open
 Source mobile communication.

Package: libosmocodec0
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo codec library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmocodec library in particular contains the implementation of multiple
 GSM codecs:
 .
  - GSM 06.10 - GSM FR Codec
  - GSM 06.20 - GSM HR Codec
  - GSM 06.60 - GSM EFR Codec
  - GSM 06.90 - GSM AMR Codec

Package: libosmocodec-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmocodec0,
         libjs-jquery
Description: Documentation for the osmo codec library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 This package contains the documentation for the libosmocodec library.

Package: libosmocoding0
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo coding library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmocoding library in particular contains the implementation of
 GSM, GPRS and EDGE transcoding routines, migrated from OsmoBTS.

Package: libosmocoding-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmocoding0,
         libjs-jquery
Description: Documentation for the osmo coding library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 This package contains the documentation for the libosmocoding library.

Package: libosmocore10
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo Core library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmocore10 library in particular is a collection of common code used in
 various sub-projects inside the Osmocom family of projects.

Package: libosmocore-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmocore10,
         libjs-jquery,
         libosmocodec-doc,
         libosmocoding-doc,
         libosmogsm-doc,
         libosmovty-doc
Description: Documentation for the Osmo Core library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 This package contains the documentation for the libosmocore library.

Package: libosmogb6
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo GPRS GB library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmogb library in particular contains a GPRS BSSGP protocol
 implementation.

Package: libosmogb-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmogb6,
         libjs-jquery
Description: Documentation for the Osmo GPRS Gb library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 This package contains the documentation for the libosmogb library.

Package: libosmogsm9
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo GSM utility library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmogsm library in particular is a collection of common code used in
 various GSM related sub-projects inside the Osmocom family of projects. It
 includes A5/1 and A5/2 ciphers, COMP128v1, a LAPDm implementation, a GSM TLV
 parser, SMS utility routines as well as protocol definitions for a series of
 protocols.

Package: libosmogsm-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmogsm9,
         libjs-jquery
Description: Documentation for the Osmo GSM utility library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 This package contains the documentation for the libosmogsm library.

Package: libosmovty4
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo VTY library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmovty library in particular implements the interactive command-line
 on the VTY (Virtual TTY) as well as configuration file parsing.

Package: libosmovty-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmovty4,
         libjs-jquery
Description: Documentation for the Osmo VTY library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 This package contains the documentation for the libosmovty library.

Package: libosmoctrl0
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo control library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmoctrl library in particular contains an SNMP-like status interface.

Package: libosmosim0
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo SIM library
 This is part of the libosmocore "meta"-library. The libosmocore library
 contains various utility functions that were originally developed as part of
 the OpenBSC project, but which are of a more generic nature and thus useful to
 (at least) other programs that are developed in the sphere of Free Software /
 Open Source mobile communication.
 .
 The libosmosim library in particular contains routines for SIM card access.

Package: libosmocore-dev
Architecture: any
Multi-Arch: same
Section: libdevel
Depends: libosmocore,
         libtalloc-dev,
         ${misc:Depends}
Description: Development headers for Open Source MObile COMmunications CORE library
 The header files provided by this package may be used to develop
 with any of the libosmocore libraries.
 .
 Also static libraries are installed with this package.

Package: libosmocore-utils
Architecture: any
Section: utils
Depends: ${shlibs:Depends},
         libosmocore,
         ${misc:Depends}
Multi-Arch: same
Description: Utilities for gsm
 This package contains a program for frequency calculation for GSM called
 'osmo-arfcn' and a program called 'osmo-auc-gen' that is used for testing GSM
 authentication.
 .
 They use the libosmocore library. The libosmocore library contain various
 utility functions that were originally developed as part of the OpenBSC
 project, but which are of a more generic nature and thus useful to (at least)
 other programs that are developed in the sphere of Free Software / Open Source
 mobile communication.

Package: libosmocore-dbg
Architecture: any
Multi-Arch: same
Section: debug
Priority: extra
Depends: libosmocore (= ${binary:Version}),
         ${misc:Depends}
Description: Debug symbols for Open Source MObile COMmunications CORE library
 This proackage contains debug symbols for all the libraries that are part of
 libosmocore.
 .
 The libosmocore library contain various utility functions that
 were originally developed as part of the OpenBSC project, but which are of a
 more generic nature and thus useful to (at least) other programs that are
 developed in the sphere of Free Software / Open Source mobile communication.
