Source: debmake-doc
Version: 1.11-1
Severity: serious
Tags: ftbfs

debmake-doc randomly fails to build from source when performing a
parallel build (difficult to trigger). The issue lies in test case
debhello-3.0. Its Makefile says:

| all: data/hello.desktop po/ja.mo
|
| data/hello.desktop po/ja.mo:
|       $(MAKE)  -C po all

My build log has this:

| make[1]: Entering directory 
'/<<PKGBUILDDIR>>/debhello-3.0-pkg1/test/debhello-3.0'
| 
| make  -C po all
| 
| make  -C po all
| 
| make[2]: Entering directory 
'/<<PKGBUILDDIR>>/debhello-3.0-pkg1/test/debhello-3.0/po'


So making all in debhello-3.0 causes two $(MAKE) -C po all to be spawned
simultaneously. Now the po Makefile runs xgettext to update
debhello.pot.  Running two xgettext at the same time on the same output
file causes bad things to happen and the later msgmerge calls notice
that:

| msgmerge -U ja.po debhello.pot
| 
| msgmerge -U ja.po debhello.pot
| 
| debhello.pot:37: duplicate message definition...
| 
| debhello.pot:23: ...this is the location of the first definition
| 
| debhello.pot:42: duplicate message definition...
| 
| debhello.pot:28: ...this is the location of the first definition
| 
| msgmerge: found 2 fatal errors
| 
| make[2]: *** [Makefile:10: ja.po] Error 1
| 
| make[2]: Leaving directory 
'/<<PKGBUILDDIR>>/debhello-3.0-pkg1/test/debhello-3.0/po'
| 
| make[1]: *** [Makefile:6: data/hello.desktop] Error 2
| 
| make[1]: *** Waiting for unfinished jobs....
| 
| debhello.pot:37: duplicate message definition...
| 
| debhello.pot:23: ...this is the location of the first definition
| 
| debhello.pot:42: duplicate message definition...
| 
| debhello.pot:28: ...this is the location of the first definition
| 
| msgmerge: found 2 fatal errors
| 
| make[2]: *** [Makefile:10: ja.po] Error 1
| 
| make[2]: Leaving directory 
'/<<PKGBUILDDIR>>/debhello-3.0-pkg1/test/debhello-3.0/po'

Helmut

Reply via email to