[PATCH] osmo-mgw[master]: separate libosmo-mgcp-client from mgcp server code

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Mon Sep 4 00:38:05 UTC 2017


Review at  https://gerrit.osmocom.org/3783

separate libosmo-mgcp-client from mgcp server code

osmo-{msc,bsc} need only MGCP client code, to not require them to link the
unused libgsm, this MGCP client code should be separate from the MGCP server
code.

The mgcp client code does use some definitions from mgcp.h and mgcp_common.c.
For simplicity, link mgcp_common.c in both libosmo-legacy-mgcp as well as
libosmo-mgcp-client. That means it is not possible to link both
libosmo-legacy-mgcp and libosmo-mgcp-client in the same binary because of
duplicate symbols, but currently that is sufficient. (An alternative would be
code dup or yet another libosmo-mgcp-common library.)

Add libosmo-mgcp-client to debian packaging.

Related: OS#2488
Change-Id: I8e0b2d2a399b77086a36606f5e427271c6242df1
---
M Makefile.am
M configure.ac
M debian/control
M debian/rules
M include/Makefile.am
M include/osmocom/Makefile.am
M include/osmocom/legacy_mgcp/Makefile.am
A include/osmocom/mgcp_client/Makefile.am
R include/osmocom/mgcp_client/mgcpgw_client.h
R include/osmocom/mgcp_client/mgcpgw_client_internal.h
A libosmo-mgcp-client.pc.in
M src/Makefile.am
M src/libosmo-legacy-mgcp/Makefile.am
A src/libosmo-mgcp-client/Makefile.am
R src/libosmo-mgcp-client/mgcpgw_client.c
R src/libosmo-mgcp-client/mgcpgw_client_vty.c
M tests/Makefile.am
M tests/legacy_mgcp/Makefile.am
A tests/mgcp_client/Makefile.am
R tests/mgcp_client/mgcpgw_client_test.c
R tests/mgcp_client/mgcpgw_client_test.err
R tests/mgcp_client/mgcpgw_client_test.ok
M tests/testsuite.at
23 files changed, 133 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/83/3783/1

diff --git a/Makefile.am b/Makefile.am
index c5c3137..8fb6e6c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,7 +17,10 @@
 	$(NULL)
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libosmo-legacy-mgcp.pc
+pkgconfig_DATA = \
+	libosmo-legacy-mgcp.pc \
+	libosmo-mgcp-client.pc \
+	$(NULL)
 
 BUILT_SOURCES = $(top_srcdir)/.version
 EXTRA_DIST = git-version-gen osmoappdesc.py .version
diff --git a/configure.ac b/configure.ac
index 5482b8c..86c3bc5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -118,15 +118,19 @@
 
 AC_OUTPUT(
     libosmo-legacy-mgcp.pc
+    libosmo-mgcp-client.pc
     include/Makefile
     include/osmocom/Makefile
     include/osmocom/legacy_mgcp/Makefile
+    include/osmocom/mgcp_client/Makefile
     src/Makefile
     src/libosmo-legacy-mgcp/Makefile
+    src/libosmo-mgcp-client/Makefile
     src/osmo-bsc_mgcp/Makefile
     tests/Makefile
     tests/atlocal
     tests/legacy_mgcp/Makefile
+    tests/mgcp_client/Makefile
     doc/Makefile
     doc/examples/Makefile
     contrib/Makefile
diff --git a/debian/control b/debian/control
index af49dc7..6556370 100644
--- a/debian/control
+++ b/debian/control
@@ -47,3 +47,25 @@
 Multi-Arch: same
 Depends: libosmo-legacy-mgcp0 (= ${binary:Version}), ${misc:Depends}
 Description: libosmo-legacy-mgcp: Osmocom's Media Gateway server library
+
+Package: libosmo-mgcp-client0
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: libosmo-mgcp-client: Osmocom's Media Gateway Control Protocol client utilities
+
+Package: libosmo-mgcp-client-dbg
+Section: debug
+Architecture: any
+Multi-Arch: same
+Depends: libosmo-mgcp-client0 (= ${binary:Version}), ${misc:Depends}
+Description: libosmo-mgcp-client: Osmocom's Media Gateway Control Protocol client utilities
+
+Package: libosmo-mgcp-client-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: libosmo-mgcp-client0 (= ${binary:Version}), ${misc:Depends}
+Description: libosmo-mgcp-client: Osmocom's Media Gateway Control Protocol client utilities
diff --git a/debian/rules b/debian/rules
index ee680cc..8976ede 100755
--- a/debian/rules
+++ b/debian/rules
@@ -32,3 +32,4 @@
 override_dh_strip:
 	dh_strip --dbg-package=osmo-mgw-dbg
 	dh_strip --dbg-package=libosmo-legacy-mgcp-dbg
+	dh_strip --dbg-package=libosmo-mgcp-client-dbg
diff --git a/include/Makefile.am b/include/Makefile.am
index 73b1b3e..e2baf41 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -5,6 +5,6 @@
 nobase_include_HEADERS = \
 	osmocom/legacy_mgcp/mgcp.h \
 	osmocom/legacy_mgcp/mgcp_internal.h \
-	osmocom/legacy_mgcp/mgcpgw_client.h \
 	osmocom/legacy_mgcp/osmux.h \
+	osmocom/mgcp_client/mgcpgw_client.h \
 	$(NULL)
diff --git a/include/osmocom/Makefile.am b/include/osmocom/Makefile.am
index 6514436..be9f1ca 100644
--- a/include/osmocom/Makefile.am
+++ b/include/osmocom/Makefile.am
@@ -1,3 +1,4 @@
 SUBDIRS = \
 	legacy_mgcp \
+	mgcp_client \
 	$(NULL)
diff --git a/include/osmocom/legacy_mgcp/Makefile.am b/include/osmocom/legacy_mgcp/Makefile.am
index 52f0b5b..4a9550c 100644
--- a/include/osmocom/legacy_mgcp/Makefile.am
+++ b/include/osmocom/legacy_mgcp/Makefile.am
@@ -1,5 +1,4 @@
 noinst_HEADERS = \
-	mgcpgw_client_internal.h \
 	mgcp_transcode.h \
 	vty.h \
 	$(NULL)
diff --git a/include/osmocom/mgcp_client/Makefile.am b/include/osmocom/mgcp_client/Makefile.am
new file mode 100644
index 0000000..224a7dc
--- /dev/null
+++ b/include/osmocom/mgcp_client/Makefile.am
@@ -0,0 +1,3 @@
+noinst_HEADERS = \
+	mgcpgw_client_internal.h \
+	$(NULL)
diff --git a/include/osmocom/legacy_mgcp/mgcpgw_client.h b/include/osmocom/mgcp_client/mgcpgw_client.h
similarity index 100%
rename from include/osmocom/legacy_mgcp/mgcpgw_client.h
rename to include/osmocom/mgcp_client/mgcpgw_client.h
diff --git a/include/osmocom/legacy_mgcp/mgcpgw_client_internal.h b/include/osmocom/mgcp_client/mgcpgw_client_internal.h
similarity index 100%
rename from include/osmocom/legacy_mgcp/mgcpgw_client_internal.h
rename to include/osmocom/mgcp_client/mgcpgw_client_internal.h
diff --git a/libosmo-mgcp-client.pc.in b/libosmo-mgcp-client.pc.in
new file mode 100644
index 0000000..aee86dc
--- /dev/null
+++ b/libosmo-mgcp-client.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: Osmocom Media Gateway Control Protocol Client library
+Description: C Utility Library
+Version: @VERSION@
+Libs: -L${libdir} -losmo-mgcp-client
+Cflags: -I${includedir}/
diff --git a/src/Makefile.am b/src/Makefile.am
index f47bc00..922bbda 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -22,6 +22,7 @@
 # Libraries
 SUBDIRS = \
 	libosmo-legacy-mgcp \
+	libosmo-mgcp-client \
 	$(NULL)
 
 # Programs
diff --git a/src/libosmo-legacy-mgcp/Makefile.am b/src/libosmo-legacy-mgcp/Makefile.am
index 42f25c0..32902b9 100644
--- a/src/libosmo-legacy-mgcp/Makefile.am
+++ b/src/libosmo-legacy-mgcp/Makefile.am
@@ -41,8 +41,6 @@
 	mgcp_vty.c \
 	mgcp_osmux.c \
 	mgcp_sdp.c \
-	mgcpgw_client.c \
-	mgcpgw_client_vty.c \
 	$(NULL)
 if BUILD_MGCP_TRANSCODING
 libosmo_legacy_mgcp_la_SOURCES += \
diff --git a/src/libosmo-mgcp-client/Makefile.am b/src/libosmo-mgcp-client/Makefile.am
new file mode 100644
index 0000000..02b9177
--- /dev/null
+++ b/src/libosmo-mgcp-client/Makefile.am
@@ -0,0 +1,37 @@
+AM_CPPFLAGS = \
+	$(all_includes) \
+	-I$(top_srcdir)/include \
+	-I$(top_builddir) \
+	$(NULL)
+
+AM_CFLAGS = \
+	-Wall \
+	$(LIBOSMOCORE_CFLAGS) \
+	$(LIBOSMOVTY_CFLAGS) \
+	$(LIBOSMONETIF_CFLAGS) \
+	$(COVERAGE_CFLAGS) \
+	$(NULL)
+
+AM_LDFLAGS = \
+	$(LIBOSMOCORE_LIBS) \
+	$(LIBOSMOGSM_LIBS) \
+	$(LIBOSMONETIF_LIBS) \
+	$(COVERAGE_LDFLAGS) \
+	$(NULL)
+
+# This is _NOT_ the library release version, it's an API version.
+# Please read Chapter 6 "Library interface versions" of the libtool
+# documentation before making any modification
+MGCP_CLIENT_LIBVERSION=1:0:0
+
+lib_LTLIBRARIES = \
+	libosmo-mgcp-client.la \
+	$(NULL)
+
+libosmo_mgcp_client_la_SOURCES = \
+	mgcpgw_client.c \
+	mgcpgw_client_vty.c \
+	../libosmo-legacy-mgcp/mgcp_common.c \
+	$(NULL)
+
+libosmo_mgcp_client_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(MGCP_CLIENT_LIBVERSION)
diff --git a/src/libosmo-legacy-mgcp/mgcpgw_client.c b/src/libosmo-mgcp-client/mgcpgw_client.c
similarity index 99%
rename from src/libosmo-legacy-mgcp/mgcpgw_client.c
rename to src/libosmo-mgcp-client/mgcpgw_client.c
index 810ba16..7ed4b07 100644
--- a/src/libosmo-legacy-mgcp/mgcpgw_client.c
+++ b/src/libosmo-mgcp-client/mgcpgw_client.c
@@ -24,10 +24,10 @@
 #include <osmocom/core/msgb.h>
 #include <osmocom/core/logging.h>
 
-#include <osmocom/legacy_mgcp/mgcpgw_client.h>
 #include <osmocom/legacy_mgcp/mgcp.h>
 #include <osmocom/legacy_mgcp/mgcp_internal.h>
-#include <osmocom/legacy_mgcp/mgcpgw_client_internal.h>
+#include <osmocom/mgcp_client/mgcpgw_client.h>
+#include <osmocom/mgcp_client/mgcpgw_client_internal.h>
 
 #include <netinet/in.h>
 #include <arpa/inet.h>
diff --git a/src/libosmo-legacy-mgcp/mgcpgw_client_vty.c b/src/libosmo-mgcp-client/mgcpgw_client_vty.c
similarity index 98%
rename from src/libosmo-legacy-mgcp/mgcpgw_client_vty.c
rename to src/libosmo-mgcp-client/mgcpgw_client_vty.c
index d101ded..034c84c 100644
--- a/src/libosmo-legacy-mgcp/mgcpgw_client_vty.c
+++ b/src/libosmo-mgcp-client/mgcpgw_client_vty.c
@@ -28,7 +28,7 @@
 #include <osmocom/core/utils.h>
 
 #include <osmocom/legacy_mgcp/vty.h>
-#include <osmocom/legacy_mgcp/mgcpgw_client.h>
+#include <osmocom/mgcp_client/mgcpgw_client.h>
 
 #define MGCPGW_STR "MGCP gateway configuration for RTP streams\n"
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f6cb938..ae51f89 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,5 +1,6 @@
 SUBDIRS = \
 	legacy_mgcp \
+	mgcp_client \
 	$(NULL)
 
 # The `:;' works around a Bash 3.2 bug when the output is not writeable.
diff --git a/tests/legacy_mgcp/Makefile.am b/tests/legacy_mgcp/Makefile.am
index e5f6888..f043124 100644
--- a/tests/legacy_mgcp/Makefile.am
+++ b/tests/legacy_mgcp/Makefile.am
@@ -20,13 +20,10 @@
 EXTRA_DIST = \
 	mgcp_test.ok \
 	mgcp_transcoding_test.ok \
-	mgcpgw_client_test.ok \
-	mgcpgw_client_test.err \
 	$(NULL)
 
 noinst_PROGRAMS = \
 	mgcp_test \
-	mgcpgw_client_test \
 	$(NULL)
 if BUILD_MGCP_TRANSCODING
 noinst_PROGRAMS += \
@@ -61,17 +58,4 @@
 	$(LIBOSMONETIF_LIBS) \
 	$(LIBRARY_GSM) \
 	-lm \
-	$(NULL)
-
-mgcpgw_client_test_SOURCES = \
-	mgcpgw_client_test.c \
-	$(NULL)
-
-mgcpgw_client_test_LDADD = \
-	$(top_builddir)/src/libosmo-legacy-mgcp/libosmo-legacy-mgcp.la \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOVTY_LIBS) \
-	$(LIBRARY_DL) \
-	$(LIBOSMONETIF_LIBS) \
-	$(LIBRARY_GSM) \
 	$(NULL)
diff --git a/tests/mgcp_client/Makefile.am b/tests/mgcp_client/Makefile.am
new file mode 100644
index 0000000..2253770
--- /dev/null
+++ b/tests/mgcp_client/Makefile.am
@@ -0,0 +1,38 @@
+AM_CPPFLAGS = \
+	$(all_includes) \
+	-I$(top_srcdir)/include \
+	-I$(top_srcdir) \
+	$(NULL)
+
+AM_CFLAGS = \
+	-Wall \
+	-ggdb3 \
+	$(LIBOSMOCORE_CFLAGS) \
+	$(LIBOSMONETIF_CFLAGS) \
+	$(COVERAGE_CFLAGS) \
+	$(NULL)
+
+AM_LDFLAGS = \
+	$(COVERAGE_LDFLAGS) \
+	$(NULL)
+
+EXTRA_DIST = \
+	mgcpgw_client_test.ok \
+	mgcpgw_client_test.err \
+	$(NULL)
+
+noinst_PROGRAMS = \
+	mgcpgw_client_test \
+	$(NULL)
+
+mgcpgw_client_test_SOURCES = \
+	mgcpgw_client_test.c \
+	$(NULL)
+
+mgcpgw_client_test_LDADD = \
+	$(top_builddir)/src/libosmo-mgcp-client/libosmo-mgcp-client.la \
+	$(LIBOSMOCORE_LIBS) \
+	$(LIBOSMOVTY_LIBS) \
+	$(LIBRARY_DL) \
+	$(LIBOSMONETIF_LIBS) \
+	$(NULL)
diff --git a/tests/legacy_mgcp/mgcpgw_client_test.c b/tests/mgcp_client/mgcpgw_client_test.c
similarity index 97%
rename from tests/legacy_mgcp/mgcpgw_client_test.c
rename to tests/mgcp_client/mgcpgw_client_test.c
index 51d5272..e90a4ed 100644
--- a/tests/legacy_mgcp/mgcpgw_client_test.c
+++ b/tests/mgcp_client/mgcpgw_client_test.c
@@ -23,8 +23,8 @@
 #include <osmocom/core/msgb.h>
 #include <osmocom/core/application.h>
 #include <osmocom/legacy_mgcp/mgcp.h>
-#include <osmocom/legacy_mgcp/mgcpgw_client.h>
-#include <osmocom/legacy_mgcp/mgcpgw_client_internal.h>
+#include <osmocom/mgcp_client/mgcpgw_client.h>
+#include <osmocom/mgcp_client/mgcpgw_client_internal.h>
 
 void *ctx;
 
diff --git a/tests/legacy_mgcp/mgcpgw_client_test.err b/tests/mgcp_client/mgcpgw_client_test.err
similarity index 100%
rename from tests/legacy_mgcp/mgcpgw_client_test.err
rename to tests/mgcp_client/mgcpgw_client_test.err
diff --git a/tests/legacy_mgcp/mgcpgw_client_test.ok b/tests/mgcp_client/mgcpgw_client_test.ok
similarity index 100%
rename from tests/legacy_mgcp/mgcpgw_client_test.ok
rename to tests/mgcp_client/mgcpgw_client_test.ok
diff --git a/tests/testsuite.at b/tests/testsuite.at
index dd59f2c..37347b3 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -14,9 +14,9 @@
 AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcp_transcoding_test], [], [expout], [ignore])
 AT_CLEANUP
 
-AT_SETUP([legacy_mgcpgw_client])
-AT_KEYWORDS([legacy_mgcpgw_client])
-cat $abs_srcdir/legacy_mgcp/mgcpgw_client_test.ok > expout
-cat $abs_srcdir/legacy_mgcp/mgcpgw_client_test.err > experr
-AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcpgw_client_test], [], [expout], [experr])
+AT_SETUP([mgcpgw_client])
+AT_KEYWORDS([mgcpgw_client])
+cat $abs_srcdir/mgcp_client/mgcpgw_client_test.ok > expout
+cat $abs_srcdir/mgcp_client/mgcpgw_client_test.err > experr
+AT_CHECK([$abs_top_builddir/tests/mgcp_client/mgcpgw_client_test], [], [expout], [experr])
 AT_CLEANUP

-- 
To view, visit https://gerrit.osmocom.org/3783
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8e0b2d2a399b77086a36606f5e427271c6242df1
Gerrit-PatchSet: 1
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list