Package maintenance is bad enough, but those pesky packaging guidelines keep changing! Who has the time to keep up with all of that?
If you have a crufty old specfile and you've given up even looking at the rpmlint output, why not let us give it a good cleaning? Just open a new issue here and give us a few pieces of information and we'll take a look.
You should tell us:
We will fork your package and send one or more pull requests against the master branch when done. You should inspect them and merge or not as you wish. We will have at least done mockbuilds but you should do all appropriate testing before pushing changes.
Anyone is welcome to join up to assist with cleanup. Thanks to the magic of Pagure, you won't actually need any commit privileges do to cleanup; you'll be forking and sending pull requests instead. You should, of course, know how to drive Pagure and git in order to do that. You should also have a firm grasp of packaging and the current state of the packaging guidelines, and be able to reasonably run mock, or be able to do koji scratch builds.
Then just ask for permissions on this repository so that you can take tickets, and start working on packages.
It would be helpful to have some guidelines for style which go beyond what's in the guidelines. I (tibbs) have been working on some on and off for a while, but there is no chance that everyone can agree on all of them. In any case, here are some basic things:
%{buildroot}
and %{optflags}
in preference to $RPM_BUILD_ROOT and
$RPM_OPT_FLAGS if there is any question about which should be used, but
otherwise be consistent with the spec. Consider sending a separate PR to
switch to the preferred method.%clean
and Group:
and the like).%define
which should be %global
. (The difference
is subtle; if in doubt, ask in the ticket.){
and }
) around macro names where generally used,
unless the person requesting cleanup asked for them to be removed.
Personally I (tibbs) can't stand them but many people are used to seeing them
in some places (%{buildroot}
) and not in others (%configure
,
%autosetup
).%{_var}
instead of
%{_localstatedir}
, and %{_etc}
once we have it).%autosetup -p1
but ask first if this means regenerating patches.Release:
.