RPM::G...Sanity(3pm)
π RPM::G...Sanity β the 3pm Perl manual π
okay bestie, welcome to RPM::G...Sanity, a section 3pm Perl manual page from the User Contributed Perl Documentation collection. it's giving β¨specfile lintingβ¨ energy and honestly? obsessed. let's get into it π«Ά
πΈ NAME πΈ
FIXME β FIXME
like. literally that's it. the name is FIXME and the description is FIXME. no cap, this page is a template that never got filled in and i respect the commitment to the bit π
π SYNOPSIS π
use Fixme::FIXME;
....
that's the whole vibe. use Fixme::FIXME; and then .... which is not real Perl, that's just the author saying "you know what goes here" π
π¦ DESCRIPTION π¦
FIXME fixme fixme fixme
yeah. it's placeholder city up in here. the real β¨contentβ¨ of this page lives down in DIAGNOSTICS, so scroll, bestie, scroll π§
β¨ CONSTRUCTOR β¨
heads up: this is FIXME-only if OO β meaning it's only relevant if this thing is written as object-oriented.
new( FIXME-args )βFIXME FIXME describe constructor
so yeah, the constructor exists, it takes FIXME-args, and the description of it is literally FIXME FIXME describe constructor. iconic of it to not explain itself π
π METHODS π
FIXME document methods β again, placeholder behaviour, we love a page that admits it.
method1β...method2β...
two methods, both of them vibes, neither of them documented π
β EXPORTED FUNCTIONS β
nothing here bestie. literally empty. no exports, no notes, just silence π
β EXPORTED CONSTANTS β
also empty. zero constants. the void is constant though, if you think about it π
β EXPORTABLE FUNCTIONS β
empty too. three empty sections in a row is lowkey a mood π¦
πΈ FILES πΈ
no files listed. nope. none. moving on β¨
π₯ DIAGNOSTICS π₯
okay HERE is the actual main character energy of this whole page. these are the gripes this thing yells at you about, and i need you to pay attention fr fr π
π©Ή MacroSurprise
did you know that RPM expands macros even inside comments?? π like. inside. comments. rude.
sometimes this is fine: %{name}, %{version} β those are chill. but when %{foo} is a multi-line macro, or %if, or %patch, that's when the unpleasant surprises start showing up at your door π«
as of May 2012, this test only triggers on a certain well-defined list of hazardous macros: patch, if, else, endif, define. (it used to trigger on %anything, but that gave way too much noise β rip to that era, it was a lot). this list may need to be refined over time.
Recommendation: double-percent all macros in comments: %%{name}
not me learning this the hard way. double those percents bestie, trust π
π©Ή ChangelogMissing
there is no %changelog section in your specfile. can this happen? apparently yes, and we're all just living with that knowledge π
π©Ή ChangelogEmpty
the %changelog section in your specfile is empty. this error doesn't sound like it could happen, but it does. and honestly? that's so real of it π
π©Ή ChangelogOnlyNeedsVR
you included your package name in the %changelog entry. all you need is the Version-Release. see <http://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs> β¨
π©Ή ChangelogCruftInVersion
the version string in your first %changelog entry includes unnecessary cruft. cruft detected. cruft removed. periodt π
π©Ή ChangelogWrongEpoch
you included an epoch in your %changelog entry, but it's the wrong one. π¬
π©Ή ChangelogUnexpectedEpoch
you included an epoch in your %changelog entry, but the specfile itself does not define an Epoch. surprise epoch! not the good kind π
π©Ή ChangelogBadVersion
the version string in your first %changelog entry does not match the one defined in the package specfile. mismatch behaviour, we hate to see it π¦
π©Ή ChangelogBadRelease
the release string in your first %changelog entry does not match the one defined in the package specfile. same energy, different field, still a no π
π©Ή ChangelogWeirdLine
i could not parse the first line of the %changelog section in your specfile. see <http://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs> π
π©Ή ChangelogLeadingWhitespace
you've indented a line in a changelog message, perhaps for clarity, but that indentation will not survive rpmbuild. customers who run rpm -q --changelog will see that line without any leading whitespace.
this is probably not a cataclysmic source of confusion, but please check anyway π
π©Ή ChangelogMacros
percent signs in .spec files get expanded as macros. when you write Replaced /bin with %{bindir}, rpm -q --changelog will show Replaced /bin with /bin. confusing! the excerpt in the gripe message shows you what you wrote and what customers will see π
Solution: double up percent signs: %%{foo}.
π©Ή ChangelogWrongWeekday
a specfile %changelog entry has a mismatch between the weekday and the date. there is no automated way to know which is correct. this needs human intervention. that's you, bestie. you're the human π«Ά
π SEE ALSO π
L<>
yeah it's an empty L<>. keep reading, this becomes relevant in a sec π
π AUTHOR π
Ed Santiago <santiago@redhat.com> β thank you for your service, king π
π¨ POD ERRORS π¨
hey! the above document had some coding errors, which are explained below:
Around line 616:
An empty L<>
called it. the SEE ALSO section's empty L<> is the crime scene and this is the report π΅οΈβοΈ
and that's the whole page!! slay β¨ this was RPM::G...Sanity(3pm) from perl v5.42.0, dated 2025-07-25. mwah, go double your percent signs, bestie πππ¦
π¦ where this page comes from
- fedora 43: rpmgrill 0.34-20.fc43 Β· Artistic-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms