Why is gettext not an ordinary library?

Not being a regular library causes no end of constant build problems.

Like this crap because we did “gettextize” without doing “autoconf” (or vice versa):

make[2]: Entering directory `/builddir/build/BUILD/libguestfs-1.14.7/po'
*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.17 but the autoconf macros are from gettext version 0.18

I just don’t get why gettext can’t be a regular, ordinary, plain library so we don’t have to constantly suffer from this sort of thing. There is surely no other library that needs to rewrite your entire build system.

8 Comments

Filed under Uncategorized

8 responses to “Why is gettext not an ordinary library?

  1. Frank Ch. Eigler

    Another solution would be to avoid running all autoconf goop during
    a build; just commit the configure/makefiles already.

    • rich

      Don’t get me started on autotools!*

      The problem here is I need to run gettextize when building from git, but not when building from the tarball. So I can’t have a unified set of patches that build both. So my strategy of maintaining patches in git fails to be compatible with gettext. And it’s not my strategy which is at fault.

      I could commit configure output, but that would lead to big, gross git commits.

      * To pre-empt any replies, cmake is just as bad, it’s just differently bad.

  2. Frank Ch. Eigler

    “I need to run gettextize when building from git,”

    … then fix it so you don’t have to do that.

  3. Miloslav Trmač

    gettext cannot be an ordinary library because linking to an ordinary library would not extract the strings, or compile the .po files into .mo files. The error refers to po/Makefile.*; you can either write and maintain those make rules yourself, or use the gettext-provided infrastructure.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s