diff --git a/debian/autoreconf b/debian/autoreconf
deleted file mode 100644
index 9a3a67f..0000000
--- a/debian/autoreconf
+++ /dev/null
@@ -1 +0,0 @@
-openbsc
diff --git a/debian/changelog b/debian/changelog
index e9a4212..6216695 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,75 +1,5 @@
-openbsc (0.15.1) UNRELEASED; urgency=medium
+osmo-sgsn (0.1.0) unstable; urgency=low
 
-  * Move forward toward a new release.
-  * Prevent SGSN starting with 'auth-policy remote' when no 'gsup remote-*' are configured.
-    Note: such configs are broken without extra workarounds anyway.
+  * Initial release.
 
- -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Tue, 24 May 2016 23:14:31 +0200
-
-openbsc (0.14.0) unstable; urgency=low
-
-  * New upstream tag and additional patches.
-
- -- Holger Hans Peter Freyther <holger@freyther.de>  Sat, 14 Mar 2015 20:33:25 +0100
-
-openbsc (0.12.0+git26-7) unstable; urgency=low
-
-  * 64bit fix for the MGCP rewriting
-
- -- Holger Hans Peter Freyther <holger@freyther.de>  Wed, 07 Nov 2012 11:39:34 +0100
-
-openbsc (0.12.0+git26-6) precise; urgency=low
-
-  * Added init script for osmocom-sgsn. 
-
- -- Eric Butler <eric@codebutler.com>  Fri, 24 Aug 2012 21:04:32 -0700
-
-openbsc (0.12.0+git26-5) precise; urgency=low
-
-  * Don't enable MNCC sock by default.
-  * Automatically create important directories.
-  * Fix init script 'stop' command.
-
- -- Eric Butler <eric@codebutler.com>  Fri, 24 Aug 2012 20:56:33 -0700
-
-openbsc (0.12.0+git26-4) precise; urgency=low
-
-  * Specify HLR path and enable RTP proxy.
-
- -- Eric Butler <eric@codebutler.com>  Mon, 20 Aug 2012 00:21:07 -0700
-
-openbsc (0.12.0+git26-3) precise; urgency=low
-
-  * Fix init script.
-
- -- Eric Butler <eric@codebutler.com>  Sun, 19 Aug 2012 16:05:44 -0700
-
-openbsc (0.12.0+git26-2) precise; urgency=low
-
-  * Fix libdbi package dependency.
-
- -- Eric Butler <eric@codebutler.com>  Wed, 15 Aug 2012 00:35:37 -0700
-
-openbsc (0.12.0+git26-1) precise; urgency=low
-
-  * Fix version issue.
-
- -- Eric Butler <eric@codebutler.com>  Tue, 14 Aug 2012 21:00:51 -0700
-
-openbsc (0.12.0+git26) precise; urgency=low
-
-  * Updated ubuntu package.
-
- -- Eric Butler <eric@codebutler.com>  Tue, 14 Aug 2012 17:36:51 -0700
-
-openbsc (0.9.13.115.eb113-1) natty; urgency=low
-
-  * New upstream release
-
- -- Harald Welte <laforge@gnumonks.org>  Wed, 11 May 2011 18:41:24 +0000
-
-openbsc (0.9.4-1) unstable; urgency=low
-
-  * Initial release
-
- -- Harald Welte <laforge@gnumonks.org>  Tue, 24 Aug 2010 13:34:24 +0200
+ -- Alexander Couzens <lynxis@fe80.eu>  Tue, 08 Aug 2017 01:13:05 +0000
diff --git a/debian/control b/debian/control
index 87b6f07..16fd244 100644
--- a/debian/control
+++ b/debian/control
@@ -1,82 +1,59 @@
-Source: openbsc
-Maintainer: Harald Welte <laforge@gnumonks.org>
+Source: osmo-sgsn
 Section: net
-Priority: optional
-Build-Depends: debhelper (>= 9),
-               autotools-dev,
-               autoconf-archive,
-               pkg-config,
-               libgtp-dev,
-               libosmocore-dev,
-               libosmo-sccp-dev,
-               libdbi0-dev,
+Priority: extra
+Maintainer: Alexander Couzens <lynxis@fe80.eu>
+Build-Depends: debhelper (>=9),
                dh-autoreconf,
-               libosmo-abis-dev,
-               libosmo-netif-dev,
-               libdbd-sqlite3,
-               libpcap-dev,
+               autotools-dev,
+               autoconf,
+               automake,
+               libtool,
+               pkg-config,
                libssl-dev,
+               libtalloc-dev,
                libc-ares-dev,
-               libsmpp34-dev
+               libgtp-dev,
+               libdbi-dev,
+               libdbd-sqlite3,
+               libosmocore-dev,
+               libosmo-abis-dev,
+               libosmo-ranap-dev,
+               libosmo-sccp-dev,
+               libosmo-netif-dev
 Standards-Version: 3.9.8
-Vcs-Git: git://bs11-abis.gnumonks.org/openbsc.git
-Vcs-Browser: http://openbsc.osmocom.org/trac/browser
-Homepage: https://projects.osmocom.org/projects/openbsc
+Vcs-Git: git://git.osmocom.org/osmo-sgsn.git
+Vcs-Browser: http://git.osmocom.org/gitweb?p=osmo-sgsn.git;a=summary
+Homepage: https://projects.osmocom.org/projects/osmo-sgsn
 
-Package: osmocom-bsc
+
+Package: osmo-sgsn
 Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Description: GSM Base Station Controller
- This is the BSC-only version of OpenBSC. It requires a Mobile Switching Center
- (MSC) to operate.
- .
- You might rather prefer to use osmocom-nitb which is considered a
- "GSM Network-in-a-Box" and does not depend on a MSC.
+Multi-Arch: foreign
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: OsmoSGSN: Osmocom's Serving GPRS Support Node for 2G and 3G packet-switched mobile networks 
 
-Package: osmocom-nitb
+Package: osmo-sgsn-dbg
+Section: debug
 Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends},
-         libdbd-sqlite3
-Description: GSM Network-in-a-Box, implements BSC, MSC, SMSC, HLR, VLR
- This is the Network-in-a-Box version of OpenBSC. It has all the GSM network
- components bundled together. When using osmocom-nitb, there is no need for a
- Mobile Switching Center (MSC) which is needed when using osmocom-bsc.
+Multi-Arch: same
+Depends: osmo-sgsn (= ${binary:Version}), ${misc:Depends}
+Description: OsmoSGSN: Osmocom's Serving GPRS Support Node for 2G and 3G packet-switched mobile networks 
 
-Package: osmocom-ipaccess-utils
+Package: osmo-gtphub
 Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Description: Command line utilities for ip.access nanoBTS
- This package contains utilities that are specific for nanoBTS when being used
- together with OpenBSC. It contains mainly three tools: ipaccess-find,
- ipaccess-config and ipaccess-proxy.
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Osmocom GTP Hub
+ Proxy for comms between multiple SGSNs and GGSNs.
 
-Package: osmocom-bs11-utils
+Package: osmo-gtphub-dbg
 Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Description: Command line utilities for Siemens BS-11 BTS
- There is a tool in this package for configuring the Siemens BS-11 BTS.
- Additionally, it contains one tool for making use of an ISDN-card and the
- public telephone network as frequency standard for the E1 line.
+Section: debug
+Priority: extra
+Depends: osmo-gtphub (= ${binary:Version}), ${misc:Depends}
+Description: Debug symbols for Osmocom GTP Hub
+ Make debugging possible
 
-Package: osmocom-sgsn
-Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Suggests: osmocom-bsc
-Description: Osmocom Serving GPRS Support Node
- This is an implementation of the GPRS Serving GPRS Support Node (SGSN). As
- such it implements the GPRS Mobility Management (GMM) and SM (Session
- Management).
- .
- The SGSN connects via the Gb-interface to the BSS (like the osmo-pcu or an
- ip.access nanoBTS), and it connects via the GTP protocol to a Gateway GPRS
- Support Node (GGSN) like openggsn.
-
-Package: osmocom-gbproxy
+Package: osmo-gbproxy
 Architecture: any
 Depends: ${shlibs:Depends},
          ${misc:Depends}
@@ -87,95 +64,11 @@
  .
  This package is part of OpenBSC and closely related to osmocom-sgsn.
 
-Package: osmocom-bsc-nat
-Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Recommends: osmocom-bsc
-Description: Osmocom Base Station Controller Network Address Translation
- This NAT is useful for masquerading multiple BSCs behind one. It listens
- for incoming BSCs on port 5000 and connects to a specified Mobile Switching
- Center (MSC).
- .
- This package is part of OpenBSC and closely related to osmocom-bsc.
-
-Package: openbsc-dev
-Architecture: all
-Depends: ${misc:Depends}
-Description: Header file needed by tools tightly integrated
- Some other programs depend on gsm_data_shared.h and gsm_data_shared.c
- from OpenBSC. This package installs these files to your file system so
- that the other packages can build-depend on this package.
- .
- The directory structure is copied after the structure in the repository
- and the header and .c file are installed into /usr/src/osmocom/openbsc/.
-
-Package: osmo-gtphub
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Osmocom GTP Hub
- Proxy for comms between multiple SGSNs and GGSNs.
-
-Package: osmocom-bsc-dbg
+Package: osmo-gbproxy-dbg
 Architecture: any
 Section: debug
 Priority: extra
-Depends: osmocom-bsc (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC BSC
- Make debugging possible
-
-Package: osmocom-nitb-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmocom-nitb (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC NITB
- Make debugging possible
-
-Package: osmocom-ipaccess-utils-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmocom-ipaccess-utils (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC ip.access utils
- Make debugging possible
-
-Package: osmocom-bs11-utils-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmocom-bs11-utils (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC BS11 utils
- Make debugging possible
-
-Package: osmocom-sgsn-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmocom-sgsn (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC Serving GPRS Support Node
- Make debugging possible
-
-Package: osmocom-gbproxy-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmocom-gbproxy (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC GPRS GBProxy
- Make debugging possible
-
-Package: osmocom-bsc-nat-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmocom-bsc-nat (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC Network Address Translation
- Make debugging possible
-
-Package: osmo-gtphub-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: osmo-gtphub (= ${binary:Version}), ${misc:Depends}
+Depends: osmo-gbproxy (= ${binary:Version}), ${misc:Depends}
 Description: Debug symbols for Osmocom GTP Hub
  Make debugging possible
+
diff --git a/debian/copyright b/debian/copyright
index 1e4dee1..8d731ee 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,74 +1,207 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: OpenBSC
-Source: http://openbsc.osmocom.org/
+Upstream-Name: osmo-sgsn
+Source: git://git.osmocom.org/osmo-sgsn
 
-Files: *
-Copyright: 2008-2015        Harald Welte <laforge@gnumonks.org>
-           2008-2015        Holger Hans Peter Freyther <zecke@selfish.org>
-           2009-2015        On-Waves
-           2008             Jan Luebbe <jluebbe@debian.org>
-           2008,2010-2011   Daniel Willmann <daniel@totalueberwachung.de>
-           2009,2011,2013   Andreas Eversberg <Andreas.Eversberg@versatel.de>
-           2009,2011        Dieter Spaar <spaar@mirider.augusta.de>
-           2009             Mike Haben <michael.haben@btinternet.com>
-           2010             Sylvain Munaut <246tnt@gmail.com>
-           2012-2013        Pablo Neira Ayuso <pablo@gnumonks.org>
-           2013-2015        Sysmocom s.f.m.c. GmbH  (Jacob Erlbeck)
-           2014             Alexander Chemeris <Alexander.Chemeris@fairwaves.co>
-License: AGPL-3+
-Comment: Contributions by Stefan Schmidt <stefan@datenfreihafen.org> as well
+Files:     .gitignore
+           .gitreview
+           .mailmap
+           AUTHORS
+           Makefile.am
+           README
+           README.vty-tests
+           configure.ac
+           contrib/Makefile.am
+           contrib/a-link/sccp-split-by-con.lua
+           contrib/bsc-test/README
+           contrib/bsc-test/all_dial
+           contrib/bsc-test/dial.sh
+           contrib/bsc-test/drop-oml.sh
+           contrib/bsc-test/drop.sh
+           contrib/bsc-test/hangup
+           contrib/bsc-test/msc.sh
+           contrib/bsc_control.py
+           contrib/bt.py
+           contrib/convert_to_enum.py
+           contrib/ctrl2sse.py
+           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/hlr-remove-old.sql
+           contrib/hlrsync/hlrsync.py
+           contrib/ipa.py
+           contrib/jenkins.sh
+           contrib/mgcp_server.py
+           contrib/nat/test_regexp.c
+           contrib/nat/ussd_example.py
+           contrib/rtp/gen_rtp_header.erl
+           contrib/rtp/rtp_replay.st
+           contrib/rtp/rtp_replay_shared.st
+           contrib/rtp/rtp_replay_sip.st
+           contrib/rtp/timestamp_rtp.lua
+           contrib/sms/fill-hlr.st
+           contrib/sms/hlr-query.st
+           contrib/sms/sqlite-probe.tap.d
+           contrib/soap.py
+           contrib/systemd/osmo-bsc-mgcp.service
+           contrib/systemd/osmo-bsc.service
+           contrib/systemd/osmo-gbproxy.service
+           contrib/systemd/osmo-msc.service
+           contrib/systemd/osmo-nitb.service
+           contrib/systemd/osmo-sgsn.service
+           contrib/testconv/Makefile
+           contrib/testconv/testconv_main.c
+           contrib/twisted_ipa.py
+           doc/BS11-OML.txt
+           doc/Makefile.am
+           doc/call-routing.txt
+           doc/channel_release.txt
+           doc/e1-data-model.txt
+           doc/examples/Makefile.am
+           doc/examples/osmo-bsc/osmo-bsc.cfg
+           doc/examples/osmo-bsc_mgcp/mgcp.cfg
+           doc/examples/osmo-bsc_nat/black-list.cfg
+           doc/examples/osmo-bsc_nat/bscs.cfg
+           doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg
+           doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg
+           doc/examples/osmo-gbproxy/osmo-gbproxy.cfg
+           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-msc/osmo-msc.cfg
+           doc/examples/osmo-sgsn/osmo-sgsn.cfg
+           doc/gsm-hopping.txt
+           doc/handover.txt
+           doc/ipa-sccp.txt
+           doc/oml-interface.txt
+           doc/osmo-nitb-data_structures.dot
+           doc/paging.txt
+           include/Makefile.am
+           include/compat_af_isdn.h
+           include/openbsc/Makefile.am
+           include/openbsc/common.h
+           include/openbsc/crc24.h
+           include/openbsc/debug.h
+           include/openbsc/gb_proxy.h
+           include/openbsc/gprs_gb_parse.h
+           include/openbsc/gprs_gmm.h
+           include/openbsc/gprs_llc.h
+           include/openbsc/gprs_sgsn.h
+           include/openbsc/gprs_sndcp.h
+           include/openbsc/gprs_subscriber.h
+           include/openbsc/rest_octets.h
+           include/openbsc/sgsn.h
+           include/openbsc/vty.h
+           m4/README
+           openbsc.pc.in
+           src/Makefile.am
+           src/gprs/.gitignore
+           src/gprs/Makefile.am
+           src/gprs/osmo_sgsn.cfg
+           src/libcommon/Makefile.am
+           src/libcommon/gsup_test_client.c
+           tests/Makefile.am
+           tests/atlocal.in
+           tests/gbproxy/Makefile.am
+           tests/gbproxy/gbproxy_test.ok
+           tests/gprs/Makefile.am
+           tests/gprs/gprs_test.c
+           tests/gprs/gprs_test.ok
+           tests/gtphub/Makefile.am
+           tests/gtphub/gtphub_test.ok
+           tests/libiudummy/Makefile.am
+           tests/libiudummy/README
+           tests/libiudummy/iudummy.c
+           tests/oap/Makefile.am
+           tests/oap/oap_client_test.err
+           tests/oap/oap_client_test.ok
+           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
+           tools/hlrstat.pl
+Copyright: __NO_COPYRIGHT_NOR_LICENSE__
+License:   __NO_COPYRIGHT_NOR_LICENSE__
 
-Files: wireshark/0001-abis_oml.patch
-       wireshark/0002-ericsson_rbs2409.patch
-       wireshark/0003-lucent-hnb.patch
-       wireshark/0005-rsl-hsl.patch
-Copyright: 1998         Gerald Combs <gerald@wireshark.org>
-           2007,2011    Anders Broman <anders.broman@ericsson.com>
-           2009         Holger Hans Peter Freyther <zecke@selfish.org>
-           2009-2011    Harald Welte <laforge@gnumonks.org>
-License: GPL-2+
-
-Files: openbsc/include/mISDNif.h
-Copyright: 2008         Karsten Keil <kkeil@novell.com>
-License: LGPL-2.1
-
-Files: openbsc/src/libmgcp/g711common.h
-Copyright: 2009         Abramo Bagnara <abramo@alsa-project.org>
-License: GPL-2+
-
-Files: openbsc/git-version-gen
-Copyright: 2007-2010    Free Software Foundation
-License: GPL-3+
-
-Files: openbsc/osmoappdesc.py
-       openbsc/tests/smpp_test_runner.py
-       openbsc/tests/ctrl_test_runner.py
-       openbsc/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: openbsc/src/libbsc/bsc_ctrl_lookup.c
-Copyright: 2010-2011    Daniel Willmann <daniel@totalueberwachung.de>
-           2010-2011    On-Waves
-License: GPL-2+
-
-Files: openbsc/src/libmsc/mncc_sock.c
-       openbsc/src/libmsc/mncc_builtin.c
-Copyright: 2008-2010    Harald Welte <laforge@gnumonks.org>
-           2009         Andreas Eversberg <Andreas.Eversberg@versatel.de>
-           2012         Holger Hans Peter Freyther <zecke@selfish.org>
-License: GPL-2+
-
-Files: debian/*
-Copyright: 2012-2015    Holger Hans Peter Freyther <zecke@selfish.org>
-           2016         Ruben Undheim <ruben.undheim@gmail.com>
-License: GPL-2+
-
-
-License: AGPL-3+
- This package is free software; you can redistribute it and/or modify
+Files:     include/openbsc/a_reset.h
+           include/openbsc/gprs_llc_xid.h
+           include/openbsc/gprs_sndcp_comp.h
+           include/openbsc/gprs_sndcp_dcomp.h
+           include/openbsc/gprs_sndcp_pcomp.h
+           include/openbsc/gprs_sndcp_xid.h
+           include/openbsc/gprs_utils.h
+           include/openbsc/gsup_client.h
+           include/openbsc/gtphub.h
+           include/openbsc/oap_client.h
+           include/openbsc/signal.h
+           src/gprs/crc24.c
+           src/gprs/gb_proxy.c
+           src/gprs/gb_proxy_main.c
+           src/gprs/gb_proxy_patch.c
+           src/gprs/gb_proxy_peer.c
+           src/gprs/gb_proxy_tlli.c
+           src/gprs/gb_proxy_vty.c
+           src/gprs/gprs_gb_parse.c
+           src/gprs/gprs_gmm.c
+           src/gprs/gprs_llc.c
+           src/gprs/gprs_llc_parse.c
+           src/gprs/gprs_llc_vty.c
+           src/gprs/gprs_llc_xid.c
+           src/gprs/gprs_sgsn.c
+           src/gprs/gprs_sndcp.c
+           src/gprs/gprs_sndcp_comp.c
+           src/gprs/gprs_sndcp_dcomp.c
+           src/gprs/gprs_sndcp_pcomp.c
+           src/gprs/gprs_sndcp_vty.c
+           src/gprs/gprs_sndcp_xid.c
+           src/gprs/gprs_subscriber.c
+           src/gprs/gprs_utils.c
+           src/gprs/gsup_client.c
+           src/gprs/gtphub.c
+           src/gprs/gtphub_main.c
+           src/gprs/gtphub_vty.c
+           src/gprs/oap_client.c
+           src/gprs/sgsn_ares.c
+           src/gprs/sgsn_auth.c
+           src/gprs/sgsn_cdr.c
+           src/gprs/sgsn_ctrl.c
+           src/gprs/sgsn_libgtp.c
+           src/gprs/sgsn_main.c
+           src/gprs/sgsn_vty.c
+           src/libcommon/bsc_version.c
+           src/libcommon/common_vty.c
+           src/libcommon/debug.c
+           src/libcommon/gsm_data.c
+           src/libcommon/gsm_data_shared.c
+           src/libcommon/gsm_subscriber_base.c
+           src/libcommon/gsup_client.c
+           src/libcommon/oap_client.c
+           src/libcommon/socket.c
+           src/libcommon/talloc_ctx.c
+           tests/gtphub/gtphub_test.c
+           tests/oap/oap_client_test.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.
@@ -76,62 +209,261 @@
  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/gprs/gtphub_ares.c
+           src/gprs/gtphub_sock.c
+           tests/ctrl_test_runner.py
+           tests/gbproxy/gbproxy_test.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/openbsc/v42bis.h
+           include/openbsc/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., 675 Mass Ave, Cambridge, MA 02139, 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
+Copyright: 2013 Katerina Barone-Adesi <kat.obsc@gmail.com>
+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/>
+ .
+ Most systems won't be able to use these, so they're separated out
+ .
+ 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:     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 Affero General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-
-License: GPL-2+
- This package 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 2 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/>.
  .
- On Debian systems, the complete text of the GNU General Public
- License version 2 can be found in "/usr/share/common-licenses/GPL-2".
-
-
-License: GPL-3+
- This package 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 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".
  .
- 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.
+ In order to use intra-version strings in your project, you will need two
+ separate generated version string files:
  .
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .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.
  .
- On Debian systems, the complete text of the GNU General Public
- License version 3 can be found in "/usr/share/common-licenses/GPL-3".
+ .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'.
 
-
-License: LGPL-2.1
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; version
- 2.1 of the License.
+Files:     tests/vty_test_runner.py
+Copyright: 2013 Holger Hans Peter Freyther
+           2013 Katerina Barone-Adesi <kat.obsc@gmail.com>
+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 library is distributed in the hope that it will be useful,
+ 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.
+ 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/>.
+ .
+ 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:     include/mISDNif.h
+Copyright: 2008 Karsten Keil <kkeil@novell.com>
+License:   LGPL-2.1
+ This code 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 code 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.
+ .
+ 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:     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 library; if not, see <http://www.gnu.org/licenses/>.
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  .
- 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".
+ 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/openbsc/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:   GPL-3.0+ with unknown exception *** check multiple exceptions ***
+ 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'.
diff --git a/debian/docs b/debian/docs
deleted file mode 100644
index cd545c2..0000000
--- a/debian/docs
+++ /dev/null
@@ -1 +0,0 @@
-openbsc/README
diff --git a/debian/openbsc-dev.install b/debian/openbsc-dev.install
deleted file mode 100644
index 0c05545..0000000
--- a/debian/openbsc-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-openbsc/include/openbsc/gsm_data_shared.h usr/src/osmocom/openbsc/openbsc/include/openbsc/
-openbsc/include/openbsc/common_cs.h usr/src/osmocom/openbsc/openbsc/include/openbsc/
-openbsc/src/libcommon/gsm_data_shared.c usr/src/osmocom/openbsc/openbsc/src/libcommon/
-usr/lib/*/pkgconfig/openbsc.pc
diff --git a/debian/osmocom-gbproxy.init b/debian/osmo-gbproxy.init
similarity index 100%
rename from debian/osmocom-gbproxy.init
rename to debian/osmo-gbproxy.init
diff --git a/debian/osmo-gbproxy.install b/debian/osmo-gbproxy.install
new file mode 100644
index 0000000..62ebe2a
--- /dev/null
+++ b/debian/osmo-gbproxy.install
@@ -0,0 +1,2 @@
+usr/bin/osmo-gbproxy
+usr/share/doc/openbsc/examples/osmo-gbproxy
diff --git a/debian/osmo-gtphub.examples b/debian/osmo-gtphub.examples
deleted file mode 100644
index 48c2dc0..0000000
--- a/debian/osmo-gtphub.examples
+++ /dev/null
@@ -1 +0,0 @@
-openbsc/doc/examples/osmo-gtphub
diff --git a/debian/osmo-gtphub.install b/debian/osmo-gtphub.install
index 908c1a5..8a5dafd 100644
--- a/debian/osmo-gtphub.install
+++ b/debian/osmo-gtphub.install
@@ -1 +1,2 @@
-/usr/bin/osmo-gtphub
+usr/bin/osmo-gtphub
+usr/share/doc/openbsc/examples/osmo-gtphub
diff --git a/debian/osmo-sgsn.install b/debian/osmo-sgsn.install
new file mode 100644
index 0000000..55086cc
--- /dev/null
+++ b/debian/osmo-sgsn.install
@@ -0,0 +1,4 @@
+usr/bin
+usr/share/doc/openbsc/examples/osmo-gtphub
+usr/share/doc/openbsc/examples/osmo-gbproxy
+usr/share/doc/openbsc/examples/osmo-sgsn
diff --git a/debian/osmocom-bs11-utils.install b/debian/osmocom-bs11-utils.install
deleted file mode 100644
index 757a854..0000000
--- a/debian/osmocom-bs11-utils.install
+++ /dev/null
@@ -1,2 +0,0 @@
-/usr/bin/bs11_config
-/usr/bin/isdnsync
diff --git a/debian/osmocom-bsc-nat.init b/debian/osmocom-bsc-nat.init
deleted file mode 100755
index 984a7ce..0000000
--- a/debian/osmocom-bsc-nat.init
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          osmocom-bsc-nat
-# Required-Start:    $network $local_fs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Osmocom GSM network-in-a-box
-# Description:       A minimal implementation of the GSM Base Station Controller,
-#                    Mobile Switching Center, Home Location regster and all other
-#                    components to run a self-contained GSM network.
-### END INIT INFO
-
-# Author: Harald Welte <laforge@gnumonks.org>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-NAME=osmo-bsc_nat                      # Introduce the short server's name here
-DESC="Osmocom GSM BSC Multiplexer (NAT)" # Introduce a short description here
-DAEMON=/usr/bin/osmo-bsc_nat           # Introduce the server's location here
-SCRIPTNAME=/etc/init.d/osmocom-bsc-nat
-CONFIG_FILE=/etc/osmocom/osmocom-bsc-nat.cfg
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/osmocom-bsc-nat ] && . /etc/default/osmocom-bsc-nat
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-DAEMON_ARGS="-D -c $CONFIG_FILE"
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-	# Return
-	#   0 if daemon has been started
-	#   1 if daemon was already running
-	#   2 if daemon could not be started
-	start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
-		|| return 1
-	start-stop-daemon --start --quiet --exec $DAEMON -- \
-		$DAEMON_ARGS \
-		|| return 2
-	# Add code here, if necessary, that waits for the process to be ready
-	# to handle requests from services started subsequently which depend
-	# on this one.  As a last resort, sleep for some time.
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-	# Return
-	#   0 if daemon has been stopped
-	#   1 if daemon was already stopped
-	#   2 if daemon could not be stopped
-	#   other if a failure occurred
-	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
-	RETVAL="$?"
-	[ "$RETVAL" = 2 ] && return 2
-	# Wait for children to finish too if this is a daemon that forks
-	# and if the daemon is only ever run from this initscript.
-	# If the above conditions are not satisfied then add some other code
-	# that waits for the process to drop all resources that could be
-	# needed by services started subsequently.  A last resort is to
-	# sleep for some time.
-	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
-	[ "$?" = 2 ] && return 2
-	return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-	#
-	# If the daemon can reload its configuration without
-	# restarting (for example, when it is sent a SIGHUP),
-	# then implement that here.
-	#
-	start-stop-daemon --stop --signal 1 --quiet $PIDFILE --name $NAME
-	return 0
-}
-
-case "$1" in
-  start)
-    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
-    do_start
-    case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-  ;;
-  stop)
-	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
-	do_stop
-	case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-	;;
-  status)
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  #reload|force-reload)
-	#
-	# If do_reload() is not implemented then leave this commented out
-	# and leave 'force-reload' as an alias for 'restart'.
-	#
-	#log_daemon_msg "Reloading $DESC" "$NAME"
-	#do_reload
-	#log_end_msg $?
-	#;;
-  restart|force-reload)
-	#
-	# If the "reload" option is implemented then remove the
-	# 'force-reload' alias
-	#
-	log_daemon_msg "Restarting $DESC" "$NAME"
-	do_stop
-	case "$?" in
-	  0|1)
-		do_start
-		case "$?" in
-			0) log_end_msg 0 ;;
-			1) log_end_msg 1 ;; # Old process is still running
-			*) log_end_msg 1 ;; # Failed to start
-		esac
-		;;
-	  *)
-	  	# Failed to stop
-		log_end_msg 1
-		;;
-	esac
-	;;
-  *)
-	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-	exit 3
-	;;
-esac
-
-:
diff --git a/debian/osmocom-bsc-nat.install b/debian/osmocom-bsc-nat.install
deleted file mode 100644
index b561a7e..0000000
--- a/debian/osmocom-bsc-nat.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/bin/osmo-bsc_nat
diff --git a/debian/osmocom-bsc.examples b/debian/osmocom-bsc.examples
deleted file mode 100644
index a95f12b..0000000
--- a/debian/osmocom-bsc.examples
+++ /dev/null
@@ -1 +0,0 @@
-openbsc/doc/examples/osmo-bsc_mgcp
diff --git a/debian/osmocom-bsc.install b/debian/osmocom-bsc.install
deleted file mode 100644
index ab9459e..0000000
--- a/debian/osmocom-bsc.install
+++ /dev/null
@@ -1,2 +0,0 @@
-/usr/bin/osmo-bsc_mgcp
-/usr/bin/osmo-bsc
diff --git a/debian/osmocom-gbproxy.install b/debian/osmocom-gbproxy.install
deleted file mode 100644
index ba3f6ee..0000000
--- a/debian/osmocom-gbproxy.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/bin/osmo-gbproxy
diff --git a/debian/osmocom-ipaccess-utils.install b/debian/osmocom-ipaccess-utils.install
deleted file mode 100644
index de13c18..0000000
--- a/debian/osmocom-ipaccess-utils.install
+++ /dev/null
@@ -1,3 +0,0 @@
-/usr/bin/ipaccess-config
-/usr/bin/abisip-find
-/usr/bin/ipaccess-proxy
diff --git a/debian/osmocom-nitb.default b/debian/osmocom-nitb.default
deleted file mode 100644
index ef76a5f..0000000
--- a/debian/osmocom-nitb.default
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG_FILE="/etc/osmocom/osmo-nitb.cfg"
-HLR_FILE="/var/lib/osmocom/hlr.sqlite3"
-
-DAEMON_ARGS="-P"
-
-# Uncomment if using LCR+Asterisk
-# DAEMON_ARGS="-m -P"
-
diff --git a/debian/osmocom-nitb.dirs b/debian/osmocom-nitb.dirs
deleted file mode 100644
index efbca2b..0000000
--- a/debian/osmocom-nitb.dirs
+++ /dev/null
@@ -1,3 +0,0 @@
-/etc/osmocom
-/var/log/osmocom
-/var/lib/osmocom
diff --git a/debian/osmocom-nitb.examples b/debian/osmocom-nitb.examples
deleted file mode 100644
index c098d5c..0000000
--- a/debian/osmocom-nitb.examples
+++ /dev/null
@@ -1 +0,0 @@
-openbsc/doc/examples/osmo-nitb
diff --git a/debian/osmocom-nitb.init b/debian/osmocom-nitb.init
deleted file mode 100755
index 0747446..0000000
--- a/debian/osmocom-nitb.init
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          osmo-nitb
-# Required-Start:    $network $local_fs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Osmocom GSM network-in-a-box
-# Description:       A minimal implementation of the GSM Base Station Controller,
-#                    Mobile Switching Center, Home Location regster and all other
-#                    components to run a self-contained GSM network.
-### END INIT INFO
-
-# Author: Harald Welte <laforge@gnumonks.org>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-NAME=osmo-nitb                      # Introduce the short server's name here
-DESC="Osmocom GSM Network-in-a-Box" # Introduce a short description here
-DAEMON=/usr/bin/osmo-nitb           # Introduce the server's location here
-SCRIPTNAME=/etc/init.d/osmocom-nitb
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/osmocom-nitb ] && . /etc/default/osmocom-nitb
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-DAEMON_ARGS="$DAEMON_ARGS -D -c $CONFIG_FILE -l $HLR_FILE"
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-	# Return
-	#   0 if daemon has been started
-	#   1 if daemon was already running
-	#   2 if daemon could not be started
-	start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
-		|| return 1
-	start-stop-daemon --start --quiet --exec $DAEMON -- \
-		$DAEMON_ARGS \
-		|| return 2
-	# Add code here, if necessary, that waits for the process to be ready
-	# to handle requests from services started subsequently which depend
-	# on this one.  As a last resort, sleep for some time.
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-	# Return
-	#   0 if daemon has been stopped
-	#   1 if daemon was already stopped
-	#   2 if daemon could not be stopped
-	#   other if a failure occurred
-	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
-	RETVAL="$?"
-	[ "$RETVAL" = 2 ] && return 2
-	# Wait for children to finish too if this is a daemon that forks
-	# and if the daemon is only ever run from this initscript.
-	# If the above conditions are not satisfied then add some other code
-	# that waits for the process to drop all resources that could be
-	# needed by services started subsequently.  A last resort is to
-	# sleep for some time.
-	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
-	[ "$?" = 2 ] && return 2
-	return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-	#
-	# If the daemon can reload its configuration without
-	# restarting (for example, when it is sent a SIGHUP),
-	# then implement that here.
-	#
-	start-stop-daemon --stop --signal 1 --quiet $PIDFILE --name $NAME
-	return 0
-}
-
-case "$1" in
-  start)
-    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
-    do_start
-    case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-  ;;
-  stop)
-	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
-	do_stop
-	case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-	;;
-  status)
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  #reload|force-reload)
-	#
-	# If do_reload() is not implemented then leave this commented out
-	# and leave 'force-reload' as an alias for 'restart'.
-	#
-	#log_daemon_msg "Reloading $DESC" "$NAME"
-	#do_reload
-	#log_end_msg $?
-	#;;
-  restart|force-reload)
-	#
-	# If the "reload" option is implemented then remove the
-	# 'force-reload' alias
-	#
-	log_daemon_msg "Restarting $DESC" "$NAME"
-	do_stop
-	case "$?" in
-	  0|1)
-		do_start
-		case "$?" in
-			0) log_end_msg 0 ;;
-			1) log_end_msg 1 ;; # Old process is still running
-			*) log_end_msg 1 ;; # Failed to start
-		esac
-		;;
-	  *)
-	  	# Failed to stop
-		log_end_msg 1
-		;;
-	esac
-	;;
-  *)
-	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-	exit 3
-	;;
-esac
-
-:
diff --git a/debian/osmocom-nitb.install b/debian/osmocom-nitb.install
deleted file mode 100644
index 26caf71..0000000
--- a/debian/osmocom-nitb.install
+++ /dev/null
@@ -1,2 +0,0 @@
-/usr/bin/osmo-nitb
-openbsc/contrib/*.py usr/bin/
\ No newline at end of file
diff --git a/debian/osmocom-sgsn.default b/debian/osmocom-sgsn.default
deleted file mode 100644
index 77c9679..0000000
--- a/debian/osmocom-sgsn.default
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_FILE="/etc/osmocom/osmo-sgsn.cfg"
-
diff --git a/debian/osmocom-sgsn.examples b/debian/osmocom-sgsn.examples
deleted file mode 100644
index 15de78d..0000000
--- a/debian/osmocom-sgsn.examples
+++ /dev/null
@@ -1 +0,0 @@
-openbsc/doc/examples/osmo-sgsn
diff --git a/debian/osmocom-sgsn.init b/debian/osmocom-sgsn.init
deleted file mode 100755
index 0794dc1..0000000
--- a/debian/osmocom-sgsn.init
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          osmo-sgsn
-# Required-Start:    $network $local_fs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Osmocom Serving GPRS Support Node
-# Description:       Osmocom Serving GPRS Support Node
-### END INIT INFO
-
-# Author: Harald Welte <laforge@gnumonks.org>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-NAME=osmo-sgsn                           # Introduce the short server's name here
-DESC="Osmocom Serving GPRS Support Node" # Introduce a short description here
-DAEMON=/usr/bin/osmo-sgsn                # Introduce the server's location here
-SCRIPTNAME=/etc/init.d/osmocom-sgsn
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/osmocom-sgsn ] && . /etc/default/osmocom-sgsn
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-DAEMON_ARGS="$DAEMON_ARGS -D -c $CONFIG_FILE"
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-	# Return
-	#   0 if daemon has been started
-	#   1 if daemon was already running
-	#   2 if daemon could not be started
-	start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
-		|| return 1
-	start-stop-daemon --start --quiet --exec $DAEMON -- \
-		$DAEMON_ARGS \
-		|| return 2
-	# Add code here, if necessary, that waits for the process to be ready
-	# to handle requests from services started subsequently which depend
-	# on this one.  As a last resort, sleep for some time.
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-	# Return
-	#   0 if daemon has been stopped
-	#   1 if daemon was already stopped
-	#   2 if daemon could not be stopped
-	#   other if a failure occurred
-	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
-	RETVAL="$?"
-	[ "$RETVAL" = 2 ] && return 2
-	# Wait for children to finish too if this is a daemon that forks
-	# and if the daemon is only ever run from this initscript.
-	# If the above conditions are not satisfied then add some other code
-	# that waits for the process to drop all resources that could be
-	# needed by services started subsequently.  A last resort is to
-	# sleep for some time.
-	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
-	[ "$?" = 2 ] && return 2
-	return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-	#
-	# If the daemon can reload its configuration without
-	# restarting (for example, when it is sent a SIGHUP),
-	# then implement that here.
-	#
-	start-stop-daemon --stop --signal 1 --quiet $PIDFILE --name $NAME
-	return 0
-}
-
-case "$1" in
-  start)
-    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
-    do_start
-    case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-  ;;
-  stop)
-	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
-	do_stop
-	case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-	;;
-  status)
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  #reload|force-reload)
-	#
-	# If do_reload() is not implemented then leave this commented out
-	# and leave 'force-reload' as an alias for 'restart'.
-	#
-	#log_daemon_msg "Reloading $DESC" "$NAME"
-	#do_reload
-	#log_end_msg $?
-	#;;
-  restart|force-reload)
-	#
-	# If the "reload" option is implemented then remove the
-	# 'force-reload' alias
-	#
-	log_daemon_msg "Restarting $DESC" "$NAME"
-	do_stop
-	case "$?" in
-	  0|1)
-		do_start
-		case "$?" in
-			0) log_end_msg 0 ;;
-			1) log_end_msg 1 ;; # Old process is still running
-			*) log_end_msg 1 ;; # Failed to start
-		esac
-		;;
-	  *)
-	  	# Failed to stop
-		log_end_msg 1
-		;;
-	esac
-	;;
-  *)
-	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-	exit 3
-	;;
-esac
-
-:
diff --git a/debian/osmocom-sgsn.install b/debian/osmocom-sgsn.install
deleted file mode 100644
index d89c456..0000000
--- a/debian/osmocom-sgsn.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/bin/osmo-sgsn
diff --git a/debian/rules b/debian/rules
index 4e187a6..4fe1f46 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,32 +1,61 @@
 #!/usr/bin/make -f
+# You must remove unused comment lines for the released package.
+# See debhelper(7) (uncomment to enable)
+# This is an autogenerated template for debian/rules.
+#
+# Output every command that modifies files on the build system.
+#export DH_VERBOSE = 1
+#
+# Copy some variable definitions from pkg-info.mk and vendor.mk
+# under /usr/share/dpkg/ to here if they are useful.
+#
+# See FEATURE AREAS/ENVIRONMENT in dpkg-buildflags(1)
+# Apply all hardening options
+#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+# Package maintainers to append CFLAGS
+#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
+# Package maintainers to append LDFLAGS
+#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+#
+# With debhelper version 9 or newer, the dh command exports
+# all buildflags.  So there is no need to include the
+# /usr/share/dpkg/buildflags.mk file here if compat is 9 or newer.
+#
+# These are rarely used code. (START)
+#
+# The following include for *.mk magically sets miscellaneous
+# variables while honoring existing values of pertinent
+# environment variables:
+#
+# Architecture-related variables such as DEB_TARGET_MULTIARCH:
+#include /usr/share/dpkg/architecture.mk
+# Vendor-related variables such as DEB_VENDOR:
+#include /usr/share/dpkg/vendor.mk
+# Package-related variables such as DEB_DISTRIBUTION
+#include /usr/share/dpkg/pkg-info.mk
+#
+# You may alternatively set them susing a simple script such as:
+# DEB_VENDOR ?= $(shell dpkg-vendor --query  Vendor)
+#
+# These are rarely used code. (END)
+#
 
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-DEBIAN  := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
-DEBVERS := $(shell echo '$(DEBIAN)' | cut -d- -f1)
-VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g')
-
-export DEB_BUILD_MAINT_OPTIONS = hardening=+all
-
+# main packaging script based on dh7 syntax
 %:
-	dh $@ --sourcedirectory=openbsc --with autoreconf
+	dh $@ --with autoreconf 
 
-# This is needed for debian stable (squeeze)
-override_dh_autoreconf:
-	cd openbsc && autoreconf --install --force
+# debmake generated override targets
+# Set options for ./configure
+CONFIGURE_FLAGS += --enable-iu
+override_dh_configure:
+	dh_auto_configure -- $(CONFIGURE_FLAGS)
+#
+# Do not install libtool archive, python .pyc .pyo
+#override_dh_install:
+#	dh_install --list-missing -X.la -X.pyc -X.pyo
 
+# See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg
 override_dh_strip:
-	dh_strip -posmocom-bsc --dbg-package=osmocom-bsc-dbg
-	dh_strip -posmocom-nitb --dbg-package=osmocom-nitb-dbg
-	dh_strip -posmocom-ipaccess-utils --dbg-package=osmocom-ipaccess-utils-dbg
-	dh_strip -posmocom-bs11-utils --dbg-package=osmocom-bs11-utils-dbg
-	dh_strip -posmocom-sgsn --dbg-package=osmocom-sgsn-dbg
-	dh_strip -posmocom-gbproxy --dbg-package=osmocom-gbproxy-dbg
-	dh_strip -posmocom-bsc-nat --dbg-package=osmocom-bsc-nat-dbg
-	dh_strip -posmo-gtphub --dbg-package=osmo-gtphub-dbg
-
-override_dh_auto_configure:
-	echo $(VERSION) > openbsc/.tarball-version
-	dh_auto_configure --sourcedirectory=openbsc -- --enable-nat --enable-osmo-bsc --enable-smpp
-
+	dh_strip --dbg-package=osmo-sgsn-dbg
+	dh_strip --dbg-package=osmo-gtphub-dbg
+	dh_strip --dbg-package=osmo-gbproxy-dbg
