Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: osmo-sgsn
Source: https://gitea.osmocom.org/cellular-infrastructure/osmo-sgsn

Files:     .gitignore
           .gitreview
           .mailmap
           AUTHORS
           Makefile.am
           README
           README.vty-tests
           configure.ac
           contrib/Makefile.am
           contrib/gprs/gb-proxy-unblock-bug.py
           contrib/gprs/gprs-bssgp-histogram.lua
           contrib/gprs/gprs-buffer-count.lua
           contrib/gprs/gprs-split-trace-by-tlli.lua
           contrib/gprs/gprs-verify-nu.lua
           contrib/ipa.py
           contrib/jenkins.sh
           contrib/soap.py
           contrib/systemd/osmo-sgsn.service
           contrib/twisted_ipa.py
           doc/Makefile.am
           doc/examples/Makefile.am
           doc/examples/osmo-gtphub/gtphub-example.txt
           doc/examples/osmo-gtphub/osmo-gtphub-1iface.cfg
           doc/examples/osmo-gtphub/osmo-gtphub.cfg
           doc/examples/osmo-sgsn/osmo-sgsn.cfg
           include/Makefile.am
           include/osmocom/sgsn/Makefile.am
           include/osmocom/sgsn/common.h
           include/osmocom/sgsn/crc24.h
           include/osmocom/sgsn/debug.h
           include/osmocom/sgsn/gb_proxy.h
           include/osmocom/sgsn/gprs_gmm.h
           include/osmocom/sgsn/gprs_llc.h
           include/osmocom/sgsn/gprs_sgsn.h
           include/osmocom/sgsn/gprs_sndcp.h
           include/osmocom/sgsn/gprs_subscriber.h
           include/osmocom/sgsn/sgsn.h
           include/osmocom/sgsn/vty.h
           m4/README
           src/Makefile.am
           src/gprs/.gitignore
           src/gprs/Makefile.am
           src/gprs/osmo_sgsn.cfg
           tests/Makefile.am
           tests/atlocal.in
           tests/gprs/Makefile.am
           tests/gprs/gprs_test.c
           tests/gprs/gprs_test.ok
           tests/gtphub/Makefile.am
           tests/gtphub/gtphub_test.ok
           tests/sgsn/gprs_gb_parse.h
           tests/sgsn/Makefile.am
           tests/sgsn/sgsn_test.ok
           tests/slhc/Makefile.am
           tests/slhc/slhc_test.ok
           tests/sndcp_xid/Makefile.am
           tests/sndcp_xid/sndcp_xid_test.ok
           tests/testsuite.at
           tests/v42bis/Makefile.am
           tests/v42bis/v42bis_test.ok
           tests/xid/Makefile.am
           tests/xid/xid_test.ok
Copyright: __NO_COPYRIGHT_NOR_LICENSE__
License:   __NO_COPYRIGHT_NOR_LICENSE__

Files:     include/osmocom/sgsn/a_reset.h
           include/osmocom/sgsn/gprs_llc_xid.h
           include/osmocom/sgsn/gprs_sndcp_comp.h
           include/osmocom/sgsn/gprs_sndcp_dcomp.h
           include/osmocom/sgsn/gprs_sndcp_pcomp.h
           include/osmocom/sgsn/gprs_sndcp_xid.h
           include/osmocom/sgsn/gprs_utils.h
           include/osmocom/sgsn/gtphub.h
           include/osmocom/sgsn/signal.h
           src/gprs/gprs_llc_parse.c
           src/gprs/crc24.c
           src/gprs/gprs_utils.c
           src/gprs/sgsn_ares.c
           src/gtphub/gtphub.c
           src/gtphub/gtphub_main.c
           src/gtphub/gtphub_vty.c
           src/sgsn/gprs_gmm.c
           src/sgsn/gprs_llc.c
           src/sgsn/gprs_llc_vty.c
           src/sgsn/gprs_llc_xid.c
           src/sgsn/gprs_sgsn.c
           src/sgsn/gprs_sndcp.c
           src/sgsn/gprs_sndcp_comp.c
           src/sgsn/gprs_sndcp_dcomp.c
           src/sgsn/gprs_sndcp_pcomp.c
           src/sgsn/gprs_sndcp_vty.c
           src/sgsn/gprs_sndcp_xid.c
           src/sgsn/gprs_subscriber.c
           src/sgsn/sgsn_auth.c
           src/sgsn/sgsn_cdr.c
           src/sgsn/sgsn_ctrl.c
           src/sgsn/sgsn_libgtp.c
           src/sgsn/sgsn_main.c
           src/sgsn/sgsn_vty.c
           tests/gtphub/gtphub_test.c
           tests/sgsn/gprs_gb_parse.c
           tests/sgsn/sgsn_test.c
           tests/slhc/slhc_test.c
           tests/sndcp_xid/sndcp_xid_test.c
           tests/v42bis/v42bis_test.c
           tests/xid/xid_test.c
Copyright: 2008-2015 Holger Hans Peter Freyther <zecke@selfish.org>
           2008-2016 Harald Welte <laforge@gnumonks.org>
           2009-2015 Holger Hans Peter Freyther
           2010-2014 On-Waves
           2011-2016 sysmocom s.f.m.c. GmbH <info@sysmocom.de>
           2014-2016 Sysmocom s.f.m.c. GmbH
           2014-2017 sysmocom s.f.m.c. GmbH
License:   AGPL-3.0+
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
 (at your option) any later version.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Affero General Public License for more details.
 .
 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.

Files:     src/gtphub/gtphub_ares.c
           src/gtphub/gtphub_sock.c
Copyright: 2013 Jacob Erlbeck <jerlbeck@sysmocom.de>
           2013 sysmocom s.f.m.c. GmbH
           2014 Holger Hans Peter Freyther
           2015 sysmocom s.f.m.c. GmbH <info@sysmocom.de>
License:   __NO_LICENSE__

Files:     include/osmocom/sgsn/v42bis.h
           include/osmocom/sgsn/v42bis_private.h
Copyright: 2005-2011 Steve Underwood
License:   LGPL-2.1
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License version 2.1,
 as published by the Free Software Foundation.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Lesser General Public License for more details.
 .
 You should have received a copy of the GNU Lesser General Public
 License along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 .
 The FSF address in the above text is the old one.
 .
 On Debian systems, the complete text of the GNU Lesser General Public License
 Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.

Files: osmoappdesc.py
       tests/ctrl_test_runner.py
       tests/vty_test_runner.py
Copyright: 2013         Katerina Barone-Adesi <kat.obsc@gmail.com>
           2013         Jacob Erlbeck <jerlbeck@sysmocom.de>
           2013-2014    Holger Hans Peter Freyther <zecke@selfish.org>
License: GPL-3+

Files:     git-version-gen
Copyright: 2007-2010 Free Software Foundation, Inc.
License:   GPL-3.0+
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
 (at your option) any later version.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 .
 This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
 It may be run two ways:
 - from a git repository in which the "git describe" command below
 produces useful output (thus requiring at least one signed tag)
 - from a non-git-repo directory containing a .tarball-version file, which
 presumes this script is invoked like "./git-version-gen .tarball-version".
 .
 In order to use intra-version strings in your project, you will need two
 separate generated version string files:
 .
 .tarball-version - present only in a distribution tarball, and not in
 a checked-out repository.  Created with contents that were learned at
 the last time autoconf was run, and used by git-version-gen.  Must not
 be present in either $(srcdir) or $(builddir) for git-version-gen to
 give accurate answers during normal development with a checked out tree,
 but must be present in a tarball when there is no version control system.
 Therefore, it cannot be used in any dependencies.  GNUmakefile has
 hooks to force a reconfigure at distribution time to get the value
 correct, without penalizing normal development with extra reconfigures.
 .
 .version - present in a checked-out repository and in a distribution
 tarball.  Usable in dependencies, particularly for files that don't
 want to depend on config.h but do want to track version changes.
 Delete this file prior to any autoconf run where you want to rebuild
 files to pick up a version string change; and leave it stale to
 minimize rebuild time after unrelated changes to configure sources.
 .
 It is probably wise to add these two files to .gitignore, so that you
 don't accidentally commit either generated file.
 .
 Use the following line in your configure.ac, so that $(VERSION) will
 automatically be up-to-date each time configure is run (and note that
 since configure.ac no longer includes a version string, Makefile rules
 should not depend on configure.ac for version updates).
 .
 On Debian systems, the complete text of the GNU General Public License
 Version 3 can be found in `/usr/share/common-licenses/GPL-3'.

Files:     src/gprs/v42bis.c
Copyright: 2005-2011 Steve Underwood
License:   LGPL-2.1
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License version 2.1,
 as published by the Free Software Foundation.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Lesser General Public License for more details.
 .
 You should have received a copy of the GNU Lesser General Public
 License along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 .
 THIS IS A WORK IN PROGRESS. IT IS NOT FINISHED.
 Currently it performs the core compression and decompression functions OK.
 However, a number of the bells and whistles in V.42bis are incomplete.
 .
 ! \file
 .
 The FSF address in the above text is the old one.
 .
 On Debian systems, the complete text of the GNU Lesser General Public License
 Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.

Files:     include/osmocom/sgsn/slhc.h
Copyright: 1989 Regents of the University of California.
License:   __UNKNOWN__
 Redistribution and use in source and binary forms are permitted
 provided that the above copyright notice and this paragraph are
 duplicated in all such forms and that any documentation,
 advertising materials, and other materials related to such
 distribution and use acknowledge that the software was developed
 by the University of California, Berkeley.  The name of the
 University may not be used to endorse or promote products derived
 from this software without specific prior written permission.
 THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 .
 Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
 - Initial distribution.
 .
 modified for KA9Q Internet Software Package by
 Katie Stevens (dkstevens@ucdavis.edu)
 University of California, Davis
 Computing Services
 - 01-31-90	initial adaptation

Files:     src/gprs/slhc.c
Copyright: 1989 Regents of the University of California.
License:   __UNKNOWN__
 Redistribution and use in source and binary forms are permitted
 provided that the above copyright notice and this paragraph are
 duplicated in all such forms and that any documentation,
 advertising materials, and other materials related to such
 distribution and use acknowledge that the software was developed
 by the University of California, Berkeley.  The name of the
 University may not be used to endorse or promote products derived
 from this software without specific prior written permission.
 THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 .
 Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
 - Initial distribution.
 .
 modified for KA9Q Internet Software Package by
 Katie Stevens (dkstevens@ucdavis.edu)
 University of California, Davis
 Computing Services
 - 01-31-90	initial adaptation (from 1.19)
 PPP.05	02-15-90 [ks]
 PPP.08	05-02-90 [ks]	use PPP protocol field to signal compression
 PPP.15	09-90	 [ks]	improve mbuf handling
 PPP.16	11-02	 [karn]	substantially rewritten to use NOS facilities

Files:     m4/ax_check_compile_flag.m4
Copyright: 2008 Guido U. Draheim <guidod@gmx.de>
           2011 Maarten Bosmans <mkbosmans@gmail.com>
License:   GNU-All-Permissive-License
 This program is free software: you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
 Free Software Foundation, either version 3 of the License, or (at your
 option) any later version.
 .
 This program is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 Public License for more details.
 .
 You should have received a copy of the GNU General Public License along
 with this program. If not, see <http://www.gnu.org/licenses/>.
 .
 As a special exception, the respective Autoconf Macro's copyright owner
 gives unlimited permission to copy, distribute and modify the configure
 scripts that are the output of Autoconf when processing the Macro. You
 need not follow the terms of the GNU General Public License when using
 or distributing such scripts, even though portions of the text of the
 Macro appear in them. The GNU General Public License (GPL) does govern
 all other use of the material that constitutes the Autoconf Macro.
 .
 This special exception to the GPL applies to versions of the Autoconf
 Macro released by the Autoconf Archive. When you make and distribute a
 modified version of the Autoconf Macro, you may extend this special
 exception to the GPL to apply to your modified version as well.
 .
 On Debian systems, the complete text of the GNU General Public License
 Version 3 can be found in `/usr/share/common-licenses/GPL-3'.
