FreeCalypso > hg > gsm-codec-lib
changeset 208:13d27ff5b5df
add documents for release
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 18 Feb 2023 23:24:54 +0000 |
parents | 10f11a2d4042 |
children | 34f8549ff0b1 |
files | INSTALL LICENSE Library-versions PACKAGING |
diffstat | 4 files changed, 173 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/INSTALL Sat Feb 18 23:24:54 2023 +0000 @@ -0,0 +1,96 @@ +Dependency graph +================ + +The complete Themyscira GSM codec libraries & utilities package as presented +here consists of two principal parts: + +Division 1: libgsmefr and libgsmfrp, the two C code libraries intended to be +usable by other software; + +Division 2: various command line utilities that were developed under the +umbrella of this project and are being released accordingly. + +Division 2 components have a compile-time dependency on Division 1 (some of +these Division 2 command line utilities link with libgsmefr or libgsmfrp), but +not the other way around: neither libgsmefr nor libgsmfrp has any dependency on +any other part of this package. + +However, the original GSM 06.10 library (libgsm) from 1990s is a required +dependency for several components of the present Themyscira package: libgsmfrp +and several Division 2 command line utilities have a compile-time dependency on +<gsm.h> header file provided by libgsm, and several Division 2 utilities also +have a link dependency on libgsm itself. Therefore, libgsm should be considered +a hard dependency for the present GSM codec libraries & utilities package as a +whole, and it needs to be installed system-wide prior to compiling the present +software. + +Compiling and installing Themyscira libraries and utilities +=========================================================== + +Running 'make' at the top level of the present gsm-codec-lib package will +compile both Division 1 and Division 2 software components (both libraries and +utilities), with the top level Makefile codifying the dependency graph among +them. Installation, however, is a little more complicated in that there is no +single 'make install' target at the top level - instead of a single install +target, the top Makefile provides two separate installation targets: + +make install-lib Install libgsmefr and libgsmfrp system-wide: + gsm_efr.h and gsm_fr_preproc.h are installed in + /usr/local/include; libgsmefr.a and libgsmfrp.a are + installed in /usr/local/lib. Superuser privileges + are usually required to write to these directories. + +make install-utils Install Division 2 command line utilities into + /opt/freecalypso/bin directory, which is non-standard + in the muggle world but has been established in our + Themyscira community as the location for Themyscira- + developed command line utilities working with GSM. + +The just-described separation between install-lib and install-utils targets has +been created because of the difference in install paths: libraries and their +header files that need to be easily findable and usable by other people's +unrelated software need to be installed under /usr/local, requiring su to root +before each install cycle, whereas /opt/freecalypso/bin (writable without root +privileges on the Mother's development machine) is much more convenient for +Division 2 command line utilities. + +However, the present gsm-codec-lib package differs from FreeCalypso host tools +and SIM tools packages in that in the present package, you ARE allowed to freely +change these installation directories to fit your own preferences. FC host +tools and FC SIM tools packages carry very strong admonitions in their INSTALL +documents to the effect that they MUST be installed under /opt/freecalypso and +that this path cannot be changed; this strict imposition is made because of +strong intercomponent dependencies within those software suites, with different +components invoking each other or looking for their support files using hard- +coded absolute pathnames. But the present gsm-codec-lib package is different: +you are free to move our Division 2 command line utilities from +/opt/freecalypso/bin to /usr/local/bin or anywhere else you like, and you are +likewise free to move our Division 1 libraries from /usr/local/{include,lib} to +whatever location would be most appropriate in your environment. + +To change installation directories, you will need to edit subdirectory Makefiles +as follows: + +Division 1: + + libgsmefr/Makefile + libgsmfrp/Makefile + +Division 2: + + amrconv/Makefile + efrtest/Makefile + frtest/Makefile + miscutil/Makefile + pcap/Makefile + +pcap subdirectory and libpcap dependency +======================================== + +The present package includes (as part of Division 2) a set of command line +utilities for analyzing RTP streams that have been captured with tcpdump or +equivalent tools in pcap format. These utilities, described in the +doc/RTP-analysis article, are built in the pcap subdirectory and naturally +depend on libpcap. If your system lacks libpcap and you don't need these RTP +analysis utilities, you can edit the top level Makefile and remove pcap from +the list in SUBDIR_UTILS.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LICENSE Sat Feb 18 23:24:54 2023 +0000 @@ -0,0 +1,11 @@ +The present GSM codec libraries & utilities package has been produced by the +Presiding Sisterhood (government) of the Women's Republic of Themyscira as part +of our Themyscira Wireless technical initiative. Because this development is a +public works project, the resulting software is free to the world, i.e., public +domain: all people anywhere in the world, of all genders, can use, copy, and +modify it freely as they wish, including unlimited redistribution with or +without modifications. We do ask, however, that any non-Themyscira +modifications to this software be clearly noted and attributed. + +The libgsmefr component of the present software package is based on the EFR +reference code from the European Telecommunications Standards Institute (ETSI).
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Library-versions Sat Feb 18 23:24:54 2023 +0000 @@ -0,0 +1,6 @@ +The two Themyscira GSM codec libraries (libgsmefr and libgsmfrp) use Semantic +Versioning, as described at <https://semver.org/>. In the present source +release package, the semantic versions of the two libraries are as follows: + +libgsmefr version 1.0.0 +libgsmfrp version 1.0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PACKAGING Sat Feb 18 23:24:54 2023 +0000 @@ -0,0 +1,60 @@ +The present document is intended to be a guide for any parties who are going to +turn the present upstream gsm-codec-lib source package into user-friendly binary +packages for specific distributions. + +The Mother's primary recommendation with regard to downstream packaging of the +present software is that end-user binary packages should be divided more finely +than the present source package. At the present source level the two principal +libraries (libgsmefr and libgsmfrp) are combined together with a bunch of +command line utilities for reasons of compile-time dependency (utilities depend +on libraries), and also for the purposes of library development and testing - +but the same combination does not make much sense from a user's perspective. +Therefore, it is our recommendation that the present source package be split as +follows at the level of end-user distro packages: + +libgsmefr package: just libgsmefr.a and its associated gsm_efr.h header file. + +libgsmfrp package: just libgsmfrp.a and its associated gsm_fr_preproc.h header +file. Given that <gsm_fr_preproc.h> depends on <gsm.h> from classic libgsm, +the latter library (libgsm) should probably be officially declared as a +dependency for libgsmfrp. + +gsm-codec-utils (or themwi-gsm-codec-utils or themwi-codec-utils) package: all +command line utilities built and installed in amrconv, efrtest, frtest and +miscutil subdirectories. This package will depend on libgsmefr, libgsmfrp and +classic libgsm - the latter is pre-existing software, not provided by +Themyscira. + +themwi-pcap-utils: the set of command line utilities built in the pcap +subdirectory, with a dependency on libpcap but no dependencies on any GSM +libraries. + +With the division recommended above, the set of end-user packages will exhibit +a sensible functional division from the user's perspective, and a clean and +sensible dependency graph. + +Package versions +================ + +The two library packages (libgsmefr and libgsmfrp) should be versioned with +their own proper semantic versions listed in the Library-versions document, as +opposed to the larger gsm-codec-lib tarball release version. If a later +gsm-codec-lib tarball release exhibits no changes in the libraries (the only +changes are in the command line utilities) or if only one of the two libraries +exhibits changes (as indicated with a new semantic version), then NO new +downstream packages should be made for unchanged libraries - instead already +made binary packages for that library version (SemVer) should be retained. + +Downstream package version numbers for command line utilities packages are up +to the discretion of packaging maintainers; using gsm-codec-lib tarball release +numbers is acceptable. + +Patience, please +================ + +Please make downstream package releases *only* from officially published tarball +releases of gsm-codec-lib - please do *not* make packaged builds or "releases" +from our Mercurial repository. Any time we have a new development that is +expected to be useful to downstream end users, we shall make a proper tarball +release, and if there are any changes in the libraries, we shall assign new +semantic versions as appropriate.