Bytecompilation: Unset $SOURCE_DATE_EPOCH when %clamp_mtime_to_source_date_epoch is not set
https://fedoraproject.org/wiki/Changes/ReproducibleBuildsClampMtimes#Python_bytecode
This commit is contained in:
parent
e3494799f8
commit
eb7a4fda28
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
%py_byte_compile()\
|
%py_byte_compile()\
|
||||||
py2_byte_compile () {\
|
py2_byte_compile () {\
|
||||||
python_binary="env PYTHONHASHSEED=0 %1"\
|
python_binary="%{__env_unset_source_date_epoch_if_not_clamp_mtime} PYTHONHASHSEED=0 %1"\
|
||||||
bytecode_compilation_path="%2"\
|
bytecode_compilation_path="%2"\
|
||||||
failure=0\
|
failure=0\
|
||||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -s -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("'"$RPM_BUILD_ROOT"'")[2], doraise=True) for f in sys.argv[1:]]' || failure=1\
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -s -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("'"$RPM_BUILD_ROOT"'")[2], doraise=True) for f in sys.argv[1:]]' || failure=1\
|
||||||
@ -27,13 +27,13 @@ py2_byte_compile () {\
|
|||||||
}\
|
}\
|
||||||
\
|
\
|
||||||
py3_byte_compile () {\
|
py3_byte_compile () {\
|
||||||
python_binary="env PYTHONHASHSEED=0 %1"\
|
python_binary="%{__env_unset_source_date_epoch_if_not_clamp_mtime} PYTHONHASHSEED=0 %1"\
|
||||||
bytecode_compilation_path="%2"\
|
bytecode_compilation_path="%2"\
|
||||||
PYTHONPATH="%{_rpmconfigdir}/redhat" $python_binary -s -B -m compileall2 -o 0 -o 1 -s $RPM_BUILD_ROOT -p / --hardlink-dupes $bytecode_compilation_path \
|
PYTHONPATH="%{_rpmconfigdir}/redhat" $python_binary -s -B -m compileall2 -o 0 -o 1 -s $RPM_BUILD_ROOT -p / --hardlink-dupes $bytecode_compilation_path \
|
||||||
}\
|
}\
|
||||||
\
|
\
|
||||||
py39_byte_compile () {\
|
py39_byte_compile () {\
|
||||||
python_binary="env PYTHONHASHSEED=0 %1"\
|
python_binary="%{__env_unset_source_date_epoch_if_not_clamp_mtime} PYTHONHASHSEED=0 %1"\
|
||||||
bytecode_compilation_path="%2"\
|
bytecode_compilation_path="%2"\
|
||||||
$python_binary -s -B -m compileall -o 0 -o 1 -s $RPM_BUILD_ROOT -p / --hardlink-dupes $bytecode_compilation_path \
|
$python_binary -s -B -m compileall -o 0 -o 1 -s $RPM_BUILD_ROOT -p / --hardlink-dupes $bytecode_compilation_path \
|
||||||
}\
|
}\
|
||||||
|
@ -73,9 +73,12 @@
|
|||||||
## Should python bytecompilation compile outside python specific directories?
|
## Should python bytecompilation compile outside python specific directories?
|
||||||
## This always causes errors when enabled, see https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3
|
## This always causes errors when enabled, see https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3
|
||||||
%_python_bytecompile_extra 0
|
%_python_bytecompile_extra 0
|
||||||
|
## Helper macro to unset $SOURCE_DATE_EPOCH if %%clamp_mtime_to_source_date_epoch is not set
|
||||||
|
## https://fedoraproject.org/wiki/Changes/ReproducibleBuildsClampMtimes#Python_bytecode
|
||||||
|
%__env_unset_source_date_epoch_if_not_clamp_mtime %[0%{?clamp_mtime_to_source_date_epoch} == 0 ? "env -u SOURCE_DATE_EPOCH" : "env"]
|
||||||
|
|
||||||
## The individual BRP scripts
|
## The individual BRP scripts
|
||||||
%__brp_python_bytecompile %{_rpmconfigdir}/redhat/brp-python-bytecompile "" "%{?_python_bytecompile_errors_terminate_build}" "%{?_python_bytecompile_extra}"
|
%__brp_python_bytecompile %{__env_unset_source_date_epoch_if_not_clamp_mtime} %{_rpmconfigdir}/redhat/brp-python-bytecompile "" "%{?_python_bytecompile_errors_terminate_build}" "%{?_python_bytecompile_extra}"
|
||||||
%__brp_fix_pyc_reproducibility %{_rpmconfigdir}/redhat/brp-fix-pyc-reproducibility
|
%__brp_fix_pyc_reproducibility %{_rpmconfigdir}/redhat/brp-fix-pyc-reproducibility
|
||||||
%__brp_python_hardlink %{_rpmconfigdir}/redhat/brp-python-hardlink
|
%__brp_python_hardlink %{_rpmconfigdir}/redhat/brp-python-hardlink
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ elseif posix.stat('macros.python-srpm') then
|
|||||||
end
|
end
|
||||||
}
|
}
|
||||||
Version: %{__default_python3_version}
|
Version: %{__default_python3_version}
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -130,9 +130,10 @@ install -m 755 brp-* %{buildroot}%{_rpmconfigdir}/redhat/
|
|||||||
# It also ensures that:
|
# It also ensures that:
|
||||||
# - our BRPs can execute
|
# - our BRPs can execute
|
||||||
# - if our BRPs affect this package, we don't need to build it twice
|
# - if our BRPs affect this package, we don't need to build it twice
|
||||||
%global __brp_python_bytecompile %{buildroot}%{__brp_python_bytecompile}
|
%define add_buildroot() %{lua:print((macros[macros[1]]:gsub(macros._rpmconfigdir, macros.buildroot .. macros._rpmconfigdir)))}
|
||||||
%global __brp_python_hardlink %{buildroot}%{__brp_python_hardlink}
|
%global __brp_python_bytecompile %{add_buildroot __brp_python_bytecompile}
|
||||||
%global __brp_fix_pyc_reproducibility %{buildroot}%{__brp_fix_pyc_reproducibility}
|
%global __brp_python_hardlink %{add_buildroot __brp_python_hardlink}
|
||||||
|
%global __brp_fix_pyc_reproducibility %{add_buildroot __brp_fix_pyc_reproducibility}
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
@ -159,6 +160,9 @@ grep -E '^#[^%%]*%%[^%%]' %{buildroot}%{rpmmacrodir}/macros.* && exit 1 || true
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Dec 19 2022 Miro Hrončok <mhroncok@redhat.com> - 3.11-7
|
||||||
|
- Bytecompilation: Unset $SOURCE_DATE_EPOCH when %%clamp_mtime_to_source_date_epoch is not set
|
||||||
|
|
||||||
* Sun Nov 13 2022 Miro Hrončok <mhroncok@redhat.com> - 3.11-6
|
* Sun Nov 13 2022 Miro Hrončok <mhroncok@redhat.com> - 3.11-6
|
||||||
- Set PYTEST_XDIST_AUTO_NUM_WORKERS=%%{_smp_build_ncpus} from %%pytest
|
- Set PYTEST_XDIST_AUTO_NUM_WORKERS=%%{_smp_build_ncpus} from %%pytest
|
||||||
- pytest-xdist 3+ respects this value when -n auto is used
|
- pytest-xdist 3+ respects this value when -n auto is used
|
||||||
|
Loading…
Reference in New Issue
Block a user