Comment # 53 on bug 952855 from
Just to answer the off topic note:


Your idea would add hundreds of new spec files that would need to be kept in
sync with the main package (= version, patches, po directories etc.).

(We already have several spec files that needs to be kept in sync, and running
out of sync is a regular issue.)

Current translation update tools just add three new spec files plus few lines
in spec files.


Translation update tools are useful only if we don't want to upgrade the
package, just translations. If we update (e. g. in Tumbleweed), translation
comes with the update, and tools have no use.


- We add/update a patch in the *-lang spec. No full rebuild needed.

-> Case 2 : Upstream update their translation

- If they release a point release, we probably have to rebuild anyway, so we
rebuild the two package.

- If they don't, we take the updated .po/.mo, and we only update the *-lang
package.

No conflict, no unnecessary full rebuild. 

We'll need to maintain two spec file, but the *-lang will probably be really
short (something like "open source", "patch source with new translation", "find
*.po files", then "make *.mo from *.po files", and we package it. And on the
main package, we'll do "find *.mo/*.po", "remove them").

> Idea 2 : instal the N-1 source package, compare them with the N sources, and build only if there are change between N-1 source and N source. After that, try updating the *-lang package (if there is  difference). 

This is not a clean way. You have to rebuild (and OBS does exactly this), if:
- Package source changed.
- Binary RPM of any package in BuildRequires changed.

-lang packages are now updated automatically. But we want something different:
Backport strings translated in the new version to the old version.

For that purpose, we will need:

- pot file of the current SUSE package
- all existing translations (in the package, in the same upstream branch, in
the head branch)

It is easily possible to make a tool that will build such -lang package, but we
need something different: A tool, that will process hundreds of projects
without human interaction, or with a minimal human interaction. Additionally,
these tools must be capable to build RPMs without network access.


Please take a look to the current tools:

https://build.opensuse.org/package/show/Base:System/translation-update-upstream
https://build.opensuse.org/package/show/X11:common:Factory/translation-update
https://build.opensuse.org/package/show/GNOME:Factory/gnome-patch-translation

These tools are called once per the whole distro.


You are receiving this mail because: