Bug 2291996

Summary: F41FailsToInstall: rebase-helper
Product: [Fedora] Fedora Reporter: Fedora Fails To Install <fti-bugs>
Component: rebase-helperAssignee: Nikola Forró <nforro>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mhroncok, nforro, phracek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rebase-helper-0.29.0-1.fc41 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-06-18 21:35:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2260875, 2244836, 2260877, 2276421    

Description Fedora Fails To Install 2024-06-12 11:32:21 UTC
Hello,

Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py
If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/

Your package (rebase-helper) Fails To Install in Fedora 41:

can't install rebase-helper:
  - nothing provides python3.12dist(requests) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(gitpython) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(ansicolors) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(copr) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(pyquery) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(rpkg) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(unidiff) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python3.12dist(python-pam) needed by rebase-helper-0.28.1-13.fc41.noarch
  - nothing provides python(abi) = 3.12 needed by rebase-helper-0.28.1-13.fc41.noarch
  
If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.


If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks.


P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors. To reproduce, use the koji/local repo only, e.g. in mock:

    $ mock -r fedora-41-x86_64 --config-opts mirrored=False install rebase-helper


P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updating-inter-dependent-packages

Thanks!

Comment 1 Miro Hrončok 2024-06-17 13:31:49 UTC
+ /usr/bin/pytest
============================= test session starts ==============================
platform linux -- Python 3.13.0b2, pytest-7.4.3, pluggy-1.3.0
rootdir: /builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1
configfile: tox.ini
testpaths: tests
collected 137 items / 32 deselected / 105 selected
tests/test_application.py E..                                            [  2%]
tests/test_archive.py ..........                                         [ 12%]
tests/test_cli.py .                                                      [ 13%]
tests/test_config.py ...                                                 [ 16%]
tests/test_patcher.py ...                                                [ 19%]
tests/test_results_store.py ....                                         [ 22%]
tests/test_specfile.py EEE.EEE.E....E.E....E                             [ 42%]
tests/test_temporary_environment.py ....                                 [ 46%]
tests/helpers/test_console_helper.py ........                            [ 54%]
tests/helpers/test_download_helper.py ....                               [ 58%]
tests/helpers/test_git_helper.py ....                                    [ 61%]
tests/helpers/test_input_helper.py .......                               [ 68%]
tests/helpers/test_path_helper.py ........                               [ 76%]
tests/helpers/test_process_helper.py ...........                         [ 86%]
tests/helpers/test_rpm_helper.py ....                                    [ 90%]
tests/plugins/test_checkers.py ..                                        [ 92%]
tests/plugins/test_output_tools.py ..                                    [ 94%]
tests/plugins/test_spec_hooks.py ......                                  [100%]
==================================== ERRORS ====================================
__________ ERROR at setup of TestApplication.test_application_sources __________
content = '%{!?specfile: %global specfile spec file}\n%global summary %{?longsum}%{!?longsum:A testing %{specfile}}\n\n%global v... the release for testing purposes\n\n* Tue Sep 24 2013 Petr Hracek <phracek> 1.0.0-1\n- Initial version\n\n'
flags = 3
    def get_rpm_spec(content, flags):
        Macros.reinit()
        for name, value in self.macros + (extra_macros or []):
            if value is None:
                Macros.remove(name)
            else:
                Macros.define(name, value)
        Macros.define("_sourcedir", str(self.sourcedir))
        with tempfile.NamedTemporaryFile() as tmp:
            tmp.write(content.encode())
            tmp.flush()
            try:
                with self._sanitize_environment():
                    with capture_stderr() as stderr:
>                       return rpm.spec(tmp.name, flags)
E                       ValueError: can't parse specfile
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:226: ValueError
The above exception was the direct cause of the following exception:
self = <tests.test_application.TestApplication object at 0x7f55e70aa990>
make_config = <function TestApplication.make_config.<locals>.wrapper at 0x7f55e70313a0>
    @pytest.fixture
    def app(self, make_config):
        config = make_config(self.cmd_line_args)
        execution_dir, results_dir = Application.setup(config)
>       app = Application(config, os.getcwd(), execution_dir, results_dir)
/builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1/tests/test_application.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1/rebasehelper/application.py:99: in __init__
    self._prepare_spec_objects()
/builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1/rebasehelper/application.py:146: in _prepare_spec_objects
    self.spec_file = SpecFile(self.spec_file_path, self.execution_dir, self.kwargs['rpmmacros'],
/builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1/rebasehelper/specfile.py:131: in __init__
    self.spec = Specfile(path, sources_location, macros=list((predefined_macros or {}).items()))
/usr/lib/python3.13/site-packages/specfile/specfile.py:72: in __init__
    self._parser.parse(str(self))
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:380: in parse
    self.spec, self.tainted = self._do_parse(content, extra_macros)
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:294: in _do_parse
    spec = get_rpm_spec(content, rpm.RPMSPEC_ANYARCH | rpm.RPMSPEC_FORCE)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
content = '%{!?specfile: %global specfile spec file}\n%global summary %{?longsum}%{!?longsum:A testing %{specfile}}\n\n%global v... the release for testing purposes\n\n* Tue Sep 24 2013 Petr Hracek <phracek> 1.0.0-1\n- Initial version\n\n'
flags = 3
    def get_rpm_spec(content, flags):
        Macros.reinit()
        for name, value in self.macros + (extra_macros or []):
            if value is None:
                Macros.remove(name)
            else:
                Macros.define(name, value)
        Macros.define("_sourcedir", str(self.sourcedir))
        with tempfile.NamedTemporaryFile() as tmp:
            tmp.write(content.encode())
            tmp.flush()
            try:
                with self._sanitize_environment():
                    with capture_stderr() as stderr:
                        return rpm.spec(tmp.name, flags)
            except ValueError as e:
>               raise RPMException(stderr=stderr) from e
E               specfile.exceptions.RPMException: %patchN is obsolete, use %patch N (or %patch -P N): %patch1
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:228: RPMException
_______________ ERROR at setup of TestSpecFile.test_get_release ________________
content = '%{!?specfile: %global specfile spec file}\n%global summary %{?longsum}%{!?longsum:A testing %{specfile}}\n\n%global v... the release for testing purposes\n\n* Tue Sep 24 2013 Petr Hracek <phracek> 1.0.0-1\n- Initial version\n\n'
flags = 3
    def get_rpm_spec(content, flags):
        Macros.reinit()
        for name, value in self.macros + (extra_macros or []):
            if value is None:
                Macros.remove(name)
            else:
                Macros.define(name, value)
        Macros.define("_sourcedir", str(self.sourcedir))
        with tempfile.NamedTemporaryFile() as tmp:
            tmp.write(content.encode())
            tmp.flush()
            try:
                with self._sanitize_environment():
                    with capture_stderr() as stderr:
>                       return rpm.spec(tmp.name, flags)
E                       ValueError: can't parse specfile
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:226: ValueError
The above exception was the direct cause of the following exception:
workdir = '/tmp/pytest-of-mockbuild/pytest-0/workdir24'
    @pytest.fixture
    def spec_object(workdir):  # pylint: disable=redefined-outer-name
        shutil.copy(os.path.join(TEST_FILES_DIR, SPEC_FILE), workdir)
>       return SpecFile(SPEC_FILE, workdir)
/builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1/tests/conftest.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILD/rebase-helper-0.28.1-build/rebasehelper-0.28.1/rebasehelper/specfile.py:131: in __init__
    self.spec = Specfile(path, sources_location, macros=list((predefined_macros or {}).items()))
/usr/lib/python3.13/site-packages/specfile/specfile.py:72: in __init__
    self._parser.parse(str(self))
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:380: in parse
    self.spec, self.tainted = self._do_parse(content, extra_macros)
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:294: in _do_parse
    spec = get_rpm_spec(content, rpm.RPMSPEC_ANYARCH | rpm.RPMSPEC_FORCE)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
content = '%{!?specfile: %global specfile spec file}\n%global summary %{?longsum}%{!?longsum:A testing %{specfile}}\n\n%global v... the release for testing purposes\n\n* Tue Sep 24 2013 Petr Hracek <phracek> 1.0.0-1\n- Initial version\n\n'
flags = 3
    def get_rpm_spec(content, flags):
        Macros.reinit()
        for name, value in self.macros + (extra_macros or []):
            if value is None:
                Macros.remove(name)
            else:
                Macros.define(name, value)
        Macros.define("_sourcedir", str(self.sourcedir))
        with tempfile.NamedTemporaryFile() as tmp:
            tmp.write(content.encode())
            tmp.flush()
            try:
                with self._sanitize_environment():
                    with capture_stderr() as stderr:
                        return rpm.spec(tmp.name, flags)
            except ValueError as e:
>               raise RPMException(stderr=stderr) from e
E               specfile.exceptions.RPMException: %patchN is obsolete, use %patch N (or %patch -P N): %patch1
/usr/lib/python3.13/site-packages/specfile/spec_parser.py:228: RPMException
...
=========================== short test summary info ============================
ERROR tests/test_application.py::TestApplication::test_application_sources - ...
ERROR tests/test_specfile.py::TestSpecFile::test_get_release - specfile.excep...
ERROR tests/test_specfile.py::TestSpecFile::test_set_release - specfile.excep...
ERROR tests/test_specfile.py::TestSpecFile::test_set_version - specfile.excep...
ERROR tests/test_specfile.py::TestSpecFile::test_old_tarball - specfile.excep...
ERROR tests/test_specfile.py::TestSpecFile::test_get_sources - specfile.excep...
ERROR tests/test_specfile.py::TestSpecFile::test_get_patches - specfile.excep...
ERROR tests/test_specfile.py::TestSpecFile::test_extract_version_from_archive_name
ERROR tests/test_specfile.py::TestSpecFile::test_set_extra_version - specfile...
ERROR tests/test_specfile.py::TestSpecFile::test_find_archive_target_in_prep
ERROR tests/test_specfile.py::TestSpecFile::test_tags - specfile.exceptions.R...
=========== 94 passed, 32 deselected, 8 warnings, 11 errors in 2.28s ===========