gphoto / libgphoto2

The libgphoto2 camera access and control library.
GNU Lesser General Public License v2.1
1.04k stars 324 forks source link

Should normal libgphoto2 builds stop updating the `*.po` files? #733

Open ndim opened 3 years ago

ndim commented 3 years ago

Describe the bug

Often during make all (and always on make dist or make distcheck), the build system for po and libgphoto2_port/po will update the *.po files inside the respective po subdirectory.

As the *.po files are part of the git repository, this can be quite annoying as you often need to git restore '*.po' to be able to do your normal git tasks during development.

Name the camera N/A

libgphoto2 and gphoto2 version Any version of libgphoto2 and gphoto2 since the early 2000s, up to and including 2.5.27.1 currently in git master.

To Reproduce

[user@host ~]$ git clone https://github.com/gphoto/libgphoto2.git && cd libgphoto2
[…]
[user@host libgphoto2]$ autoreconf -vis && ./configure && make
[…]
[user@host libgphoto2]$ git status
[…]
Changes not staged for commit:
[…]
    modified:   libgphoto2_port/po/cs.po
[…]
    modified:   po/cs.po
[…]
[user@host libgphoto2]$ _

Possible fixes

If we update the version requirement of the gettext package to 0.19.1 (from 2014-06-10), we can decouple updating of the .pot and `.pofiles from normal builds, and only update the*.po` files specifically when needed (e.g. after a string freeze before a release).

The gettext-0.19.1 release is about one year younger (2014-06-10) than the release dates of the other tools I would otherwise update the buildsystem to (autoconf-2.69 from 2012-04-25 like libexif, automake-1.14 from 2013-06-20 like libexif, gettext-0.18.3 from 2013-07-07 like libexif). For comparison, Debian oldoldstable ships autoconf-2.69, automake-1.15, gettext-0.19.8.1.

Therefore I would argue that the benefits of updating the requirement to gettext-0.19.1 (not having to restore the *.po files all the time during normal development) is worth the potential hassle for the presumably very low number of people developing on systems which are even older than Debian oldoldstable. If someone wants to build on an older system, they should still be able to build a dist tarball (make dist) on a post-2014 machine and build that tarball on the older one.

I would update the gettext requirement as part of my effort to merge the libgphoto2_port/configure.ac file into the main configure.ac over at https://github.com/gphoto/libgphoto2/pull/731.

Alternatively, we can also keep handling the *.po files as we have done for the last ... years and just update the gettext requirement to 0.18.3 (2013-07-07, like libexif).

msmeissn commented 2 years ago

at some point the "make update-po" needs to be run to sync newly translated things in. we can make this a manual step except having it in "make dist", but it might be easy to forget.