git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Jonathan Nieder" <jrnieder@gmail.com>,
	"Marcin Cieslak" <saper@saper.info>,
	"Jens Lehmann" <Jens.Lehmann@web.de>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH] gettext: Make NO_GETTEXT=YesPlease the default in releases
Date: Tue, 31 Aug 2010 09:02:06 +0000	[thread overview]
Message-ID: <1283245326-26108-1-git-send-email-avarab@gmail.com> (raw)
In-Reply-To: <7v39tveq0j.fsf@alter.siamese.dyndns.org>

Change the Git build process so that gettext is no longer built by
default as part of Git releases, and include a loud warning to
downstream distributors in INSTALL saying that they shouldn't enable
it.

We're still working out the details of the gettext infrastructure and
currently only a small portion of Git can be translated, so it's
premature to enable it by default.

However it's painful for everyone if the source changes needed for
gettext can't be made in pu without conflicting with other series that
apply to maint/master/next.

When gettext is disabled the whole functionality basically boils down
to this macro definition (or Shell and Perl equivalents) and a few
skipping tests:

    #define _(s) (s)

So it's a lot less to get right than if we were enabling it by
default.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---

On Mon, Aug 30, 2010 at 21:42, Junio C Hamano <gitster@pobox.com> wrote:
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
>
>> Now that Git has the infrastructure for translation in next I'm going
>> to start submitting patches to make the main porcelain translatable.
>>
>> This series starts that work, and fixes and also fixes up some of the
>> infrastructure (like the bug discussed in "Odd encoding issue with
>> UTF-8 + gettext yields ? on non-ASCII"), and adds tests to make sure
>> it's all working.
>>
>> With it applied git-init is the one and only utility of the porcelain
>> that's translatable. The series includes a translation of it into
>> Icelandic and Polish.
>>
>> I think it's ready to be applied. I tested it on Solaris, FreeBSD and
>> Debian. But there's almost definitely something I'm missing in a
>> series this big, so it's an RFC.
>
> Thanks; will queue them.

Thanks!

> I however strongly suspect that we would be better off first kicking the
> earlier parts of i18n topic out of 'next' back to 'pu', as I am hoping
> that we can declare feature freeze for 1.7.3 by the end of this week at
> the latest, and you can never tell if we got the "infrastructure" right
> without playing with a real "user of the infrastructure" like this 17
> patch series, which means that the part of i18n topic that is already in
> 'next' cannot be part of 1.7.3 --- it is way premature.

I definitely agree that it's premature at this point, if for no other
reason than that I'll never be able to make most of the main-porcelain
translatable by the end of the week.

However, there's another way to do this. Simply disable it by default
in releases. Which this patch implements.

I considered the possibility that we might want to disable it in
select branches when I wrote it, so it's easy to do so. And IMO a
better option due to the reasons cited in the commit message attached
to the PATCH.

> It was somewhat unfortunate and sad that your "test" series depended on a
> few patches from the i18n series, which means it is now taken hostage to
> the latter.  I'd rather want to have the "test" series in the 1.7.3, and
> we need to think about a way to untangle the two topics.

Yeah I wasn't very careful about keeping the bits already in pu
separate. Untangling them shouldn't be that hard though, but hopefully
with this patch we won't have to go that route.

 INSTALL      |   17 +++++++++++++++--
 Makefile     |    4 ++++
 configure.ac |    2 +-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/INSTALL b/INSTALL
index e4e7506..aa477e2 100644
--- a/INSTALL
+++ b/INSTALL
@@ -93,8 +93,21 @@ Issues of note:
 	  history graphically, and in git-gui.  If you don't want gitk or
 	  git-gui, you can use NO_TCLTK.
 
-	- A gettext library is used by default for localizing Git. The
-	  primary target is GNU libintl, but the Solaris gettext
+	- Git includes EXPERIMENTAL support for localization with gettext
+	  which is currently disabled by default in official Git
+	  releases.
+
+	  If you really want to build it you have to specify NO_GETTEXT=
+	  as a Makefile argument. If you're a downstream distributor
+	  please don't do so without consulting with the Git Mailing List
+	  first about the stability of this feature.
+
+	  It's only being included in releases so that source messages can
+	  be marked for translation without resulting in painful and
+	  inevitable merge conflicts between Git's pu branch and the
+	  rest. END WARNING.
+
+	  The primary target is GNU libintl, but the Solaris gettext
 	  implementation also works.
 
 	  We need a gettext.h on the system for C code, gettext.sh (or
diff --git a/Makefile b/Makefile
index 9818a59..bd61a5b 100644
--- a/Makefile
+++ b/Makefile
@@ -272,6 +272,10 @@ ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
 ALL_LDFLAGS = $(LDFLAGS)
 STRIP ?= strip
 
+# Disable gettext by default in releases while the implementation is
+# settling
+NO_GETTEXT = YesPleaseForNow
+
 # Among the variables below, these:
 #   gitexecdir
 #   template_dir
diff --git a/configure.ac b/configure.ac
index 1821d89..c9b0265 100644
--- a/configure.ac
+++ b/configure.ac
@@ -806,7 +806,7 @@ AC_SUBST(HAVE_PATHS_H)
 #
 # Define NO_GETTEXT if you don't have libintl.h
 AC_CHECK_HEADER([libintl.h],
-[NO_GETTEXT=],
+[NO_GETTEXT=HaveItButYesPlease],
 [NO_GETTEXT=YesPlease])
 AC_SUBST(NO_GETTEXT)
 #
-- 
1.7.2.2.535.g1333f.dirty

  reply	other threads:[~2010-08-31  9:02 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-30 21:28 [PATCH/RFC 00/17] Begin gettextizing Git Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 01/17] Makefile: A variable for options used by xgettext(1) calls Ævar Arnfjörð Bjarmason
2010-08-31 14:51   ` Jonathan Nieder
2010-08-31 16:36     ` Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 02/17] Makefile: provide a --msgid-bugs-address to xgettext(1) Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 03/17] Makefile: tell xgettext(1) that our source is in UTF-8 Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 04/17] builtin.h: Include gettext.h Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 05/17] gettext: make the simple parts of git-init localizable Ævar Arnfjörð Bjarmason
2010-08-31 15:03   ` Jonathan Nieder
2010-08-31 15:37     ` Ævar Arnfjörð Bjarmason
2010-08-31 15:44       ` Jonathan Nieder
2010-08-31 16:05         ` Ævar Arnfjörð Bjarmason
2010-08-31 16:09           ` Jonathan Nieder
2010-08-31 16:27           ` Junio C Hamano
2010-08-30 21:28 ` [PATCH/RFC 06/17] gettext: localize the main git-init message Ævar Arnfjörð Bjarmason
2010-08-31 15:10   ` Jonathan Nieder
2010-08-31 15:39     ` Ævar Arnfjörð Bjarmason
2010-08-31 15:48       ` Jonathan Nieder
2010-08-30 21:28 ` [PATCH/RFC 07/17] gettext.c: work around us not using setlocale(LC_CTYPE, "") Ævar Arnfjörð Bjarmason
2010-08-31 15:18   ` Jonathan Nieder
2010-08-31 15:37     ` Marcin Cieslak
2010-08-31 15:49       ` Jonathan Nieder
2010-08-31 16:51     ` Ævar Arnfjörð Bjarmason
2010-08-31 22:45       ` Jonathan Nieder
2010-08-31 22:58         ` Erik Faye-Lund
2010-08-30 21:28 ` [PATCH/RFC 08/17] gettext tests: test if $VERSION exists before using it Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 09/17] gettext tests: update test/is.po to match t/t0200/test.c Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 10/17] gettext tests: add detection for is_IS.ISO-8859-1 locale Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 11/17] gettext tests: test message re-encoding under Shell Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 12/17] gettext tests: test re-encoding with a UTF-8 msgid " Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 13/17] gettext tests: mark a test message as not needing translation Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 14/17] po/is.po: msgmerge and add Language: header Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 15/17] po/is.po: add Icelandic translation Ævar Arnfjörð Bjarmason
2010-08-31 15:29   ` Jonathan Nieder
2010-08-31 17:01     ` Ævar Arnfjörð Bjarmason
2010-08-31 19:14       ` Erik Faye-Lund
2010-08-31 19:32         ` Ævar Arnfjörð Bjarmason
2010-08-31 19:49           ` Erik Faye-Lund
2010-08-30 21:28 ` [PATCH/RFC 16/17] po/pl.po: add Polish translation Ævar Arnfjörð Bjarmason
2010-08-30 21:28 ` [PATCH/RFC 17/17] gettext tests: test message re-encoding under C Ævar Arnfjörð Bjarmason
2010-08-30 21:42 ` [PATCH/RFC 00/17] Begin gettextizing Git Junio C Hamano
2010-08-31  9:02   ` Ævar Arnfjörð Bjarmason [this message]
2010-08-31 17:18   ` Ævar Arnfjörð Bjarmason
2010-08-31 18:08     ` Jonathan Nieder
2010-08-31 18:24       ` Ævar Arnfjörð Bjarmason
2010-08-31 19:22         ` Jonathan Nieder
2010-08-31 19:35           ` Ævar Arnfjörð Bjarmason
2010-08-31 19:42             ` Jonathan Nieder
2010-08-31 11:08 ` Peter Krefting
2010-08-31 11:42   ` Ævar Arnfjörð Bjarmason
2010-08-31 11:48     ` Peter Krefting
2010-08-31 12:02     ` Matthieu Moy
2010-08-31 12:43       ` Ævar Arnfjörð Bjarmason
2010-08-31 15:32 ` Jonathan Nieder
2010-08-31 16:05   ` Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1283245326-26108-1-git-send-email-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=Jens.Lehmann@web.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=saper@saper.info \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).