perl: pin cf_time/cf_by for reproducible builds#249
Conversation
Configure bakes the wall-clock build time into Config_heavy.pl/perlbug/perlthanks (cf_time/cf_by), making builds non-reproducible. Pin both from SOURCE_DATE_EPOCH and pass them explicitly to Configure (perl doesn't honor SOURCE_DATE_EPOCH natively). Verified byte-identical content across a from-source double-build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthrough
ChangesPerl Reproducible Build
Estimated code review effort🎯 2 (Simple) | ⏱️ ~5 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
…ed to 8h) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Problem
perl'sConfigurebakes the wall-clock build time (and builder name) intoConfig_heavy.pl,perlbug, andperlthanksviacf_time/cf_by. Two buildsof the same source therefore produce different bytes. Confirmed with a
build-twice-and-diff:
Fix
Pin both values deterministically from
SOURCE_DATE_EPOCHand pass them explicitlyto
Configure(perl does not honorSOURCE_DATE_EPOCHnatively):Verification
A from-source double-build (~34 min) now produces byte-identical content —
repro-check diffreports no content differences (previously:cf_timedigitsdiffered in the 3 files above).
🤖 Generated with Claude Code
Summary by CodeRabbit