Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
24dc66a003 | ||
|
3cce7271e4 |
@ -14,8 +14,7 @@
|
||||
|
||||
%py_setup setup.py
|
||||
%_py_shebang_s s
|
||||
%_py_shebang_P %(RPM_BUILD_ROOT= %{__python} -Esc "import sys; print('P' if hasattr(sys.flags, 'safe_path') else '')")
|
||||
%py_shbang_opts -%{?_py_shebang_s}%{?_py_shebang_P}
|
||||
%py_shbang_opts -%{?_py_shebang_s}
|
||||
%py_shbang_opts_nodash %(opts=%{py_shbang_opts}; echo ${opts#-})
|
||||
%py_shebang_flags %(opts=%{py_shbang_opts}; echo ${opts#-})
|
||||
%py_shebang_fix %{expand:\\\
|
||||
|
@ -17,7 +17,7 @@
|
||||
# There are two macros:
|
||||
#
|
||||
# This always contains the major.minor version (with dots), default for %%python3_version.
|
||||
%__default_python3_version 3.11
|
||||
%__default_python3_version 3.10
|
||||
#
|
||||
# The pkgname version that determines the alternative provide name (e.g. python3.9-foo),
|
||||
# set to the same as above, but historically hasn't included the dot.
|
||||
|
@ -12,8 +12,7 @@
|
||||
%py3dir %{_builddir}/python3-%{name}-%{version}-%{release}
|
||||
|
||||
%_py3_shebang_s s
|
||||
%_py3_shebang_P %(RPM_BUILD_ROOT= %{__python3} -Ic "import sys; print('P' if hasattr(sys.flags, 'safe_path') else '')")
|
||||
%py3_shbang_opts -%{?_py3_shebang_s}%{?_py3_shebang_P}
|
||||
%py3_shbang_opts -%{?_py3_shebang_s}
|
||||
%py3_shbang_opts_nodash %(opts=%{py3_shbang_opts}; echo ${opts#-})
|
||||
%py3_shebang_flags %(opts=%{py3_shbang_opts}; echo ${opts#-})
|
||||
%py3_shebang_fix %{expand:\\\
|
||||
|
@ -49,7 +49,7 @@ elseif posix.stat('macros.python-srpm') then
|
||||
end
|
||||
}
|
||||
Version: %{__default_python3_version}
|
||||
Release: 4%{?dist}
|
||||
Release: 19%{?dist}
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
@ -151,20 +151,9 @@ grep -E '^#[^%%]*%%[^%%]' %{buildroot}%{rpmmacrodir}/macros.* && exit 1 || true
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.10-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Tue Jul 19 2022 Miro Hrončok <mhroncok@redhat.com> - 3.11-3
|
||||
- Add "P" to %%py3_shbang_opts, %%py3_shbang_opts_nodash, %%py3_shebang_flags
|
||||
and to %%py_shbang_opts, %%py_shbang_opts_nodash, %%py_shebang_flags
|
||||
- https://fedoraproject.org/wiki/Changes/PythonSafePath
|
||||
|
||||
* Mon Jun 20 2022 Miro Hrončok <mhroncok@redhat.com> - 3.11-2
|
||||
* Tue Jul 19 2022 Miro Hrončok <mhroncok@redhat.com> - 3.10-19
|
||||
- Define %%python3_cache_tag / %%python_cache_tag, e.g. cpython-311
|
||||
|
||||
* Mon Jun 13 2022 Tomáš Hrnčiar <thrnciar@redhat.com> - 3.11-1
|
||||
- Update main Python to Python 3.11
|
||||
- https://fedoraproject.org/wiki/Changes/Python3.11
|
||||
- Define and use %%{_py3_shebang_s} in the shebang macros for easier opt-out
|
||||
|
||||
* Thu May 26 2022 Owen Taylor <otaylor@redhat.com> - 3.10-18
|
||||
- Support installing to %%{_prefix} other than /usr
|
||||
|
@ -85,11 +85,6 @@ alt_x_y = pytest.fixture(scope="session")(get_alt_x_y)
|
||||
alt_xy = pytest.fixture(scope="session")(get_alt_xy)
|
||||
|
||||
|
||||
# https://fedoraproject.org/wiki/Changes/PythonSafePath
|
||||
def safe_path_flag(x_y):
|
||||
return 'P' if tuple(int(i) for i in x_y.split('.')) >= (3, 11) else ''
|
||||
|
||||
|
||||
def shell_stdout(script):
|
||||
return subprocess.check_output(script,
|
||||
env={**os.environ, 'LANG': 'C.utf-8'},
|
||||
@ -414,7 +409,7 @@ def test_py3_shebang_fix():
|
||||
def test_py3_shebang_fix_default_shebang_flags():
|
||||
lines = rpm_eval('%py3_shebang_fix arg1 arg2')
|
||||
lines[-1] = 'echo $shebang_flags'
|
||||
assert shell_stdout('\n'.join(lines)) == f'-kas{safe_path_flag(X_Y)}'
|
||||
assert shell_stdout('\n'.join(lines)) == '-kas'
|
||||
|
||||
|
||||
def test_py3_shebang_fix_custom_shebang_flags():
|
||||
@ -427,24 +422,6 @@ def test_py3_shebang_fix_custom_shebang_flags():
|
||||
def test_py3_shebang_fix_undefined_py3_shebang_s(_py3_shebang_s):
|
||||
lines = rpm_eval('%py3_shebang_fix arg1 arg2', _py3_shebang_s=_py3_shebang_s)
|
||||
lines[-1] = 'echo $shebang_flags'
|
||||
expected = f'-ka{safe_path_flag(X_Y)}' if safe_path_flag(X_Y) else '-k'
|
||||
assert shell_stdout('\n'.join(lines)) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize('_py3_shebang_P', [None, '%{nil}'])
|
||||
def test_py3_shebang_fix_undefined_py3_shebang_P(_py3_shebang_P):
|
||||
lines = rpm_eval('%py3_shebang_fix arg1 arg2', _py3_shebang_P=_py3_shebang_P)
|
||||
lines[-1] = 'echo $shebang_flags'
|
||||
assert shell_stdout('\n'.join(lines)) == '-kas'
|
||||
|
||||
|
||||
@pytest.mark.parametrize('_py3_shebang_s', [None, '%{nil}'])
|
||||
@pytest.mark.parametrize('_py3_shebang_P', [None, '%{nil}'])
|
||||
def test_py3_shebang_fix_undefined_py3_shebang_sP(_py3_shebang_s, _py3_shebang_P):
|
||||
lines = rpm_eval('%py3_shebang_fix arg1 arg2',
|
||||
_py3_shebang_s=_py3_shebang_s,
|
||||
_py3_shebang_P=_py3_shebang_P)
|
||||
lines[-1] = 'echo $shebang_flags'
|
||||
assert shell_stdout('\n'.join(lines)) == '-k'
|
||||
|
||||
|
||||
@ -803,6 +780,7 @@ def test_py3_check_import(args, expected_args, __python3, lib):
|
||||
macros = {
|
||||
'buildroot': 'BUILDROOT',
|
||||
'_rpmconfigdir': 'RPMCONFIGDIR',
|
||||
'py3_shebang_flags': 's',
|
||||
}
|
||||
if __python3 is not None:
|
||||
if 'X.Y' in __python3:
|
||||
@ -827,7 +805,7 @@ def test_py3_check_import(args, expected_args, __python3, lib):
|
||||
PYTHONPATH="${{PYTHONPATH:-BUILDROOT/usr/{lib}/python{x_y}/site-packages:BUILDROOT/usr/lib/python{x_y}/site-packages}}"
|
||||
_PYTHONSITE="BUILDROOT/usr/{lib}/python{x_y}/site-packages:BUILDROOT/usr/lib/python{x_y}/site-packages"
|
||||
PYTHONDONTWRITEBYTECODE=1
|
||||
{__python3 or '/usr/bin/python3'} -s{safe_path_flag(x_y)} RPMCONFIGDIR/redhat/import_all_modules.py {expected_args}
|
||||
{__python3 or '/usr/bin/python3'} -s RPMCONFIGDIR/redhat/import_all_modules.py {expected_args}
|
||||
""")
|
||||
assert lines == expected.splitlines()
|
||||
|
||||
@ -835,7 +813,6 @@ def test_py3_check_import(args, expected_args, __python3, lib):
|
||||
@pytest.mark.parametrize(
|
||||
'shebang_flags_value, expected_shebang_flags',
|
||||
[
|
||||
('sP', '-sP'),
|
||||
('s', '-s'),
|
||||
('%{nil}', ''),
|
||||
(None, ''),
|
||||
|
Loading…
Reference in New Issue
Block a user