Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 2219971

Summary: F39FailsToInstall: diffoscope
Product: [Fedora] Fedora Reporter: Fedora Fails To Install <fti-bugs>
Component: diffoscopeAssignee: Zbigniew Jędrzejewski-Szmek <zbyszek>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mhroncok, thrnciar, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-07-23 18:15:38 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: 2220011, 2220131    
Bug Blocks: 2168842, 2168845, 2135404    

Description Fedora Fails To Install 2023-07-05 19:03:23 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 (diffoscope) Fails To Install in Fedora 39:

can't install diffoscope:
  - nothing provides python3.11dist(file-magic) needed by diffoscope-233-2.fc38.x86_64
  - nothing provides python3.11dist(libarchive-c) needed by diffoscope-233-2.fc38.x86_64
  - nothing provides python(abi) = 3.11 needed by diffoscope-233-2.fc38.x86_64
  
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-39-x86_64 --config-opts mirrored=False install diffoscope


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 Fedora Fails To Install 2023-07-13 11:39:16 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/

This package fails to install and maintainers are advised to take one of the following actions:

 - Fix this bug and close this bugzilla once the update makes it to the repository.
   (The same script that posted this comment will eventually close this bugzilla
   when the fixed package reaches the repository, so you don't have to worry about it.)

or

 - Move this bug to ASSIGNED if you plan on fixing this, but simply haven't done so yet.

or

 - Orphan the package if you no longer plan to maintain it.


If you do not take one of these actions, the process at https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs will continue.
This package may be orphaned in 7+ weeks.
This is the first reminder (step 3) from the policy.

Don't hesitate to ask for help on devel.org if you are unsure how to fix this bug.

Comment 2 Miro Hrončok 2023-07-13 12:08:31 UTC
=========================== short test summary info ============================
FAILED tests/comparators/test_macho.py::test_llvm_diff - AssertionError
FAILED tests/comparators/test_rlib.py::test_item3_deflate_llvm_bitcode - Asse...
ERROR tests/comparators/test_elf.py::test_differences_with_dbgsym - TypeError...
ERROR tests/comparators/test_elf.py::test_original_gnu_debuglink - TypeError:...
= 2 failed, 613 passed, 78 skipped, 16 deselected, 2 errors in 75.47s (0:01:15) =
error: Bad exit status from /var/tmp/rpm-tmp.iKEGIA (%check)

https://koji.fedoraproject.org/koji/taskinfo?taskID=103307507

Comment 3 Tomáš Hrnčiar 2023-07-17 08:57:02 UTC
==================================== ERRORS ====================================
________________ ERROR at setup of test_differences_with_dbgsym ________________
feeder1 = <function from_operation.<locals>.feeder at 0xffffa016b2e0>
feeder2 = <function from_operation.<locals>.feeder at 0xffff9afa4040>
    def diff(feeder1, feeder2):
        with get_temporary_directory() as tmpdir:
            fifo1_path = os.path.join(tmpdir, "fifo1")
            fifo2_path = os.path.join(tmpdir, "fifo2")
>           with FIFOFeeder(feeder1, fifo1_path) as fifo1, FIFOFeeder(
                feeder2, fifo2_path
            ) as fifo2:
diffoscope/diff.py:334: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <FIFOFeeder(Thread-1484, stopped daemon 281473298985344)>
exc_type = None, exc_value = None, exc_tb = None
    def __exit__(self, exc_type, exc_value, exc_tb):
        os.remove(self.fifo_path)
>       self.join()
diffoscope/diff.py:225: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <FIFOFeeder(Thread-1484, stopped daemon 281473298985344)>
    def join(self):
        self._want_join.set()
        super().join()
        if self._exception is not None:
>           raise self._exception
diffoscope/diff.py:258: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <FIFOFeeder(Thread-1484, stopped daemon 281473298985344)>
    def run(self):
        try:
            # Try to open the FIFO nonblocking, so we can periodically check
            # if the main thread wants us to wind down.  If it does, there's no
            # more need for the FIFO, so stop the thread.
            while True:
                try:
                    fd = os.open(self.fifo_path, os.O_WRONLY | os.O_NONBLOCK)
                except OSError as e:
                    if e.errno != errno.ENXIO:
                        raise
                    if self._want_join.is_set():
                        return
                else:
                    break
    
            # Now clear the fd's nonblocking flag to let writes block normally.
            fcntl.fcntl(fd, fcntl.F_SETFL, 0)
    
            with open(fd, "wb") as fifo:
                # The queue works around a unified diff limitation: if there's
                # no newlines in both don't make it a difference
>               end_nl = self.feeder(fifo)
diffoscope/diff.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
out_file = <_io.BufferedWriter name=15>
    def feeder(out_file):
        with profile("command", operation.name):
            feeder = from_raw_reader(operation.output, operation.filter)
>           end_nl = feeder(out_file)
diffoscope/feeders.py:126: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
out_file = <_io.BufferedWriter name=15>
    def feeder(out_file):
        max_lines = Config().max_diff_input_lines
        end_nl = False
        line_count = 0
    
        # If we have a maximum size, hash the content as we go along so we can
        # display a nicer message.
        h = None
        if max_lines < float("inf"):
            h = hashlib.sha256()
    
        for buf in in_file:
            line_count += 1
>           out = filter_reader(buf, filter)
diffoscope/feeders.py:81: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buf = b'  4003ac:\tmov    0x200c45(%rip),%rax        # 600ff8 <__gmon_start__@plt+0x200c08>\n'
additional_filter = <bound method ObjdumpDisassembleSection.filter of <diffoscope.comparators.elf.ObjdumpDisassembleSection object at 0xffffa0131670>>
    def filter_reader(buf, additional_filter=None):
        # Apply the passed filter first, for example Command.filter
        if additional_filter:
>           buf = additional_filter(buf)
diffoscope/feeders.py:47: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <diffoscope.comparators.elf.ObjdumpDisassembleSection object at 0xffffa0131670>
line = b'  4003ac:\tmov    0x200c45(%rip),%rax        # 600ff8 <__gmon_start__@plt+0x200c08>\n'
    def filter(self, line):
        # Apply this filter first as super() removes offsets
>       line = ObjdumpDisassembleSection.RE_SYMBOL_COMMENT.sub(r"\1", line)
E       TypeError: sequence item 1: expected str instance, bytes found
diffoscope/comparators/elf.py:268: TypeError
During handling of the above exception, another exception occurred:
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xffffa0101d60>
dbgsym_dir1 = <<class 'abc.DebFile'> /builddir/build/BUILD/diffoscope-233/tests/data/dbgsym/add/test-dbgsym_1_amd64.deb>
dbgsym_dir2 = <<class 'abc.DebFile'> /builddir/build/BUILD/diffoscope-233/tests/data/dbgsym/mult/test-dbgsym_1_amd64.deb>
    @pytest.fixture
    def dbgsym_differences(monkeypatch, dbgsym_dir1, dbgsym_dir2):
        monkeypatch.setattr(Config(), "use_dbgsym", "yes")
>       return dbgsym_dir1.compare(dbgsym_dir2)
tests/comparators/test_elf.py:239: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/elf.py:361: in compare
    diff, excluded = Difference.from_operation_exc(
diffoscope/difference.py:316: in from_operation_exc
    difference = Difference.from_feeder(
diffoscope/difference.py:214: in from_feeder
    unified_diff = diff(feeder1, feeder2)
diffoscope/diff.py:334: in diff
    with FIFOFeeder(feeder1, fifo1_path) as fifo1, FIFOFeeder(
diffoscope/diff.py:225: in __exit__
    self.join()
diffoscope/diff.py:258: in join
    raise self._exception
diffoscope/diff.py:249: in run
    end_nl = self.feeder(fifo)
diffoscope/feeders.py:126: in feeder
    end_nl = feeder(out_file)
diffoscope/feeders.py:81: in feeder
    out = filter_reader(buf, filter)
diffoscope/feeders.py:47: in filter_reader
    buf = additional_filter(buf)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <diffoscope.comparators.elf.ObjdumpDisassembleSection object at 0xffffa0100e30>
line = b'  4003ac:\tmov    0x200c45(%rip),%rax        # 600ff8 <__gmon_start__@plt+0x200c08>\n'
    def filter(self, line):
        # Apply this filter first as super() removes offsets
>       line = ObjdumpDisassembleSection.RE_SYMBOL_COMMENT.sub(r"\1", line)
E       TypeError: sequence item 1: expected str instance, bytes found
diffoscope/comparators/elf.py:268: TypeError
________________ ERROR at setup of test_original_gnu_debuglink _________________
feeder1 = <function from_operation.<locals>.feeder at 0xffff9afa4ea0>
feeder2 = <function from_operation.<locals>.feeder at 0xffff9afa4860>
    def diff(feeder1, feeder2):
        with get_temporary_directory() as tmpdir:
            fifo1_path = os.path.join(tmpdir, "fifo1")
            fifo2_path = os.path.join(tmpdir, "fifo2")
>           with FIFOFeeder(feeder1, fifo1_path) as fifo1, FIFOFeeder(
                feeder2, fifo2_path
            ) as fifo2:
diffoscope/diff.py:334: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <FIFOFeeder(Thread-1546, stopped daemon 281473376579968)>
exc_type = None, exc_value = None, exc_tb = None
    def __exit__(self, exc_type, exc_value, exc_tb):
        os.remove(self.fifo_path)
>       self.join()
diffoscope/diff.py:225: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <FIFOFeeder(Thread-1546, stopped daemon 281473376579968)>
    def join(self):
        self._want_join.set()
        super().join()
        if self._exception is not None:
>           raise self._exception
diffoscope/diff.py:258: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <FIFOFeeder(Thread-1546, stopped daemon 281473376579968)>
    def run(self):
        try:
            # Try to open the FIFO nonblocking, so we can periodically check
            # if the main thread wants us to wind down.  If it does, there's no
            # more need for the FIFO, so stop the thread.
            while True:
                try:
                    fd = os.open(self.fifo_path, os.O_WRONLY | os.O_NONBLOCK)
                except OSError as e:
                    if e.errno != errno.ENXIO:
                        raise
                    if self._want_join.is_set():
                        return
                else:
                    break
    
            # Now clear the fd's nonblocking flag to let writes block normally.
            fcntl.fcntl(fd, fcntl.F_SETFL, 0)
    
            with open(fd, "wb") as fifo:
                # The queue works around a unified diff limitation: if there's
                # no newlines in both don't make it a difference
>               end_nl = self.feeder(fifo)
diffoscope/diff.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
out_file = <_io.BufferedWriter name=15>
    def feeder(out_file):
        with profile("command", operation.name):
            feeder = from_raw_reader(operation.output, operation.filter)
>           end_nl = feeder(out_file)
diffoscope/feeders.py:126: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
out_file = <_io.BufferedWriter name=15>
    def feeder(out_file):
        max_lines = Config().max_diff_input_lines
        end_nl = False
        line_count = 0
    
        # If we have a maximum size, hash the content as we go along so we can
        # display a nicer message.
        h = None
        if max_lines < float("inf"):
            h = hashlib.sha256()
    
        for buf in in_file:
            line_count += 1
>           out = filter_reader(buf, filter)
diffoscope/feeders.py:81: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buf = b'  4003ac:\tmov    0x200c45(%rip),%rax        # 600ff8 <__gmon_start__@plt+0x200c08>\n'
additional_filter = <bound method ObjdumpDisassembleSection.filter of <diffoscope.comparators.elf.ObjdumpDisassembleSection object at 0xffff9afc65d0>>
    def filter_reader(buf, additional_filter=None):
        # Apply the passed filter first, for example Command.filter
        if additional_filter:
>           buf = additional_filter(buf)
diffoscope/feeders.py:47: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <diffoscope.comparators.elf.ObjdumpDisassembleSection object at 0xffff9afc65d0>
line = b'  4003ac:\tmov    0x200c45(%rip),%rax        # 600ff8 <__gmon_start__@plt+0x200c08>\n'
    def filter(self, line):
        # Apply this filter first as super() removes offsets
>       line = ObjdumpDisassembleSection.RE_SYMBOL_COMMENT.sub(r"\1", line)
E       TypeError: sequence item 1: expected str instance, bytes found
diffoscope/comparators/elf.py:268: TypeError
During handling of the above exception, another exception occurred:
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xffffa0103560>
dbgsym_dir1 = <<class 'abc.DebFile'> /builddir/build/BUILD/diffoscope-233/tests/data/dbgsym/add/test-dbgsym_1_amd64.deb>
dbgsym_dir2 = <<class 'abc.DebFile'> /builddir/build/BUILD/diffoscope-233/tests/data/dbgsym/mult/test-dbgsym_1_amd64.deb>
    @pytest.fixture
    def dbgsym_differences(monkeypatch, dbgsym_dir1, dbgsym_dir2):
        monkeypatch.setattr(Config(), "use_dbgsym", "yes")
>       return dbgsym_dir1.compare(dbgsym_dir2)
tests/comparators/test_elf.py:239: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
diffoscope/comparators/utils/container.py:197: in compare_pair
    difference = compare_files(
diffoscope/comparators/utils/compare.py:149: in compare_files
    return file1.compare(file2, source)
diffoscope/comparators/elf.py:361: in compare
    diff, excluded = Difference.from_operation_exc(
diffoscope/difference.py:316: in from_operation_exc
    difference = Difference.from_feeder(
diffoscope/difference.py:214: in from_feeder
    unified_diff = diff(feeder1, feeder2)
diffoscope/diff.py:334: in diff
    with FIFOFeeder(feeder1, fifo1_path) as fifo1, FIFOFeeder(
diffoscope/diff.py:225: in __exit__
    self.join()
diffoscope/diff.py:258: in join
    raise self._exception
diffoscope/diff.py:249: in run
    end_nl = self.feeder(fifo)
diffoscope/feeders.py:126: in feeder
    end_nl = feeder(out_file)
diffoscope/feeders.py:81: in feeder
    out = filter_reader(buf, filter)
diffoscope/feeders.py:47: in filter_reader
    buf = additional_filter(buf)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <diffoscope.comparators.elf.ObjdumpDisassembleSection object at 0xffff9afc68d0>
line = b'  4003ac:\tmov    0x200c45(%rip),%rax        # 600ff8 <__gmon_start__@plt+0x200c08>\n'
    def filter(self, line):
        # Apply this filter first as super() removes offsets
>       line = ObjdumpDisassembleSection.RE_SYMBOL_COMMENT.sub(r"\1", line)
E       TypeError: sequence item 1: expected str instance, bytes found
diffoscope/comparators/elf.py:268: TypeError
=================================== FAILURES ===================================
________________________________ test_llvm_diff ________________________________
obj_differences = [<Difference strings -a -n 8 {} -- strings -a -n 8 {} []>, <Difference llvm-readobj --file-headers {} -- llvm-readobj ...llvm-readobj --dyn-symbols {} []>, <Difference llvm-readobj --relocations {} -- llvm-readobj --relocations {} []>, ...]
    @skip_unless_tools_exist("llvm-readobj", "llvm-objdump")
    def test_llvm_diff(obj_differences):
        if llvm_version() < "13":
            diff_symbols = "macho_llvm_expected_diff_symbols_llvm_11"
        else:
            diff_symbols = "macho_llvm_expected_diff_symbols"
    
        # Headers
        assert len(obj_differences) == 8
        filenames = [
            "macho_llvm_expected_diff_strings",
            "macho_llvm_expected_diff_file_headers",
            "macho_llvm_expected_diff_needed_libs",
            diff_symbols,
            "macho_llvm_expected_diff_dyn_symbols",
            "macho_llvm_expected_diff_relocations",
            "macho_llvm_expected_diff_dyn_relocations",
        ]
        for idx, diff in enumerate(obj_differences[:-1]):
            assert_diff(diff, filenames[idx])
    
        # Sections
        arch_differences = obj_differences[-1].details
        assert len(arch_differences) == 7
        filenames = [
            "macho_llvm_expected_diff__text",
            "macho_llvm_expected_diff__stubs",
            "macho_llvm_expected_diff__stub_helper",
            "macho_llvm_expected_diff__cstring",
            "macho_llvm_expected_diff__unwind_info",
            "macho_llvm_expected_diff__eh_frame",
            "macho_llvm_expected_diff__la_symbol_ptr",
        ]
        for idx, diff in enumerate(arch_differences):
>           assert_diff(diff, filenames[idx])
tests/comparators/test_macho.py:129: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
difference = <Difference llvm-objdump --arch=x86_64 --section=__TEXT,__text --macho --demangle --no-leading-addr --no-show-raw-insn {} -- llvm-objdump --arch=x86_64 --section=__TEXT,__text --macho --demangle --no-leading-addr --no-show-raw-insn {} []>
filename = 'macho_llvm_expected_diff__text'
    def assert_diff(difference, filename):
        # Assign seen and expected values to local variables to improve contextual
        # information in failed tests.
        seen = difference.unified_diff
        expected = get_data(filename)
>       assert seen == expected
E       AssertionError
tests/utils/data.py:64: AssertionError
_______________________ test_item3_deflate_llvm_bitcode ________________________
differences = [<Difference nm -s {} -- nm -s {} []>, <Difference alloc_system-d16b8f0e.0.o -- alloc_system-d16b8f0e.0.o [<Difference...canalyzer -dump {} []>, <Difference find {} -execdir llvm-dis -o - {} ; -- find {} -execdir llvm-dis -o - {} ; []>]>]>]
rlib_dis_expected_diff = '@@ -42,32 +42,32 @@\n entry-block:\n   %out.i.i = alloca i8*, align 8\n   %4 = icmp ult i64 %3, 17\n   br i1 %4, labe...e i64 @__rust_reallocate_inplace(i8* nocapture readnone %0, i64 %1, i64 %2, i64 %3) unnamed_addr #1 {\n entry-block:\n'
    @skip_unless_tools_exist("llvm-dis")
    @skip_unless_tool_is_at_least("llvm-config", llvm_version, "3.8")
    def test_item3_deflate_llvm_bitcode(differences, rlib_dis_expected_diff):
        assert differences[3].source1 == "alloc_system-d16b8f0e.0.bytecode.deflate"
        assert differences[3].source2 == "alloc_system-d16b8f0e.0.bytecode.deflate"
        expected_diff = rlib_dis_expected_diff
        actual_diff = differences[3].details[0].details[1].unified_diff
>       assert diff_ignore_line_numbers(actual_diff) == diff_ignore_line_numbers(
            expected_diff
        )
E       AssertionError: assert '@@ -XX,XX +XX,XX @@\n entry-block:\n   %out.i.i = alloca ptr, align 8\n   %4 = icmp ult i64 %3, 17\n   br i1 %4, label %then-block-195-.i, label %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i\n \n then-block-195-.i:                                ; preds = %entry-block\n   %5 = tail call ptr @realloc(ptr %0, i64 %2) #2\n-  br label %_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit\n+  br label %_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit\n \n _ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i: ; preds = %entry-block\n   %6 = bitcast ptr %out.i.i to ptr\n   call void @llvm.lifetime.start.p0(i64 8, ptr %6) #2\n   store ptr null, ptr %out.i.i, align 8\n   %7 = call i32 @posix_memalign(ptr nonnull %out.i.i, i64 %3, i64 %2) #2\n   %8 = icmp eq i32 %7, 0\n   %9 = load ptr, ptr %out.i.i, align 8\n   %sret_slot.0.i.i = select i1 %8, ptr %9, ptr null\n   call void @llvm.lifetime.end.p0(i64 8, ptr %6) #2\n   %10 = icmp ule i64 %2, %1\n   %11 = select i1 %10, i64 %2, i64 %1\n   call void @llvm.memmove.p0.p0.i64(ptr align 1 %sret_slot.0.i.i, ptr align 1 %0, i64 %11, i1 false) #2\n   call void @free(ptr %0) #2\n-  br label %_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit\n+  br label %_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit\n \n-_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit: ; preds = %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i, %then-block-195-.i\n+_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit: ; preds = %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i, %then-block-195-.i\n   %sret_slot.0.i = phi ptr [ %5, %then-block-195-.i ], [ %sret_slot.0.i.i, %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i ]\n   ret ptr %sret_slot.0.i\n }\n \n ; Function Attrs: nounwind memory(none) uwtable\n define i64 @__rust_reallocate_inplace(ptr nocapture readnone %0, i64 %1, i64 %2, i64 %3) unnamed_addr #1 {\n entry-block:\n' == '@@ -XX,XX +XX,XX @@\n entry-block:\n   %out.i.i = alloca i8*, align 8\n   %4 = icmp ult i64 %3, 17\n   br i1 %4, label %then-block-195-.i, label %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i\n \n then-block-195-.i:                                ; preds = %entry-block\n   %5 = tail call i8* @realloc(i8* %0, i64 %2) #2\n-  br label %_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit\n+  br label %_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit\n \n _ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i: ; preds = %entry-block\n   %6 = bitcast i8** %out.i.i to i8*\n   call void @llvm.lifetime.start.p0i8(i64 8, i8* %6) #2\n   store i8* null, i8** %out.i.i, align 8\n   %7 = call i32 @posix_memalign(i8** nonnull %out.i.i, i64 %3, i64 %2) #2\n   %8 = icmp eq i32 %7, 0\n   %9 = load i8*, i8** %out.i.i, align 8\n   %sret_slot.0.i.i = select i1 %8, i8* %9, i8* null\n   call void @llvm.lifetime.end.p0i8(i64 8, i8* %6) #2\n   %10 = icmp ule i64 %2, %1\n   %11 = select i1 %10, i64 %2, i64 %1\n   call void @llvm.memmove.p0i8.p0i8.i64(i8* align 1 %sret_slot.0.i.i, i8* align 1 %0, i64 %11, i1 false) #2\n   call void @free(i8* %0) #2\n-  br label %_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit\n+  br label %_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit\n \n-_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit: ; preds = %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i, %then-block-195-.i\n+_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit: ; preds = %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i, %then-block-195-.i\n   %sret_slot.0.i = phi i8* [ %5, %then-block-195-.i ], [ %sret_slot.0.i.i, %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i ]\n   ret i8* %sret_slot.0.i\n }\n \n ; Function Attrs: nounwind readnone uwtable\n define i64 @__rust_reallocate_inplace(i8* nocapture readnone %0, i64 %1, i64 %2, i64 %3) unnamed_addr #1 {\n entry-block:\n'
E           @@ -XX,XX +XX,XX @@
E            entry-block:
E         -    %out.i.i = alloca i8*, align 8
E         ?                      ^^^
E         +    %out.i.i = alloca ptr, align 8
E         ?                      ^^^
E              %4 = icmp ult i64 %3, 17
E              br i1 %4, label %then-block-195-.i, label %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i
E            
E            then-block-195-.i:                                ; preds = %entry-block
E         -    %5 = tail call i8* @realloc(i8* %0, i64 %2) #2
E         ?                   ^^^          ^^^
E         +    %5 = tail call ptr @realloc(ptr %0, i64 %2) #2
E         ?                   ^^^          ^^^
E           -  br label %_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit
E           +  br label %_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit
E            
E            _ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i: ; preds = %entry-block
E         -    %6 = bitcast i8** %out.i.i to i8*
E         ?                 ^^^^             ^^^
E         +    %6 = bitcast ptr %out.i.i to ptr
E         ?                 ^^^             ^^^
E         -    call void @llvm.lifetime.start.p0i8(i64 8, i8* %6) #2
E         ?                                     --        ^^^
E         +    call void @llvm.lifetime.start.p0(i64 8, ptr %6) #2
E         ?                                             ^^^
E         -    store i8* null, i8** %out.i.i, align 8
E         ?          ^^^       ^^^^
E         +    store ptr null, ptr %out.i.i, align 8
E         ?          ^^^       ^^^
E         -    %7 = call i32 @posix_memalign(i8** nonnull %out.i.i, i64 %3, i64 %2) #2
E         ?                                  ^^^^
E         +    %7 = call i32 @posix_memalign(ptr nonnull %out.i.i, i64 %3, i64 %2) #2
E         ?                                  ^^^
E              %8 = icmp eq i32 %7, 0
E         -    %9 = load i8*, i8** %out.i.i, align 8
E         ?              ^^^  ^^^^
E         +    %9 = load ptr, ptr %out.i.i, align 8
E         ?              ^^^  ^^^
E         -    %sret_slot.0.i.i = select i1 %8, i8* %9, i8* null
E         ?                                     ^^^     ^^^
E         +    %sret_slot.0.i.i = select i1 %8, ptr %9, ptr null
E         ?                                     ^^^     ^^^
E         -    call void @llvm.lifetime.end.p0i8(i64 8, i8* %6) #2
E         ?                                   --        ^^^
E         +    call void @llvm.lifetime.end.p0(i64 8, ptr %6) #2
E         ?                                           ^^^
E              %10 = icmp ule i64 %2, %1
E              %11 = select i1 %10, i64 %2, i64 %1
E         -    call void @llvm.memmove.p0i8.p0i8.i64(i8* align 1 %sret_slot.0.i.i, i8* align 1 %0, i64 %11, i1 false) #2
E         ?                              --   --     ^^^                           ^^^
E         +    call void @llvm.memmove.p0.p0.i64(ptr align 1 %sret_slot.0.i.i, ptr align 1 %0, i64 %11, i1 false) #2
E         ?                                      ^^^                           ^^^
E         -    call void @free(i8* %0) #2
E         ?                    ^^^
E         +    call void @free(ptr %0) #2
E         ?                    ^^^
E           -  br label %_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit
E           +  br label %_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit
E            
E           -_ZN12alloc_system3imp10reallocate17h4a0811c9ec086854E.exit: ; preds = %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i, %then-block-195-.i
E           +_ZN12alloc_system3imp10reallocate1l44a0811c9ec086854E.exit: ; preds = %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i, %then-block-195-.i
E         -    %sret_slot.0.i = phi i8* [ %5, %then-block-195-.i ], [ %sret_slot.0.i.i, %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i ]
E         ?                         ^^^
E         +    %sret_slot.0.i = phi ptr [ %5, %then-block-195-.i ], [ %sret_slot.0.i.i, %_ZN12alloc_system3imp8allocate17h8ba7625cc4a820e8E.exit.i ]
E         ?                         ^^^
E         -    ret i8* %sret_slot.0.i
E         ?        ^^^
E         +    ret ptr %sret_slot.0.i
E         ?        ^^^
E            }
E            
E         -  ; Function Attrs: nounwind readnone uwtable
E         ?                              ^^^
E         +  ; Function Attrs: nounwind memory(none) uwtable
E         ?                             ++++ ^^    +
E         -  define i64 @__rust_reallocate_inplace(i8* nocapture readnone %0, i64 %1, i64 %2, i64 %3) unnamed_addr #1 {
E         ?                                        ^^^
E         +  define i64 @__rust_reallocate_inplace(ptr nocapture readnone %0, i64 %1, i64 %2, i64 %3) unnamed_addr #1 {
E         ?                                        ^^^
E            entry-block:
tests/comparators/test_rlib.py:128: AssertionError
=========================== short test summary info ============================
FAILED tests/comparators/test_macho.py::test_llvm_diff - AssertionError
FAILED tests/comparators/test_rlib.py::test_item3_deflate_llvm_bitcode - Asse...
ERROR tests/comparators/test_elf.py::test_differences_with_dbgsym - TypeError...
ERROR tests/comparators/test_elf.py::test_original_gnu_debuglink - TypeError:...
= 2 failed, 613 passed, 78 skipped, 16 deselected, 2 errors in 75.47s (0:01:15) =

Comment 4 Fedora Fails To Install 2023-07-23 18:15:38 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/

All subpackages of a package against which this bug was filled are now installable or removed from Fedora 39.

Thanks for taking care of it!