Source: libosmocore
Maintainer: Osmocom team <openbsc@lists.osmocom.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 (>= 2.1.0),
               libsctp-dev,
               libusb-1.0-0-dev,
               libmnl-dev,
               libsystemd-dev,
               python3:native
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}),
         libosmocore18 (= ${binary:Version}),
         libosmogb12 (= ${binary:Version}),
         libosmogsm17 (= ${binary:Version}),
         libosmovty9 (= ${binary:Version}),
         libosmoctrl0 (= ${binary:Version}),
         libosmosim2 (= ${binary:Version}),
         libosmousb0 (= ${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: libosmocore18
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 libosmocore18 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},
         libosmocore18,
         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: libosmogb12
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},
         libosmogb12,
         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: libosmogsm17
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},
         libosmogsm17,
         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: libosmovty9
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},
         libosmovty9,
         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: libosmoctrl-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libosmoctrl0,
         libjs-jquery
Description: Documentation for the Osmocom CTRL 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 libosmoctrl library.

Package: libosmosim2
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: libosmousb0
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
         ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Osmo USB 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 libosmosub library in particular contains routines for USB device access
 via libusb-1.0, integrated into the libosmocore select event loop.

Package: libosmocore-dev
Architecture: any
Multi-Arch: same
Section: libdevel
Depends: libosmocore,
         libtalloc-dev (>= 2.1.0),
         ${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, as well as 'osmo-config-merge', a tool for merging Osmocom
 configuration files.
 .
 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.
