%changelog not in descending chronological order

Kacper Kornet draenog at pld-linux.org
Tue Jul 17 02:07:29 CEST 2012


On Mon, Jul 16, 2012 at 03:47:41PM -0400, Jeffrey Johnson wrote:

> On Jul 16, 2012, at 3:43 PM, Kacper Kornet <draenog at pld-linux.org> wrote:

> > On Mon, Jul 16, 2012 at 06:38:10PM +0200, Jacek Konieczny wrote:
> >> On Thu, Jul 12, 2012 at 03:16:02PM -0400, Jeffrey Johnson wrote:
> >>> On Jul 12, 2012, at 2:26 PM, Kacper Kornet <draenog at pld-linux.org> wrote:


> >>>>> That can be because 'git rev-list', used to generate the changelog,
> >>>>> returns the commits ordered by commit date and not the AuthorDate


> >>> Doing qsort(3) on RPMTAG_CHANGELOG* in rpmbuild isn't too hard, might be
> >>> easier than trying to figure out how to trick up git sewage.

> >> I wonder if RPM really needs to enforce the changelog order. Would it
> >> really hurt if it just allowed building a package with such seemingly
> >> unordered entries? Will anything break if we just disable the test?

> > So we have two solutions:

> > a) Switch to show committer dates in changelog. It should be possible to
> > show these dates should be in chronological order.

> > Drawback: for commits migrated from CVS this date is set to some
> > value =~ time of  cvs->git migration

> > b) Patch rpm in PLD to remove enforcing of chronological order in
> > changelog. The patch seems trivial.

> > I would go for b).


> c) qsort the 3 change log tags

That can be done during changelog generation in builder. But I don't
think it is a right solution. In my opinion changelog should reflect the topological
history of development.

> b) will introduce some incompatibilities: for starters,
> there's functionality already implemented to truncate
> change log's by number/oldest that will break if you
> just go unordered.

Do you mean the one build/parseChangelog.c:addChangelog?
It depends how the breakage is defined.
I have just checked and it behaves as expected in case of the
non chronological changelog. If %_changelog_truncate macro is set to a
date it ommits only older commits. All newer one are included
independent of their position in changelog. 

And I think in PLD %_changelog_truncat macro should be set to a number,
not a date.

And there is always a possibility that was used in PLD in CVS. Generate
the text of the whole changelog as a single entry in changelog from rpm
point of view. That way rpm always see only one revision and does not
complain.

-- 
  Kacper


More information about the pld-devel-en mailing list