Colin, since the below has a significant impact on the packaging git workflow I won't take it any further without your input...
On Thu, 2014-11-27 at 19:06 -0400, David Prévot wrote: > Please consider updating translations of grub2, as already provided by > translators since upstream released 2.02~beta2. Sadly applying this patch is not as easy as it might seem, due to Tedious Packaging VCS Reasons(tm) :-/ The pkg-grub git tree[0] uses git-dpm on-top of the upstream grub.git tree, which does not include po/*.po, but those files are included in the upstream tarball release (i.e. in our orig.tar.xz). This unfortunately means that it is not possible to update po/* simply using the normal git-dpm mechanisms. I've attempted to workaround this as follows: Create a new "upstream-po" branch, based on origin/upstream but with the upstream released po files included (autogenerated stuff is direct from linguas.sh): $ git checkout -b upstream-po origin/upstream $ cp ../grub2-2.02~beta2/po/*.po po/ $ cp ../grub2-2.02~beta2/po/LINGUAS po $ ( autogenerated="en@quot en@hebrew de@hebrew en@cyrillic en@greek en@arabic en@piglatin de_CH" for x in $autogenerated; do git rm po/$x.po done ) # Remove po/*.po and po/LINGUAS from .gitignore $ git commit -a Now rebase master onto this: $ git checkout -b master-po origin/master $ git-dpm record-new-upstream ../grub2_2.02~beta2.orig.tar.xz upstream-po $ git-dpm rebase-patched $ git-dpm dch "Update git-dpm baseline to include upstream po files." This results in a source package which differs only in the git-dpm noise in debian/patches (hash changes) plus the changelog and debian/.git-dpm as expected. From here we can using the usual git-dpm checkout-patched/update-patches routine to add an update-linguas.patch, which contains the result of running linguas.sh. I've pushed the results to /people/ijc/{upstream,master}-po in the packaging git tree. These branches do not include the followup patch from this bug to force *.gmo to actually be updated, and I've not actually built binaries based on it yet. If we go ahead with this approach I'd suggest that upstream and upstream-po ought to remain distinct in the packaging git tree, with the former tracking pristine upstream and the latter adding the po files, but to have a single master which is based on upstream-po (i.e. what is currently called people/ijc/master-po). It's possible this could also be solved with a second subcomponent orig.tar containing an updated po subdirectory, or by debian/rules machinery to update po/* from e.g. debian/upstream-po/* or something. I've not tried either of those approaches, not sure if they are actually realistic. I'll investigate them if you think it would be better. Cheers, Ian. [0] http://anonscm.debian.org/cgit/pkg-grub/grub.git/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org