Start Fedora 44 builds #11

Closed
opened 2026-02-27 15:08:25 +00:00 by kashyapc · 5 comments
Owner

This is a top-level ticket to track all the tasks to complete F44 rebuild.

  • Start mass-rebuild in small batches
  • Make F44 images (cloud, server, container)
  • Kernel: unified, and board-specific kernels,
  • ...

(Related: #9)

This is a top-level ticket to track all the tasks to complete F44 rebuild. - Start mass-rebuild in small batches - Make F44 images (cloud, server, container) - Kernel: unified, and board-specific kernels, - ... (Related: https://forge.fedoraproject.org/riscv/planning/issues/9)
Owner

I think that F44 could be started even today but would be nice to have some things sorted out:

  • builders on F43-latest
  • builders on 6.18+ unified kernel
  • missing languages bootstrapped if possible (zig, ldc, fpc)
  • no fc41 (and lower) packages in the repo (as they can be a sign that we failed to build newer NVR)

And then plan showing which components we rebuild first as f44 is mass rebuild release.

Kernel version is checked in a few packages in a way that 6.6 we still have on some runners fails or alters the build,

I think that F44 could be started even today but would be nice to have some things sorted out: - builders on F43-latest - builders on 6.18+ unified kernel - missing languages bootstrapped if possible (zig, ldc, fpc) - no fc41 (and lower) packages in the repo (as they can be a sign that we failed to build newer NVR) And then plan showing which components we rebuild first as f44 is mass rebuild release. Kernel version is checked in a few packages in a way that 6.6 we still have on some runners fails or alters the build,
Owner

Would be good to check are we up-to-date with those <fc43 packages. Lass mass-rebuild was in F41 iirc.

Would be good to check are we up-to-date with those <fc43 packages. Lass mass-rebuild was in F41 iirc.
Owner

The whole list of packages present on the RISC-V Fedora 43 koji versus version present in Fedora 43. Plus all versions attempted to build for RISC-V

The whole list of packages present on the RISC-V Fedora 43 koji versus version present in Fedora 43. Plus all versions attempted to build for RISC-V
Owner

Python script to generate above list:

#!/usr/bin/env python3

import koji

RISCV_KOJI_HUB  = 'https://riscv-koji.fedoraproject.org/kojihub'
FEDORA_KOJI_HUB = 'https://koji.fedoraproject.org/kojihub'
TAG_NAME = 'f43'

koji_states = {
        0: 'Building',
        1: 'Done',
        2: 'Deleted',
        3: 'Failed',
        4: 'Cancelled',
        }


def get_builds(pkg_id):
    query_opts = {'limit': 10, 'order': '-completion_time'}
    kwargs = {
        'packageID': pkg_id,
    }
    return riscv_session.listBuilds(queryOpts=query_opts, **kwargs)


if __name__ == "__main__":

    # 2. Connect to Koji (No auth needed for read-only)
    riscv_session = koji.ClientSession(RISCV_KOJI_HUB)
    fedora_session = koji.ClientSession(FEDORA_KOJI_HUB)

    old_builds = {}
    packages = []

    for tag in [TAG_NAME, f'{TAG_NAME}-updates']:
        riscv_builds = riscv_session.listTagged(tag, latest=True, inherit=True)
        fedora_builds = fedora_session.listTagged(tag, latest=True, inherit=True)

        fbuilds = {}
        for b in fedora_builds:
            fbuilds[b['name']] = b

        for b in riscv_builds:
            if 'fc43' not in b['release']:
                if b['name'] not in old_builds:
                    old_builds[b['name']] = {}

                if b['name'] not in packages:
                    packages.append(b['name'])
                try:
                    old_builds[b['name']]['riscv'] = b
                    old_builds[b['name']]['fedora'] = fbuilds[b['name']]
                except KeyError:
                    pass

    for b in sorted(packages):
        if 'fedora' in old_builds[b]:
            print(f'Fedora koji: {old_builds[b]["fedora"]["nvr"]}')

        print(f'RISC-V koji: {old_builds[b]["riscv"]["nvr"]}')

        skip_done = False
        attempts = get_builds(old_builds[b]['riscv']['package_id'])
        if len(attempts) > 1 and attempts[0]['state'] != 1:
            for a in attempts:
                if skip_done:
                    continue
                if a['state'] == 1:
                    skip_done = True
                print(f'             {a["nvr"]:<45} {koji_states[a["state"]]}')

        print("")
Python script to generate above list: ```python #!/usr/bin/env python3 import koji RISCV_KOJI_HUB = 'https://riscv-koji.fedoraproject.org/kojihub' FEDORA_KOJI_HUB = 'https://koji.fedoraproject.org/kojihub' TAG_NAME = 'f43' koji_states = { 0: 'Building', 1: 'Done', 2: 'Deleted', 3: 'Failed', 4: 'Cancelled', } def get_builds(pkg_id): query_opts = {'limit': 10, 'order': '-completion_time'} kwargs = { 'packageID': pkg_id, } return riscv_session.listBuilds(queryOpts=query_opts, **kwargs) if __name__ == "__main__": # 2. Connect to Koji (No auth needed for read-only) riscv_session = koji.ClientSession(RISCV_KOJI_HUB) fedora_session = koji.ClientSession(FEDORA_KOJI_HUB) old_builds = {} packages = [] for tag in [TAG_NAME, f'{TAG_NAME}-updates']: riscv_builds = riscv_session.listTagged(tag, latest=True, inherit=True) fedora_builds = fedora_session.listTagged(tag, latest=True, inherit=True) fbuilds = {} for b in fedora_builds: fbuilds[b['name']] = b for b in riscv_builds: if 'fc43' not in b['release']: if b['name'] not in old_builds: old_builds[b['name']] = {} if b['name'] not in packages: packages.append(b['name']) try: old_builds[b['name']]['riscv'] = b old_builds[b['name']]['fedora'] = fbuilds[b['name']] except KeyError: pass for b in sorted(packages): if 'fedora' in old_builds[b]: print(f'Fedora koji: {old_builds[b]["fedora"]["nvr"]}') print(f'RISC-V koji: {old_builds[b]["riscv"]["nvr"]}') skip_done = False attempts = get_builds(old_builds[b]['riscv']['package_id']) if len(attempts) > 1 and attempts[0]['state'] != 1: for a in attempts: if skip_done: continue if a['state'] == 1: skip_done = True print(f' {a["nvr"]:<45} {koji_states[a["state"]]}') print("") ```
Author
Owner
https://discussion.fedoraproject.org/t/fedora-44-risc-v-non-official-images-are-available/193356
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
riscv/planning#11
No description provided.