diff --git a/macros.pyproject b/macros.pyproject index f77729d..ad2b385 100644 --- a/macros.pyproject +++ b/macros.pyproject @@ -31,30 +31,26 @@ if [ -d %{buildroot}%{_bindir} ]; then rm -rfv %{buildroot}%{_bindir}/__pycache__ fi rm -f %{pyproject_ghost_distinfo} +site_dirs=() +# Process %%{python3_sitelib} if exists if [ -d %{buildroot}%{python3_sitelib} ]; then - for distinfo in %{buildroot}%{python3_sitelib}/*.dist-info; do - echo "%ghost ${distinfo#%{buildroot}}" >> %{pyproject_ghost_distinfo} - sed -i 's/pip/rpm/' ${distinfo}/INSTALLER - if [ -f ${distinfo}/RECORD ]; then - PYTHONPATH=%{_rpmconfigdir}/redhat \\ - %{__python3} -B %{_rpmconfigdir}/redhat/pyproject_preprocess_record.py \\ - --buildroot %{buildroot} --record ${distinfo}/RECORD --output %{pyproject_record} - rm ${distinfo}/RECORD - fi - done + site_dirs+=( "%{python3_sitelib}" ) fi +# Process %%{python3_sitearch} if exists and does not equal to %%{python3_sitelib} if [ %{buildroot}%{python3_sitearch} != %{buildroot}%{python3_sitelib} ] && [ -d %{buildroot}%{python3_sitearch} ]; then - for distinfo in %{buildroot}%{python3_sitearch}/*.dist-info; do + site_dirs+=( "%{python3_sitearch}" ) +fi +# Process all *.dist-info dirs in sitelib/sitearch +for site_dir in ${site_dirs[@]}; do + for distinfo in %{buildroot}$site_dir/*.dist-info; do echo "%ghost ${distinfo#%{buildroot}}" >> %{pyproject_ghost_distinfo} sed -i 's/pip/rpm/' ${distinfo}/INSTALLER - if [ -f ${distinfo}/RECORD ]; then - PYTHONPATH=%{_rpmconfigdir}/redhat \\ - %{__python3} -B %{_rpmconfigdir}/redhat/pyproject_preprocess_record.py \\ - --buildroot %{buildroot} --record ${distinfo}/RECORD --output %{pyproject_record} - rm ${distinfo}/RECORD - fi + PYTHONPATH=%{_rpmconfigdir}/redhat \\ + %{__python3} -B %{_rpmconfigdir}/redhat/pyproject_preprocess_record.py \\ + --buildroot %{buildroot} --record ${distinfo}/RECORD --output %{pyproject_record} + rm ${distinfo}/RECORD done -fi +done lines=$(wc -l %{pyproject_ghost_distinfo} | cut -f1 -d" ") if [ $lines -ne 1 ]; then echo -e "\\n\\nWARNING: %%%%pyproject_extras_subpkg won't work without explicit -i or -F, found $lines dist-info directories.\\n\\n" >/dev/stderr