From 75514ab57a06e534f26698fe1725ca29b966c3ad Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 30 Apr 2012 16:04:51 +0100 Subject: [PATCH 2/2] Remove gettextize. Replace the sociopathic nonsense in gettextize with a simple Makefile.am which does the same ... and is faster. --- .gitignore | 13 -- Makefile.am | 6 +- configure.ac | 24 ++- m4/.gitignore | 1 - po/Makefile.am | 99 +++++++++++ po/Makefile.in.in | 444 ------------------------------------------------ po/Makevars | 43 ----- po/POTFILES | 217 +++++++++++++++++++++++ po/POTFILES.in | 217 ----------------------- po/remove-potcdate.sin | 19 --- 10 files changed, 339 insertions(+), 744 deletions(-) create mode 100644 po/Makefile.am delete mode 100644 po/Makefile.in.in delete mode 100644 po/Makevars create mode 100644 po/POTFILES delete mode 100644 po/POTFILES.in delete mode 100644 po/remove-potcdate.sin diff --git a/.gitignore b/.gitignore index 757b6f9..d420430 100644 --- a/.gitignore +++ b/.gitignore @@ -290,8 +290,6 @@ pod2htm?.tmp /php/extension/php_guestfs_php.h /php/extension/run-tests.php /php/extension/tmp-php.ini -/po/boldquot.sed -/po/ChangeLog /po-docs/*/*.1 /po-docs/*/*.3 /po-docs/*/*.pl @@ -299,18 +297,7 @@ pod2htm?.tmp /po-docs/*/*.pod /po-docs/*/stamp-update-po /podwrapper.sh -/po/en@boldquot.header -/po/en@quot.header /po/*.gmo -/po/insert-header.sin -/po/LINGUAS -/po/Makevars.template -/po/POTFILES -/po/quot.sed -/po/remove-potcdate.sed -/po/Rules-quot -/po/stamp-it -/po/stamp-po /python/bindtests.py /python/examples/guestfs-python.3 /python/examples/stamp-guestfs-python.pod diff --git a/Makefile.am b/Makefile.am index b3df5b3..fe37b82 100644 --- a/Makefile.am +++ b/Makefile.am @@ -139,7 +139,6 @@ EXTRA_DIST = \ libtool-kill-dependency_libs.sh \ logo/fish.svg logo/fish.png \ m4/.gitignore \ - po/remove-potcdate.sin \ update-bugs.sh # The website. @@ -212,7 +211,8 @@ dist-hook: mv AUTHORS-t AUTHORS cp AUTHORS $(distdir)/AUTHORS -# Update the list of translatable files in po/POTFILES.in. +# Update the list of translatable files (po/POTFILES). This has to be +# in the top-level Makefile.am so that we have access to DIST_SUBDIRS. all-local: cd $(srcdir); \ find $(DIST_SUBDIRS) \ @@ -229,7 +229,7 @@ all-local: grep -v '^po-docs/' | \ grep -v '^images/' | \ LC_ALL=C sort | \ - sed 's,^\./,,' > po/POTFILES.in + sed 's,^\./,,' > po/POTFILES # Make clean. diff --git a/configure.ac b/configure.ac index 29d1116..bcd0382 100644 --- a/configure.ac +++ b/configure.ac @@ -251,6 +251,23 @@ AC_CHECK_FUNC([register_printf_specifier],[ This means you either have a very old glibc (pre-2.0) or you are using some other libc where this is not supported.])])]) +dnl GNU gettext tools (optional). +AC_CHECK_PROG([XGETTEXT],[xgettext],[xgettext],[no]) +AC_CHECK_PROG([MSGCAT],[msgcat],[msgcat],[no]) +AC_CHECK_PROG([MSGFMT],[msgfmt],[msgfmt],[no]) +AC_CHECK_PROG([MSGMERGE],[msgmerge],[msgmerge],[no]) + +dnl Check they are the GNU gettext tools. +AC_MSG_CHECKING([msgfmt is GNU tool]) +if $MSGFMT --version >/dev/null 2>&1 && $MSGFMT --version | grep -q 'GNU gettext'; then + msgfmt_is_gnu=yes +else + msgfmt_is_gnu=no +fi +AC_MSG_RESULT([$msgfmt_is_gnu]) +AM_CONDITIONAL([HAVE_GNU_GETTEXT], + [test "x$XGETTEXT" != "xno" && test "x$MSGCAT" != "xno" && test "x$MSGFMT" != "xno" && test "x$MSGMERGE" != "xno" && test "x$msgfmt_is_gnu" != "xno"]) + dnl Build the daemon? AC_MSG_CHECKING([if we should build the daemon]) AC_ARG_ENABLE([daemon], @@ -652,9 +669,6 @@ AS_IF([test "x$with_readline" != xno], LIBS="$old_LIBS" ]) -dnl For i18n. -AM_GNU_GETTEXT([external]) - dnl Check for PCRE (required) PKG_CHECK_MODULES([PCRE], [libpcre]) @@ -1216,7 +1230,7 @@ AC_CONFIG_FILES([Makefile po-docs/Makefile po-docs/ja/Makefile po-docs/uk/Makefile - po/Makefile.in + po/Makefile python/Makefile python/examples/Makefile rescue/Makefile @@ -1281,6 +1295,8 @@ echo -n "gobject bindings .................... " if test "x$HAVE_GOBJECT_TRUE" = "x"; then echo "yes"; else echo "no"; fi echo -n "gobject introspection ............... " if test "x$HAVE_INTROSPECTION_TRUE" = "x"; then echo "yes"; else echo "no"; fi +echo -n "GNU gettext for i18n ................ " +if test "x$HAVE_GNU_GETTEXT_TRUE" = "x"; then echo "yes"; else echo "no"; fi echo echo "If any optional component is configured 'no' when you expected 'yes'" echo "then you should check the preceding messages." diff --git a/m4/.gitignore b/m4/.gitignore index d03bc28..fdaf3b5 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -71,7 +71,6 @@ /getlogin_r.m4 /getopt.m4 /getpagesize.m4 -/gettext.m4 /gettime.m4 /gettimeofday.m4 /getugroups.m4 diff --git a/po/Makefile.am b/po/Makefile.am new file mode 100644 index 0000000..de455a3 --- /dev/null +++ b/po/Makefile.am @@ -0,0 +1,99 @@ +# libguestfs +# Copyright (C) 2009-2012 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +include $(top_srcdir)/subdir-rules.mk + +DOMAIN = $(PACKAGE_NAME) +COPYRIGHT_HOLDER = Red Hat Inc. +MSGID_BUGS_ADDRESS = https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools + +# Languages. +# Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464). +linguas := en_GB es gu hi kn ml mr nl or pa pl ta te uk + +POTFILES := $(shell $(SED) 's,^,$(top_srcdir)/,' POTFILES) +POFILES := $(linguas:%=%.po) +GMOFILES := $(linguas:%=%.gmo) + +EXTRA_DIST = \ + POTFILES \ + $(DOMAIN).pot \ + $(POFILES) \ + $(GMOFILES) + +if HAVE_GNU_GETTEXT + +dist-hook: + $(MAKE) update-po + cp *.po *.gmo $(distdir)/ + +update-po: + $(MAKE) $(DOMAIN).pot + $(MAKE) $(POFILES) + $(MAKE) update-gmo + +update-gmo: Makefile $(GMOFILES) + +$(DOMAIN).pot: Makefile $(POTFILES) + rm -f $@ $@-t + $(XGETTEXT) \ + -o $@-t \ + --default-domain=$(DOMAIN) \ + --add-comments=TRANSLATORS: \ + --keyword=_ --keyword=N_ --keyword=__ --keyword=__x \ + --flag=error:3:c-format \ + --flag=error_at_line:5:c-format \ + --flag=asprintf:2:c-format \ + --flag=vasprintf:2:c-format \ + --flag=xasprintf:1:c-format \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$(PACKAGE_NAME)" \ + --package-version="$(PACKAGE_VERSION)" \ + --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \ + --directory=$(top_srcdir) \ + --files-from=$(abs_srcdir)/POTFILES + mv $@-t $@ + +%.po: $(DOMAIN).pot + $(MSGMERGE) -N --update $@ $(DOMAIN).pot + +.po.gmo: + rm -f $@ $@-t + $(MSGFMT) -c -o $@-t $< + mv $@-t $@ + +# Install. +# Cannot use 'localedir' since this conflicts with autoconf. +langinstdir = $(datadir)/locale + +install-data-hook: + mkdir -p $(DESTDIR)$(langinstdir) + for lang in $(linguas); do \ + d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \ + mkdir -p $$d; \ + install -m 0755 $$lang.gmo $$d/$(DOMAIN).mo; \ + done + +.PRECIOUS: $(DOMAIN).pot $(POFILES) +SUFFIXES = .po .gmo + +else + +# If no GNU gettext, 'make update-po' is a dummy rule. +update-po: + +endif diff --git a/po/Makefile.in.in b/po/Makefile.in.in deleted file mode 100644 index 406c2f4..0000000 --- a/po/Makefile.in.in +++ /dev/null @@ -1,444 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2007, 2009-2012 by Ulrich Drepper -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU General Public -# License but which still want to provide support for the GNU gettext -# functionality. -# Please note that the actual code of GNU gettext is covered by the GNU -# General Public License and is *not* in the public domain. -# -# Origin: gettext-0.18 -GETTEXT_MACRO_VERSION = 0.18 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ -datadir = @datadir@ -localedir = @localedir@ -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -# We use $(mkdir_p). -# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# @install_sh@ does not start with $(SHELL), so we add it. -# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined -# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -# versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) @install_sh@ -d -install_sh = $(SHELL) @install_sh@ -MKDIR_P = @MKDIR_P@ -mkdir_p = @mkdir_p@ - -GMSGFMT_ = @GMSGFMT@ -GMSGFMT_no = @GMSGFMT@ -GMSGFMT_yes = @GMSGFMT_015@ -GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) -MSGFMT_ = @MSGFMT@ -MSGFMT_no = @MSGFMT@ -MSGFMT_yes = @MSGFMT_015@ -MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) -XGETTEXT_ = @XGETTEXT@ -XGETTEXT_no = @XGETTEXT@ -XGETTEXT_yes = @XGETTEXT_015@ -XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) -MSGMERGE = msgmerge -MSGMERGE_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) - -.SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: check-macro-version all-@USE_NLS@ - -all-yes: stamp-po -all-no: - -# Ensure that the gettext macros and this Makefile.in.in are in sync. -check-macro-version: - @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ - || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ - exit 1; \ - } - -# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no -# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because -# we don't want to bother translators with empty POT files). We assume that -# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. -# In this case, stamp-po is a nop (i.e. a phony target). - -# stamp-po is a timestamp denoting the last time at which the CATALOGS have -# been loosely updated. Its purpose is that when a developer or translator -# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, -# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent -# invocations of "make" will do nothing. This timestamp would not be necessary -# if updating the $(CATALOGS) would always touch them; however, the rule for -# $(POFILES) has been designed to not touch files that don't need to be -# changed. -stamp-po: $(srcdir)/$(DOMAIN).pot - test ! -f $(srcdir)/$(DOMAIN).pot || \ - test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) - @test ! -f $(srcdir)/$(DOMAIN).pot || { \ - echo "touch stamp-po" && \ - echo timestamp > stamp-poT && \ - mv stamp-poT stamp-po; \ - } - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -# This target rebuilds $(DOMAIN).pot; it is an expensive operation. -# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ - package_gnu='GNU '; \ - else \ - package_gnu=''; \ - fi; \ - if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ - msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ - else \ - msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ - fi; \ - case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - *) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --package-name="$${package_gnu}@PACKAGE@" \ - --package-version='@VERSION@' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - esac - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# This target rebuilds a PO file if $(DOMAIN).pot has changed. -# Note that a PO file is not touched if it doesn't need to be changed. -$(POFILES): $(srcdir)/$(DOMAIN).pot - @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ - if test -f "$(srcdir)/$${lang}.po"; then \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) \ - && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ - esac; \ - }; \ - else \ - $(MAKE) $${lang}.po-create; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -info dvi ps pdf html tags TAGS ctags CTAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f stamp-poT - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f stamp-po $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: stamp-po $(DISTFILES) - dists="$(DISTFILES)"; \ - if test "$(PACKAGE)" = "gettext-tools"; then \ - dists="$$dists Makevars.template"; \ - fi; \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - dists="$$dists $(DOMAIN).pot stamp-po"; \ - fi; \ - if test -f $(srcdir)/ChangeLog; then \ - dists="$$dists ChangeLog"; \ - fi; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir) || exit 1; \ - else \ - cp -p $(srcdir)/$$file $(distdir) || exit 1; \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for creating PO files. - -.nop.po-create: - @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ - echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ - exit 1 - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ - cd $(srcdir); \ - if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - esac; \ - }; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -# Recreate Makefile by invoking config.status. Explicitly invoke the shell, -# because execution permission bits may not work on the current file system. -# Use @SHELL@, which is the shell determined by autoconf for the use by its -# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. -Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ - && @SHELL@ ./config.status $(subdir)/$@.in po-directories - -force: - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po/Makevars b/po/Makevars deleted file mode 100644 index f2c8d37..0000000 --- a/po/Makevars +++ /dev/null @@ -1,43 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -# --keyword=__ etc are for Perl code using perl-libintl. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=__ --keyword=__x \ - $${end_of_xgettext_options+} - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Red Hat Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po/POTFILES b/po/POTFILES new file mode 100644 index 0000000..2b4b586 --- /dev/null +++ b/po/POTFILES @@ -0,0 +1,217 @@ +align/domains.c +align/scan.c +cat/virt-cat.c +cat/virt-filesystems.c +cat/virt-ls.c +daemon/9p.c +daemon/augeas.c +daemon/available.c +daemon/base64.c +daemon/blkid.c +daemon/blockdev.c +daemon/btrfs.c +daemon/checksum.c +daemon/cmp.c +daemon/command.c +daemon/compress.c +daemon/copy.c +daemon/cpmv.c +daemon/dd.c +daemon/debug.c +daemon/devsparts.c +daemon/df.c +daemon/dir.c +daemon/dmesg.c +daemon/dropcaches.c +daemon/du.c +daemon/echo_daemon.c +daemon/errnostring.c +daemon/errnostring_gperf.c +daemon/ext2.c +daemon/fallocate.c +daemon/file.c +daemon/fill.c +daemon/find.c +daemon/findfs.c +daemon/fsck.c +daemon/glob.c +daemon/grep.c +daemon/grub.c +daemon/guestfsd.c +daemon/headtail.c +daemon/hexdump.c +daemon/htonl.c +daemon/initrd.c +daemon/inotify.c +daemon/internal.c +daemon/is.c +daemon/isoinfo.c +daemon/labels.c +daemon/link.c +daemon/ls.c +daemon/luks.c +daemon/lvm-filter.c +daemon/lvm.c +daemon/md.c +daemon/mkfs.c +daemon/mknod.c +daemon/modprobe.c +daemon/mount.c +daemon/names.c +daemon/ntfs.c +daemon/ntfsclone.c +daemon/optgroups.c +daemon/parted.c +daemon/pingdaemon.c +daemon/proto.c +daemon/readdir.c +daemon/realpath.c +daemon/scrub.c +daemon/selinux.c +daemon/sfdisk.c +daemon/sleep.c +daemon/stat.c +daemon/statvfs.c +daemon/strings.c +daemon/stubs.c +daemon/swap.c +daemon/sync.c +daemon/tar.c +daemon/truncate.c +daemon/umask.c +daemon/upload.c +daemon/utimens.c +daemon/wc.c +daemon/xattr.c +daemon/zero.c +daemon/zerofree.c +df/df.c +df/domains.c +df/main.c +df/output.c +edit/virt-edit.c +erlang/erl-guestfs-proto.c +erlang/erl-guestfs.c +fish/alloc.c +fish/cmds.c +fish/cmds_gperf.c +fish/completion.c +fish/config.c +fish/copy.c +fish/destpaths.c +fish/display.c +fish/echo.c +fish/edit.c +fish/event-names.c +fish/events.c +fish/fish.c +fish/glob.c +fish/help.c +fish/hexedit.c +fish/inspect.c +fish/keys.c +fish/lcd.c +fish/man.c +fish/more.c +fish/options.c +fish/prep.c +fish/prep_boot.c +fish/prep_disk.c +fish/prep_fs.c +fish/prep_lv.c +fish/prep_part.c +fish/prepopts.c +fish/progress.c +fish/rc.c +fish/reopen.c +fish/setenv.c +fish/supported.c +fish/tilde.c +fish/time.c +fish/virt.c +format/format.c +fuse/guestmount.c +gobject/src/optargs-add_domain.c +gobject/src/optargs-add_drive_opts.c +gobject/src/optargs-btrfs_filesystem_resize.c +gobject/src/optargs-compress_device_out.c +gobject/src/optargs-compress_out.c +gobject/src/optargs-copy_device_to_device.c +gobject/src/optargs-copy_device_to_file.c +gobject/src/optargs-copy_file_to_device.c +gobject/src/optargs-copy_file_to_file.c +gobject/src/optargs-e2fsck.c +gobject/src/optargs-inspect_get_icon.c +gobject/src/optargs-md_create.c +gobject/src/optargs-mkfs_btrfs.c +gobject/src/optargs-mkfs_opts.c +gobject/src/optargs-mount_9p.c +gobject/src/optargs-mount_local.c +gobject/src/optargs-ntfsclone_out.c +gobject/src/optargs-ntfsfix.c +gobject/src/optargs-ntfsresize_opts.c +gobject/src/optargs-set_e2attrs.c +gobject/src/optargs-test0.c +gobject/src/optargs-tune2fs.c +gobject/src/optargs-umount_local.c +gobject/src/session.c +gobject/src/struct-application.c +gobject/src/struct-btrfssubvolume.c +gobject/src/struct-dirent.c +gobject/src/struct-inotify_event.c +gobject/src/struct-int_bool.c +gobject/src/struct-isoinfo.c +gobject/src/struct-lvm_lv.c +gobject/src/struct-lvm_pv.c +gobject/src/struct-lvm_vg.c +gobject/src/struct-mdstat.c +gobject/src/struct-partition.c +gobject/src/struct-stat.c +gobject/src/struct-statvfs.c +gobject/src/struct-version.c +gobject/src/struct-xattr.c +gobject/src/tristate.c +inspector/virt-inspector.c +java/com_redhat_et_libguestfs_GuestFS.c +ocaml/guestfs_c.c +ocaml/guestfs_c_actions.c +ocaml/t/exit.c +perl/Guestfs.c +perl/bindtests.pl +perl/lib/Sys/Guestfs.pm +perl/lib/Sys/Guestfs/Lib.pm +php/extension/guestfs_php.c +python/guestfs-py-byhand.c +python/guestfs-py.c +rescue/virt-rescue.c +resize/progress_c.c +ruby/ext/guestfs/_guestfs.c +sparsify/progress_c.c +src/actions.c +src/appliance.c +src/bindtests.c +src/dbdump.c +src/errnostring.c +src/errnostring_gperf.c +src/events.c +src/filearch.c +src/fuse.c +src/guestfs.c +src/inspect.c +src/inspect_apps.c +src/inspect_fs.c +src/inspect_fs_cd.c +src/inspect_fs_unix.c +src/inspect_fs_windows.c +src/inspect_icon.c +src/launch.c +src/listfs.c +src/match.c +src/proto.c +src/virt.c +test-tool/test-tool.c +tools/virt-list-filesystems.pl +tools/virt-list-partitions.pl +tools/virt-make-fs.pl +tools/virt-tar.pl +tools/virt-win-reg.pl diff --git a/po/POTFILES.in b/po/POTFILES.in deleted file mode 100644 index 2b4b586..0000000 --- a/po/POTFILES.in +++ /dev/null @@ -1,217 +0,0 @@ -align/domains.c -align/scan.c -cat/virt-cat.c -cat/virt-filesystems.c -cat/virt-ls.c -daemon/9p.c -daemon/augeas.c -daemon/available.c -daemon/base64.c -daemon/blkid.c -daemon/blockdev.c -daemon/btrfs.c -daemon/checksum.c -daemon/cmp.c -daemon/command.c -daemon/compress.c -daemon/copy.c -daemon/cpmv.c -daemon/dd.c -daemon/debug.c -daemon/devsparts.c -daemon/df.c -daemon/dir.c -daemon/dmesg.c -daemon/dropcaches.c -daemon/du.c -daemon/echo_daemon.c -daemon/errnostring.c -daemon/errnostring_gperf.c -daemon/ext2.c -daemon/fallocate.c -daemon/file.c -daemon/fill.c -daemon/find.c -daemon/findfs.c -daemon/fsck.c -daemon/glob.c -daemon/grep.c -daemon/grub.c -daemon/guestfsd.c -daemon/headtail.c -daemon/hexdump.c -daemon/htonl.c -daemon/initrd.c -daemon/inotify.c -daemon/internal.c -daemon/is.c -daemon/isoinfo.c -daemon/labels.c -daemon/link.c -daemon/ls.c -daemon/luks.c -daemon/lvm-filter.c -daemon/lvm.c -daemon/md.c -daemon/mkfs.c -daemon/mknod.c -daemon/modprobe.c -daemon/mount.c -daemon/names.c -daemon/ntfs.c -daemon/ntfsclone.c -daemon/optgroups.c -daemon/parted.c -daemon/pingdaemon.c -daemon/proto.c -daemon/readdir.c -daemon/realpath.c -daemon/scrub.c -daemon/selinux.c -daemon/sfdisk.c -daemon/sleep.c -daemon/stat.c -daemon/statvfs.c -daemon/strings.c -daemon/stubs.c -daemon/swap.c -daemon/sync.c -daemon/tar.c -daemon/truncate.c -daemon/umask.c -daemon/upload.c -daemon/utimens.c -daemon/wc.c -daemon/xattr.c -daemon/zero.c -daemon/zerofree.c -df/df.c -df/domains.c -df/main.c -df/output.c -edit/virt-edit.c -erlang/erl-guestfs-proto.c -erlang/erl-guestfs.c -fish/alloc.c -fish/cmds.c -fish/cmds_gperf.c -fish/completion.c -fish/config.c -fish/copy.c -fish/destpaths.c -fish/display.c -fish/echo.c -fish/edit.c -fish/event-names.c -fish/events.c -fish/fish.c -fish/glob.c -fish/help.c -fish/hexedit.c -fish/inspect.c -fish/keys.c -fish/lcd.c -fish/man.c -fish/more.c -fish/options.c -fish/prep.c -fish/prep_boot.c -fish/prep_disk.c -fish/prep_fs.c -fish/prep_lv.c -fish/prep_part.c -fish/prepopts.c -fish/progress.c -fish/rc.c -fish/reopen.c -fish/setenv.c -fish/supported.c -fish/tilde.c -fish/time.c -fish/virt.c -format/format.c -fuse/guestmount.c -gobject/src/optargs-add_domain.c -gobject/src/optargs-add_drive_opts.c -gobject/src/optargs-btrfs_filesystem_resize.c -gobject/src/optargs-compress_device_out.c -gobject/src/optargs-compress_out.c -gobject/src/optargs-copy_device_to_device.c -gobject/src/optargs-copy_device_to_file.c -gobject/src/optargs-copy_file_to_device.c -gobject/src/optargs-copy_file_to_file.c -gobject/src/optargs-e2fsck.c -gobject/src/optargs-inspect_get_icon.c -gobject/src/optargs-md_create.c -gobject/src/optargs-mkfs_btrfs.c -gobject/src/optargs-mkfs_opts.c -gobject/src/optargs-mount_9p.c -gobject/src/optargs-mount_local.c -gobject/src/optargs-ntfsclone_out.c -gobject/src/optargs-ntfsfix.c -gobject/src/optargs-ntfsresize_opts.c -gobject/src/optargs-set_e2attrs.c -gobject/src/optargs-test0.c -gobject/src/optargs-tune2fs.c -gobject/src/optargs-umount_local.c -gobject/src/session.c -gobject/src/struct-application.c -gobject/src/struct-btrfssubvolume.c -gobject/src/struct-dirent.c -gobject/src/struct-inotify_event.c -gobject/src/struct-int_bool.c -gobject/src/struct-isoinfo.c -gobject/src/struct-lvm_lv.c -gobject/src/struct-lvm_pv.c -gobject/src/struct-lvm_vg.c -gobject/src/struct-mdstat.c -gobject/src/struct-partition.c -gobject/src/struct-stat.c -gobject/src/struct-statvfs.c -gobject/src/struct-version.c -gobject/src/struct-xattr.c -gobject/src/tristate.c -inspector/virt-inspector.c -java/com_redhat_et_libguestfs_GuestFS.c -ocaml/guestfs_c.c -ocaml/guestfs_c_actions.c -ocaml/t/exit.c -perl/Guestfs.c -perl/bindtests.pl -perl/lib/Sys/Guestfs.pm -perl/lib/Sys/Guestfs/Lib.pm -php/extension/guestfs_php.c -python/guestfs-py-byhand.c -python/guestfs-py.c -rescue/virt-rescue.c -resize/progress_c.c -ruby/ext/guestfs/_guestfs.c -sparsify/progress_c.c -src/actions.c -src/appliance.c -src/bindtests.c -src/dbdump.c -src/errnostring.c -src/errnostring_gperf.c -src/events.c -src/filearch.c -src/fuse.c -src/guestfs.c -src/inspect.c -src/inspect_apps.c -src/inspect_fs.c -src/inspect_fs_cd.c -src/inspect_fs_unix.c -src/inspect_fs_windows.c -src/inspect_icon.c -src/launch.c -src/listfs.c -src/match.c -src/proto.c -src/virt.c -test-tool/test-tool.c -tools/virt-list-filesystems.pl -tools/virt-list-partitions.pl -tools/virt-make-fs.pl -tools/virt-tar.pl -tools/virt-win-reg.pl diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin deleted file mode 100644 index 2436c49..0000000 --- a/po/remove-potcdate.sin +++ /dev/null @@ -1,19 +0,0 @@ -# Sed script that remove the POT-Creation-Date line in the header entry -# from a POT file. -# -# The distinction between the first and the following occurrences of the -# pattern is achieved by looking at the hold space. -/^"POT-Creation-Date: .*"$/{ -x -# Test if the hold space is empty. -s/P/P/ -ta -# Yes it was empty. First occurrence. Remove the line. -g -d -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} -- 1.7.10