%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
%define _unpackaged_files_terminate_build 1

Summary:        An alternate posix capabilities library
Name:           libcap-ng
Version:        0.8.2
Release:        1%{?_dist_release}
Group:          system
Vendor:         Project Vine
Distribution:   Vine Linux

License:        LGPLv2+
URL:            http://people.redhat.com/sgrubb/libcap-ng/
Source0:        http://people.redhat.com/sgrubb/libcap-ng/%{name}-%{version}.tar.gz

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:  kernel-headers >= 2.6.11 
BuildRequires:  libattr-devel

%description
Libcap-ng is a library that makes using posix capabilities easier


%package        devel
Summary:        Header files for libcap-ng library
License:        LGPLv2+
Group:          programming
Requires:       kernel-headers >= 2.6.11
Requires:       %{name} = %{version}-%{release}
Requires:       pkgconfig

%description    devel
The libcap-ng-devel package contains the files needed for developing
applications that need to use the libcap-ng library.


%package        python
Summary:        Python bindings for libcap-ng library
License:        LGPLv2+
Group:          programming
BuildRequires:  python-devel swig
BuildRequires:  python-rpm-macros
Requires:       %{name} = %{version}-%{release}

%description    python
The libcap-ng-python package contains the bindings so that libcap-ng
and can be used by python applications.


%package        python3
Summary:        Python3 bindings for libcap-ng library
License:        LGPLv2+
Group:          programming
BuildRequires:  python3-devel swig
BuildRequires:  python3-rpm-macros
Requires:       %{name} = %{version}-%{release}

%description    python3
The libcap-ng-python3 package contains the bindings so that libcap-ng
and can be used by python3 applications.


%package        utils
Summary:        Utilities for analysing and setting file capabilities
License:        GPLv2+
Group:          admin-tools
Requires:       %{name} = %{version}-%{release}

%description    utils
The libcap-ng-utils package contains applications to analyse the
posix capabilities of all the program running on a system. It also
lets you set the file system based capabilities.


%package -n     compat32-%{name}
Summary:        An alternate posix capabilities library
Group:          system
Requires:       %{name} = %{version}-%{release}

%description -n compat32-%{name}
Libcap-ng is a library that makes using posix capabilities easier


%package -n     compat32-%{name}-devel
Summary:        Header files for libcap-ng library
Group:          programming
License:        LGPLv2+
Requires:       %{name}-devel = %{version}-%{release}

%description -n compat32-%{name}-devel
The libcap-ng-devel package contains the files needed for developing
applications that need to use the libcap-ng library.


%debug_package


%prep
%setup -q


%build
%configure --libdir=/%{_lib} --with-python --with-python3
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR="${RPM_BUILD_ROOT}" install

# Move the symlink
rm -f $RPM_BUILD_ROOT/%{_lib}/%{name}.so
mkdir -p $RPM_BUILD_ROOT%{_libdir}
VLIBNAME=$(ls $RPM_BUILD_ROOT/%{_lib}/%{name}.so.*.*.*)
LIBNAME=$(basename $VLIBNAME)
ln -s ../../%{_lib}/$LIBNAME $RPM_BUILD_ROOT%{_libdir}/%{name}.so

# Move the pkgconfig file
mv $RPM_BUILD_ROOT/%{_lib}/pkgconfig $RPM_BUILD_ROOT%{_libdir}

# Remove a couple things so they don't get picked up
rm -f $RPM_BUILD_ROOT/%{_lib}/libcap-ng.la
rm -f $RPM_BUILD_ROOT/%{_lib}/libcap-ng.a
rm -f $RPM_BUILD_ROOT/%{_lib}/libdrop_ambient.la
rm -f $RPM_BUILD_ROOT/%{_lib}/libdrop_ambient.a
rm -f $RPM_BUILD_ROOT/%{_libdir}/python?.?/site-packages/_capng.a
rm -f $RPM_BUILD_ROOT/%{_libdir}/python?.?/site-packages/_capng.la


%check
make check


%clean
rm -rf $RPM_BUILD_ROOT


%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%post -n compat32-%{name} -p /sbin/ldconfig
%postun -n compat32-%{name} -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%license COPYING.LIB
%attr(0755,root,root) /%{_lib}/libcap-ng.so.*
%attr(0755,root,root) /%{_lib}/libdrop_ambient.so.*

%files devel
%defattr(-,root,root,-)
%attr(0644,root,root) %{_mandir}/man3/*
%attr(0644,root,root) %{_mandir}/man7/*
%attr(0644,root,root) %{_includedir}/cap-ng.h
%attr(0755,root,root) %{_libdir}/libcap-ng.so
%attr(0755,root,root) /%{_lib}/libdrop_ambient.so
%attr(0644,root,root) %{_datadir}/aclocal/cap-ng.m4
%{_libdir}/pkgconfig/libcap-ng.pc

%files python
%defattr(-,root,root,-)
%attr(755,root,root) /%{_libdir}/python?.?/site-packages/_capng.so
%{python_sitearch}/capng.py*

%files python3
%defattr(-,root,root,-)
%attr(755,root,root) %{python3_sitearch}/*
%{python3_sitearch}/capng.py*

%files utils
%defattr(-,root,root,-)
%doc COPYING
%attr(0755,root,root) %{_bindir}/*
%attr(0644,root,root) %{_mandir}/man8/*

%if %{build_compat32}
%files -n compat32-%{name}
%defattr(-,root,root,-)
%attr(0755,root,root) /%{_lib}/libcap-ng.so.*

%files -n compat32-%{name}-devel
%defattr(-,root,root,-)
%attr(0755,root,root) %{_libdir}/libcap-ng.so
%{_libdir}/pkgconfig/libcap-ng.pc
%endif


%changelog
* Wed Feb 17 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.8.2-1
- new upstream release.

* Sun Apr 12 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.7.10-1
- new upstream release.

* Tue Feb 27 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 0.7.9-1
- new upstream release.
- added compat32-* packages.
- enabled python3 modules.

* Sat Jan 04 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.7.3-2
- rebuild with VineSeed environment

* Mon Jan 07 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.7.3-1
- new upstream release

* Sun Oct 28 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.7.1-1
- new upstream release

* Mon Feb 20 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.6.6-2
- rebuild with python-2.7.2

* Sun Aug 14 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.6.6-1
- initial build for Vine Linux


* Fri Jun 24 2011 Steve Grubb <sgrubb@redhat.com> 0.6.6-1
- New upstream release

* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Nov 03 2010 Steve Grubb <sgrubb@redhat.com> 0.6.5-1
- New upstream release fixing 2.6.36 kernel header issue

* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 0.6.4-4
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild

* Thu Jun 17 2010 Steve Grubb <sgrubb@redhat.com> 0.6.4-3
- Only open regular files in filecap

* Mon May 24 2010 Steve Grubb <sgrubb@redhat.com> 0.6.4-2
- In utils subpackage added a requires statement.

* Thu May 06 2010 Steve Grubb <sgrubb@redhat.com> 0.6.4-1
- New upstream release fixing multi-threading issue

* Wed Apr 28 2010 Steve Grubb <sgrubb@redhat.com> 0.6.3-2
- filecap shows full capabilities if a file has any

* Thu Mar 11 2010 Steve Grubb <sgrubb@redhat.com> 0.6.3-1
- New upstream release

* Tue Feb 16 2010 Steve Grubb <sgrubb@redhat.com> 0.6.2-4
- Use global macro and require pkgconfig for devel subpackage

* Fri Oct 09 2009 Steve Grubb <sgrubb@redhat.com> 0.6.2-3
- Apply patch to retain setpcap only if clearing bounding set

* Sat Oct 03 2009 Steve Grubb <sgrubb@redhat.com> 0.6.2-2
- Apply patch correcting pscap and netcap acct detection

* Mon Sep 28 2009 Steve Grubb <sgrubb@redhat.com> 0.6.2-1
- New upstream release

* Sun Jul 26 2009 Steve Grubb <sgrubb@redhat.com> 0.6.1-1
- New upstream release

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Mon Jun 29 2009 Steve Grubb <sgrubb@redhat.com> 0.6-1
- New upstream release

* Sun Jun 21 2009 Steve Grubb <sgrubb@redhat.com> 0.5.1-1
- New upstream release

* Fri Jun 19 2009 Steve Grubb <sgrubb@redhat.com> 0.5-1
- New upstream release

* Fri Jun 12 2009 Steve Grubb <sgrubb@redhat.com> 0.4.2-1
- New upstream release

* Fri Jun 12 2009 Steve Grubb <sgrubb@redhat.com> 0.4.1-1
- Initial build.