Package: src:wordpress
Version: 4.6.1+dfsg-1
Severity: serious
Tags: patch

Dear maintainer:

I tried to build this package in stretch with "dpkg-buildpackage -A"
(which is what the "Arch: all" autobuilder would do to build it)
but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --with linktree
   dh_testdir -i
   dh_update_autotools_config -i
   dh_auto_configure -i
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<BUILDDIR>>/wordpress-4.6.1+dfsg'
for i in $(find debian/languages/ -name *.po); do \
        msgfmt $i -o ${i%%.po}.mo; \
        done
debian/languages/gl_ES.po:50: 'msgid' and 'msgstr' entries do not both end with 
'\n'
debian/languages/gl_ES.po:689: 'msgid' and 'msgstr' entries do not both begin 
with '\n'
msgfmt: found 3 fatal errors
debian/languages/pt_BR.po:4774: 'msgid' and 'msgstr' entries do not both begin 
with '\n'
msgfmt: found 2 fatal errors
debian/languages/admin-de_DE.po:3105: 'msgid' and 'msgstr' entries do not both 
end with '\n'
debian/languages/admin-de_DE.po:3421: 'msgid' and 'msgstr' entries do not both 
end with '\n'
msgfmt: found 2 fatal errors
debian/languages/ar.po:258: 'msgid' and 'msgstr' entries do not both end with 
'\n'
debian/languages/ar.po:990: 'msgid' and 'msgstr[3]' entries do not both end 
with '\n'
debian/languages/ar.po:4091: 'msgid' and 'msgstr' entries do not both begin 
with '\n'
msgfmt: found 4 fatal errors
debian/languages/de_DE.po:628: 'msgid' and 'msgstr' entries do not both end 
with '\n'
debian/languages/de_DE.po:3812: 'msgid' and 'msgstr' entries do not both begin 
with '\n'
msgfmt: found 2 fatal errors
debian/languages/he_IL.po:3791: 'msgid' and 'msgstr' entries do not both begin 
with '\n'
msgfmt: found 2 fatal errors
debian/languages/admin-gl_ES.po:375: 'msgid' and 'msgstr' entries do not both 
begin with '\n'
msgfmt: found 2 fatal errors
debian/languages/twentyfourteen/sq.po:231: end-of-line within string
debian/languages/twentyfourteen/sq.po:230: missing 'msgstr' section
debian/languages/twentyfourteen/sq.po:231:5: syntax error
debian/languages/twentyfourteen/sq.po:232: end-of-line within string
msgfmt: found 4 fatal errors
debian/languages/sk_SK.po:507: 'msgid' and 'msgstr' entries do not both begin 
with '\n'
msgfmt: found 2 fatal errors
debian/rules:16: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 1
make[1]: Leaving directory '/<<BUILDDIR>>/wordpress-4.6.1+dfsg'
debian/rules:13: recipe for target 'build-indep' failed
make: *** [build-indep] Error 2
dpkg-buildpackage: error: debian/rules build-indep gave error exit status 2
--------------------------------------------------------------------------------

The "override_dh_auto_build" target has a "find" command which creates
a list of po files to be processed.

There is not a canonical order for the output of "find", it depends on
filesystem ordering and it may be anything.

As a result, sometimes the last po file to be processed will be ok,
and the build as a whole will be successful, and sometimes the last
po file to be processed will have an error, and the build as a whole
will fail.

This is really a violation of Policy 4.6, "Error trapping in makefiles".

Quote:

  Every time you put more than one shell command (this includes using a
  loop) in a makefile command you must make sure that errors are
  trapped. For simple compound commands, such as changing directory and
  then running a program, using && rather than semicolon as a command
  separator is sufficient. For more complex commands including most
  loops and conditionals you should include a separate set -e command at
  the start of every makefile command that's actually one of these
  miniature shell scripts. 

The (trivial) patch below will probably fix the Policy violation, but
you will also need to fix the broken po files, otherwise we will just
switch from a package which FTBFS randomly to a package which always
FTBFS.

While we are at it: Even if this package is Arch:all, please consider
uploading it in source-only form so that we get official build logs
here:

https://buildd.debian.org/status/package.php?p=wordpress

Thanks.

--- a/debian/rules
+++ b/debian/rules
@@ -13,7 +13,7 @@ WP_CONTENT = debian/wordpress/var/lib/wordpress/wp-content
        dh $@ --with linktree
 
 override_dh_auto_build:
-       for i in $$(find debian/languages/ -name *.po); do \
+       set -e; for i in $$(find debian/languages/ -name *.po); do \
                msgfmt $$i -o $${i%%.po}.mo; \
         done
        pod2man --utf8 --center wp-setup debian/wp-setup debian/wp-setup.1

Reply via email to