Summary(pl.UTF-8): Wsparcie dla standardu "capability" POSIX.1e
Summary(pt_BR.UTF-8): Biblioteca para leitura e configuração de capabilities.
Name: libcap
-Version: 2.28
+Version: 2.58
Release: 1
Epoch: 1
License: GPL v2 or BSD
Group: Applications/System
Source0: https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/%{name}-%{version}.tar.xz
-# Source0-md5: 4066ddca53fb7e146f98372c8e43afc4
-Patch0: %{name}-make.patch
+# Source0-md5: 09b7b62c7b69f9a58098efa7b1d34f64
URL: https://sites.google.com/site/fullycapable/
BuildRequires: attr-devel
%{?with_golang:BuildRequires: golang}
%prep
%setup -q
-%patch0 -p1
%build
+LDFLAGS="%{rpmldflags}" \
%{__make} -j1 \
CC="%{__cc}" \
+ COPTS="%{rpmcflags} %{rpmcppflags}" \
+ BUILD_CC="%{__cc}" \
+ BUILD_COPTS="%{rpmcflags} %{rpmcppflags}" \
DEBUG= \
- %{!?with_golang:GOLANG=0} \
- OPT_CFLAGS="-Iinclude %{rpmcflags} %{rpmcppflags}" \
- OPT_LDFLAGS="%{rpmldflags}"
+ %{!?with_golang:GOLANG=0}
%install
rm -rf $RPM_BUILD_ROOT
%{__make} -j1 install \
FAKEROOT=$RPM_BUILD_ROOT \
%{!?with_golang:GOLANG=0} \
+ PKGCONFIGDIR=%{_pkgconfigdir} \
RAISE_SETFCAP=no \
lib=%{_lib}
-cp -p libcap/libpsx.a $RPM_BUILD_ROOT%{_libdir}
-
install -d $RPM_BUILD_ROOT/%{_lib}/security
install -p pam_cap/pam_cap.so $RPM_BUILD_ROOT/%{_lib}/security
install -d $RPM_BUILD_ROOT/etc/security
cp -a pam_cap/capability.conf $RPM_BUILD_ROOT/etc/security
install -d $RPM_BUILD_ROOT%{_libdir}
-ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcap.so.*.*) \
- $RPM_BUILD_ROOT%{_libdir}/libcap.so
-%{__rm} $RPM_BUILD_ROOT/%{_lib}/libcap.so
-%{__mv} $RPM_BUILD_ROOT/%{_lib}/libcap.a $RPM_BUILD_ROOT%{_libdir}
-
+for libname in libcap libpsx ; do
+ ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${libname}.so.*.*) \
+ $RPM_BUILD_ROOT%{_libdir}/${libname}.so
+ %{__rm} $RPM_BUILD_ROOT/%{_lib}/${libname}.so
+ %{__mv} $RPM_BUILD_ROOT/%{_lib}/${libname}.a $RPM_BUILD_ROOT%{_libdir}
+done
chmod a+x $RPM_BUILD_ROOT/%{_lib}/*.so*
%clean
# TODO: cap_setfcap=i
%attr(755,root,root) %{_sbindir}/setcap
%{_mandir}/man1/capsh.1*
+%{_mandir}/man8/captree.8*
%{_mandir}/man8/getcap.8*
+%{_mandir}/man8/getpcaps.8*
%{_mandir}/man8/setcap.8*
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/libcap.so.*.*
%attr(755,root,root) %ghost /%{_lib}/libcap.so.2
+%attr(755,root,root) /%{_lib}/libpsx.so.*.*
+%attr(755,root,root) %ghost /%{_lib}/libpsx.so.2
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libcap.so
-%{_libdir}/libpsx.a
+%attr(755,root,root) %{_libdir}/libpsx.so
%{_includedir}/sys/capability.h
+%{_includedir}/sys/psx_syscall.h
%{_pkgconfigdir}/libcap.pc
+%{_pkgconfigdir}/libpsx.pc
%{_mandir}/man3/libcap*.3*
-%{_mandir}/man3/cap_*
+%{_mandir}/man3/libpsx*.3*
+%{_mandir}/man3/cap_*.3*
%{_mandir}/man3/capgetp.3*
%{_mandir}/man3/capsetp.3*
+%{_mandir}/man3/psx_*.3*
%files static
%defattr(644,root,root,755)
%{_libdir}/libcap.a
+%{_libdir}/libpsx.a
%files -n pam-pam_cap
%defattr(644,root,root,755)
%doc pam_cap/License
%attr(755,root,root) /%{_lib}/security/pam_cap.so
%config(noreplace) %verify(not md5 mtime size) /etc/security/capability.conf
+
+# TODO: golang - where?
+# installs under
+#%{_datadir}/gocode/src/kernel.org/pub/linux/libs/security/libcap
+# or should we use
+#%{_libdir}/golang/src/libcap