pyproject-rpm-macros/tests/double-install.spec
Miro Hrončok 07256169d8 Avoid non-fatal errors in %pyproject_install with multiple wheels
Use double quotes around a shell variable that may contain spaces.

There were errors like:

    + '[' -z markupsafe==2.0.1 tldr==0.4.4 ']'
    /var/tmp/rpm-tmp.v6rA4u: line 55: [: markupsafe==2.0.1: binary operator expected

Or:

    + '[' -z nemo_audio_tab==6.4.0 nemo_compare==6.4.0 nemo_emblems==6.4.0 nemo_pastebin==6.4.0 nemo_terminal==6.4.0 ']'
    /var/tmp/rpm-tmp.BD4qxp: line 53: [: too many arguments

But considering the exit code of [ was non-zero, the built continued.

(cherry picked from Fedora commit f0b3a0b860)
2025-12-01 16:42:40 +01:00

71 lines
2.0 KiB
RPMSpec

Name: double-install
Version: 0
Release: 0%{?dist}
Summary: Install 2 wheels
License: BSD-3-Clause AND MIT
%global markupsafe_version 2.0.1
%global tldr_version 0.4.4
Source1: https://github.com/pallets/markupsafe/archive/%{markupsafe_version}/MarkupSafe-%{markupsafe_version}.tar.gz
Source2: %{pypi_source tldr %{tldr_version}}
BuildRequires: gcc
BuildRequires: python3-devel
%description
This package tests that we can build and install 2 wheels at once.
One of them is "noarch" and one has an extension module.
%prep
%setup -Tc
tar xf %{SOURCE1}
tar xf %{SOURCE2}
%generate_buildrequires
cd markupsafe-%{markupsafe_version}
%pyproject_buildrequires -R
cd ../tldr-%{tldr_version}
%pyproject_buildrequires -R
cd ..
%build
cd markupsafe-%{markupsafe_version}
%pyproject_wheel
cd ../tldr-%{tldr_version}
%pyproject_wheel
cd ..
%install
(
# This should install both the wheels:
%pyproject_install
) 2>&1 | tee install.log
#pyproject_save_files is not possible with 2 dist-infos
%check
# Internal check for the value of %%{pyproject_build_lib}
cd markupsafe-%{markupsafe_version}
%if 0%{?rhel} == 9
test "%{pyproject_build_lib}" == "%{_builddir}/%{buildsubdir}/markupsafe-%{markupsafe_version}/build/lib.%{python3_platform}-%{python3_version}"
%else
test "%{pyproject_build_lib}" == "%{_builddir}/%{buildsubdir}/markupsafe-%{markupsafe_version}/build/lib.%{python3_platform}-cpython-%{python3_version_nodots}"
%endif
cd ../tldr-%{tldr_version}
test "%{pyproject_build_lib}" == "%{_builddir}/%{buildsubdir}/tldr-%{tldr_version}/build/lib"
cd ..
# Internal regression check for %%pyproject_install with multiple wheels
grep 'binary operator expected' install.log && exit 1 || true
grep 'too many arguments' install.log && exit 1 || true
%files
%{_bindir}/tldr*
%pycached %{python3_sitelib}/tldr.py
%{python3_sitelib}/tldr-%{tldr_version}.dist-info/
%{python3_sitearch}/[Mm]arkup[Ss]afe-%{markupsafe_version}.dist-info/
%{python3_sitearch}/markupsafe/