[Add] tether plugin
[platform/core/connectivity/stc-manager.git] / packaging / stc-manager.spec
1 Name:       stc-manager
2 Summary:    STC(Smart Traffic Control) manager
3 Version:    0.0.74
4 Release:    0
5 Group:      Network & Connectivity/Other
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8
9 %define enable_database YES
10 %define enable_statistics YES
11 %define enable_restriction YES
12 %define database_full_path /opt/usr/dbspace/.stc-manager-datausage.db
13
14 BuildRequires:  cmake
15 BuildRequires:  pkgconfig(glib-2.0)
16 BuildRequires:  pkgconfig(gio-2.0)
17 BuildRequires:  pkgconfig(gobject-2.0)
18 BuildRequires:  pkgconfig(gio-unix-2.0)
19 BuildRequires:  pkgconfig(dlog)
20 BuildRequires:  pkgconfig(libtzplatform-config)
21 BuildRequires:  pkgconfig(vconf)
22 BuildRequires:  pkgconfig(capi-system-info)
23 BuildRequires:  pkgconfig(openssl)
24
25 %if %{?enable_database} == YES
26 BuildRequires:  pkgconfig(sqlite3)
27 %endif
28
29 BuildRequires:  python
30 BuildRequires:  python-xml
31
32 %if 0%{?gtests:1}
33 BuildRequires: pkgconfig(gmock)
34 %endif
35
36 %description
37 A smart traffic control manager to manage traffic counting and bandwidth limitation
38
39 %package plugin-appstatus
40 Summary: STC manager application status plugin
41 BuildRequires:  pkgconfig(bundle)
42 BuildRequires:  pkgconfig(syspopup-caller)
43
44 %description plugin-appstatus
45 A smart traffic control manager extension for application status plugin
46
47 %package plugin-exception
48 Summary: STC manager exception list plugin
49 BuildRequires:  pkgconfig(pkgmgr-info)
50
51 %description plugin-exception
52 A smart traffic control manager extension for exception list plugin
53
54 %package plugin-procfs
55 Summary: STC manager exception proc file system plugin
56
57 %description plugin-procfs
58 A smart traffic control manager extension for proc file system plugin
59
60 %package plugin-tether
61 Summary: Tethering plugin for data usage of tethering clients
62
63 %description plugin-tether
64 A smart traffic control manager extension for tethering client data usage plugin
65
66 %prep
67 %setup -q
68 chmod 644 %{SOURCE0}
69
70 %build
71
72 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
73 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
74 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
75
76 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
77         -DBIN_DIR=%{_bindir} \
78         -DLIB_PATH=%{_lib} \
79         -DENABLE_DATABASE=%{enable_database} \
80         -DDATABASE_FULL_PATH=%{database_full_path} \
81         -DENABLE_STATISTICS=%{enable_statistics} \
82         -DENABLE_RESTRICTION=%{enable_restriction} \
83         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
84         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
85
86 make %{?_smp_mflags}
87
88 %install
89 rm -rf %{buildroot}
90
91 %make_install
92
93 #database initialization
94 %if %{?enable_database} == YES
95         mkdir -p %{buildroot}/opt/usr/dbspace
96         sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/traffic_db.sql
97         sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/firewall_db.sql
98         rm %{buildroot}/usr/share/traffic_db.sql
99         rm %{buildroot}/usr/share/firewall_db.sql
100 %endif
101
102 #Exceptions file
103 mkdir -p %{buildroot}/%{_localstatedir}/lib/stc
104 cp data/exceptions %{buildroot}/%{_localstatedir}/lib/stc/exceptions
105
106 #Systemd service file
107 mkdir -p %{buildroot}%{_libdir}/systemd/system/
108 cp resources/systemd/stc-manager.service %{buildroot}%{_libdir}/systemd/system/stc-manager.service
109
110 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/
111 ln -s ../stc-manager.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
112
113 #DBus DAC (stc-manager.manifest enables DBus SMACK)
114 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
115 cp resources/dbus/stc-manager.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/stc-manager.conf
116
117 %files
118 %manifest %{name}.manifest
119 %license LICENSE
120 %defattr(-,root,root,-)
121 %attr(500,root,root) %{_bindir}/*
122
123 %attr(644,root,root) %{_libdir}/systemd/system/stc-manager.service
124 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
125
126 %attr(755,root,root) /%{_localstatedir}/lib/stc
127 %attr(600,root,root) /%{_localstatedir}/lib/stc/exceptions
128
129 #DBus DAC
130 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
131
132 %if %{?enable_database} == YES
133 %config(noreplace) %attr(660, root, root) %{database_full_path}
134 %config(noreplace) %attr(660, root, root) %{database_full_path}-journal
135 %endif
136
137 %if 0%{?gtests:1}
138 %{_bindir}/gtest*
139 %endif
140
141 %files plugin-appstatus
142 %manifest %{name}.manifest
143 %attr(644, -,-) %{_datadir}/icons/*.png
144 %attr(500,root,root) %{_libdir}/stc-plugin-appstatus.so
145
146 %files plugin-exception
147 %manifest %{name}.manifest
148 %attr(500,root,root) %{_libdir}/stc-plugin-exception.so
149
150 %files plugin-procfs
151 %manifest %{name}.manifest
152 %attr(500,root,root) %{_libdir}/stc-plugin-procfs.so
153
154 %files plugin-tether
155 %manifest %{name}.manifest
156 %attr(500,root,root) %{_libdir}/stc-plugin-tether.so