Hi all,

(Sorry for losing all contexts -- I deleted all previous mails in the thread
sent to my mailbox, and could not find a way to re-download mailing list email
from https://lists.debian.org/debian-devel/ . It is possible in bug reports on
https://bugs.debian.org though. Now replying with empty reference.)

As stated in the policy:

  clean (required)

     This must undo any effects that the build and binary targets may
     have had, except that it should leave alone any output files
     created in the parent directory by a run of a binary target.

I am looking for advice in handling these MBF reports against packages that do
irreversible changes to the source files during build every time (such as
updating timestamp). A broad category would be packages using Gettext + PO
combination with /usr/share/gettext/po/Makefile.in.in involved / embedded,
where .po file that contains translation is updated every time, causing dpkg-
source to complain the diff and quit when building twoce in a row.

Take https://tracker.debian.org/pkg/ibus-array as an example. The upstream
project does not include .pot template file in the source code. The logic of
Makefile.in.in is to call msgmerge to update po translation file with
generated .pot file when .pot file is not present. This causes at least the
following diff after build:

--- ibus-array-0.2.2.orig/po/zh_TW.po
+++ ibus-array-0.2.2/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ibus-array 0.2.2\n"
 "Report-Msgid-Bugs-To: https://github.com/lexical/ibus-array/issues\n";
-"POT-Creation-Date: 2019-12-10 22:09+0800\n"
+"POT-Creation-Date: 2023-08-15 09:07-0400\n"
 "PO-Revision-Date: 2019-12-10 22:12+0800\n"
 "Last-Translator: Anthony Fok <f...@debian.org>\n"
 "Language-Team: Chinese (traditional)\n"


... which would raise error on building twice in a row:

dpkg-source: info: local changes detected, the modified files are:
 ibus-array/po/zh_TW.po
dpkg-source: info: Hint: make sure the version in debian/changelog matches the
unpacked source tree
dpkg-source: info: you can integrate the local changes with dpkg-source --
commit
dpkg-source: error: aborting due to unexpected upstream changes, see
/tmp/ibus-array_0.2.2-2.diff.TnL2Yp
dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 2


I am looking for the advice to implement an elegant solution. What I can think
of now is to persuade upstream to embed a copy of generated .pot template file
in source code, which does not sound reasonable. Meanwhile since
Makefile.in.in is somehow widely used, this issue likely already had impact on
packages using gettext to handle translation.

Thanks,
Boyuan Yang

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to