gettext: Install .mo files atomically
gettext: Install .mo files atomically

Without this, building a module in a Flatpak app manifest that is a
newer version of a module already present in the Flatpak runtime will
fail. (The Flatpak file system is a bunch of hard links to readonly
files, which can be replaced but not written to.)

This instead creates a temporary file in the same directory as the
destination (to avoid cross-device renaming errors) and atomically
renames the temporary file to the destination, replacing it instead of
rewriting it as shutil.copyfile() would do.

MathieuDuponchelle/meson,jeandet/meson,mesonbuild/meson,jeandet/meson,MathieuDuponchelle/meson,pexip/meson,thiblahute/meson,MathieuDuponchelle/meson,QuLogic/meson,QuLogic/meson,pexip/meson,jeandet/meson,jpakkane/meson,mesonbuild/meson,jpakkane/meson,QuLogic/meson,thiblahute/meson,jpakkane/meson,jeandet/meson,becm/meson,MathieuDuponchelle/meson,becm/meson,jeandet/meson,jpakkane/meson,jpakkane/meson,jeandet/meson,mesonbuild/meson,MathieuDuponchelle/meson,becm/meson,pexip/meson,QuLogic/meson,jeandet/meson,becm/meson,mesonbuild/meson,pexip/meson,pexip/meson,becm/meson,pexip/meson,pexip/meson,MathieuDuponchelle/meson,becm/meson,jeandet/meson,becm/meson,QuLogic/meson,mesonbuild/meson,pexip/meson,thiblahute/meson,mesonbuild/meson,jpakkane/meson,jpakkane/meson,mesonbuild/meson,MathieuDuponchelle/meson,mesonbuild/meson,jpakkane/meson,jeandet/meson,thiblahute/meson,mesonbuild/meson,MathieuDuponchelle/meson,thiblahute/meson,QuLogic/meson,becm/meson,becm/meson,pexip/meson,MathieuDuponchelle/meson,QuLogic/meson,jpakkane/meson,QuLogic/meson,becm/meson,thiblahute/meson,mesonbuild/meson,thiblahute/meson,QuLogic/meson,thiblahute/meson,pexip/meson,thiblahute/meson