Bug 2421973

Summary: Review Request: stubble - UEFI kernel boot stub with auto-DTB selection
Product: [Fedora] Fedora Reporter: Hans de Goede <hans>
Component: Package ReviewAssignee: Neal Gompa <ngompa13>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: ngompa13, package-review
Target Milestone: ---Keywords: AutomationTriaged
Target Release: ---Flags: ngompa13: fedora-review+
Hardware: All   
OS: Linux   
URL: https://github.com/ubuntu/%{name}/
Whiteboard:
Fixed In Version: stubble-0.0~20251118gitb5e720e-2.fc44 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-01-11 19:35:10 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:

Description Hans de Goede 2025-12-13 12:00:03 UTC
Spec URL: https://fedorapeople.org/~jwrdegoede/stubble.spec
SRPM URL: https://fedorapeople.org/~jwrdegoede/stubble-0.0-1.20251118gitb5e720e.fc44.src.rpm
Description:

A minimal UEFI kernel boot stub that serves a single purpose:

Loading machine specific device trees embedded within a kernel image.

stubble is compatible with systemd-stub(7) and ukify(1).

Also see: https://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems

Fedora Account System Username: jwrdegoede

Comment 1 Fedora Review Service 2025-12-13 12:02:59 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9906074
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2421973-stubble/fedora-rawhide-x86_64/09906074-stubble/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Neal Gompa 2025-12-13 12:14:09 UTC
Taking this review.

Comment 3 Hans de Goede 2025-12-13 12:19:15 UTC
Thx Neal.

About the rpmlint warnings, these are all false positives. I've included a rpmlintrc file in the .src.rpm which filters these:

"""
# Dict does not know systemd and ukify
addFilter("E: spelling-error")
# This builds an UEFI binary, not a Linux ELF binary
addFilter("W: only-non-binary-in-usr-lib")
addFilter("E: no-binary")
addFilter("W: no-%check-section")
# Meh
addFilter("E: incorrect-fsf-address")
"""

I also realized I forgot to add an "Exclusive Arch: aarch64", which I believe should be there since this is not really useful elsewhere and it will only build on x86_64 and aarch64.

Updated spec and src.rpm:

Spec URL: https://fedorapeople.org/~jwrdegoede/stubble.spec
SRPM URL: https://fedorapeople.org/~jwrdegoede/stubble-0.0-2.20251118gitb5e720e.fc44.src.rpm

Comment 4 Neal Gompa 2025-12-13 13:07:24 UTC
Initial spec review:

> Version:        0.0
> Release:        2.%{commitdate}git%{shortcommit}%{?dist}

This should use the newer SnapshotVersioning.

Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots

It should look something like this in Version: "0.0~git%{commitdate}.%{shortcommit}"

Then Release just looks normal.

> # This builds an UEFI binary, not a Linux ELF binary, disable distro flags
> unset CFLAGS
> unset LDFLAGS

This can be replaced with "%undefine _auto_set_build_flags" at the top of the spec.

> make %{?_smp_mflags}

Replace with "%make_build"

> make install DESTDIR=$RPM_BUILD_ROOT

Replace with "%make_install"

> %{_prefix}/lib/%{name}
> %{_datadir}/%{name}

Please add a trailing slash so RPM tracks them as directories.

Comment 5 Neal Gompa 2025-12-13 13:26:55 UTC
We are also missing SBAT data, I think? But I'm not sure how that should be incorporated into this.

Comment 6 Hans de Goede 2025-12-14 14:22:42 UTC
Thank you for the review.

Ack for all suggested changes, I'll prepare a new version with these changes.

> We are also missing SBAT data, I think?

SBAT data would be passed to the ukify command in kernel.spec, as it will apply to the EFI binary generated by running ukify to pack the Stubble stub + DTBs + vmlinuz.efi together in a single new EFI binary.

Still a good question though. I'll see if I can borrow what the kernel.spec is doing for the kernel-uki-virt UKIs for this.

Comment 8 Neal Gompa 2026-01-06 19:50:25 UTC
> URL:            https://github.com/ubuntu/%{name}/
> Source0:        https://github.com/ubuntu/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz

This can be simplified like so:

URL:            https://github.com/ubuntu/%{name}
Source0:        %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz

> BuildRequires:  make gcc python3-pyelftools

Please put each BR on its own line, it makes it easier to deal with for git diffs

> ExclusiveArch:  aarch64

Please use "%{arm64}" instead of just aarch64.

Comment 9 Hans de Goede 2026-01-11 16:50:07 UTC
Thank you for the review.

New version:

Spec URL: https://fedorapeople.org/~jwrdegoede/stubble.spec
SRPM URL: https://fedorapeople.org/~jwrdegoede/stubble-0.0~20251118gitb5e720e-2.fc44.src.rpm

Changes:

* Sun Jan 11 2026 Hans de Goede <johannes.goede.com> - 0.0~20251118gitb5e720e-2
- Use %%{url} for Source0
- Use %%{arm64} for ExclusiveArch
- Use 1 line per BuildRequires

Comment 10 Neal Gompa 2026-01-11 18:23:32 UTC
> %autosetup -p 1 -n %{name}-%{commit}

Nit: A nice simplification would be to use "%autosetup -C -p1"

Comment 11 Neal Gompa 2026-01-11 18:24:25 UTC
Review notes:

* Package follows Fedora Packaging Guidelines
* Package builds and installs
* Package licensing is correct and license data is installed correctly
* No serious issues from rpmlint

PACKAGE APPROVED.

Comment 12 Fedora Admin user for bugzilla script actions 2026-01-11 18:43:03 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/stubble

Comment 13 Hans de Goede 2026-01-11 19:35:10 UTC
Thank you. I've fixed the nitpick when importing the package.

Imported and build for rawhide, closing.