[MERGED] 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
Fri Sep 8 23:37:26 UTC 2017


Neels Hofmeyr has submitted this change and it was merged.

Change subject: separate libosmo-mgcp-client from mgcp server code
......................................................................


separate libosmo-mgcp-client from mgcp server code

When osmo-mgw is built --with-mgcp-transcoding, linking the mgcp library
also requires linking libgsm, even though e.g. osmo-msc never use it.
Separate the MGCP client code from the MGCP server code to avoid this dep.

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(-)

Approvals:
  Neels Hofmeyr: Looks good to me, approved
  Harald Welte: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



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: merged
Gerrit-Change-Id: I8e0b2d2a399b77086a36606f5e427271c6242df1
Gerrit-PatchSet: 2
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list