basebuilder_pel7ppc64bebuilder0
7 years ago
4 changed files with 296 additions and 0 deletions
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
# Note that the path could itself be a python file, or a directory |
||||
|
||||
# Python's compile_all module only works on directories, and requires a max |
||||
# recursion depth |
||||
|
||||
# Note that the py_byte_compile macro should work for python2 as well |
||||
# Which unfortunately makes the definition more complicated than it should be |
||||
# The condition should be reversed once /usr/bin/python is python3! |
||||
|
||||
%py_byte_compile()\ |
||||
py2_byte_compile () {\ |
||||
python_binary="%1"\ |
||||
bytecode_compilation_path="%2"\ |
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\ |
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\ |
||||
}\ |
||||
\ |
||||
py3_byte_compile () {\ |
||||
python_binary="%1"\ |
||||
bytecode_compilation_path="%2"\ |
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\ |
||||
}\ |
||||
\ |
||||
[[ "%1" == *python3* ]] || py2_byte_compile "%1" "%2" && py3_byte_compile "%1" "%2" \ |
||||
%{nil} |
@ -0,0 +1,63 @@
@@ -0,0 +1,63 @@
|
||||
# python3_pkgversion specifies the version of Python 3 in the distro. It can be |
||||
# a specific version (e.g. 34 in Fedora EPEL7) |
||||
%python3_pkgversion 3 |
||||
|
||||
# Set to /bin/true to avoid %ifdefs and %{? in specfiles |
||||
%__python3_other /bin/true |
||||
%py3_other_build /bin/true |
||||
%py3_other_install /bin/true |
||||
|
||||
|
||||
|
||||
# === Macros for Build/Requires tags using Python dist tags === |
||||
# - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages |
||||
# - These macros need to be in macros.python-srpm, because BuildRequires tags |
||||
# get rendered as runtime requires into the metadata of SRPMs. |
||||
|
||||
# Converts Python dist name to a canonical format |
||||
%py_dist_name() %{lua:\ |
||||
name = rpm.expand("%{?1:%{1}}");\ |
||||
canonical = string.gsub(string.lower(name), "[^%w%.]+", "-");\ |
||||
print(canonical);\ |
||||
} |
||||
|
||||
# Creates Python 2 dist tag(s) after converting names to canonical format |
||||
# Needs to first put all arguments into a list, because invoking a different |
||||
# macro (%py_dist_name) overwrites them |
||||
%py2_dist() %{lua:\ |
||||
args = {}\ |
||||
arg = 1\ |
||||
while (true) do\ |
||||
name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");\ |
||||
if (name == nil or name == '') then\ |
||||
break\ |
||||
end\ |
||||
args[arg] = name\ |
||||
arg = arg + 1\ |
||||
end\ |
||||
for arg, name in ipairs(args) do\ |
||||
canonical = rpm.expand("%py_dist_name " .. name);\ |
||||
print("python2dist(" .. canonical .. ") ");\ |
||||
end\ |
||||
} |
||||
|
||||
# Creates Python 3 dist tag(s) after converting names to canonical format |
||||
# Needs to first put all arguments into a list, because invoking a different |
||||
# macro (%py_dist_name) overwrites them |
||||
%py3_dist() %{lua:\ |
||||
args = {}\ |
||||
arg = 1\ |
||||
while (true) do\ |
||||
name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");\ |
||||
if (name == nil or name == '') then\ |
||||
break\ |
||||
end\ |
||||
args[arg] = name\ |
||||
arg = arg + 1\ |
||||
end\ |
||||
for arg, name in ipairs(args) do\ |
||||
canonical = rpm.expand("%py_dist_name " .. name);\ |
||||
print("python3dist(" .. canonical .. ") ");\ |
||||
end\ |
||||
} |
||||
|
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
%__python3 /usr/bin/python3 |
||||
%python3_sitelib %(%{__python3} -Ic "from distutils.sysconfig import get_python_lib; print(get_python_lib())") |
||||
%python3_sitearch %(%{__python3} -Ic "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))") |
||||
%python3_version %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3])") |
||||
%python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3].replace('.',''))") |
||||
%py3dir %{_builddir}/python3-%{name}-%{version}-%{release} |
||||
|
||||
%py3_shbang_opts -s |
||||
|
||||
# Use the slashes after expand so that the command starts on the same line as |
||||
# the macro |
||||
%py3_build() %{expand:\\\ |
||||
CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ |
||||
%{__python3} %{py_setup} %{?py_setup_args} build --executable="%{__python3} %{py3_shbang_opts}" %{?*} |
||||
sleep 1 |
||||
} |
||||
|
||||
%py3_build_egg() %{expand:\\\ |
||||
CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ |
||||
%{__python3} %{py_setup} %{?py_setup_args} bdist_egg %{?*} |
||||
sleep 1 |
||||
} |
||||
|
||||
%py3_build_wheel() %{expand:\\\ |
||||
CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ |
||||
%{__python3} %{py_setup} %{?py_setup_args} bdist_wheel %{?*} |
||||
sleep 1 |
||||
} |
||||
|
||||
%py3_install() %{expand:\\\ |
||||
CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\ |
||||
%{__python3} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*} |
||||
} |
||||
|
||||
%py3_install_egg() %{expand:\\\ |
||||
mkdir -p %{buildroot}%{python3_sitelib} |
||||
easy_install-%{python3_version} -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python3_version}.egg %{?*} |
||||
} |
||||
|
||||
%py3_install_wheel() %{expand:\\\ |
||||
pip%{python3_version} install -I dist/%{1} --root %{buildroot} --strip-file-prefix %{buildroot} --no-deps |
||||
} |
@ -0,0 +1,166 @@
@@ -0,0 +1,166 @@
|
||||
Name: python-rpm-macros |
||||
Version: 3 |
||||
Release: 29%{?dist} |
||||
Summary: The unversioned Python RPM macros |
||||
License: MIT |
||||
Source0: macros.python |
||||
Source1: macros.python-srpm |
||||
Source2: macros.python2 |
||||
Source3: macros.python3 |
||||
Source4: macros.pybytecompile |
||||
BuildArch: noarch |
||||
# For %%python3_pkgversion used in %%python_provide |
||||
Requires: python-srpm-macros |
||||
Obsoletes: python-macros < 3 |
||||
Provides: python-macros = %{version}-%{release} |
||||
|
||||
|
||||
%description |
||||
This package contains the unversioned Python RPM macros, that most |
||||
implementations should rely on. |
||||
You should not need to install this package manually as the various |
||||
python?-devel packages require it. So install a python-devel package instead. |
||||
|
||||
%package -n python-srpm-macros |
||||
Summary: RPM macros for building Python source packages |
||||
%description -n python-srpm-macros |
||||
RPM macros for building Python source packages. |
||||
|
||||
#%package -n python2-rpm-macros |
||||
#Summary: RPM macros for building Python 2 packages |
||||
# Would need to be different for each release - worth it? |
||||
#Conflicts: python2-devel < 2.7.11-3 |
||||
#%description -n python2-rpm-macros |
||||
#RPM macros for building Python 2 packages. |
||||
|
||||
%package -n python3-rpm-macros |
||||
Summary: RPM macros for building Python 3 packages |
||||
# Would need to be different for each release - worth it? |
||||
#Conflicts: python3-devel < 3.5.1-3 |
||||
%description -n python3-rpm-macros |
||||
RPM macros for building Python 3 packages. |
||||
|
||||
|
||||
%prep |
||||
|
||||
%build |
||||
|
||||
%install |
||||
mkdir -p %{buildroot}//usr/lib/rpm/macros.d/ |
||||
install -m 644 \ |
||||
%{SOURCE1} \ |
||||
%{SOURCE3} \ |
||||
%{SOURCE4} \ |
||||
%{buildroot}/usr/lib/rpm/macros.d/ |
||||
|
||||
|
||||
%files |
||||
#/usr/lib/rpm/macros.d//macros.python |
||||
/usr/lib/rpm/macros.d//macros.pybytecompile |
||||
|
||||
%files -n python-srpm-macros |
||||
/usr/lib/rpm/macros.d//macros.python-srpm |
||||
|
||||
#%files -n python2-rpm-macros |
||||
#/usr/lib/rpm/macros.d//macros.python2 |
||||
|
||||
%files -n python3-rpm-macros |
||||
/usr/lib/rpm/macros.d//macros.python3 |
||||
|
||||
|
||||
%changelog |
||||
* Wed Apr 18 2018 Miro Hrončok <mhroncok@redhat.com> - 3-29 |
||||
- move macros.pybytecompile from python3-devel |
||||
|
||||
* Fri Apr 06 2018 Tomas Orsava <torsava@redhat.com> - 3-28 |
||||
- Fix the %%py_dist_name macro to not convert dots (".") into dashes, so that |
||||
submodules can be addressed as well |
||||
Resolves: rhbz#1564095 |
||||
|
||||
* Fri Mar 23 2018 Miro Hrončok <mhroncok@redhat.com> - 3-27 |
||||
- make LDFLAGS propagated whenever CFLAGS are |
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3-26 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild |
||||
|
||||
* Fri Jan 19 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3-25 |
||||
- Add %%python_enable_dependency_generator |
||||
|
||||
* Tue Nov 28 2017 Tomas Orsava <torsava@redhat.com> - 3-24 |
||||
- Remove platform-python macros (https://fedoraproject.org/wiki/Changes/Platform_Python_Stack) |
||||
|
||||
* Thu Oct 26 2017 Ville Skyttä <ville.skytta@iki.fi> - 3-23 |
||||
- Use -Es/-I to invoke macro scriptlets (#1506355) |
||||
|
||||
* Wed Aug 02 2017 Tomas Orsava <torsava@redhat.com> - 3-22 |
||||
- Add platform-python macros (https://fedoraproject.org/wiki/Changes/Platform_Python_Stack) |
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3-21 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild |
||||
|
||||
* Fri Mar 03 2017 Michal Cyprian <mcyprian@redhat.com> - 3-20 |
||||
- Revert "Switch %%__python3 to /usr/libexec/system-python" |
||||
after the Fedora Change https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe |
||||
was postponed |
||||
|
||||
* Fri Feb 17 2017 Michal Cyprian <mcyprian@redhat.com> - 3-19 |
||||
- Switch %%__python3 to /usr/libexec/system-python |
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3-18 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild |
||||
|
||||
* Mon Jan 23 2017 Michal Cyprian <mcyprian@redhat.com> - 3-17 |
||||
- Add --no-deps option to py_install_wheel macros |
||||
|
||||
* Tue Jan 17 2017 Tomas Orsava <torsava@redhat.com> - 3-16 |
||||
- Added macros for Build/Requires tags using Python dist tags: |
||||
https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages |
||||
|
||||
* Thu Nov 24 2016 Orion Poplawski <orion@cora.nwra.com> 3-15 |
||||
- Make expanded macros start on the same line as the macro |
||||
|
||||
* Wed Nov 16 2016 Orion Poplawski <orion@cora.nwra.com> 3-14 |
||||
- Fix %%py3_install_wheel (bug #1395953) |
||||
|
||||
* Wed Nov 16 2016 Orion Poplawski <orion@cora.nwra.com> 3-13 |
||||
- Add missing sleeps to other build macros |
||||
- Fix build_egg macros |
||||
- Add %%py_build_wheel and %%py_install_wheel macros |
||||
|
||||
* Tue Nov 15 2016 Orion Poplawski <orion@cora.nwra.com> 3-12 |
||||
- Add %%py_build_egg and %%py_install_egg macros |
||||
- Allow multiple args to %%py_build/install macros |
||||
- Tidy up macro formatting |
||||
|
||||
* Wed Aug 24 2016 Orion Poplawski <orion@cora.nwra.com> 3-11 |
||||
- Use %%rpmmacrodir |
||||
|
||||
* Tue Jul 12 2016 Orion Poplawski <orion@cora.nwra.com> 3-10 |
||||
- Do not generate useless Obsoletes with %%{?_isa} |
||||
|
||||
* Fri May 13 2016 Orion Poplawski <orion@cora.nwra.com> 3-9 |
||||
- Make python-rpm-macros require python-srpm-macros (bug #1335860) |
||||
|
||||
* Thu May 12 2016 Jason L Tibbitts III <tibbs@math.uh.edu> - 3-8 |
||||
- Add single-second sleeps to work around setuptools bug. |
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3-7 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||
|
||||
* Thu Jan 14 2016 Orion Poplawski <orion@cora.nwra.com> 3-6 |
||||
- Fix typo in %%python_provide |
||||
|
||||
* Thu Jan 14 2016 Orion Poplawski <orion@cora.nwra.com> 3-5 |
||||
- Handle noarch python sub-packages (bug #1290900) |
||||
|
||||
* Wed Jan 13 2016 Orion Poplawski <orion@cora.nwra.com> 3-4 |
||||
- Fix python2/3-rpm-macros package names |
||||
|
||||
* Thu Jan 7 2016 Orion Poplawski <orion@cora.nwra.com> 3-3 |
||||
- Add empty %%prep and %%build |
||||
|
||||
* Mon Jan 4 2016 Orion Poplawski <orion@cora.nwra.com> 3-2 |
||||
- Combined package |
||||
|
||||
* Wed Dec 30 2015 Orion Poplawski <orion@cora.nwra.com> 3-1 |
||||
- Initial package |
Loading…
Reference in new issue