Bug 2264414

Summary: pungi fails to build in Rawhide: AssertionError: tests/test_gather.py::DNFDepsolvingTestCase::test_multilib_method_devel_runtime
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: pungiAssignee: Lubomír Sedlář <lsedlar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: high    
Version: rawhideCC: admiller, hlin, ksurma, lsedlar, mhroncok, onosek, w
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pungi-4.6.2-1.fc41 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-05-06 09:45:18 UTC Type: Bug
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    

Description Karolina Surma 2024-02-15 13:21:28 UTC
pungi fails to build with Python 3.13.0a3.


=================================== FAILURES ===================================
___________ DNFDepsolvingTestCase.test_multilib_method_devel_runtime ___________

self = <tests.test_gather.DNFDepsolvingTestCase testMethod=test_multilib_method_devel_runtime>

    def test_multilib_method_devel_runtime(self):
        packages = [
            "dummy-lvm2-devel",
        ]
        pkg_map = self.go(
            packages,
            None,
            greedy="none",
            fulltree=False,
            multilib_methods=["devel", "runtime"],
        )
    
>       six.assertCountEqual(
            self,
            pkg_map["rpm"],
            [
                "dummy-basesystem-10.0-6.noarch.rpm",
                "dummy-filesystem-4.2.37-6.x86_64.rpm",
                "dummy-glibc-2.14-5.x86_64.rpm",
                "dummy-glibc-2.14-5.i686.rpm",
                "dummy-glibc-common-2.14-5.x86_64.rpm",
                "dummy-lvm2-2.02.84-4.x86_64.rpm",
                "dummy-lvm2-devel-2.02.84-4.i686.rpm",  # Important
                "dummy-lvm2-devel-2.02.84-4.x86_64.rpm",  # Important
                "dummy-lvm2-libs-2.02.84-4.x86_64.rpm",
            ],
        )

tests/test_gather.py:2526: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/site-packages/six.py:695: in assertCountEqual
    return getattr(self, _assertCountEqual)(*args, **kwargs)
E   AssertionError: Element counts were not equal:
E   First has 0, Second has 1:  'dummy-glibc-2.14-5.i686.rpm'
------------------------------ Captured log call -------------------------------
DEBUG    dnf:logging.py:296 User-Agent: constructed: 'libdnf (Fedora Linux 41; generic; Linux.x86_64)'
INFO     dnf:repodict.py:94 Added test-repo repo from /builddir/build/BUILD/pungi-4.6.0/tests/fixtures/repos/repo
DEBUG    dnf:logging.py:296 repo: downloading from remote: test-repo
DEBUG    dnf:base.py:412 test-repo: using metadata from Fri Sep 27 12:37:48 2019.
DEBUG    gather_dnf:gather_dnf.py:211 Gather received gather_options=[
    fulltree=False
    fulltree_excludes=0 items
    resolve_deps=True
    selfhosting=False
    greedy_method=none
    langpacks=[]
    multilib_methods=['devel', 'runtime']
    multilib_blacklist=0 items
    multilib_whitelist=0 items
    lookaside_repos=[]
    prepopulate=0 items
    exclude_source=False
    exclude_debug=False
]
DEBUG    gather_dnf:gather_dnf.py:1010 INITIAL PACKAGES
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-lvm2-devel-2.02.84-4.x86_64
DEBUG    gather_dnf:gather_dnf.py:1083 PREPOPULATE
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 1
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-lvm2-2.02.84-4.x86_64 (pulled by dummy-lvm2-devel-2.02.84-4.x86_64, repo: test-repo) (Requires: dummy-lvm2 = 2.02.84-4) (binary-dep)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 1
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 2
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-lvm2-libs-2.02.84-4.x86_64 (pulled by dummy-lvm2-2.02.84-4.x86_64, repo: test-repo) (Requires: dummy-lvm2-libs = 2.02.84-4) (binary-dep)
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-glibc-2.14-5.x86_64 (pulled by dummy-lvm2-2.02.84-4.x86_64, repo: test-repo) (Requires: dummy-glibc) (binary-dep)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 2
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 3
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-glibc-common-2.14-5.x86_64 (pulled by dummy-glibc-2.14-5.x86_64, repo: test-repo) (Requires: dummy-glibc-common = 2.14-5) (binary-dep)
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-basesystem-10.0-6.noarch (pulled by dummy-glibc-2.14-5.x86_64, repo: test-repo) (Requires: dummy-basesystem) (binary-dep)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 2
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 4
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-filesystem-4.2.37-6.x86_64 (pulled by dummy-basesystem-10.0-6.noarch, repo: test-repo) (Requires: dummy-filesystem) (binary-dep)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 1
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 5
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 4
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 6
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG PACKAGES
DEBUG    gather_dnf:gather_dnf.py:838 Added debuginfo dummy-lvm2-debuginfo-2.02.84-4.x86_64 (for dummy-lvm2-2.02.84-4.x86_64, repo: test-repo)
DEBUG    gather_dnf:gather_dnf.py:838 Added debuginfo dummy-glibc-debuginfo-2.14-5.x86_64 (for dummy-glibc-2.14-5.x86_64, repo: test-repo)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 2
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 7
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG DEPS
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-glibc-debuginfo-common-2.14-5.x86_64 (pulled by dummy-glibc-debuginfo-2.14-5.x86_64, repo: test-repo) (Requires: dummy-glibc-debuginfo-common(x86-64) = 2.14-5) (debug-dep)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 1
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 8
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 FULLTREE
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 LANGPACKS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 MULTILIB
DEBUG    gather_dnf:gather_dnf.py:373 Added package dummy-lvm2-devel-2.02.84-4.i686 (multilib:devel)
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 1
DEBUG    gather_dnf:gather_dnf.py:1020 PASS 9
DEBUG    gather_dnf:gather_dnf.py:1083 CONDITIONAL DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 BINARY DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 SOURCE PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG PACKAGES
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 DEBUG DEPS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 FULLTREE
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 LANGPACKS
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
DEBUG    gather_dnf:gather_dnf.py:1083 MULTILIB
DEBUG    gather_dnf:gather_dnf.py:1085 ADDED: 0
=========================== short test summary info ============================
FAILED tests/test_gather.py::DNFDepsolvingTestCase::test_multilib_method_devel_runtime
=========== 1 failed, 1080 passed, 66 skipped, 7 warnings in 17.22s ============


https://docs.python.org/3.13/whatsnew/3.13.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.13/fedora-rawhide-x86_64/07019658-pungi/

For all our attempts to build pungi with Python 3.13, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.13/package/pungi/

Testing and mass rebuild of packages is happening in copr.
You can follow these instructions to test locally in mock if your package builds with Python 3.13:
https://copr.fedorainfracloud.org/coprs/g/python/python3.13/

Let us know here if you have any questions.

Python 3.13 is planned to be included in Fedora 41.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.13.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires),
so if this package is required a lot, it's important for us to get it fixed soon.

We'd appreciate help from the people who know this package best,
but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Miro Hrončok 2024-02-15 13:49:32 UTC
Seems copr-related rather than Python 3.13-related: https://copr.fedorainfracloud.org/coprs/churchyard/pungi/builds/

Comment 2 Lubomír Sedlář 2024-02-15 13:54:32 UTC
I have seen the same failure in rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=113218090
I didn't yet have time to dig into it and find out what's going on, but I plan to do that.

Comment 3 Miro Hrončok 2024-02-15 13:57:06 UTC
I bumped the priority in Koschei. It shows the failure now and some changes in the buildroot. https://koschei.fedoraproject.org/package/pungi

Comment 4 Miro Hrončok 2024-02-15 13:57:56 UTC
I would guess dnf 4.18 -> 4.19 is the main suspect.

Comment 5 Lubomír Sedlář 2024-02-15 14:29:43 UTC
This should fix it: https://pagure.io/pungi/pull-request/1725

Comment 6 Miro Hrončok 2024-04-23 12:31:35 UTC
Installable pungi is a requirement to install @critical-path-compose, raising priority.

Please backport the upstream fix.

Comment 7 Miro Hrončok 2024-05-06 09:45:18 UTC
Thanks.