Hi all:

The OpenOCD build system is using script git2cl to generate the ChangeLog file 
for a distribution. This is the invocation in Makefile.am:

git --git-dir $(srcdir)/.git log | PERL_UNICODE="IO" $(srcdir)/tools/git2cl/git2cl 
> $(distdir)/ChangeLog ; \

The upstream source code of git2cl is here:

https://git.savannah.nongnu.org/cgit/git2cl.git/tree/git2cl

OpenOCD's submodule for this repository has not been updated to the latest 
stand. The only change is some documentation in the form of comments at the 
beginning of git2cl, which states:

-----8<-----8<-----
If you don't want git2cl to invoke git log internally, you can use it
as a pipe.

It needs a git log generated with --pretty --numstat and --summary.
You can use it as follows:

git log --pretty --numstat --summary | git2cl > ChangeLog

-----8<-----8<-----

Because OpenOCD is not using those options, I guess we are missing information 
in the generated ChangeLog.

Furthermore, I found this inside the script:

-----8<-----8<-----8<-----
# Assumes you are calling 'git log ...' with LC_ALL=C
my %month = (
    'Jan'=>0,
    'Feb'=>1,
    'Mar'=>2,
    'Apr'=>3,
    'May'=>4,
    'Jun'=>5,
    'Jul'=>6,
    'Aug'=>7,
    'Sep'=>8,
    'Oct'=>9,
    'Nov'=>10,
    'Dec'=>11,
);
-----8<-----8<-----8<-----

My system uses the German locale, and OpenOCD's build system does not seem to 
be setting LC_ALL=C, so that month detection logic will fail, and it apparently 
fails silently.

It turns out that git2cl can run "git log" itself and set LC_ALL correctly. 
This is the line inside git2cl to that purpose:

$fh->open("LC_ALL=C git log --pretty --numstat --summary|")

I do not know much about these Git and ChangeLog matters. Is there a reason why 
we are not running git2cl as recommended?

Regards,
  rdiez

Reply via email to