Added Connman VPN package 64/56064/1
authorhyunuktak <hyunuk.tak@samsung.com>
Mon, 4 Jan 2016 05:15:48 +0000 (14:15 +0900)
committerhyunuktak <hyunuk.tak@samsung.com>
Mon, 4 Jan 2016 05:15:54 +0000 (14:15 +0900)
Change-Id: I0f33c30fc20c9e6b48f159e0a0a5a13193cf8ab9
Signed-off-by: hyunuktak <hyunuk.tak@samsung.com>
Makefile.am
packaging/connman.spec
vpn/main.c

index 7fda213..6e69fc4 100755 (executable)
@@ -136,18 +136,32 @@ builtin_vpn_cflags =
 
 sbin_PROGRAMS += vpn/connman-vpnd
 
-vpn_connman_vpnd_SOURCES = $(builtin_vpn_sources) \
+vpn_connman_vpnd_SOURCES = $(gdhcp_sources) $(builtin_vpn_sources) \
                        $(gweb_sources) vpn/vpn.ver vpn/main.c vpn/vpn.h \
-                       src/log.c src/error.c src/plugin.c src/task.c \
                        vpn/vpn-manager.c vpn/vpn-provider.c \
                        vpn/vpn-provider.h vpn/vpn-rtnl.h \
                        vpn/vpn-ipconfig.c src/inet.c vpn/vpn-rtnl.c \
-                       src/dbus.c src/storage.c src/ipaddress.c src/agent.c \
-                       vpn/vpn-agent.c vpn/vpn-agent.h src/inotify.c \
+                       src/log.c src/error.c src/plugin.c src/task.c \
+                       src/device.c src/network.c src/connection.c \
+                       src/manager.c src/service.c \
+                       src/clock.c src/timezone.c src/agent-connman.c \
+                       src/agent.c src/notifier.c src/provider.c \
+                       src/resolver.c src/ipconfig.c src/detect.c \
+                       src/dhcp.c src/dhcpv6.c src/rtnl.c src/proxy.c \
+                       src/utsname.c src/timeserver.c src/rfkill.c \
+                       src/storage.c src/dbus.c src/config.c \
+                       src/technology.c src/counter.c src/ntp.c \
+                       src/session.c src/tethering.c src/wpad.c src/wispr.c \
+                       src/stats.c src/iptables.c src/dnsproxy.c src/6to4.c \
+                       src/ippool.c src/bridge.c src/nat.c src/ipaddress.c \
+                       src/inotify.c src/firewall.c src/ipv6pd.c src/peer.c \
+                       src/peer_service.c src/machine.c src/util.c \
+                       vpn/vpn-agent.c vpn/vpn-agent.h \
                        vpn/vpn-config.c
 
 vpn_connman_vpnd_LDADD = gdbus/libgdbus-internal.la $(builtin_vpn_libadd) \
-                               @GLIB_LIBS@ @DBUS_LIBS@ @GNUTLS_LIBS@ @TPKP_GNUTLS_LIBS@ \
+                               @GLIB_LIBS@ @DBUS_LIBS@ @XTABLES_LIBS@ @GNUTLS_LIBS@ \
+                               @TPKP_GNUTLS_LIBS@ \
                                -lresolv -ldl
 
 vpn_connman_vpnd_LDFLAGS = -Wl,--export-dynamic \
@@ -204,9 +218,9 @@ AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \
                                -DCONFIGDIR=\""$(configdir)\""
 
 if VPN
-AM_CPPFLAGS = -I$(builddir)/include -I$(srcdir)/gdbus
+AM_CPPFLAGS = @TPKP_GNUTLS_CFLAGS@ -I$(builddir)/include -I$(srcdir)/gdbus
 else
-AM_CPPFLAGS = -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus
+AM_CPPFLAGS = @TPKP_GNUTLS_CFLAGS@ -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus
 endif
 
 src_connmand_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \
@@ -225,7 +239,7 @@ EXTRA_DIST = src/genbuiltin src/connman-dbus.conf src/connman-polkit.conf \
                                $(service_files_sources) scripts/connman.in
 
 if VPN
-vpn_connman_vpnd_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ \
+vpn_connman_vpnd_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \
                                $(builtin_vpn_cflags) \
                                -DCONNMAN_PLUGIN_BUILTIN \
                                -DVPN_STATEDIR=\""$(vpn_statedir)"\" \
index f3c2140..35ff983 100755 (executable)
@@ -1,11 +1,16 @@
+%bcond_with     connman_openconnect
+%bcond_without  connman_openvpn
+%bcond_without  connman_vpnd
+
 Name:           connman
 Version:        1.26
-Release:        6
+Release:        7
 License:        GPL-2.0+
 Summary:        Connection Manager
 Url:            http://connman.net
 Group:          Network & Connectivity/Connection Management
 Source0:        %{name}-%{version}.tar.gz
+BuildRequires:  systemd-devel
 BuildRequires:  pkgconfig(dbus-1)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(libiptc)
@@ -13,6 +18,12 @@ BuildRequires:  pkgconfig(xtables)
 BuildRequires:  pkgconfig(gnutls)
 BuildRequires:  pkgconfig(libsmack)
 BuildRequires:  pkgconfig(tpkp-gnutls)
+%if %{with connman_openconnect}
+BuildRequires:  openconnect
+%endif
+%if %{with connman_openvpn}
+BuildRequires:  openvpn
+%endif
 BuildRequires:  ca-certificates-devel
 BuildRequires:  readline-devel
 #%systemd_requires
@@ -26,6 +37,35 @@ Requires(postun): systemd
 Connection Manager provides a daemon for managing Internet connections
 within embedded devices running the Linux operating system.
 
+%if %{with connman_openconnect}
+%package plugin-openconnect
+Summary:        Openconnect Support for Connman
+Requires:       %{name} = %{version}
+Requires:       openconnect
+
+%description plugin-openconnect
+Openconnect Support for Connman.
+%endif
+
+%if %{with connman_openvpn}
+%package plugin-openvpn
+Summary:        Openvpn Support for Connman
+Requires:       %{name} = %{version}
+Requires:       openvpn
+
+%description plugin-openvpn
+OpenVPN support for Connman.
+%endif
+
+%if %{with connman_vpnd}
+%package connman-vpnd
+Summary:        VPN Support for Connman
+BuildRequires:  %{name} = %{version}
+Requires:       %{name} = %{version}
+
+%description connman-vpnd
+Provides VPN support for Connman
+%endif
 
 %package test
 Summary:        Test Scripts for Connection Manager
@@ -57,6 +97,10 @@ CFLAGS+=" -DTIZEN_SYS_CA_BUNDLE=\"%TZ_SYS_CA_BUNDLE\""
 CFLAGS+=" -DTIZEN_TV_EXT"
 %endif
 
+%if %{with connman_vpnd}
+VPN_CFLAGS+=" -DTIZEN_EXT -lsmack -Werror"
+%endif
+
 chmod +x bootstrap
 ./bootstrap
 %configure \
@@ -64,6 +108,12 @@ chmod +x bootstrap
             --enable-client \
             --enable-pacrunner \
             --enable-wifi=builtin \
+%if %{with connman_openconnect}
+            --enable-openconnect \
+%endif
+%if %{with connman_openvpn}
+            --enable-openvpn \
+%endif
 %if 0%{?enable_connman_features}
             %connman_features \
 %endif
@@ -117,15 +167,26 @@ cp src/connman.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/
 mkdir -p %{buildroot}%{_datadir}/license
 cp COPYING %{buildroot}%{_datadir}/license/connman
 
+%if %{with connman_vpnd}
+#%install_service multi-user.target.wants connman-vpn.service
+cp vpn/vpn-dbus.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf
+%endif
+
 %post
 #systemctl daemon-reload
 #systemctl restart connman.service
+%if %{with connman_vpnd}
+systemctl restart connman-vpn.service
+%endif
 
 %preun
 #systemctl stop connman.service
+%if %{with connman_vpnd}
+systemctl stop connman-vpn.service
+%endif
 
 %postun
-#systemctl daemon-reload
+systemctl daemon-reload
 
 %docs_package
 
@@ -142,17 +203,54 @@ cp COPYING %{buildroot}%{_datadir}/license/connman
 %{_sysconfdir}/dbus-1/system.d/*.conf
 %attr(644,root,root) %{_libdir}/systemd/system/connman.service
 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/connman.service
+%attr(644,root,root) %{_libdir}/systemd/system/connman-vpn.service
+%attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/connman-vpn.service
 %if "%{?_lib}" == "lib64"
 %attr(644,root,root) %{_unitdir}/connman.service
 %attr(644,root,root) %{_unitdir}/multi-user.target.wants/connman.service
+%attr(644,root,root) %{_unitdir}/connman-vpn.service
+%attr(644,root,root) %{_unitdir}/multi-user.target.wants/connman-vpn.service
 %endif
 %{_datadir}/license/connman
 
 %files test
+%manifest connman.manifest
 %{_libdir}/%{name}/test/*
 
 %files devel
+%manifest connman.manifest
 %{_includedir}/*
 %{_libdir}/pkgconfig/*.pc
 
+%if %{with connman_openconnect}
+%files plugin-openconnect
+%manifest %{name}.manifest
+%{_unitdir}/connman-vpn.service
+%{_libdir}/connman/plugins-vpn/openconnect.so
+%{_libdir}/connman/scripts/openconnect-script
+%{_datadir}/dbus-1/system-services/net.connman.vpn.service
+%endif
+
+%if %{with connman_openvpn}
+%files plugin-openvpn
+%manifest %{name}.manifest
+%{_unitdir}/connman-vpn.service
+%{_libdir}/%{name}/plugins-vpn/openvpn.so
+%{_libdir}/%{name}/scripts/openvpn-script
+%{_datadir}/dbus-1/system-services/net.connman.vpn.service
+%endif
+
+%if %{with connman_vpnd}
+%files connman-vpnd
+%manifest %{name}.manifest
+%{_sbindir}/connman-vpnd
+%{_unitdir}/connman-vpn.service
+#%{_unitdir}/multi-user.target.wants/connman-vpn.service
+%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/scripts
+%dir %{_libdir}/%{name}/plugins-vpn
+%config %{_sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf
+%{_datadir}/dbus-1/system-services/net.connman.vpn.service
+%endif
+
 
index ee88aac..debb0ca 100755 (executable)
@@ -45,6 +45,7 @@
 #define CONFIGMAINFILE CONFIGDIR "/connman-vpn.conf"
 
 #define DEFAULT_INPUT_REQUEST_TIMEOUT 300 * 1000
+#define DEFAULT_BROWSER_LAUNCH_TIMEOUT 300 * 1000
 
 static GMainLoop *main_loop = NULL;
 
@@ -52,8 +53,10 @@ static unsigned int __terminated = 0;
 
 static struct {
        unsigned int timeout_inputreq;
+       unsigned int timeout_browserlaunch;
 } connman_vpn_settings  = {
        .timeout_inputreq = DEFAULT_INPUT_REQUEST_TIMEOUT,
+       .timeout_browserlaunch = DEFAULT_BROWSER_LAUNCH_TIMEOUT,
 };
 
 static GKeyFile *load_config(const char *file)
@@ -224,6 +227,21 @@ static GOptionEntry options[] = {
        { NULL },
 };
 
+bool connman_setting_get_bool(const char *key)
+{
+       return false;
+}
+
+char **connman_setting_get_string_list(const char *key)
+{
+       return NULL;
+}
+
+unsigned int *connman_setting_get_uint_list(const char *key)
+{
+       return NULL;
+}
+
 /*
  * This function will be called from generic src/agent.c code so we have
  * to use connman_ prefix instead of vpn_ one.
@@ -233,6 +251,11 @@ unsigned int connman_timeout_input_request(void)
        return connman_vpn_settings.timeout_inputreq;
 }
 
+unsigned int connman_timeout_browser_launch(void)
+{
+       return connman_vpn_settings.timeout_browserlaunch;
+}
+
 int main(int argc, char *argv[])
 {
        GOptionContext *context;