Summary: | Cannot translate project due to srcdir != builddir. | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Pupeno <pupeno> |
Component: | general | Assignee: | KDevelop Developers <kdevelop-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | elendil |
Priority: | NOR | ||
Version: | 3.0.0b1 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Patch for translation problems |
Description
Pupeno
2003-12-22 00:24:41 UTC
*** Bug 71644 has been marked as a duplicate of this bug. *** Subject: kdevelop CVS commit by aclu: Partly fix "Cannot translate project due to srcdir != builddir" 71003 http://bugs.kde.org/show_bug.cgi?id=71003 Please read kdevelop/languages/cpp/app_templates/kapp/README and test it. CCMAIL: 71003@bugs.kde.org M +1 -1 Makefile.am 1.92 M +1 -1 parts/appwizard/common/kde-Makefile.am 1.2 --- kdevelop/parts/appwizard/common/kde-Makefile.am #1.1.1.1:1.2 @@ -13,5 +13,5 @@ package-messages: - $(MAKE) -f admin/Makefile.common package-messages + $(MAKE) -f $(top_srcdir)/admin/Makefile.common package-messages $(MAKE) -C po merge --- kdevelop/Makefile.am #1.91:1.92 @@ -25,5 +25,5 @@ package-messages: - $(MAKE) -f admin/Makefile.common package-messages + $(MAKE) -f $(top_srcdir)/admin/Makefile.common package-messages $(MAKE) -C po merge Subject: Re: Cannot translate project due to srcdir != builddir. On Friday 09 January 2004 18:43, you wrote: > > Please read kdevelop/languages/cpp/app_templates/kapp/README and test it. > Could you please also take a look at http://bugs.kde.org/show_bug.cgi?id=71625 as it is related and I don't think a test of Make Massages and Merge will work completely until that is fixed as well. Will test both fixes after your reply. Thanks for fixing this (and also 71633). P.S. I already have the patched gettext. Note that with that patch, the problem that gives the error: gmake[1]: Entering directory `/home/pupeno/src/ScoreReadingTrainer/ScoreReadingTrainer/debug/po' *gmake -f /home/pupeno/src/ScoreReadingTrainer/ScoreReadingTrainer/admin/Makefile.common package-merge POFILES="es.po" PACKAGE=ScoreReadingTrainer *gmake[2]: Entering directory `/home/pupeno/src/ScoreReadingTrainer/ScoreReadingTrainer/debug/po' *msgmerge: error while opening "es.po" for reading: No such file or directory *gmake[2]: Leaving directory `/home/pupeno/src/ScoreReadingTrainer/ScoreReadingTrainer/debug/po' remains. Thanks Created attachment 4339 [details] Patch for translation problems Hi. Sorry for my late reaction to the patch, but I noticed the same problem as Pupeno reported and had little time until now to properly test it. The good news: attached is a patch that fixes both 'Project/Add Translation' and 'Build/Make Messages & Merge'. The patch has been tested on Debian Woody with KDE 3.1.4 and the kdevelop Debian source package from http://people.debian.org/~njordan/stable (kdevelop3_3.0-01cvs from CVS 06-01-2004) using the "Simple KDE Application" project template. I am not sure it is the best way to fix both, but I hope it will at least give those who really know what they're doing a pointer in the right direction. Below I have listed the reasons for the different patches. 1. buildtools/autotools/addtranslationdlg.cpp Problem here was that a make was called in <projectDir>/po, but when Build configuration is debug there is no makefile in that directory. So the make has to be called from <buildDir>/po. The 'force-reedit' works fine because it changes internally to <projectDir>/po for most of it's actual work. 2. parts/appwizard/common/kde-Makefile.am This patch is slightly different from the patch proposed earlier. 'make-messages' has to work in the <projectDir> tree, taking the source from <projectDir>/src and writing the .pot file to <projectDir>/po. 3. parts/appwizard/common/admin/am_edit The '$(MAKE) -C po merge' form 'make messages' again needs to work in the <projectDir>/po directory, merging the .pot file into the .po files. I had to make one final change to make all this work in Debian and that was to change the location of the kde.pot file in admin/cvs.sh to /usr/include/kde/kde.pot (see http://bugs.kde.org/show_bug.cgi?id=71625). However, this may be a Debian packaging problem, so I am going to close 71625 and report it to bugs.debian.org. After executing 'Project/Add Translation' and 'Build/Make Messages & Merge' followed by 'Build/Build Project' the result was a good .gmo file in the debug/po directory. Possibly these patches should also be applied in the admin/am_edit and Makefile.am for kdevelop itself, but I'll leave that to you... P.S. I have also tested the patch for http://bugs.kde.org/show_bug.cgi?id=71633. That works great. Thanks! Thanks for the patch, looks good. I'll give it a try! Subject: kdevelop CVS commit by aclu: This patch fixes: Bug 71003 : Cannot translate project due to srcdir != builddir. Bug 73467: Incomplete make clean for parts/appwizard/common 1. buildtools/autotools/addtranslationdlg.cpp Problem here was that a make was called in <projectDir>/po, but when Build configuration is debug there is no makefile in that directory. So the make has to be called from <buildDir>/po. The 'force-reedit' works fine because it changes internally to <projectDir>/po for most of it's actual work. 2. parts/appwizard/common/kde-Makefile.am This patch is slightly different from the patch proposed earlier. 'make-messages' has to work in the <projectDir> tree, taking the source from <projectDir>/src and writing the .pot file to <projectDir>/po. 3. parts/appwizard/common/admin/am_edit The '$(MAKE) -C po merge' form 'make messages' again needs to work in the <projectDir>/po directory, merging the .pot file into the .po files. 4. parts/appwizard/common/Makefile.am 'make clean' does not remove the *.tar.gz files created in the parts/appwizard/common directory. To make this patch work you need to: cd parts/appwizard/common make clean Thanks to Frans Pop <aragorn IN tiscali.nl> for the patch. CCMAIL: 71003-done@bugs.kde.org CCMAIL: 73467-done@bugs.kde.org M +1 -0 buildtools/autotools/addtranslationdlg.cpp 1.8 M +2 -0 parts/appwizard/common/Makefile.am 1.14 M +1 -1 parts/appwizard/common/kde-Makefile.am 1.3 M +2 -2 parts/appwizard/common/admin/am_edit 1.6 --- kdevelop/buildtools/autotools/addtranslationdlg.cpp #1.7:1.8 @@ -100,4 +100,5 @@ void AddTranslationDialog::accept() f.close(); + dir = m_part->buildDirectory() + "/po"; m_part->startMakeCommand(dir, QString::fromLatin1("force-reedit")); --- kdevelop/parts/appwizard/common/admin/am_edit #1.5:1.6 @@ -1612,5 +1612,5 @@ if (!$lang) { - appendLines("merge:\n\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n"); + appendLines("merge:\n\t\$(MAKE) -C \$(top_srcdir)/po -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n"); } --- kdevelop/parts/appwizard/common/Makefile.am #1.13:1.14 @@ -1,2 +1,4 @@ +CLEANFILES = *.tar.gz + admin.tar.gz: $(TAR) -cf admin.tar -C $(srcdir) admin --- kdevelop/parts/appwizard/common/kde-Makefile.am #1.2:1.3 @@ -13,5 +13,5 @@ package-messages: - $(MAKE) -f $(top_srcdir)/admin/Makefile.common package-messages + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common package-messages $(MAKE) -C po merge Patch #3 for am_edit has not been applied in app templates for kdevelop-3.0.92, meaning that the package-merge step will fail. I looked in $KDEDIR/share/apps/kdevappwizard/template-common/admin.tar.gz#admin/am_edit in order to repair a kdevproject that had this bug. kde-Makefile.am is OK. |