GNOME Bugzilla – Bug 330509
po/Makefile POTFILES substitution failure
Last modified: 2012-03-16 12:39:41 UTC
Please describe the problem: Running autogen.sh makes it create "po/stamp-it" before "make" is executed. This prevents the creation of my "*.gmo" files. Manually deleting "po/stamp-it" after autogen.sh makes the problem go away. This manual step is a annoying as it requires changes to the ".spec" file if I want my translations to be included in the rpm. The following change to my spec makes the translations get included: %build %configure rm -f po/stamp-it <== Added manual deltion of stamp-it make Steps to reproduce: 1. ./autogen.sh 2. Observe that po/stamp-it exists 3. Execute make 4. Observe that the *.gmo are not created Actual results: As described above.. Expected results: Step 3 should result in the creation of *.gmo files Does this happen every time? Yes Other information: This does not happen in 0.34.1. I am not entirely sure that this is a bug in intltool but the stamp-it file seems to be created by intltool so...
RPMs to demonstrate the problem here: http://www.omesc.com/content/downloads/dist/
I am unable to reproduce this problem with CVS intltool. The gmo files are being created just fine. Are you saying they aren't included in the tarball, and aren't getting created when building from that?
Please download this tarball: http://www.omesc.com/content/downloads/dist/SOURCES/evolution-brutus-0.9.4.tar.gz Edit evolution-brutus.spec.in to not delete the "po/stamp-it" file. Then do "./autogen.sh ; make dist-rpm" to see the problem. I should add that the dist-rpm target assumes that you have a fedora rpm environment with $(HOME)/rpmbuild as _topdir.
The problem is totally unrelated to stamp-it. Your po/Makefile is being created incorrectly somehow. which is quite odd. So, just doing "touch po/Makefile.in.in" and then running make, will also work. It looks like the CATALOGS variable is not being defined in Makefile, in the initial creation of the file. This is of course very odd, as the variable is properly substituted in the Makefile.in. It looks like there's a race between the standard intltool ac config commands, and the ones for $subdir/stamp-it.
OK. It's not actually a race. It looks like there's a bug in the regex to substitute the POTFILES variable in po/Makefile, with the contents of the POTFILES file. A workaround is to remove the secondary newline in POTFILES.in at the end of the file. Your POTFILES.in has 2 newlines, and is causing this issue.
That did indeed work. Not an entirely obvious fix I must add ;-)
OK. I've just committed a workaround for this in intltool. I've added a throw-away comment in Makefile.in.in that ends up getting stripped out, rather than the CATALOGS = definition. This at least makes intltool work, albeit a crappy solution. I'm leaving this open though, until we have a proper solution.
OK. I've replaced the useless comment with $(NULL). This makes the Makefile properly valid, and resolves this issue.
OK. That doesn't fully work, so I'm reopening this.
intltool has switched from the GNOME to the launchpad.net infrastructure nearly three years ago: https://mail.gnome.org/archives/gnome-i18n/2009-April/msg00275.html The intltool product in bugzilla.gnome.org has been deprecated and closed for new bug entry since April 2009. I am now closing all remaining open reports about intltool as NOTGNOME as part of GNOME Bugzilla Housekeeping. Reporter: If the problem that you reported here is still valid in a recent version of intltool we kindly ask you to report it again to https://bugs.launchpad.net/intltool/ so the intltool developers get notified about it.