#
# spec file for package osmo-mgw
#
# Copyright (c) 2017, Martin Hauke <mardnh@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

Name:           osmo-mgw
Version:        @VERSION@
Release:        0
Summary:        Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks
License:        AGPL-3.0-or-later AND GPL-2.0-or-later
Group:          Hardware/Mobile
URL:            https://osmocom.org/projects/osmo-mgw
Source:         %{name}-%{version}.tar.xz
BuildRequires:  automake >= 1.9
BuildRequires:  libtool >= 2
BuildRequires:  pkgconfig >= 0.20
%if 0%{?suse_version}
BuildRequires:  systemd-rpm-macros
%endif
BuildRequires:  pkgconfig(libosmo-netif) >= 1.4.0
BuildRequires:  pkgconfig(libosmocore) >= 1.9.0
BuildRequires:  pkgconfig(libosmoctrl) >= 1.9.0
BuildRequires:  pkgconfig(libosmogsm) >= 1.9.0
BuildRequires:  pkgconfig(libosmovty) >= 1.9.0
BuildRequires:  pkgconfig(libosmocoding) >= 1.9.0
BuildRequires:  pkgconfig(libosmoabis) >= 1.5.0
BuildRequires:  pkgconfig(libosmotrau) >= 1.5.0
%{?systemd_requires}

%description
OsmoMGW is Osmocom's Media Gateway for 2G and 3G circuit-switched mobile networks.

%package -n libosmo-mgcp-client12
Summary:        Osmocom's Media Gateway Control Protocol client library
Group:          System/Libraries

%description -n libosmo-mgcp-client12
Osmocom's Media Gateway Control Protocol client library.

%package -n libosmo-mgcp-client-devel
Summary:        Development files for Osmocom's Media Gateway Control Protocol client library
Group:          Development/Libraries/C and C++
Requires:       libosmo-mgcp-client12 = %{version}

%description -n libosmo-mgcp-client-devel
Osmocom's Media Gateway Control Protocol client librarary.

This subpackage contains libraries and header files for developing
applications that want to make use of libosmo-mgcp-client.

%prep
%setup -q

%build
echo "%{version}" >.tarball-version
autoreconf -fi
%configure \
  --disable-static \
  --docdir=%{_docdir}/%{name} \
  --with-systemdsystemunitdir=%{_unitdir}

make %{?_smp_mflags}

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

%check
make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +)

%post   -n libosmo-mgcp-client12 -p /sbin/ldconfig
%postun -n libosmo-mgcp-client12 -p /sbin/ldconfig

%if 0%{?suse_version}
%preun
%service_del_preun osmo-mgw.service

%postun
%service_del_postun osmo-mgw.service

%pre
%service_add_pre osmo-mgw.service

%post
%service_add_post osmo-mgw.service
%endif

%files
%license COPYING
%doc AUTHORS README.md
%dir %{_docdir}/%{name}/examples
%dir %{_docdir}/%{name}/examples/osmo-mgw
%{_docdir}/%{name}/examples/osmo-mgw/osmo-mgw.cfg
%{_docdir}/%{name}/examples/osmo-mgw/osmo-mgw-abis_e1.cfg
%{_bindir}/osmo-mgw
%{_unitdir}/osmo-mgw.service
%dir %{_sysconfdir}/osmocom
%config(noreplace) %{_sysconfdir}/osmocom/osmo-mgw.cfg

%files -n libosmo-mgcp-client12
%{_libdir}/libosmo-mgcp-client.so.12*

%files -n libosmo-mgcp-client-devel
%{_libdir}/libosmo-mgcp-client.so
%{_libdir}/pkgconfig/libosmo-mgcp-client.pc
%dir %{_includedir}/osmocom
%dir %{_includedir}/osmocom/mgcp_client
%{_includedir}/osmocom/mgcp_client/*.h

%changelog
