[Bug 1762889] Re: dh_translations doesn't strip .desktop files when more than 1 pot target with meson

Jeremy Bicha jeremy at bicha.net
Fri Apr 13 22:45:48 UTC 2018


Big oops. I believe my suggestion in my original bug report was wrong.

I compared gnome-chess and gnome-mines (two simple games in Ubuntu
main). gnome-mahjongg in its current release still uses autotools, but
gnome-chess uses meson.

The build produces gnome-mahjongg_3.22.0-3_amd64_translations.tar.gz
In there is a gnome-mahjongg.pot in the source/help/ directory.

gnome-chess doesn't have a .pot in its source/help/, but one can be made
easily by running the help-gnome-chess-pot target.

Both of these builds are also interesting compared to some of the other
packages we've looked at because they produce a second tarball like
gnome-mahjongg_3.22.0-3_static_translations.tar.gz containing the pre-
built help.

By the Way
==========
We don't actually allow translators to translate the help files for gnome-mahjongg. I don't know how complicated that would be to support.

https://translations.launchpad.net/ubuntu/+source/gnome-mahjongg

Revised suggestion
==================
We should run all the -pot targets offered by meson.

This will do the right thing for all the apps that provide help files.
It will do the right thing for libgweather (which has a second "locations" pot).

I guess we do need to be smart enough to know which one is the main
gettext domain though or at least the one to insert into the .desktop
files that we strip.

Note about gnome-control-center
==============================
My suggestion will break for gnome-control-center where the gnome-control-center-2.0-timezones-pot meson target isn't runnable. But gnome-control-center is an unusual case. I am guessing that those translations are somehow built in to the gnome-control-center binary. 

See https://gitlab.gnome.org/GNOME/gnome-control-
center/blob/master/panels/datetime/po-timezones/README

I think the existence of panels/datetime/po-timezones/meson.build is
wrong and that file should be removed. When it's removed, we'll no
longer have the broken gettext domain meson target.

Bionic
======
Once we fix this bug, I think we should rebuild all the meson apps in main so that the .desktop files will be translatable. We should be able to drop all of our manual dh_translations overrides at the same time (although I believe they are harmless). These rebuilds can be done as SRUs as this isn't an urgent issue because the .desktop files should already be translated by GNOME for popular languages.

Final Note
==========
Gunnar, I apologize for all the time you spent on this bug. I think there is no known reason we would need to specify the gettext domain for either autotools or meson (once we handle gnome-control-center).

Appendix
=========
$ ninja -C obj-x86_64-linux-gnu/ gnome-control-center-2.0-timezones-pot 
ninja: Entering directory `obj-x86_64-linux-gnu/'
[0/1] Running external command gnome-control-center-2.0-timezones-pot.
Could not find file POTFILES in gnome-control-center/panels/datetime/po-timezones
FAILED: meson-gnome-control-center-2.0-timezones-pot 
/usr/bin/python3 /usr/bin/meson --internal commandrunner gnome-control-center gnome-control-center/obj-x86_64-linux-gnu panels/datetime/po-timezones /usr/bin/python3 /usr/bin/meson /usr/bin/python3 /usr/bin/meson --internal gettext pot --pkgname=gnome-control-center-2.0-timezones --extra-args=--keyword=N_@@--flag=NC_:2:pass-c-format@@--from-code=UTF-8@@--flag=g_error_new:3:c-format@@--flag=g_set_error:4:c-format@@--flag=g_string_append_printf:2:c-format@@--keyword=g_dpgettext2:2c,3@@--keyword=g_dngettext:2,3@@--flag=N_:1:pass-c-format@@--flag=g_dngettext:2:pass-c-format@@--keyword=C_:1c,2@@--add-comments@@--keyword=_@@--flag=g_strdup_printf:1:c-format@@--flag=C_:2:pass-c-format@@--keyword=g_dcgettext:2@@--flag=g_string_printf:2:c-format@@--keyword=NC_:1c,2
ninja: build stopped: subcommand failed.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1762889

Title:
  dh_translations doesn't strip .desktop files when more than 1 pot
  target with meson

Status in pkgbinarymangler package in Ubuntu:
  In Progress

Bug description:
  The gnome.help() meson function creates a help-$project-pot target.
  This confuses dh_translations which complains:

  dh_translations: more than one meson translation domain found (help-
  gnome-calculator,gnome-calculator), don't know which one to use

  I think the only consequence of this is that the .desktop doesn't have
  its translations stripped and replaced with X-Ubuntu-Gettext-Domain=

  This means that Ubuntu translators are unable to update those
  translations.

  Affected Apps
  =============
  Therefore, this issue affects GNOME apps in main that use meson and also include help files.

  gnome-control-center is also affected because it happens to have an
  extra gettext domain (but does not ship help).

  libgweather gets the warning because it has a second gettext domain
  but it doesn't ship any .desktop files so I think the warning is
  harmless.

  Suggestion
  ==========
  Maybe dh_translations could just exclude targets that start with "help-". That would fix most of these cases.

  Other Info
  ==========
  This bug is split off LP: #1751820

  pkgbinarymanagler 136 in bionic

  References
  ==========
  http://mesonbuild.com/Gnome-module.html#gnomeyelp
  http://mesonbuild.com/Localisation.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pkgbinarymangler/+bug/1762889/+subscriptions



More information about the Ubuntu-sponsors mailing list