python-rpm-macros updated
Signed-off-by: basebuilder_pel7ppc64lebuilder0 <basebuilder@powerel.org>master
parent
97c0362277
commit
b0903fb90a
|
@ -3,23 +3,22 @@
|
||||||
# Python's compile_all module only works on directories, and requires a max
|
# Python's compile_all module only works on directories, and requires a max
|
||||||
# recursion depth
|
# recursion depth
|
||||||
|
|
||||||
# Note that the py_byte_compile macro should work for python2 as well
|
# Usage:
|
||||||
# Which unfortunately makes the definition more complicated than it should be
|
# %py_byte_compile <interpereter> <path>
|
||||||
# The condition should be reversed once /usr/bin/python is python3!
|
# Example:
|
||||||
|
# %py_byte_compile %{__python3} %{buildroot}%{_datadir}/spam/plugins/
|
||||||
|
|
||||||
|
# This will terminate build on SyntaxErrors, if you want to avoid that,
|
||||||
|
# use it in a subshell like this:
|
||||||
|
# (%{py_byte_compile <interpereter> <path>}) || :
|
||||||
|
|
||||||
%py_byte_compile()\
|
%py_byte_compile()\
|
||||||
py2_byte_compile () {\
|
python_binary="%1"\
|
||||||
python_binary="%1"\
|
buildroot_path="%2"\
|
||||||
bytecode_compilation_path="%2"\
|
bytecode_compilation_path=".${buildroot_path/#$RPM_BUILD_ROOT}"\
|
||||||
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:]]' || :\
|
failure=0\
|
||||||
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:]]' || :\
|
pushd $RPM_BUILD_ROOT\
|
||||||
}\
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -m py_compile || failure=1\
|
||||||
\
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -m py_compile || failure=1\
|
||||||
py3_byte_compile () {\
|
popd\
|
||||||
python_binary="%1"\
|
test $failure -eq 0
|
||||||
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}
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# Use the slashes after expand so that the command starts on the same line as
|
# Use the slashes after expand so that the command starts on the same line as
|
||||||
# the macro
|
# the macro
|
||||||
%py_build() %{expand:\\\
|
%py_build() %{expand:\\\
|
||||||
CFLAGS="%{optflags}" %{__python} %{py_setup} %{?py_setup_args} build --executable="%{__python2} %{py_shbang_opts}" %{?*}
|
CFLAGS="%{optflags}" %{__python} %{py_setup} %{?py_setup_args} build --executable="%{__python} %{py_shbang_opts}" %{?*}
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,8 +51,29 @@
|
||||||
print(string.sub(package,9,string.len(package)))
|
print(string.sub(package,9,string.len(package)))
|
||||||
print(" < ")
|
print(" < ")
|
||||||
print(vr)
|
print(vr)
|
||||||
elseif (string.starts(package, "python" .. rpm.expand("%{python3_pkgversion}") .. "-")) then
|
elseif (string.starts(package, "python3-")) then
|
||||||
--No unversioned provides as python3 is not default
|
if (rpm.expand("%{?buildarch}") ~= "noarch") then
|
||||||
|
str = "Provides: python36-" .. string.sub(package,9,string.len(package)) .. "%{?_isa} = " .. vr
|
||||||
|
print(rpm.expand(str))
|
||||||
|
end
|
||||||
|
print("\\nProvides: python36-")
|
||||||
|
print(string.sub(package,9,string.len(package)))
|
||||||
|
print(" = ")
|
||||||
|
print(vr)
|
||||||
|
--Obsoleting the EPEL python36 package
|
||||||
|
print("\\nObsoletes: python36-")
|
||||||
|
print(string.sub(package,9,string.len(package)))
|
||||||
|
print(" < ")
|
||||||
|
print(vr)
|
||||||
|
elseif (string.starts(package, "python36-")) then
|
||||||
|
if (rpm.expand("%{?buildarch}") ~= "noarch") then
|
||||||
|
str = "Provides: python3-" .. string.sub(package,10,string.len(package)) .. "%{?_isa} = " .. vr
|
||||||
|
print(rpm.expand(str))
|
||||||
|
end
|
||||||
|
print("\\nProvides: python3-")
|
||||||
|
print(string.sub(package,10,string.len(package)))
|
||||||
|
print(" = ")
|
||||||
|
print(vr)
|
||||||
elseif (rpm.expand("%{?python3_other_pkgversion}") ~= "" and string.starts(package, "python" .. rpm.expand("%{python3_other_pkgversion}") .. "-")) then
|
elseif (rpm.expand("%{?python3_other_pkgversion}") ~= "" and string.starts(package, "python" .. rpm.expand("%{python3_other_pkgversion}") .. "-")) then
|
||||||
--No unversioned provides as python3_other is not default
|
--No unversioned provides as python3_other is not default
|
||||||
elseif (string.starts(package, "pypy-")) then
|
elseif (string.starts(package, "pypy-")) then
|
||||||
|
|
|
@ -57,7 +57,52 @@
|
||||||
end\
|
end\
|
||||||
for arg, name in ipairs(args) do\
|
for arg, name in ipairs(args) do\
|
||||||
canonical = rpm.expand("%py_dist_name " .. name);\
|
canonical = rpm.expand("%py_dist_name " .. name);\
|
||||||
print("python3dist(" .. canonical .. ") ");\
|
python3_version = rpm.expand("%python3_version");\
|
||||||
|
print("python" .. python3_version .. "dist(" .. canonical .. ") ");\
|
||||||
end\
|
end\
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Macro to replace overly complicated references to PyPI source files.
|
||||||
|
# Expands to the pythonhosted URL for a package
|
||||||
|
# Accepts zero to three arguments:
|
||||||
|
# 1: The PyPI project name, defaulting to %srcname if it is defined, then
|
||||||
|
# %pypi_name if it is defined, then just %name.
|
||||||
|
# 2: The PYPI version, defaulting to %version.
|
||||||
|
# 3: The file extension, defaulting to "tar.gz". (A period will be added
|
||||||
|
# automatically.)
|
||||||
|
# Requires %__pypi_url and %__pypi_default_extension to be defined.
|
||||||
|
%__pypi_url https://files.pythonhosted.org/packages/source/
|
||||||
|
%__pypi_default_extension tar.gz
|
||||||
|
|
||||||
|
%pypi_source() %{lua:
|
||||||
|
local src = rpm.expand('%1')
|
||||||
|
local ver = rpm.expand('%2')
|
||||||
|
local ext = rpm.expand('%3')
|
||||||
|
local url = rpm.expand('%__pypi_url')
|
||||||
|
\
|
||||||
|
-- If no first argument, try %srcname, then %pypi_name, then %name
|
||||||
|
-- Note that rpm leaves macros unchanged if they are not defined.
|
||||||
|
if src == '%1' then
|
||||||
|
src = rpm.expand('%srcname')
|
||||||
|
end
|
||||||
|
if src == '%srcname' then
|
||||||
|
src = rpm.expand('%pypi_name')
|
||||||
|
end
|
||||||
|
if src == '%pypi_name' then
|
||||||
|
src = rpm.expand('%name')
|
||||||
|
end
|
||||||
|
\
|
||||||
|
-- If no second argument, use %version
|
||||||
|
if ver == '%2' then
|
||||||
|
ver = rpm.expand('%version')
|
||||||
|
end
|
||||||
|
\
|
||||||
|
-- If no third argument, use the preset default extension
|
||||||
|
if ext == '%3' then
|
||||||
|
ext = rpm.expand('%__pypi_default_extension')
|
||||||
|
end
|
||||||
|
\
|
||||||
|
local first = string.sub(src, 1, 1)
|
||||||
|
\
|
||||||
|
print(url .. first .. '/' .. src .. '/' .. src .. '-' .. ver .. '.' .. ext)
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
%python3_sitearch %(%{__python3} -Ic "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
|
%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 %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3])")
|
||||||
%python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3].replace('.',''))")
|
%python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3].replace('.',''))")
|
||||||
|
%python3_platform %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_platform())")
|
||||||
%py3dir %{_builddir}/python3-%{name}-%{version}-%{release}
|
%py3dir %{_builddir}/python3-%{name}-%{version}-%{release}
|
||||||
|
|
||||||
%py3_shbang_opts -s
|
%py3_shbang_opts -s
|
||||||
|
|
|
@ -1,42 +1,49 @@
|
||||||
|
%global rpmmacrodir %{_sysconfdir}/rpm
|
||||||
|
|
||||||
Name: python-rpm-macros
|
Name: python-rpm-macros
|
||||||
Version: 3
|
Version: 3
|
||||||
Release: 29%{?dist}
|
Release: 34%{?dist}
|
||||||
Summary: The unversioned Python RPM macros
|
Summary: The unversioned Python RPM macros
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
Source0: macros.python
|
Source0: macros.python
|
||||||
Source1: macros.python-srpm
|
Source1: macros.python-srpm
|
||||||
Source2: macros.python2
|
Source2: macros.python2
|
||||||
Source3: macros.python3
|
Source3: macros.python3
|
||||||
Source4: macros.pybytecompile
|
Source4: macros.pybytecompile
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
# The macro file has been moved from the python-devel package
|
||||||
|
Conflicts: python-devel < 2.7.5-78
|
||||||
# For %%python3_pkgversion used in %%python_provide
|
# For %%python3_pkgversion used in %%python_provide
|
||||||
Requires: python-srpm-macros
|
Requires: python-srpm-macros
|
||||||
Obsoletes: python-macros < 3
|
|
||||||
Provides: python-macros = %{version}-%{release}
|
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This package contains the unversioned Python RPM macros, that most
|
This package contains the unversioned Python RPM macros, that most
|
||||||
implementations should rely on.
|
implementations should rely on.
|
||||||
|
|
||||||
You should not need to install this package manually as the various
|
You should not need to install this package manually as the various
|
||||||
python?-devel packages require it. So install a python-devel package instead.
|
python?-devel packages require it. So install a python-devel package instead.
|
||||||
|
|
||||||
%package -n python-srpm-macros
|
%package -n python-srpm-macros
|
||||||
Summary: RPM macros for building Python source packages
|
Summary: RPM macros for building Python source packages
|
||||||
|
|
||||||
%description -n python-srpm-macros
|
%description -n python-srpm-macros
|
||||||
RPM macros for building Python source packages.
|
RPM macros for building Python source packages.
|
||||||
|
|
||||||
#%package -n python2-rpm-macros
|
%package -n python2-rpm-macros
|
||||||
#Summary: RPM macros for building Python 2 packages
|
Summary: RPM macros for building Python 2 packages
|
||||||
# Would need to be different for each release - worth it?
|
# The macro file has been moved from the python-devel package
|
||||||
#Conflicts: python2-devel < 2.7.11-3
|
Conflicts: python-devel < 2.7.5-78
|
||||||
#%description -n python2-rpm-macros
|
|
||||||
#RPM macros for building Python 2 packages.
|
%description -n python2-rpm-macros
|
||||||
|
RPM macros for building Python 2 packages.
|
||||||
|
|
||||||
%package -n python3-rpm-macros
|
%package -n python3-rpm-macros
|
||||||
Summary: RPM macros for building Python 3 packages
|
Summary: RPM macros for building Python 3 packages
|
||||||
# Would need to be different for each release - worth it?
|
# Would need to be different for each release - worth it?
|
||||||
#Conflicts: python3-devel < 3.5.1-3
|
#Conflicts: python3-devel < 3.5.1-3
|
||||||
|
|
||||||
%description -n python3-rpm-macros
|
%description -n python3-rpm-macros
|
||||||
RPM macros for building Python 3 packages.
|
RPM macros for building Python 3 packages.
|
||||||
|
|
||||||
|
@ -46,36 +53,58 @@ RPM macros for building Python 3 packages.
|
||||||
%build
|
%build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}//usr/lib/rpm/macros.d/
|
mkdir -p %{buildroot}/%{_sysconfdir}/rpm
|
||||||
install -m 644 \
|
mkdir -p %{buildroot}/%{rpmmacrodir}
|
||||||
%{SOURCE1} \
|
install -m 644 %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} \
|
||||||
%{SOURCE3} \
|
%{buildroot}/%{_sysconfdir}/rpm/
|
||||||
%{SOURCE4} \
|
|
||||||
%{buildroot}/usr/lib/rpm/macros.d/
|
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
#/usr/lib/rpm/macros.d//macros.python
|
%{rpmmacrodir}/macros.python
|
||||||
/usr/lib/rpm/macros.d//macros.pybytecompile
|
%{rpmmacrodir}/macros.pybytecompile
|
||||||
|
|
||||||
%files -n python-srpm-macros
|
%files -n python-srpm-macros
|
||||||
/usr/lib/rpm/macros.d//macros.python-srpm
|
%{rpmmacrodir}/macros.python-srpm
|
||||||
|
|
||||||
#%files -n python2-rpm-macros
|
%files -n python2-rpm-macros
|
||||||
#/usr/lib/rpm/macros.d//macros.python2
|
%{rpmmacrodir}/macros.python2
|
||||||
|
|
||||||
%files -n python3-rpm-macros
|
%files -n python3-rpm-macros
|
||||||
/usr/lib/rpm/macros.d//macros.python3
|
%{rpmmacrodir}/macros.python3
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Apr 18 2018 Miro Hrončok <mhroncok@redhat.com> - 3-29
|
* Tue Mar 17 2020 Miro Hrončok <mhroncok@redhat.com> - 3-34
|
||||||
- move macros.pybytecompile from python3-devel
|
- Make the %%py3_dist macro compatible with Python RPM generators
|
||||||
|
Resolves: rhbz#1812665
|
||||||
|
|
||||||
|
* Wed Mar 04 2020 Charalampos Stratakis <cstratak@redhat.com> - 3-33
|
||||||
|
- Fix the %%py_build macro to respect the global definition of %%__python
|
||||||
|
Resolves: rhbz#1757834
|
||||||
|
|
||||||
|
* Wed Apr 24 2019 Miro Hrončok <mhroncok@redhat.com> - 3-32
|
||||||
|
- %%python_provide: Obsolete and provide python36- from python3-
|
||||||
|
- %%python_provide: Provide python3- from python36-
|
||||||
|
Resolves: rhbz#1702719
|
||||||
|
|
||||||
|
* Mon Jan 14 2019 Lumír Balhar <lbalhar@redhat.com> - 3-31
|
||||||
|
- Converting specfile from F28 to RHEL7
|
||||||
|
- Move the macros to the standard RHEL7 macro location at /etc/rpm/,
|
||||||
|
instead of Fedora's location at /usr/lib/rpm/macros.d/
|
||||||
|
- Import the macros.python{,2} files from the python-devel package where they
|
||||||
|
resided until now, and Conflict with that old version of python-devel
|
||||||
|
- Import the macros.pybytecompile from Fedora rawhide / RHEL8
|
||||||
|
Resolves: rhbz#1660579
|
||||||
|
|
||||||
|
* Mon Jul 09 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 3-30
|
||||||
|
- Backport %%python3_platform macro.
|
||||||
|
|
||||||
|
* Mon Jun 18 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 3-29
|
||||||
|
- Add %%pypi_source macro.
|
||||||
|
|
||||||
* Fri Apr 06 2018 Tomas Orsava <torsava@redhat.com> - 3-28
|
* 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
|
- Fix the %%py_dist_name macro to not convert dots (".") into dashes, so that
|
||||||
submodules can be addressed as well
|
submodules can be addressed as well Resolves: rhbz#1564095
|
||||||
Resolves: rhbz#1564095
|
|
||||||
|
|
||||||
* Fri Mar 23 2018 Miro Hrončok <mhroncok@redhat.com> - 3-27
|
* Fri Mar 23 2018 Miro Hrončok <mhroncok@redhat.com> - 3-27
|
||||||
- make LDFLAGS propagated whenever CFLAGS are
|
- make LDFLAGS propagated whenever CFLAGS are
|
||||||
|
|
Loading…
Reference in New Issue