[Release] libprivilege-control_0.0.36.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.36.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 Requires: smack-privilege-config
18
19 %description
20 development package of library to control privilege of in-house application
21
22 %package devel
23 Summary:    Control privilege of application (devel)
24 Group:      Development/Libraries
25 Requires:   %{name} = %{version}-%{release}
26 Requires:   pkgconfig(libsmack)
27
28 %description devel
29 Library to control privilege of application (devel)
30
31 %package conf
32 Summary:    Control privilege of application files
33 Group:      Development/Libraries
34 Requires:   %{name} = %{version}-%{release}
35 Requires:   /usr/bin/chsmack
36
37 %description conf
38 Library to control privilege of application files
39
40
41 %prep
42 %setup -q
43
44 %build
45 export CFLAGS="${CFLAGS} -Wno-implicit-function-declaration"
46 %cmake . -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}
47
48 make %{?jobs:-j%jobs}
49
50 %install
51 rm -rf %{buildroot}
52 mkdir -p %{buildroot}/usr/share/license
53 cp LICENSE %{buildroot}/usr/share/license/%{name}
54 %make_install
55
56 mkdir -p %{buildroot}/etc
57 mv %{buildroot}/opt/etc/passwd %{buildroot}/etc/passwd
58 mv %{buildroot}/opt/etc/group %{buildroot}/etc/group
59
60 cp -a %{SOURCE1} %{buildroot}%{_datadir}/
61 cp -a %{SOURCE2} %{buildroot}%{_datadir}/
62
63 mkdir -p %{buildroot}/usr/lib/systemd/system/basic.target.wants
64 install -m 644 %{SOURCE2} %{buildroot}/usr/lib/systemd/system/
65 ln -s ../smack-default-labeling.service %{buildroot}/usr/lib/systemd/system/basic.target.wants/
66
67 mkdir -p %{buildroot}/usr/lib/systemd/system/multi-user.target.wants
68 ln -sf /usr/lib/systemd/system/smack-late-rules.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/smack-late-rules.service
69 ln -sf /usr/lib/systemd/system/smack-early-rules.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/smack-early-rules.service
70
71 mkdir -p %{buildroot}/usr/lib/systemd/system/tizen-runtime.target.wants
72 ln -s /usr/lib/systemd/system/smack-default-labeling.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/smack-default-labeling.service
73
74 %post
75 if [ ! -e "/home/app" ]
76 then
77         mkdir -p /home/app
78 fi
79
80 if [ ! -e "/home/developer" ]
81 then
82         mkdir -p /home/developer
83 fi
84
85 chown 5000:5000 /home/app
86 chmod 755 /home/app
87 chown 5100:5100 /home/developer
88 chmod 755 /home/developer
89
90
91 if [ ! -e "/opt/etc/smack-app/accesses.d" ]
92 then
93         mkdir -p /opt/etc/smack-app/accesses.d
94 fi
95
96 if [ ! -e "/opt/etc/smack-app-early/accesses.d" ]
97 then
98         mkdir -p /opt/etc/smack-app-early/accesses.d
99 fi
100
101 %files
102 %{_libdir}/*.so.*
103 %{_bindir}/slp-su
104 #%{udev_libdir}/rules.d/*
105 #%attr(755,root,root) %{udev_libdir}/uname_env
106 %{_datadir}/license/%{name}
107 #systemd service
108 /usr/lib/systemd/system/smack-late-rules.service
109 /usr/lib/systemd/system/smack-early-rules.service
110 /usr/bin/rule_loader
111 #link to activate systemd service
112 /usr/lib/systemd/system/multi-user.target.wants/smack-late-rules.service
113 /usr/lib/systemd/system/multi-user.target.wants/smack-early-rules.service
114
115 %files conf
116 /etc/group
117 /etc/passwd
118 %attr(755,root,root) /etc/rc.d/*
119 /usr/share/smack-default-labeling.service
120 /usr/lib/systemd/system/smack-default-labeling.service
121 /usr/lib/systemd/system/basic.target.wants/smack-default-labeling.service
122 /usr/lib/systemd/system/multi-user.target.wants/smack-default-labeling.service
123 %manifest %{_datadir}/%{name}-conf.manifest
124 /opt/dbspace/.privilege_control*.db
125
126 %files devel
127 %{_includedir}/*.h
128 %{_libdir}/*.so
129 %{_libdir}/pkgconfig/*.pc