From: "Orion Poplawski" <orion(a)cora.nwra.com>
To: "EPEL Development List" <epel-devel(a)lists.fedoraproject.org>,
"Discussion of RPM packaging standards and
practices for Fedora" <packaging(a)lists.fedoraproject.org>, "Fedora Python
SIG"
<python-devel(a)lists.fedoraproject.org>, mstuchli(a)redhat.com
Sent: Thursday, July 16, 2015 12:41:13 AM
Subject: python34 packages for EPEL
Sorry for the cross posting - let's follow up on the EPEL list
We now have python34 in EPEL (yay - thanks Matej and others!). Starting to
look at packaging some modules. We have
https://fedoraproject.org/wiki/User:Bkabrda/EPEL7_Python3 as a starting point
which looks pretty good. One wrinkle though is that we have a bunch of
python2 packages provided by RHEL that we'll want to provide python3X
versions
for in EPEL, but not ship python2 versions. So a question becomes, where do
they get maintained? Either:
- epel7 branch of the python-blah package in Fedora?
- a new python3X-blah package?
And if in an epel7 branch of an existing package, is it conceivable to
maintain a common spec across EPEL and Fedora?
I think this is somewhat representative of the changes needed in a more
complicated package (setuptools) which isn't actually too terrrible:
diff --git a/python-setuptools.spec b/python-setuptools.spec
index 7f37e90..cb96b9f 100644
--- a/python-setuptools.spec
+++ b/python-setuptools.spec
@@ -1,9 +1,9 @@
-%if 0%{?fedora}
+%if 0%{?fedora} || 0%{?rhel} >= 7
%global with_python3 1
# This controls whether setuptools is build as a wheel or not,
# simplifying Python 3.4 bootstraping process
-%global build_wheel 1
+%global build_wheel 0
%else
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print (get_python_lib())")}
%endif
@@ -44,10 +44,10 @@ BuildRequires: python-pip
BuildRequires: python-wheel
%endif
%if 0%{?with_python3}
-BuildRequires: python3-devel
+BuildRequires: python%{python3_pkgversion}-devel
%if 0%{?build_wheel}
-BuildRequires: python3-pip
-BuildRequires: python3-wheel
+BuildRequires: python%{python3_pkgversion}-pip
+BuildRequires: python%{python3_pkgversion}-wheel
%endif
%endif # if with_python3
# For unittests
@@ -68,7 +68,7 @@ This package also contains the runtime components of
setuptools, necessary to
execute the software that requires pkg_resources.py.
%if 0%{?with_python3}
-%package -n python3-setuptools
+%package -n python%{python3_pkgversion}-setuptools
Summary: Easily build and distribute Python 3 packages
Group: Applications/System
@@ -76,7 +76,7 @@ Group: Applications/System
# has been present since python3-3.2. We do not ship python3-3.0 or
# python3-3.1 anywhere
-%description -n python3-setuptools
+%description -n python%{python3_pkgversion}-setuptools
Setuptools is a collection of enhancements to the Python 3 distutils that
allow
you to more easily build and distribute Python 3 packages, especially ones
that
have dependencies on other packages.
@@ -156,6 +156,9 @@ chmod +x
%{buildroot}%{python3_sitelib}/setuptools/command/easy_install.py
popd
%endif # with_python3
+%if 0%{?epel}
+rm %{buildroot}/%{_bindir}/easy_install
+%else
%if 0%{?build_wheel}
pip2 install -I dist/%{python2_wheelname} --root %{buildroot}
--strip-file-prefix %{buildroot}
%else
@@ -167,9 +170,11 @@ rm -rf %{buildroot}%{python_sitelib}/setuptools/tests
sed -i '/^setuptools\/tests\//d' %{buildroot}%{python2_record}
%endif
-install -p -m 0644 %{SOURCE1} %{SOURCE2} .
find %{buildroot}%{python_sitelib} -name '*.exe' | xargs rm -f
chmod +x %{buildroot}%{python_sitelib}/setuptools/command/easy_install.py
+%endif # 0%{?epel}
+
+install -p -m 0644 %{SOURCE1} %{SOURCE2} .
%check
%{__python} setup.py test
@@ -184,15 +189,17 @@ popd
rm -rf %{buildroot}
+%if !0%{?epel}
%files
%defattr(-,root,root,-)
%doc *.txt docs
%{python_sitelib}/*
%{_bindir}/easy_install
%{_bindir}/easy_install-2.*
+%endif
%if 0%{?with_python3}
-%files -n python3-setuptools
+%files -n python%{python3_pkgversion}-setuptools
%defattr(-,root,root,-)
%doc psfl.txt zpl.txt docs
%{python3_sitelib}/*
One note - according to
https://fedoraproject.org/wiki/User:Bkabrda/EPEL7_Python3#Specfiles.2C_Ma...
%{python3_pkgversion} is supposed to be defined in Fedora, but I don't see it
(at least not in F22). In the review
(
https://bugzilla.redhat.com/show_bug.cgi?id=1219411#c8) there seems to be
some uncertainty as to where it will land?
We firstly need to pass packaging guidelines trough FPC, Matt should take
care of that but he is currently on PTO and next week we will be at EuroPython
ping us on IRC {rkuska, mstuchli} in case you'll (or anyone interested in Python3)
be there too we can discuss this in person.
After the approval from FPC we can ask to include macros in the buildroot.
Comments?
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane orion(a)nwra.com
Boulder, CO 80301
http://www.nwra.com
_______________________________________________
python-devel mailing list
python-devel(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/python-devel