- add python3 subpackage
This commit is contained in:
parent
1088cc0705
commit
fc28aa840f
44
libsemanage-2.0.45-support-multiple-python-builds.patch
Normal file
44
libsemanage-2.0.45-support-multiple-python-builds.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
diff --git a/libsemanage/src/Makefile b/libsemanage/src/Makefile
|
||||||
|
index 7acf63d..cdd8388 100644
|
||||||
|
--- a/libsemanage/src/Makefile
|
||||||
|
+++ b/libsemanage/src/Makefile
|
||||||
|
@@ -1,9 +1,15 @@
|
||||||
|
+# Support building the Python bindings multiple times, against various Python
|
||||||
|
+# runtimes (e.g. Python 2 vs Python 3) by optionally prefixing the build
|
||||||
|
+# targets with "PYPREFIX":
|
||||||
|
+PYTHON ?= python
|
||||||
|
+PYPREFIX ?=
|
||||||
|
+
|
||||||
|
# Installation directories.
|
||||||
|
PREFIX ?= $(DESTDIR)/usr
|
||||||
|
LIBDIR ?= $(PREFIX)/lib
|
||||||
|
SHLIBDIR ?= $(PREFIX)/lib
|
||||||
|
INCLUDEDIR ?= $(PREFIX)/include
|
||||||
|
-PYLIBVER ?= $(shell python -c 'import sys;print "python%d.%d" % sys.version_info[0:2]')
|
||||||
|
+PYLIBVER ?= $(shell $(PYTHON) -c 'import sys;print("python%d.%d" % sys.version_info[0:2])')
|
||||||
|
PYINC ?= /usr/include/${PYLIBVER}
|
||||||
|
PYLIBDIR ?= $(LIBDIR)/${PYLIBVER}
|
||||||
|
RUBYLIBVER ?= $(shell ruby -e 'print RUBY_VERSION.split(".")[0..1].join(".")')
|
||||||
|
@@ -34,9 +40,9 @@ SWIGIF= semanageswig_python.i
|
||||||
|
SWIGRUBYIF= semanageswig_ruby.i
|
||||||
|
SWIGCOUT= semanageswig_wrap.c
|
||||||
|
SWIGRUBYCOUT= semanageswig_ruby_wrap.c
|
||||||
|
-SWIGLOBJ:= $(patsubst %.c,%.lo,$(SWIGCOUT))
|
||||||
|
+SWIGLOBJ:= $(patsubst %.c,$(PYPREFIX)%.lo,$(SWIGCOUT))
|
||||||
|
SWIGRUBYLOBJ:= $(patsubst %.c,%.lo,$(SWIGRUBYCOUT))
|
||||||
|
-SWIGSO=_semanage.so
|
||||||
|
+SWIGSO=$(PYPREFIX)_semanage.so
|
||||||
|
SWIGFILES=$(SWIGSO) semanage.py
|
||||||
|
SWIGRUBYSO=_rubysemanage.so
|
||||||
|
LIBSO=$(TARGET).$(LIBVERSION)
|
||||||
|
@@ -132,7 +138,9 @@ install: all
|
||||||
|
|
||||||
|
install-pywrap: pywrap
|
||||||
|
test -d $(PYLIBDIR)/site-packages || install -m 755 -d $(PYLIBDIR)/site-packages
|
||||||
|
- install -m 755 $(SWIGFILES) $(PYLIBDIR)/site-packages
|
||||||
|
+ install -m 755 $(SWIGSO) $(PYLIBDIR)/site-packages/_semanage.so
|
||||||
|
+ install -m 755 semanage.py $(PYLIBDIR)/site-packages
|
||||||
|
+
|
||||||
|
|
||||||
|
install-rubywrap: rubywrap
|
||||||
|
test -d $(RUBYINSTALL) || install -m 755 -d $(RUBYINSTALL)
|
@ -1,9 +1,14 @@
|
|||||||
|
%global with_python3 1
|
||||||
|
|
||||||
%define libsepolver 2.0.37-1
|
%define libsepolver 2.0.37-1
|
||||||
%define libselinuxver 2.0.0-1
|
%define libselinuxver 2.0.0-1
|
||||||
|
|
||||||
|
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||||
|
|
||||||
Summary: SELinux binary policy manipulation library
|
Summary: SELinux binary policy manipulation library
|
||||||
Name: libsemanage
|
Name: libsemanage
|
||||||
Version: 2.0.45
|
Version: 2.0.45
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
Source: http://www.nsa.gov/selinux/archives/libsemanage-%{version}.tgz
|
Source: http://www.nsa.gov/selinux/archives/libsemanage-%{version}.tgz
|
||||||
@ -11,10 +16,19 @@ Patch: libsemanage-rhat.patch
|
|||||||
URL: http://www.selinuxproject.org
|
URL: http://www.selinuxproject.org
|
||||||
Source1: semanage.conf
|
Source1: semanage.conf
|
||||||
|
|
||||||
|
# Add support to src/Makefile to support building the python bindings multiple
|
||||||
|
# times, against different Python runtimes:
|
||||||
|
Patch1: libsemanage-2.0.45-support-multiple-python-builds.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildRequires: libselinux-devel >= %{libselinuxver} swig ustr-devel
|
BuildRequires: libselinux-devel >= %{libselinuxver} swig ustr-devel
|
||||||
BuildRequires: libsepol-devel >= %{libsepolver}
|
BuildRequires: libsepol-devel >= %{libsepolver}
|
||||||
BuildRequires: python-devel bison flex bzip2-devel
|
BuildRequires: python-devel bison flex bzip2-devel
|
||||||
|
|
||||||
|
%if 0%{?with_python3}
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
%endif # if with_python3
|
||||||
|
|
||||||
Requires: bzip2-libs
|
Requires: bzip2-libs
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -60,20 +74,67 @@ Requires: libsemanage = %{version}-%{release}
|
|||||||
The libsemanage-python package contains the python bindings for developing
|
The libsemanage-python package contains the python bindings for developing
|
||||||
SELinux management applications.
|
SELinux management applications.
|
||||||
|
|
||||||
|
%if 0%{?with_python3}
|
||||||
|
%package python3
|
||||||
|
Summary: semanage python 3 bindings for libsemanage
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: libsemanage = %{version}-%{release}
|
||||||
|
|
||||||
|
%description python3
|
||||||
|
The libsemanage-python3 package contains the python 3 bindings for developing
|
||||||
|
SELinux management applications.
|
||||||
|
%endif # if with_python3
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch -p1 -b .rhat
|
%patch -p1 -b .rhat
|
||||||
|
%patch1 -p2 -b .support-multiple-python-builds
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# To support building the Python wrapper against multiple Python runtimes
|
||||||
|
# Define a function, for how to perform a "build" of the python wrapper against
|
||||||
|
# a specific runtime:
|
||||||
|
BuildPythonWrapper() {
|
||||||
|
BinaryName=$1
|
||||||
|
Prefix=$2
|
||||||
|
|
||||||
|
# Perform the build from the upstream Makefile:
|
||||||
|
make \
|
||||||
|
PYTHON=$BinaryName PYPREFIX=$Prefix \
|
||||||
|
CFLAGS="%{optflags}" LIBDIR="%{_libdir}" SHLIBDIR="%{_lib}" \
|
||||||
|
pywrap
|
||||||
|
}
|
||||||
|
|
||||||
make clean
|
make clean
|
||||||
make CFLAGS="%{optflags}" swigify
|
make CFLAGS="%{optflags}" swigify
|
||||||
make CFLAGS="%{optflags}" LIBDIR="%{_libdir}" SHLIBDIR="%{_lib}" all pywrap
|
make CFLAGS="%{optflags}" LIBDIR="%{_libdir}" SHLIBDIR="%{_lib}" all
|
||||||
|
|
||||||
|
BuildPythonWrapper %{__python} python2
|
||||||
|
%if 0%{?with_python3}
|
||||||
|
BuildPythonWrapper %{__python3} python3
|
||||||
|
%endif # with_python3
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
InstallPythonWrapper() {
|
||||||
|
BinaryName=$1
|
||||||
|
Prefix=$2
|
||||||
|
|
||||||
|
make \
|
||||||
|
PYTHON=$BinaryName PYPREFIX=$Prefix \
|
||||||
|
DESTDIR="${RPM_BUILD_ROOT}" LIBDIR="${RPM_BUILD_ROOT}%{_libdir}" SHLIBDIR="${RPM_BUILD_ROOT}/%{_libdir}" \
|
||||||
|
install-pywrap
|
||||||
|
}
|
||||||
|
|
||||||
rm -rf ${RPM_BUILD_ROOT}
|
rm -rf ${RPM_BUILD_ROOT}
|
||||||
mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}
|
mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_includedir}
|
mkdir -p ${RPM_BUILD_ROOT}%{_includedir}
|
||||||
make DESTDIR="${RPM_BUILD_ROOT}" LIBDIR="${RPM_BUILD_ROOT}%{_libdir}" SHLIBDIR="${RPM_BUILD_ROOT}/%{_libdir}" install install-pywrap
|
make DESTDIR="${RPM_BUILD_ROOT}" LIBDIR="${RPM_BUILD_ROOT}%{_libdir}" SHLIBDIR="${RPM_BUILD_ROOT}/%{_libdir}" install
|
||||||
|
|
||||||
|
InstallPythonWrapper %{__python} python2
|
||||||
|
%if 0%{?with_python3}
|
||||||
|
InstallPythonWrapper %{__python3} python3
|
||||||
|
%endif # with_python3
|
||||||
|
|
||||||
cp %{SOURCE1} ${RPM_BUILD_ROOT}/etc/selinux/semanage.conf
|
cp %{SOURCE1} ${RPM_BUILD_ROOT}/etc/selinux/semanage.conf
|
||||||
ln -sf %{_libdir}/libsemanage.so.1 ${RPM_BUILD_ROOT}/%{_libdir}/libsemanage.so
|
ln -sf %{_libdir}/libsemanage.so.1 ${RPM_BUILD_ROOT}/%{_libdir}/libsemanage.so
|
||||||
|
|
||||||
@ -103,9 +164,21 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
|
|
||||||
%files python
|
%files python
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_libdir}/python*/site-packages/*
|
%{python_sitearch}/_semanage.so
|
||||||
|
%{python_sitearch}/semanage.py*
|
||||||
|
|
||||||
|
%if 0%{?with_python3}
|
||||||
|
%files python3
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{python3_sitearch}/_semanage.so
|
||||||
|
%{python3_sitearch}/semanage.py*
|
||||||
|
%endif # if with_python3
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 27 2010 David Malcolm <dmalcolm@redhat.com> - 2.0.45-4
|
||||||
|
- add python3 subpackage
|
||||||
|
|
||||||
* Wed Apr 7 2010 Dan Walsh <dwalsh@redhat.com> - 2.0.45-3
|
* Wed Apr 7 2010 Dan Walsh <dwalsh@redhat.com> - 2.0.45-3
|
||||||
- Fix -devel package to point at the correct shared library
|
- Fix -devel package to point at the correct shared library
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user