#436 Backport updates for EPEL8
Opened 4 months ago by orion. Modified 4 months ago
rpms/ orion/pyproject-rpm-macros epel8-namespace_directories  into  epel8

file modified
+12
@@ -251,6 +251,12 @@ 

  and  language (`*.mo`) files with `%lang` macro and appropriate language code.

  Only license files declared via [PEP 639] `License-File` field are detected.

  [PEP 639] is still a draft and can be changed in the future.

+ It is possible to use the `-l` flag to declare that a missing license should

+ terminate the build or `-L` (the default) to explicitly disable this check.

+ Packagers are encouraged to use the `-l` flag when the `%license` file is not manually listed in `%files`

+ to avoid accidentally losing the file in a future version.

+ When the `%license` file is manually listed in `%files`,

+ packagers can use the `-L` flag to ensure future compatibility in case the `-l` behavior eventually becomes a default.

  

  Note that `%pyproject_save_files` uses data from the [RECORD file](https://www.python.org/dev/peps/pep-0627/).

  If you wish to rename, remove or otherwise change the installed files of a package
@@ -305,6 +311,12 @@ 

  additional qualified module names to check, useful for example if some modules are installed manually.

  Note that filtering by `-t`/`-e` also applies to the positional arguments.

  

+ Another macro, `%_pyproject_check_import_allow_no_modules` allows to pass the import check,

+ even if no Python modules are detected in the package.

+ This may be a valid case for packages containing e.g. typing stubs.

+ Don't use this macro in Fedora packages.

+ It's only intended to be used in automated build environments such as Copr.

+ 

  

  Generating Extras subpackages

  -----------------------------

file modified
+19 -5
@@ -1,5 +1,9 @@ 

+ # This is a backward-compatible suffix used in all pyproject-rpm-macros directories

+ # For the main Python it's empty, for all others it's "-3.X"

+ %_pyproject_files_pkgversion -%{python3_pkgversion}

This no longer does the same thing as the comment says.

+ 

  # This is a directory where wheels are stored and installed from, absolute

- %_pyproject_wheeldir %{_builddir}%{?buildsubdir:/%{buildsubdir}}/pyproject-wheeldir

+ %_pyproject_wheeldir %{_builddir}%{?buildsubdir:/%{buildsubdir}}/pyproject-wheeldir%{_pyproject_files_pkgversion}

  

  # This is a directory used as TMPDIR, where pip copies sources to and builds from, relative to PWD

  # For proper debugsource packages, we create TMPDIR within PWD
@@ -8,12 +12,12 @@ 

  # This will be used in debugsource package paths (applies to extension modules only)

  # NB: pytest collects tests from here if not hidden

  #     https://docs.pytest.org/en/latest/reference.html#confval-norecursedirs

- %_pyproject_builddir %{_builddir}%{?buildsubdir:/%{buildsubdir}}/.pyproject-builddir

+ %_pyproject_builddir %{_builddir}%{?buildsubdir:/%{buildsubdir}}/.pyproject-builddir%{_pyproject_files_pkgversion}

  

  # We prefix all created files with this value to make them unique

  # Ideally, we would put them into %%{buildsubdir}, but that value changes during the spec

  # The used value is similar to the one used to define the default %%buildroot

- %_pyproject_files_prefix %{name}-%{version}-%{release}.%{_arch}

+ %_pyproject_files_prefix %{name}-%{version}-%{release}.%{_arch}%{_pyproject_files_pkgversion}

  

  %pyproject_files %{_builddir}/%{_pyproject_files_prefix}-pyproject-files

  %_pyproject_modules %{_builddir}/%{_pyproject_files_prefix}-pyproject-modules
@@ -64,6 +68,10 @@ 

  

  %pyproject_install() %{expand:\\\

  specifier=$(ls %{_pyproject_wheeldir}/*.whl | xargs basename --multiple | sed -E 's/([^-]+)-([^-]+)-.+\\\.whl/\\\1==\\\2/')

+ if [ -z $specifier ]; then

+   echo 'ERROR: %%%%pyproject_install found no wheel in %%%%{_pyproject_wheeldir} %{_pyproject_wheeldir}' >&2

+   exit 1

+ fi

  TMPDIR="%{_pyproject_builddir}" %{__python3} -m pip install --root %{buildroot} --prefix %{_prefix} --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links %{_pyproject_wheeldir} $specifier

  if [ -d %{buildroot}%{_bindir} ]; then

    %py3_shebang_fix %{buildroot}%{_bindir}/*
@@ -103,7 +111,7 @@ 

  %pyproject_extras_subpkg(n:i:f:F) %{expand:%{?python_extras_subpkg:%{python_extras_subpkg%{?!-i:%{?!-f:%{?!-F: -f %{_pyproject_ghost_distinfo}}}} %**}}}

  

  

- %pyproject_save_files() %{expand:\\\

+ %pyproject_save_files(lL) %{expand:\\\

  %{__python3} %{_rpmconfigdir}/redhat/pyproject_save_files.py \\

    --output-files "%{pyproject_files}" \\

    --output-modules "%{_pyproject_modules}" \\
@@ -113,7 +121,7 @@ 

    --python-version "%{python3_version}" \\

    --pyproject-record "%{_pyproject_record}" \\

    --prefix "%{_prefix}" \\

-   %{*}

+   %{**}

  }

  

  # -t - Process only top-level modules
@@ -127,3 +135,9 @@ 

  }

  

  

+ %_pyproject_check_import_allow_no_modules(e:t) \

+ if [ -z "$(cat %{_pyproject_modules})" ]; then\

+   echo "No modules to check found, exiting check"\

+ else\

+   %pyproject_check_import %{?**}\

+ fi

file modified
+17 -2
@@ -15,8 +15,8 @@ 

  #   Increment Y and reset Z when new macros or features are added

  #   Increment Z when this is a bugfix or a cosmetic change

  # Dropping support for EOL Fedoras is *not* considered a breaking change

- Version:        0.1.8.0

- Release:        2%{?dist}

+ Version:        0.1.12.0

+ Release:        1%{?dist}

  

  # Macro files

  Source001:      macros.pyproject
@@ -137,6 +137,21 @@ 

  

  

  %changelog

+ * Thu Jan 25 2024 Miro Hrončok <mhroncok@redhat.com> - 0.1.12.0-1

+ - Namespace pyproject-rpm-macros generated text files with %%{python3_pkgversion}

+ - That way, a single-spec can be used to build packages for multiple Python versions

+ - Fixes: rhbz#2209055

+ 

+ * Thu Jan 25 2024 Miro Hrončok <mhroncok@redhat.com> - 0.1.11.0-1

+ - Add the -l/-L flag to %%pyproject_save_files

+ - The -l flag can be used to assert at least 1 License-File was detected

+ - The -L flag explicitly disables this check (which remains the default)

+ - Show a better error message when %%pyproject_install finds no wheel

+ - Fixes: rhbz#2242452

+ 

+ * Thu Jan 25 2024 Karolina Surma <ksurma@redhat.com> - 0.1.10.0-1

+ - Add %%_pyproject_check_import_allow_no_modules for automated environments

+ 

  * Wed Jan 03 2024 Miro Hrončok <mhroncok@redhat.com> - 0.1.8.0-2

  - Add Python 3.12 RPM dependencies

  

file modified
+28 -3
@@ -636,7 +636,7 @@ 

          content = json.load(pyproject_record_file)

  

      if len(content) > 1:

-         raise FileExistsError("%pyproject install has found more than one *.dist-info/RECORD file. "

+         raise FileExistsError("%pyproject_install has found more than one *.dist-info/RECORD file. "

                                "Currently, %pyproject_save_files supports only one wheel → one file list mapping. "

                                "Feel free to open a bugzilla for pyproject-rpm-macros and describe your usecase.")

  
@@ -656,12 +656,15 @@ 

      return dist.metadata

  

  

- def pyproject_save_files_and_modules(buildroot, sitelib, sitearch, python_version, pyproject_record, prefix, varargs):

+ def pyproject_save_files_and_modules(buildroot, sitelib, sitearch, python_version, pyproject_record, prefix, assert_license, varargs):

      """

      Takes arguments from the %{pyproject_save_files} macro

  

      Returns tuple: list of paths for the %files section and list of module names

      for the %check section

+ 

+     Raises ValueError when assert_license is true and no License-File (PEP 639)

+     is found.

      """

      # On 32 bit architectures, sitelib equals to sitearch

      # This saves us browsing one directory twice
@@ -673,11 +676,15 @@ 

      final_file_list = []

      final_module_list = []

  

+     # we assume OK when not asserting

+     license_ok = not assert_license

+ 

      for record_path, files in parsed_records.items():

          metadata = dist_metadata(buildroot, record_path)

          paths_dict = classify_paths(

              record_path, files, metadata, sitedirs, python_version, prefix

          )

+         license_ok = license_ok or bool(paths_dict["metadata"]["licenses"])

  

          final_file_list.extend(

              generate_file_list(paths_dict, globs, include_auto)
@@ -686,6 +693,15 @@ 

              generate_module_list(paths_dict, globs)

          )

  

+     if not license_ok:

+         raise ValueError(

+             "No License-File (PEP 639) in upstream metadata found. "

+             "Adjust the upstream metadata "

+             "if the project's build backend supports PEP 639 "

+             "or use `%pyproject_save_files -L` "

+             "and include the %license file in %files manually."

+         )

+ 

      return final_file_list, final_module_list

  

  
@@ -697,6 +713,7 @@ 

          cli_args.python_version,

          cli_args.pyproject_record,

          cli_args.prefix,

+         cli_args.assert_license,

          cli_args.varargs,

      )

  
@@ -710,7 +727,7 @@ 

          prog="%pyproject_save_files",

          add_help=False,

          # custom usage to add +auto

-         usage="%(prog)s MODULE_GLOB [MODULE_GLOB ...] [+auto]",

+         usage="%(prog)s  [-l|-L] MODULE_GLOB [MODULE_GLOB ...] [+auto]",

      )

      parser.add_argument(

          '--help', action='help',
@@ -727,6 +744,14 @@ 

      r.add_argument("--pyproject-record", type=PosixPath, required=True, help=argparse.SUPPRESS)

      r.add_argument("--prefix", type=PosixPath, required=True, help=argparse.SUPPRESS)

      parser.add_argument(

+         "-l", "--assert-license", action="store_true", default=False,

+         help="Fail when no License-File (PEP 639) is found.",

+     )

+     parser.add_argument(

+         "-L", "--no-assert-license", action="store_false", dest="assert_license",

+         help="Don't fail when no License-File (PEP 639) is found (the default).",

+     )

+     parser.add_argument(

          "varargs", nargs="+", metavar="MODULE_GLOB",

          help="Shell-like glob matching top-level module names to save into %%{pyproject_files}",

      )

file modified
+49 -8
@@ -1,26 +1,67 @@ 

  %global python3_pkgversion 38

  Name:           escape_percentages

- Version:        0

+ Version:        0.1

  Release:        0

  Summary:        ...

  License:        MIT

+ BuildRequires:  pyproject-rpm-macros

  BuildArch:      noarch

  

  %description

  This spec file verifies that escaping percentage signs in paths is possible via

- exactly 8 percentage signs in a filelist and directly in the %%files section.

+ exactly 2 (or 8) percentage signs in a filelist and directly in the %%files section.

  It serves as a regression test for pyproject_save_files:escape_rpm_path().

  When this breaks, the function needs to be adapted.

  

- %install

+ 

+ %prep

+ cat > pyproject.toml << EOF

+ [build-system]

+ requires = ["setuptools"]

+ build-backend = "setuptools.build_meta"

+ EOF

+ 

+ cat > setup.cfg << EOF

+ [metadata]

+ name = escape_percentages

+ version = 0.1

+ [options]

+ packages =

+     escape_percentages

+ [options.package_data]

+ escape_percentages =

+     *

+ EOF

+ 

+ mkdir -p escape_percentages

+ touch escape_percentages/__init__.py

  # the paths on disk will have 1 percentage sign if we type 2 in the spec

  # we use the word 'version' after the sign, as that is a known existing macro

- touch '%{buildroot}/one%%version'

+ touch 'escape_percentages/one%%version'

+ 

+ 

+ %generate_buildrequires

+ %pyproject_buildrequires

+ 

+ 

+ %build

+ %pyproject_wheel

+ 

+ 

+ %install

+ %pyproject_install

+ %pyproject_save_files escape_percentages

  touch '%{buildroot}/two%%version'

  

- # the filelist will contain 8 percentage signs when we type 16 in spec

- echo '/one%%%%%%%%%%%%%%%%version' > filelist

- test $(wc -c filelist | cut -f1 -d' ') -eq 20  # 8 signs + /one (4) + version (7) + newline (1)

  

- %files -f filelist

+ %check

+ grep '/escape_percentages/one' %{pyproject_files}

+ 

+ 

+ 

+ %files -f %{pyproject_files}

+ %if v"0%{?rpmversion}" >= v"4.18.90"

+ /two%%version

+ %else

  /two%%%%%%%%version

+ %endif

file modified
+3 -1
@@ -1,5 +1,7 @@ 

  #!/usr/bin/bash -eux

- . /etc/os-release

+ if [ -z "${VERSION_ID-}" ] && [ -z "${NAME-}" ]; then

+   . /etc/os-release

+ fi

  

  version=$(echo "${VERSION_ID}" | cut -d. -f1)

  arch="x86_64"

file modified
+1 -2
@@ -38,7 +38,7 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files distroinfo

+ %pyproject_save_files -l distroinfo

  

  

  %check
@@ -48,4 +48,3 @@ 

  

  %files -n python%{python3_pkgversion}-distroinfo -f %{pyproject_files}

  %doc README.rst AUTHORS

- %license LICENSE

@@ -37,7 +37,13 @@ 

  

  %install

  %pyproject_install

+ # there is no license file marked as License-File, hence not using -l

  %pyproject_save_files flit_core

  

  

+ %check

+ # internal check for our macros, we assume there is no license

+ grep -F %%license %{pyproject_files} && exit 1 || true

+ 

+ 

  %files -n python%{python3_pkgversion}-flit-core -f %{pyproject_files}

file modified
+32 -3
@@ -15,7 +15,10 @@ 

  

  

  %global _description %{expand:

- Test that manpages are correctly processed by %%pyproject_save_files '*' +auto.}

+ Test that manpages are correctly processed by %%%%%%%%pyproject_save_files '*' +auto.

+ Run %%%%%%%%_pyproject_check_import_allow_no_modules twice

+ - exclude all modules and test the check still passes thanks to -M option

+ - regression test: test that check imports all modules even if -M option is set}

  

  

  %description %_description
@@ -36,14 +39,40 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files '*' +auto

+ %pyproject_save_files -l '*' +auto

  

  

  %check

+ # Internal check for our macros, assert the behavior of the import check macros

+ # Both of the macros should succeed

  %pyproject_check_import

+ %_pyproject_check_import_allow_no_modules

+ (%{pyproject_check_import}) 2>pyproject_check_import.stderr

+ (%{_pyproject_check_import_allow_no_modules}) 2>_pyproject_check_import_allow_no_modules.stderr

+ 

+ # Modules were found, stderrs should include getmac.getmac

+ grep '^Check import: getmac\.getmac$' pyproject_check_import.stderr

+ grep '^Check import: getmac\.getmac$' _pyproject_check_import_allow_no_modules.stderr

+ 

+ # Now let's pretend no modules were found at all

+ echo -e '' > %{_pyproject_modules}

+ 

+ # This should fail

+ (%{pyproject_check_import}) && exit 1 || true

+ 

+ # This should succeed and say something about no modules found

+ %{_pyproject_check_import_allow_no_modules}

+ (%{_pyproject_check_import_allow_no_modules}) 2>_pyproject_check_import_allow_no_modules.stderr

+ grep '\bNo modules to check found\b' _pyproject_check_import_allow_no_modules.stderr

+ 

+ # We want to ensure the rest of the %%check section is still executed

+ # (To avoid a temptation to call `exit 0` from %%_pyproject_check_import_allow_no_modules)

+ # We'll touch a marker file here and assert its presence in %%files

+ touch %{buildroot}/check-completed-entirely

+ 

  # Internal check for our macros, assert there is a manpage:

  test -f %{buildroot}%{_mandir}/man1/getmac.1*

  

  

  %files -n python%{python3_pkgversion}-getmac -f %{pyproject_files}

- 

+ /check-completed-entirely

file modified
+43 -1
@@ -20,12 +20,26 @@ 

  Building this tests that executables are not listed when +auto is not used

  with %%pyproject_save_files.

  

+ This package also uses %%{python3_pkgversion} in name and has a very limited

+ set of dependencies -- allows to set a different value for it repeatedly.

+ 

+ %package -n python%{python3_pkgversion}-%{modname}

+ Summary:            %{summary}

+ 

+ %description -n python%{python3_pkgversion}-%{modname}

+ %{summary}.

+ 

+ %if 0%{?rhel} == 9

+ %global python3_pkgversion 3.11

  %package -n python%{python3_pkgversion}-%{modname}

  Summary:            %{summary}

  

  %description -n python%{python3_pkgversion}-%{modname}

  %{summary}.

  

+ %global python3_pkgversion 38

+ %endif

+ 

  

  %prep

  %autosetup -n %{modname}-%{version}-2
@@ -33,9 +47,20 @@ 

  

  %build

  %pyproject_wheel

+ %if 0%{?rhel} == 8

+ %global python3_pkgversion 3.11

+ %pyproject_wheel

+ %endif

  

  

  %install

+ %if 0%{?rhel} == 8

+ %global python3_pkgversion 3.11

+ %pyproject_install

+ %pyproject_save_files -l isort

+ %global python3_pkgversion 38

+ %endif

+ # we keep this one last so /usr/bin/isort is installed with python38 shebang

  %pyproject_install

  %pyproject_save_files isort

  
@@ -48,8 +73,25 @@ 

  # Internal check that executables are not present when +auto was not used with %%pyproject_save_files

  grep -F %{_bindir}/%{modname} %{pyproject_files} && exit 1 || true

  

+ %if 0%{?rhel} == 8

+ # Internal check that correct versions are in correct %%{pyproject_files}s

+ diff %{pyproject_files} <(grep -F python3.8/site-packages %{pyproject_files})

+ 

+ %global python3_pkgversion 3.11

+ test -d %{buildroot}%{_usr}/lib/python3.11/site-packages/%{modname}/

+ test -d %{buildroot}%{_usr}/lib/python3.11/site-packages/%{modname}-%{version}.dist-info/

+ diff %{pyproject_files} <(grep -F python3.11/site-packages %{pyproject_files})

+ %global python3_pkgversion 38

+ %endif

+ 

  

  %files -n python%{python3_pkgversion}-%{modname} -f %{pyproject_files}

- %doc README.rst *.md

  %license LICENSE

+ %doc README.rst *.md

  %{_bindir}/%{modname}

+ %if 0%{?rhel} == 8

+ %global python3_pkgversion 3.11

+ %files -n python%{python3_pkgversion}-%{modname} -f %{pyproject_files}

+ %doc README.rst *.md

+ %global python3_pkgversion 38

+ %endif

file modified
+1 -2
@@ -60,7 +60,7 @@ 

  %install

  %pyproject_install

  # We can pass multiple globs

- %pyproject_save_files 'ldap*' '*ldap'

+ %pyproject_save_files -l 'ldap*' '*ldap'

  

  

  %check
@@ -101,7 +101,6 @@ 

  

  

  %files -n python%{python3_pkgversion}-ldap -f %{pyproject_files}

- %license LICENCE

  %doc CHANGES README TODO Demo

  # Explicitly listed files can be combined with automation

  %pycached %{python3_sitearch}/ldif.py

file modified
+1 -2
@@ -31,7 +31,6 @@ 

  

  # In this spec, we put %%files early to test it still works

  %files -n python%{python3_pkgversion}-markupsafe -f %{pyproject_files}

- %license LICENSE.rst

  %doc CHANGES.rst README.rst

  

  
@@ -53,7 +52,7 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files markupsafe

+ %pyproject_save_files -l markupsafe

  

  

  %check

@@ -34,8 +34,11 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files poetry

+ # the license is not marked as License-File by poetry-core, hence -L

+ %pyproject_save_files -L poetry

  

+ # internal check for our macros, -l must fail:

+ %pyproject_save_files -l poetry && exit 1 || true

  

  %files -n python%{python3_pkgversion}-poetry-core -f %{pyproject_files}

  %doc README.md

file modified
+1 -2
@@ -53,7 +53,7 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files '*pytest' +auto

+ %pyproject_save_files -l '*pytest' +auto

  

  

  %check
@@ -69,4 +69,3 @@ 

  %files -n python%{python3_pkgversion}-%{pypi_name} -f %{pyproject_files}

  %doc README.rst

  %doc CHANGELOG.rst

- %license LICENSE

file modified
+1 -1
@@ -74,7 +74,7 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files setuptools pkg_resources _distutils_hack

+ %pyproject_save_files setuptools pkg_resources _distutils_hack -l

  

  # https://github.com/pypa/setuptools/issues/2709

  rm -rf %{buildroot}%{python3_sitelib}/pkg_resources/tests/

file modified
+1 -1
@@ -37,7 +37,7 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files userpath

+ %pyproject_save_files -l userpath

  

  

  %check

file modified
+2 -2
@@ -43,8 +43,8 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files virtualenv

- %{?fc36:

+ %pyproject_save_files -l virtualenv

+ %{?el9:

  # old version of setuptools_scm produces files incompatible with

  # assumptions in virtualenv code, we append the expected attributes:

  echo '__version__, __version_tuple__ = version, version_tuple' >> %{buildroot}%{python3_sitelib}/virtualenv/version.py

file modified
+1 -2
@@ -32,7 +32,7 @@ 

  

  %install

  %pyproject_install

- %pyproject_save_files zope +auto

+ %pyproject_save_files -l zope +auto

  

  %check

  # Internal check that the RECORD and REQUESTED files are
@@ -42,5 +42,4 @@ 

  

  %files -n python%{python3_pkgversion}-zope-event -f %{pyproject_files}

  %doc README.rst

- %license LICENSE.txt

  

file modified
+1 -1
@@ -96,7 +96,7 @@ 

      #    run: ./mocktest.sh python-virtualenv

      - escape_percentages:

          dir: .

-         run: rpmbuild -ba escape_percentages.spec

+         run: ./mocktest.sh escape_percentages

      required_packages:

      - mock

      - rpmdevtools

License enforcement and python version namespacing.

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/b0b98b1478194730838f5ceb4bb35402

@churchyard Do the -l/-L checks require a newer version of rpm? I seem to perhaps recall that being the case. It does seem like a macro isn't getting evaluated.

This will probably need to be changed to python3.6/site-packages

The %_pyproject_files_pkgversion definition requires a newer RPM for %{expr:}. We can just make it unconditionally add the suffix. %python3_pkgversion 3 is not supported in EPEL 8, anyways.

So this line would just be:

%_pyproject_files_pkgversion -%{python3_pkgversion}

1 new commit added

  • EL8 Fixes
4 months ago

The %_pyproject_files_pkgversion definition requires a newer RPM for %{expr:}. We can just make it unconditionally add the suffix. %python3_pkgversion 3 is not supported in EPEL 8, anyways.

I'm not quite sure I follow - isn't python3_pkgversion set to 3 by default in EL8?

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/7c9061b00e9c4a0a90fd26d031a6a29d

The %_pyproject_files_pkgversion definition requires a newer RPM for %{expr:}. We can just make it unconditionally add the suffix. %python3_pkgversion 3 is not supported in EPEL 8, anyways.

I'm not quite sure I follow - isn't python3_pkgversion set to 3 by default in EL8?

Sorry, I meant "%python3_pkgversion 3 is not supported in EPEL 8's pyproject-rpm-macros version." The default python3 in RHEL 8's pip version is too old, so pyproject-rpm-macros in EPEL 8 in does not support it, so we don't need to worry about handling the %python3_pkgversion 3 case at all.

Re. the license file issue, it seems the setuptools/wheel versions packaged for python38 in RHEL 8 are too old and do not include the necessary License-File headers for this to work. I would change the test specfiles to test using a more modern python stack (e.g., python3.11) or remove the -l flags.

This no longer does the same thing as the comment says.

This no longer does the same thing as the comment says.

I read the comments about that now. The current implementation works for me, but please update the comment.

1 new commit added

  • More epel8 fixes
4 months ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/d3a0c542966341c8bacf188bf8378ef5