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,
               libsctp-dev,
               libusb-1.0-0-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}),
         libosmocore12 (= ${binary:Version}),
         libosmogb9 (= ${binary:Version}),
         libosmogsm13 (= ${binary:Version}),
         libosmovty4 (= ${binary:Version}),
         libosmoctrl0 (= ${binary:Version}),
         libosmosim0 (= ${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: libosmocore12
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 libosmocore12 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},
         libosmocore12,
         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: libosmogb9
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},
         libosmogb9,
         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: libosmogsm13
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},
         libosmogsm13,
         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: 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: 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: 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,
         ${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.
