]> git.pld-linux.org Git - packages/libselinux.git/blame - libselinux.spec
- LDFLAGS cleanup, package ru man pages
[packages/libselinux.git] / libselinux.spec
CommitLineData
835f2e4f
JB
1#
2# Conditional build:
8aa53b72
JB
3%bcond_without python # Python (any) bindings
4%bcond_without python2 # Python 2 binding
5%bcond_without python3 # Python 3 binding
3231c037 6%bcond_without ruby # Ruby binding
b894de14 7
8aa53b72
JB
8%if %{without python}
9%undefine with_python2
10%undefine with_python3
11%endif
12
7da8622f 13%define sepol_ver 2.9
adb66b1f 14Summary: SELinux library and simple utilities
4967c211 15Summary(pl.UTF-8): Biblioteka SELinux i proste narzędzia
adb66b1f 16Name: libselinux
7da8622f
MK
17Version: 2.9
18Release: 1
fefe9db1 19License: Public Domain
adb66b1f 20Group: Libraries
9bb8f33d 21#Source0Download: https://github.com/SELinuxProject/selinux/wiki/Releases
7da8622f
MK
22Source0: https://github.com/SELinuxProject/selinux/releases/download/20190315/%{name}-%{version}.tar.gz
23# Source0-md5: bb449431b6ed55a0a0496dbc366d6e31
3157c0b5 24Patch0: %{name}-vcontext-selinux.patch
bd867b5b 25URL: https://github.com/SELinuxProject/selinux/wiki
ba4f2429
JB
26%ifarch ppc ppc64 sparc sparcv9 sparc64
27BuildRequires: gcc >= 5:3.4
28%else
29BuildRequires: gcc >= 5:3.2
30%endif
51212447 31BuildRequires: glibc-devel >= 6:2.3
e87b3ac3
AM
32BuildRequires: libsepol-devel >= %{sepol_ver}
33%{?with_python:BuildRequires: libsepol-static >= %{sepol_ver}}
3231c037
JB
34BuildRequires: pcre-devel
35BuildRequires: pkgconfig
8aa53b72
JB
36%{?with_python2:BuildRequires: python-devel >= 2}
37%{?with_python3:BuildRequires: python3-devel >= 1:3.2}
835f2e4f 38%{?with_python:BuildRequires: rpm-pythonprov}
8aa53b72 39BuildRequires: rpmbuild(macros) >= 1.714
3231c037 40%{?with_ruby:BuildRequires: ruby-devel >= 1.9}
6b7a7bf6 41BuildRequires: sed >= 4.0
8d42c624 42%{?with_python:BuildRequires: swig-python}
3231c037 43%{?with_ruby:BuildRequires: swig-ruby}
87678bda 44Requires: glibc(tls)
e87b3ac3 45Requires: libsepol >= %{sepol_ver}
9b0e6c11 46Obsoletes: selinux-libs
af1b8555 47Conflicts: SysVinit < 2.86-4
801180f1 48ExcludeArch: i386
c017911b 49BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
adb66b1f 50
51%description
6ed4fb38
AM
52Security-enhanced Linux is a patch of the Linux kernel and a number of
53utilities with enhanced security functionality designed to add
adb66b1f 54mandatory access controls to Linux. The Security-enhanced Linux kernel
55contains new architectural components originally developed to improve
56the security of the Flask operating system. These architectural
57components provide general support for the enforcement of many kinds
58of mandatory access control policies, including those based on the
59concepts of Type Enforcement, Role-based Access Control, and
60Multi-level Security.
61
62libselinux provides an API for SELinux applications to get and set
63process and file security contexts and to obtain security policy
64decisions. Required for any applications that use the SELinux API.
65
c75faa25
JR
66%description -l pl.UTF-8
67Security-enhanced Linux jest prototypem jądra Linuksa i wielu
68aplikacji użytkowych o funkcjach podwyższonego bezpieczeństwa.
69Zaprojektowany jest tak, aby w prosty sposób ukazać znaczenie
70obowiązkowej kontroli dostępu dla społeczności linuksowej. Ukazuje
71również jak taką kontrolę można dodać do istniejącego systemu typu
72Linux. Jądro SELinux zawiera nowe składniki architektury pierwotnie
73opracowane w celu ulepszenia bezpieczeństwa systemu operacyjnego
3f1ec040 74Flask. Te elementy zapewniają ogólne wsparcie we wdrażaniu wielu typów
6ed4fb38
AM
75polityk obowiązkowej kontroli dostępu, włączając te wzorowane na: Type
76Enforcement (TE), kontroli dostępu opartej na rolach (RBAC) i
77zabezpieczeniach wielopoziomowych.
06b84620 78
6ed4fb38
AM
79libselinux dostarcza API dla aplikacji SELinux aby mogły pobierać i
80ustawiać procesy i konteksty plików w celu korzystania z polityki
c75faa25
JR
81bezpieczeństwa. Biblioteka jest wymagana przez wszystkie aplikacje,
82które używają API SELinux.
adb66b1f 83
84%package devel
9f09f0e2 85Summary: Header files and devel documentation
4967c211 86Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja programistyczna
9f09f0e2 87Group: Development/Libraries
b894de14 88Requires: %{name} = %{version}-%{release}
e87b3ac3 89Requires: libsepol-devel >= %{sepol_ver}
9b0e6c11 90Obsoletes: selinux-libs-devel
adb66b1f 91
92%description devel
93Header files and devel documentation for SELinux libraries.
94
c75faa25
JR
95%description devel -l pl.UTF-8
96Pliki nagłówkowe i dokumentacja programistyczna bibliotek SELinux.
adb66b1f 97
98%package static
9f09f0e2 99Summary: Static SELinux library
4967c211 100Summary(pl.UTF-8): Biblioteki statyczne SELinux
9f09f0e2 101Group: Development/Libraries
b894de14 102Requires: %{name}-devel = %{version}-%{release}
9b0e6c11 103Obsoletes: selinux-static
adb66b1f 104
105%description static
106SELinux static libraries.
107
c75faa25 108%description static -l pl.UTF-8
adb66b1f 109Biblioteki statyczne SELinux.
110
111%package utils
9f09f0e2 112Summary: SELinux utils
4967c211 113Summary(pl.UTF-8): Narzędzia SELinux
9f09f0e2 114Group: Applications/System
b894de14 115Requires: %{name} = %{version}-%{release}
9b0e6c11 116Obsoletes: selinux-utils
adb66b1f 117
118%description utils
119SELinux utils.
120
c75faa25
JR
121%description utils -l pl.UTF-8
122Narzędzia SELinux.
adb66b1f 123
1531e56e 124%package -n python-selinux
8aa53b72
JB
125Summary: Python 2 binding for SELinux library
126Summary(pl.UTF-8): Wiązania Pythona 2 do biblioteki SELinux
1531e56e 127Group: Libraries/Python
b894de14 128Requires: %{name} = %{version}-%{release}
1531e56e
JB
129
130%description -n python-selinux
8aa53b72 131Python 2 binding for SELinux library.
1531e56e 132
c75faa25 133%description -n python-selinux -l pl.UTF-8
8aa53b72
JB
134Wiązania Pythona 2 do biblioteki SELinux.
135
136%package -n python3-selinux
137Summary: Python 3 binding for SELinux library
138Summary(pl.UTF-8): Wiązania Pythona 3 do biblioteki SELinux
139Group: Libraries/Python
140Requires: %{name} = %{version}-%{release}
141
142%description -n python3-selinux
143Python 3 binding for SELinux library.
144
145%description -n python3-selinux -l pl.UTF-8
146Wiązania Pythona 3 do biblioteki SELinux.
1531e56e 147
3231c037
JB
148%package -n ruby-selinux
149Summary: Ruby binding for SELinux library
150Summary(pl.UTF-8): Wiązania języka Ruby do biblioteki SELinux
151Group: Development/Languages
b894de14 152Requires: %{name} = %{version}-%{release}
3231c037
JB
153
154%description -n ruby-selinux
155Ruby binding for SELinux library.
156
157%description -n ruby-selinux -l pl.UTF-8
158Wiązania języka Ruby do biblioteki SELinux.
159
adb66b1f 160%prep
161%setup -q
3157c0b5 162%patch0 -p1
adb66b1f 163
6b7a7bf6
JB
164# "-z defs" doesn't mix with --as-needed when some object needs symbols from
165# ld.so (because of __thread variable in this case)
8aa53b72 166%{__sed} -i -e 's/-z,defs,//' src/Makefile
6b7a7bf6 167
adb66b1f 168%build
8aa53b72 169%{__make} -j1 all %{?with_python2:pywrap} %{?with_ruby:rubywrap} \
06b84620 170 CC="%{__cc}" \
6ed4fb38 171 CFLAGS="%{rpmcppflags} %{rpmcflags} -D_FILE_OFFSET_BITS=64" \
7da20bf0 172 LDFLAGS="%{rpmldflags}" \
3231c037 173 LIBDIR=%{_libdir} \
8aa53b72 174 PYPREFIX=python2 \
bbc4d714 175 PYSITEDIR=%{py_sitedir} \
f18e2780 176 PYTHON=%{__python} \
b894de14 177 %{?with_ruby:RUBYINC="$(pkg-config --cflags ruby-%{ruby_abi})"}
adb66b1f 178
8aa53b72
JB
179%if %{with python3}
180%{__make} -j1 -C src pywrap \
181 CC="%{__cc}" \
182 CFLAGS="%{rpmcppflags} %{rpmcflags} -D_FILE_OFFSET_BITS=64" \
7da20bf0 183 LDFLAGS="%{rpmldflags}" \
8aa53b72 184 LIBDIR=%{_libdir} \
f18e2780 185 PYPREFIX=python3 \
bbc4d714 186 PYSITEDIR=%{py3_sitedir} \
f18e2780 187 PYTHON=%{__python3}
8aa53b72
JB
188%endif
189
adb66b1f 190%install
191rm -rf $RPM_BUILD_ROOT
06b84620 192
8aa53b72 193%{__make} install %{?with_python2:install-pywrap} %{?with_ruby:install-rubywrap} \
39ae5278
JB
194 LIBDIR=%{_libdir} \
195 SHLIBDIR=/%{_lib} \
8aa53b72 196 PYPREFIX=python2 \
39ae5278 197 PYSITEDIR=%{py_sitedir} \
8aa53b72 198 PYTHON=%{__python} \
39ae5278 199 RUBYINSTALL=%{ruby_vendorarchdir} \
8aa53b72 200 DESTDIR=$RPM_BUILD_ROOT
adb66b1f 201
c017911b 202# make symlink across / absolute
4c5842ce 203ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libselinux.so.*) \
c017911b
JB
204 $RPM_BUILD_ROOT%{_libdir}/libselinux.so
205
8aa53b72
JB
206%if %{with python2}
207%py_comp $RPM_BUILD_ROOT%{py_sitedir}/selinux
208%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}/selinux
209%py_postclean
210%endif
211
212%if %{with python3}
213%{__make} -C src install-pywrap \
214 DESTDIR=$RPM_BUILD_ROOT \
39ae5278 215 LIBDIR=%{_libdir} \
8aa53b72 216 PYPREFIX=python3 \
39ae5278 217 PYSITEDIR=%{py3_sitedir} \
8aa53b72
JB
218 PYTHON=%{__python3}
219
220%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}/selinux
221%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}/selinux
222%endif
223
adb66b1f 224%clean
225rm -rf $RPM_BUILD_ROOT
226
227%post -p /sbin/ldconfig
228%postun -p /sbin/ldconfig
229
230%files
231%defattr(644,root,root,755)
df3fa8a3 232%doc LICENSE
c017911b 233%attr(755,root,root) /%{_lib}/libselinux.so.*
f63476a2
JB
234%{_mandir}/man5/booleans.5*
235%{_mandir}/man5/customizable_types.5*
236%{_mandir}/man5/default_contexts.5*
237%{_mandir}/man5/default_type.5*
238%{_mandir}/man5/failsafe_context.5*
64ef7b6a
AM
239%{_mandir}/man5/file_contexts.homedirs.5*
240%{_mandir}/man5/file_contexts.local.5
241%{_mandir}/man5/file_contexts.subs.5
242%{_mandir}/man5/file_contexts.subs_dist.5
f63476a2
JB
243%{_mandir}/man5/local.users.5*
244%{_mandir}/man5/removable_context.5*
245%{_mandir}/man5/secolor.conf.5*
246%{_mandir}/man5/securetty_types.5*
247%{_mandir}/man5/service_seusers.5*
248%{_mandir}/man5/seusers.5*
249%{_mandir}/man5/user_contexts.5*
250%{_mandir}/man5/virtual_domain_context.5*
251%{_mandir}/man5/virtual_image_context.5*
7da20bf0
JB
252%lang(ru) %{_mandir}/ru/man5/booleans.5*
253%lang(ru) %{_mandir}/ru/man5/customizable_types.5*
254%lang(ru) %{_mandir}/ru/man5/default_contexts.5*
255%lang(ru) %{_mandir}/ru/man5/default_type.5*
256%lang(ru) %{_mandir}/ru/man5/failsafe_context.5*
257%lang(ru) %{_mandir}/ru/man5/file_contexts.homedirs.5*
258%lang(ru) %{_mandir}/ru/man5/file_contexts.local.5
259%lang(ru) %{_mandir}/ru/man5/file_contexts.subs.5
260%lang(ru) %{_mandir}/ru/man5/file_contexts.subs_dist.5
261%lang(ru) %{_mandir}/ru/man5/local.users.5*
262%lang(ru) %{_mandir}/ru/man5/removable_context.5*
263%lang(ru) %{_mandir}/ru/man5/secolor.conf.5*
264%lang(ru) %{_mandir}/ru/man5/securetty_types.5*
265%lang(ru) %{_mandir}/ru/man5/service_seusers.5*
266%lang(ru) %{_mandir}/ru/man5/seusers.5*
267%lang(ru) %{_mandir}/ru/man5/user_contexts.5*
268%lang(ru) %{_mandir}/ru/man5/virtual_domain_context.5*
269%lang(ru) %{_mandir}/ru/man5/virtual_image_context.5*
adb66b1f 270
271%files devel
272%defattr(644,root,root,755)
c017911b 273%attr(755,root,root) %{_libdir}/libselinux.so
3f14fe48 274%{_pkgconfigdir}/libselinux.pc
06b84620 275%{_includedir}/selinux
8aa53b72
JB
276%{_mandir}/man3/avc_*.3*
277%{_mandir}/man3/checkPasswdAccess.3*
278%{_mandir}/man3/context_*.3*
279%{_mandir}/man3/fgetfilecon*.3*
280%{_mandir}/man3/fini_selinuxmnt.3*
281%{_mandir}/man3/freecon*.3*
282%{_mandir}/man3/fsetfilecon*.3*
283%{_mandir}/man3/get_default_context*.3*
284%{_mandir}/man3/get_default_type.3*
285%{_mandir}/man3/get_ordered_context_list*.3*
286%{_mandir}/man3/getcon*.3*
287%{_mandir}/man3/getexeccon*.3*
288%{_mandir}/man3/getfilecon*.3*
289%{_mandir}/man3/getfscreatecon*.3*
290%{_mandir}/man3/getkeycreatecon*.3*
291%{_mandir}/man3/getpeercon*.3*
292%{_mandir}/man3/getpidcon*.3*
293%{_mandir}/man3/getprevcon*.3*
294%{_mandir}/man3/getseuserbyname.3*
295%{_mandir}/man3/getsockcreatecon*.3*
296%{_mandir}/man3/init_selinuxmnt.3*
297%{_mandir}/man3/is_context_customizable.3*
298%{_mandir}/man3/is_selinux_*.3*
299%{_mandir}/man3/lgetfilecon*.3*
300%{_mandir}/man3/lsetfilecon*.3*
301%{_mandir}/man3/manual_user_enter_context.3*
302%{_mandir}/man3/matchmediacon.3*
303%{_mandir}/man3/matchpathcon*.3*
304%{_mandir}/man3/mode_to_security_class.3*
305%{_mandir}/man3/print_access_vector.3*
306%{_mandir}/man3/query_user_context.3*
307%{_mandir}/man3/rpm_execcon.3*
308%{_mandir}/man3/security_*.3*
309%{_mandir}/man3/selabel_*.3*
310%{_mandir}/man3/selinux_*.3*
311%{_mandir}/man3/set_matchpathcon_*.3*
312%{_mandir}/man3/set_selinuxmnt.3*
313%{_mandir}/man3/setcon*.3*
314%{_mandir}/man3/setexeccon*.3*
315%{_mandir}/man3/setfilecon*.3*
316%{_mandir}/man3/setfscreatecon*.3*
317%{_mandir}/man3/setkeycreatecon*.3*
318%{_mandir}/man3/setsockcreatecon*.3*
319%{_mandir}/man3/sidget.3*
320%{_mandir}/man3/sidput.3*
321%{_mandir}/man3/string_to_av_perm.3*
322%{_mandir}/man3/string_to_security_class.3*
f63476a2
JB
323%{_mandir}/man5/file_contexts.5*
324%{_mandir}/man5/media.5*
e18dd3a0 325%{_mandir}/man5/selabel_*.5*
f63476a2
JB
326%{_mandir}/man5/sepgsql_contexts.5*
327%{_mandir}/man5/x_contexts.5*
7da20bf0
JB
328%lang(ru) %{_mandir}/ru/man5/file_contexts.5*
329%lang(ru) %{_mandir}/ru/man5/media.5*
330%lang(ru) %{_mandir}/ru/man5/selabel_*.5*
331%lang(ru) %{_mandir}/ru/man5/sepgsql_contexts.5*
332%lang(ru) %{_mandir}/ru/man5/x_contexts.5*
adb66b1f 333
334%files static
335%defattr(644,root,root,755)
336%{_libdir}/libselinux.a
337
338%files utils
339%defattr(644,root,root,755)
f63476a2
JB
340%attr(755,root,root) %{_sbindir}/avcstat
341%attr(755,root,root) %{_sbindir}/compute_*
342%attr(755,root,root) %{_sbindir}/getconlist
343%attr(755,root,root) %{_sbindir}/getdefaultcon
344%attr(755,root,root) %{_sbindir}/getenforce
345%attr(755,root,root) %{_sbindir}/getfilecon
346%attr(755,root,root) %{_sbindir}/getpidcon
347%attr(755,root,root) %{_sbindir}/getsebool
348%attr(755,root,root) %{_sbindir}/getseuser
349%attr(755,root,root) %{_sbindir}/matchpathcon
350%attr(755,root,root) %{_sbindir}/policyvers
4a31f10c
JB
351%attr(755,root,root) %{_sbindir}/selabel_digest
352%attr(755,root,root) %{_sbindir}/selabel_lookup
353%attr(755,root,root) %{_sbindir}/selabel_lookup_best_match
354%attr(755,root,root) %{_sbindir}/selabel_partial_match
f63476a2
JB
355%attr(755,root,root) %{_sbindir}/selinux*
356%attr(755,root,root) %{_sbindir}/setenforce
64ef7b6a 357%attr(755,root,root) %{_sbindir}/sefcontext_compile
f63476a2
JB
358%attr(755,root,root) %{_sbindir}/setfilecon
359%attr(755,root,root) %{_sbindir}/togglesebool
f63476a2
JB
360%{_mandir}/man8/avcstat.8*
361%{_mandir}/man8/booleans.8*
362%{_mandir}/man8/getenforce.8*
363%{_mandir}/man8/getsebool.8*
364%{_mandir}/man8/matchpathcon.8*
21e1440d 365%{_mandir}/man8/sefcontext_compile.8*
f63476a2
JB
366%{_mandir}/man8/selinux*.8*
367%{_mandir}/man8/setenforce.8*
368%{_mandir}/man8/togglesebool.8*
7da20bf0
JB
369%lang(ru) %{_mandir}/ru/man8/avcstat.8*
370%lang(ru) %{_mandir}/ru/man8/booleans.8*
371%lang(ru) %{_mandir}/ru/man8/getenforce.8*
372%lang(ru) %{_mandir}/ru/man8/getsebool.8*
373%lang(ru) %{_mandir}/ru/man8/matchpathcon.8*
374%lang(ru) %{_mandir}/ru/man8/sefcontext_compile.8*
375%lang(ru) %{_mandir}/ru/man8/selinux*.8*
376%lang(ru) %{_mandir}/ru/man8/setenforce.8*
377%lang(ru) %{_mandir}/ru/man8/togglesebool.8*
1531e56e 378
8aa53b72 379%if %{with python2}
1531e56e
JB
380%files -n python-selinux
381%defattr(644,root,root,755)
f0f66b1d 382%dir %{py_sitedir}/selinux
bbc4d714 383%attr(755,root,root) %{py_sitedir}/_selinux.so
f0f66b1d 384%attr(755,root,root) %{py_sitedir}/selinux/audit2why.so
8aa53b72
JB
385%{py_sitedir}/selinux/__init__.py[co]
386%endif
387
388%if %{with python3}
389%files -n python3-selinux
390%defattr(644,root,root,755)
391%dir %{py3_sitedir}/selinux
df3fa8a3
JB
392%attr(755,root,root) %{py3_sitedir}/_selinux.cpython-*.so
393%attr(755,root,root) %{py3_sitedir}/selinux/audit2why.cpython-*.so
8aa53b72
JB
394%{py3_sitedir}/selinux/__init__.py
395%{py3_sitedir}/selinux/__pycache__
835f2e4f 396%endif
3231c037
JB
397
398%if %{with ruby}
399%files -n ruby-selinux
400%defattr(644,root,root,755)
401%attr(755,root,root) %{ruby_vendorarchdir}/selinux.so
402%endif
This page took 0.170436 seconds and 4 git commands to generate.