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..21e4bbd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,75 +1,5 @@
-openbsc (0.15.1) UNRELEASED; urgency=medium
+osmo-mgw (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:12:53 +0000
diff --git a/debian/control b/debian/control
index 87b6f07..a1e4704 100644
--- a/debian/control
+++ b/debian/control
@@ -1,181 +1,49 @@
-Source: openbsc
-Maintainer: Harald Welte <laforge@gnumonks.org>
+Source: osmo-mgw
 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,
-               libssl-dev,
-               libc-ares-dev,
-               libsmpp34-dev
+               pkg-config,
+               autotools-dev,
+               libosmocore-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-iuh.git
+Vcs-Browser: https://git.osmocom.org/osmo-iuh/
+Homepage: https://projects.osmocom.org/projects/osmohnbgw
 
-Package: osmocom-bsc
+Package: osmo-mgw
 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: libosmo-legacy-mgcp0, ${misc:Depends}, ${shlibs:Depends}
+Description: OsmoMGW: Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks
 
-Package: osmocom-nitb
-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.
-
-Package: osmocom-ipaccess-utils
-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.
-
-Package: osmocom-bs11-utils
-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.
-
-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
-Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Recommends: osmocom-sgsn
-Description: Osmocom GPRS Gb Interface Proxy
- The purpose of the Gb proxy is to aggregate the Gb links of multiple
- BSS's and present them in one Gb link to the SGSN.
- .
- 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
-Architecture: any
+Package: osmo-mgw-dbg
 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
+Multi-Arch: same
+Depends: osmo-mgw (= ${binary:Version}), ${misc:Depends}
+Description: OsmoMGW: Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks
 
-Package: osmocom-ipaccess-utils-dbg
+Package: libosmo-legacy-mgcp0
+Section: libs
 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
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: OsmoMGW: Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks
 
-Package: osmocom-bs11-utils-dbg
-Architecture: any
+Package: libosmo-legacy-mgcp-dbg
 Section: debug
-Priority: extra
-Depends: osmocom-bs11-utils (= ${binary:Version}), ${misc:Depends}
-Description: Debug symbols for the OpenBSC BS11 utils
- Make debugging possible
+Architecture: any
+Multi-Arch: same
+Depends: libosmo-legacy-mgcp0 (= ${binary:Version}), ${misc:Depends}
+Description: OsmoMGW: Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks
 
-Package: osmocom-sgsn-dbg
+Package: libosmo-legacy-mgcp-dev
+Section: libdevel
 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}
-Description: Debug symbols for Osmocom GTP Hub
- Make debugging possible
+Multi-Arch: same
+Depends: libosmo-legacy-mgcp0 (= ${binary:Version}), ${misc:Depends}
+Description: OsmoMGW: Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks
diff --git a/debian/copyright b/debian/copyright
index 1e4dee1..f1dada2 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,74 +1,14 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: OpenBSC
-Source: http://openbsc.osmocom.org/
+Upstream-Name: osmo-mgw
+Source: git://git.osmocom.org/osmo-mgw
 
-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: 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:     *
+Copyright: 2009-2014 On-Waves
+           2009-2015 Holger Hans Peter Freyther <zecke@selfish.org>
+           2013 Jacob Erlbeck <jerlbeck@sysmocom.de>
+           2016 sysmocom s.m.f.c. GmbH <info@sysmocom.de>
+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 +16,67 @@
  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.
+ 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/>.
 
-
-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.
+Files:     src/libosmo-legacy-mgcp/g711common.h
+Copyright: 2000 Abramo Bagnara <abramo@alsa-project.org>
+License:   GPL-2.0+
+ Wrapper for linphone Codec class by Simon Morlat <simon.morlat@linphone.org>
  .
- 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.
+ 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 2 of the License, or
+ (at your option) any later version.
  .
- 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 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 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.
- .
- 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 Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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".
+ The FSF address in the above text is the old one.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ Version 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+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 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 3 can be found in `/usr/share/common-licenses/GPL-3'.
+
+Files:     osmoappdesc.py
+Copyright: 2013 Katerina Barone-Adesi <kat.obsc@gmail.com>
+License:   GPL-3.0+
+
+Files:     src/libosmo-legacy-mgcp/mgcp_osmux.c
+Copyright: 2012-2013 On Waves ehf <http://www.on-waves.com>
+           2012-2013 Pablo Neira Ayuso <pablo@gnumonks.org>
+License:   AGPL-3.0+
+ All rights not specifically granted under this license are reserved.
+ .
+ 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.
+
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/libosmo-legacy-mgcp-dev.install b/debian/libosmo-legacy-mgcp-dev.install
new file mode 100644
index 0000000..5bd9dd0
--- /dev/null
+++ b/debian/libosmo-legacy-mgcp-dev.install
@@ -0,0 +1,3 @@
+usr/include
+usr/lib/*/*.so
+usr/lib/*/pkgconfig/*.pc
diff --git a/debian/libosmo-legacy-mgcp0.install b/debian/libosmo-legacy-mgcp0.install
new file mode 100644
index 0000000..3de3b10
--- /dev/null
+++ b/debian/libosmo-legacy-mgcp0.install
@@ -0,0 +1 @@
+usr/lib/*/*.so.*
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/osmo-gtphub.default b/debian/osmo-gtphub.default
deleted file mode 100644
index 6af82da..0000000
--- a/debian/osmo-gtphub.default
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_FILE="/etc/osmocom/osmo-gtphub.cfg"
-
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.init b/debian/osmo-gtphub.init
deleted file mode 100755
index 160d55b..0000000
--- a/debian/osmo-gtphub.init
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          osmo-gtphub
-# Required-Start:    $network $local_fs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Osmocom GTP hub
-# Description:       Osmocom GTP hub
-### END INIT INFO
-
-# Author: Neels Hofmeyr <nhofmeyr@sysmocom.de>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-NAME=osmo-gtphub                         # Introduce the short server's name here
-DESC="Osmocom GTP hub"                   # Introduce a short description here
-DAEMON=/usr/bin/osmo-gtphub              # Introduce the server's location here
-SCRIPTNAME=/etc/init.d/osmo-gtphub
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/osmo-gtphub ] && . /etc/default/osmo-gtphub
-
-# 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/osmo-gtphub.install b/debian/osmo-gtphub.install
deleted file mode 100644
index 908c1a5..0000000
--- a/debian/osmo-gtphub.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/bin/osmo-gtphub
diff --git a/debian/osmo-mgw.install b/debian/osmo-mgw.install
new file mode 100644
index 0000000..e772481
--- /dev/null
+++ b/debian/osmo-mgw.install
@@ -0,0 +1 @@
+usr/bin
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.init b/debian/osmocom-gbproxy.init
deleted file mode 100755
index 924f32d..0000000
--- a/debian/osmocom-gbproxy.init
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          osmo-gbproxy
-# Required-Start:    $network $local_fs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Osmocom GBproxy
-# Description:       A tool to proxy the GPRS Gb interface.
-### 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-gbproxy                      # Introduce the short server's name here
-DESC="Osmocom GBProxy" # Introduce a short description here
-DAEMON=/usr/bin/osmo-gbproxy           # Introduce the server's location here
-SCRIPTNAME=/etc/init.d/osmocom-gbproxy
-CONFIG_FILE=/etc/osmocom/osmocom-gbproxy.cfg
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/osmocom-gbproxy ] && . /etc/default/osmocom-gbproxy
-
-# 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-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..ee680cc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,32 +1,34 @@
 #!/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
 
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-DEBIAN  := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
+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)
+# debmake generated override targets
+# Set options for ./configure
+#CONFIGURE_FLAGS = <options for ./configure>
+#overrride_dh_configure:
+#	dh_configure -- $(CONFIGURE_FLAGS)
+#
+# Do not install libtool archive, python .pyc .pyo
+#override_dh_install:
+#	dh_install --list-missing -X.la -X.pyc -X.pyo
+
 override_dh_autoreconf:
-	cd openbsc && autoreconf --install --force
+	echo $(VERSION) > .tarball-version
+	dh_autoreconf
 
+# 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-mgw-dbg
+	dh_strip --dbg-package=libosmo-legacy-mgcp-dbg
