#6605 make lint + make modifies PO files in place
Closed: fixed 6 years ago Opened 7 years ago by cheimes.

There seems to be an issue with time stamps on PO files. make followed by make lint and then followd by make changes po files in tree. It's a bit hard to reproduce, though. This recipe is a pretty good reproducer.

$ rm -rf po
$ git reset --hard
$ ./autogen.sh
$ make
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
$ make lint
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
$ make
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   po/bn_IN.po
        modified:   po/ca.po
        modified:   po/cs.po
        modified:   po/de.po
        modified:   po/es.po
        modified:   po/eu.po
        modified:   po/fr.po
        modified:   po/hi.po
        modified:   po/hu.po
        modified:   po/id.po
        modified:   po/ja.po
        modified:   po/kn.po
        modified:   po/mr.po
        modified:   po/nl.po
        modified:   po/pl.po
        modified:   po/pt_BR.po
        modified:   po/ru.po
        modified:   po/sk.po
        modified:   po/tg.po
        modified:   po/uk.po
        modified:   po/zh_CN.po

no changes added to commit (use "git add" and/or "git commit -a")
 git diff po/cs.po
diff --git a/po/cs.po b/po/cs.po
index 8f16e6b..e98c27f 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ipa\n"
 "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n"
-"POT-Creation-Date: 2016-08-29 10:39+0200\n"
+"POT-Creation-Date: 2017-01-11 16:04+0100\n"
 "PO-Revision-Date: 2015-06-29 01:17-0400\n"
 "Last-Translator: Josef Hruška <hrusjos@gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/freeipa/language/"
@@ -21,112 +21,47222 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Generator: Zanata 3.9.3\n"

+#: client/config.c:56
+#, c-format
+msgid "cannot open configuration file %s\n"
+msgstr ""
+
+#: client/config.c:63
+#, c-format
+msgid "cannot stat() configuration file %s\n"
+msgstr ""
+
+#: client/config.c:69
+#, c-format
+msgid "out of memory\n"
+msgstr ""
...

This is a very annoying issue during development. The sooner we fix this, the better.

Metadata Update from @cheimes:
- Issue assigned to someone
- Issue set to the milestone: FreeIPA 4.5

7 years ago

Comment by cheimes in Trac before migration:

I found the culprit of the issue. In
https://github.com/freeipa/freeipa/commit/4c133837d149352a68e1d6cbefbb28e4ae048755
Petr removed po/ipa.pot. He is right that the pot file is an auto-
generated file that can be easily re-generated from sources. However the
pot file servces a second purpose. It also serves as a build dependency
for all po files. Every time the pot file is regenerated, all po files are
also regenerated:

 $ git checkout -- po/*.po
 $ make
 $ git status
 ...
 nothing to commit, working tree clean
 $ rm po/ipa.pot
 $ make
 $ git status
 ]$ git status
 ...
 Changes not staged for commit:
   (use "git add <file>..." to update what will be committed)
   (use "git checkout -- <file>..." to discard changes in working
 directory)

         modified:   po/bn_IN.po
         modified:   po/ca.po
         modified:   po/cs.po
         modified:   po/de.po
 ...

Solution:
Re-add ipa.pot

Metadata Update from @pvoborni:
- Custom field affects_doc reset
- Custom field tester adjusted to wanted
- Issue close_status updated to: None

7 years ago

@cheimes nice catch. *.pot files are stored in sssd.git. And Jakub updates them before each release.

sh$ git log -n 10 --oneline ./src/man/po/sssd-docs.pot  ./po/sssd.pot 
36b56482c Updating the translations for the 1.15.0 release
0142e7e25 Updating the translations for the 1.14.2 release
ad805face Updating the translations for the 1.14.1 release
d25fa6f26 Updating the translations for the 1.14.0 release
a86d6cd05 Updating the translations for the 1.14 beta release
f45a20d6b Updating the translations for the 1.14 alpha release
261cdde02 Updating translations for the 1.13.1 release
531661c7b Updating the translations for the 1.13.0 release
be5cc3c01 Updating the translations for the 1.13 Alpha release
481ec0e1e Updating translations for the 1.12.3 release

sh$ find . -name "*.pot"
./src/man/po/sssd-docs.pot
./po/sssd.pot

Metadata Update from @mbasti:
- Issue set to the milestone: FreeIPA 4.5.1 (was: FreeIPA 4.5)

7 years ago

Metadata Update from @tdudlak:
- Custom field component reset (from Build System)
- Custom field tester reset (from wanted)
- Custom field type reset (from defect)

7 years ago

Metadata Update from @mbasti:
- Issue set to the milestone: FreeIPA 4.5.2 (was: FreeIPA 4.5.1)

6 years ago

FreeIPA 4.5.1 has been released, moving to FreeIPA 4.5.2 milestone

Metadata Update from @tdudlak:
- Issue assigned to tdudlak (was: someone)

6 years ago

Metadata Update from @tkrizek:
- Issue set to the milestone: FreeIPA 4.5.3 (was: FreeIPA 4.5.2)

6 years ago

Metadata Update from @tdudlak:
- Assignee reset

6 years ago

I've tried to solve this by re-adding ipa.pot during the 4.5.3 release, but it doesn't fix the issue. Even when the file is present, the .po files are generated when running ./makerpms.sh script. I've also tried to autoreconf and ./configure before the build with the ipa.pot file present, but it didn't help either.

I've tried to solve this by re-adding ipa.pot during the 4.5.3 release, but it doesn't fix the issue. Even when the file is present, the .po files are generated when running ./makerpms.sh script. I've also tried to autoreconf and ./configure before the build with the ipa.pot file present, but it didn't help either.

Are po files regenerated if you call make dist ? I assume yes. And that's expected. And make dist is indirectly called as dependency for make rpms which is called by ./makerpms.sh

IMHO the simplest workaround/hack would be to call call git checkout for all po files in ./makerpms.sh

I like this solution. In fact, this is what I do all the time myself.

Metadata Update from @tkrizek:
- Issue set to the milestone: FreeIPA 4.5.4 (was: FreeIPA 4.5.3)

6 years ago

master:

  • f32784f build: checkout *.po files at the end of makerpms.sh

ipa-4-5:

  • f66360e build: checkout *.po files at the end of makerpms.sh

master:

  • f7d1a10 makerpms.sh: make git checkout optional

Metadata Update from @tkrizek:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

6 years ago

Login to comment on this ticket.

Metadata