[Release] libprivilege-control_0.0.43.TIZEN
[platform/core/security/libprivilege-control.git] / packaging / libprivilege-control.spec
1 #%define udev_libdir /usr/lib/udev
2
3 Name:       libprivilege-control
4 Summary:    Library to control privilege of application
5 Version:    0.0.43.TIZEN
6 Release:    1
7 Group:      System/Security
8 License:    Apache 2.0
9 Source0:    %{name}-%{version}.tar.gz
10 Source1:    %{name}-conf.manifest
11 Source2:    smack-default-labeling.service
12 BuildRequires: cmake
13 BuildRequires: libcap-devel
14 BuildRequires: pkgconfig(libsmack)
15 BuildRequires: pkgconfig(dlog)
16 BuildRequires: pkgconfig(libiri)
17 BuildRequires: pkgconfig(sqlite3)
18 Requires:   smack-privilege-config
19 Requires:   sqlite
20
21 %description
22 development package of library to control privilege of in-house application
23
24 %package devel
25 Summary:    Control privilege of application (devel)
26 Group:      Development/Libraries
27 Requires:   %{name} = %{version}-%{release}
28 Requires:   pkgconfig(libsmack)
29
30 %description devel
31 Library to control privilege of application (devel)
32
33 %package conf
34 Summary:    Control privilege of application files
35 Group:      Development/Libraries
36 Requires:   %{name} = %{version}-%{release}
37 Requires:   /usr/bin/chsmack
38
39 %description conf
40 Library to control privilege of application files
41
42
43 %prep
44 %setup -q
45
46 %build
47 export CFLAGS="${CFLAGS} -Wno-implicit-function-declaration"
48 %cmake . -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
49          -DCMAKE_VERBOSE_MAKEFILE=ON
50
51 VERBOSE=1 make %{?jobs:-j%jobs}
52
53 %install
54 rm -rf %{buildroot}
55 mkdir -p %{buildroot}/usr/share/license
56 cp LICENSE %{buildroot}/usr/share/license/%{name}
57 %make_install
58
59 mkdir -p %{buildroot}/etc
60 mv %{buildroot}/opt/etc/passwd %{buildroot}/etc/passwd
61 mv %{buildroot}/opt/etc/group %{buildroot}/etc/group
62
63 cp -a %{SOURCE1} %{buildroot}%{_datadir}/
64 cp -a %{SOURCE2} %{buildroot}%{_datadir}/
65
66 mkdir -p %{buildroot}/usr/lib/systemd/system/basic.target.wants
67 install -m 644 %{SOURCE2} %{buildroot}/usr/lib/systemd/system/
68 ln -s ../smack-default-labeling.service %{buildroot}/usr/lib/systemd/system/basic.target.wants/
69
70 mkdir -p %{buildroot}/usr/lib/systemd/system/multi-user.target.wants
71 ln -sf /usr/lib/systemd/system/smack-rules.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/smack-rules.service
72
73 mkdir -p %{buildroot}/usr/lib/systemd/system/tizen-runtime.target.wants
74 ln -s /usr/lib/systemd/system/smack-default-labeling.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/smack-default-labeling.service
75
76 %post
77 if [ ! -e "/home/app" ]
78 then
79         mkdir -p /home/app
80 fi
81
82 if [ ! -e "/home/developer" ]
83 then
84         mkdir -p /home/developer
85 fi
86
87 chown 5000:5000 /home/app
88 chmod 755 /home/app
89 chown 5100:5100 /home/developer
90 chmod 755 /home/developer
91
92
93 if [ ! -e "/opt/etc/smack-app/accesses.d" ]
94 then
95         mkdir -p /opt/etc/smack-app/accesses.d
96 fi
97
98 if [ ! -e "/opt/etc/smack-app-early/accesses.d" ]
99 then
100         mkdir -p /opt/etc/smack-app-early/accesses.d
101 fi
102
103 sqlite3 /opt/dbspace/.rules-db.db3 < /opt/dbspace/rules-db.sql
104 rm -f /opt/dbspace/rules-db.sql
105
106 sqlite3 /opt/dbspace/.rules-db.db3 < /opt/dbspace/rules-db-data.sql
107 rm -f /opt/dbspace/rules-db-data.sql
108
109 api_feature_loader --verbose --dir=/usr/share/privilege-control/
110 api_feature_loader --verbose --rules=/usr/share/privilege-control/ADDITIONAL_RULES.smack
111
112 %files
113 %{_libdir}/*.so.*
114 %{_libdir}/librules-db-sql-udf.so
115 %{_bindir}/slp-su
116 #%{udev_libdir}/rules.d/*
117 #%attr(755,root,root) %{udev_libdir}/uname_env
118 %{_datadir}/license/%{name}
119 #systemd service
120 /usr/lib/systemd/system/smack-rules.service
121 /usr/bin/api_feature_loader
122 #link to activate systemd service
123 /usr/lib/systemd/system/multi-user.target.wants/smack-rules.service
124 /opt/dbspace/rules-db.sql
125 /opt/dbspace/rules-db-data.sql
126 /opt/etc/smack/load-rules-db.sql
127
128 %files conf
129 /etc/group
130 /etc/passwd
131 %attr(755,root,root) /etc/rc.d/*
132 /usr/share/smack-default-labeling.service
133 /usr/lib/systemd/system/smack-default-labeling.service
134 /usr/lib/systemd/system/basic.target.wants/smack-default-labeling.service
135 /usr/lib/systemd/system/multi-user.target.wants/smack-default-labeling.service
136 %manifest %{_datadir}/%{name}-conf.manifest
137 /opt/dbspace/.privilege_control*.db
138
139 %files devel
140 %{_includedir}/*.h
141 %{_libdir}/libprivilege-control.so
142 %{_libdir}/pkgconfig/*.pc