Skip to content

Add a version epoch to supersede Raspberry Pi's libcamera - #14

Merged
DaniusKalv merged 1 commit into
debian/latestfrom
debian/epoch
Jun 19, 2026
Merged

Add a version epoch to supersede Raspberry Pi's libcamera#14
DaniusKalv merged 1 commit into
debian/latestfrom
debian/epoch

Conversation

@DaniusKalv

@DaniusKalv DaniusKalv commented Jun 19, 2026

Copy link
Copy Markdown
Member

Summary

  • We pin our patches to a fixed upstream snapshot, so Raspberry Pi's
    monotonic +rptYYYYMMDD date eventually overtakes ours. Without an
    epoch, apt keeps RPi's newer libcamera as an already-satisfied
    dependency of rpicam-apps and our camera support is silently dropped.
  • Add a Debian epoch (1:) so Kurokesu's libcamera is unconditionally
    the higher version regardless of date
    (1:0.7.1+rpt20260429+krks1-4).
  • The epoch is comparison-only: colons are illegal in git refs and
    rejected by upload-artifact, so the release tooling keeps it out of
    tags and asset filenames and applies it only to the .deb version
    apt compares:
    • _build.yml: strip the epoch for the orig tarball, source dir and
      asset name; the .deb keeps it via the packaging version.
    • release.yml / release.sh: derive epoch-free tags and strip the
      epoch before the tag-vs-changelog check.
    • d/source/README.source: document the epoch in the version scheme
      and the tag convention.

Note

The epoch is permanent, removing it later is itself a downgrade. This
is intentional: Kurokesu's libcamera should always supersede stock.

Test plan

  • ./release.sh (dry run) reports colon-free tags:
    v0.7.1+rpt20260429+krks1 and debian/0.7.1+rpt20260429+krks1-4.
  • dpkg --compare-versions 1:0.7.1+rpt20260429+krks1-4 gt 0.7.1+rpt20260609-1
    holds (ours outranks RPi's trixie stock).
  • Downstream gate (after this releases as -4): rebuild rpicam-apps
    against the pin and confirm a clean-Pi apt install rpicam-apps
    pulls Kurokesu's libcamera.

Kurokesu's libcamera pins its patches to a fixed upstream snapshot, so
Raspberry Pi's monotonic +rptYYYYMMDD date eventually overtakes ours.
Without an epoch, apt keeps RPi's newer libcamera as an already-satisfied
dependency of rpicam-apps and our camera support is silently dropped.

Add a Debian epoch (1:) so our package is unconditionally the higher
version regardless of date. The epoch is comparison-only: colons are
illegal in git refs and rejected by upload-artifact, so the release
tooling keeps it out of tags and asset filenames and applies it only to
the .deb version apt compares.

- d/changelog: 1:0.7.1+rpt20260429+krks1-4
- _build.yml: strip the epoch for the orig tarball, source dir and asset
  name; the .deb keeps it via the packaging version
- release.yml: strip the epoch before the tag-vs-changelog check
- release.sh: derive epoch-free source and packaging tags
- d/source/README.source: document the epoch in the version scheme and
  the tag convention

Signed-off-by: Danius Kalvaitis <danius@kurokesu.com>
@DaniusKalv DaniusKalv self-assigned this Jun 19, 2026
@DaniusKalv DaniusKalv added the enhancement New feature or request label Jun 19, 2026
@DaniusKalv
DaniusKalv merged commit 80d9856 into debian/latest Jun 19, 2026
2 checks passed
@DaniusKalv
DaniusKalv deleted the debian/epoch branch June 26, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant