tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xgettext with UI files support



Le 15/06/15 17:00, Ryo ONODERA a écrit :
> Hi,
> 
> My commit to x11/gtk3 was wrong.
> How about the following patches?
> If REQUIRE_XGETTEXT_WITH_UI_FILES_SUPPORT=yes, xgettext>=0.18.3 from
> devel/gettext-tools is used.
> 
> Index: mk/tools/gettext.mk
> ===================================================================
> RCS file: /cvsroot/pkgsrc/mk/tools/gettext.mk,v
> retrieving revision 1.20
> diff -u -r1.20 gettext.mk
> --- mk/tools/gettext.mk	16 Feb 2015 10:40:40 -0000	1.20
> +++ mk/tools/gettext.mk	15 Jun 2015 14:59:08 -0000
> @@ -39,7 +39,7 @@
>  # is no native tool available.  Don't add "msgfmt" to this list as it's
>  # treated specially below.
>  #
> -_TOOLS.gettext-tools=		gettext msgmerge xgettext msgconv autopoint
> +_TOOLS.gettext-tools=		gettext msgmerge msgconv autopoint
>  _TOOLS_DEP.gettext-tools=	gettext-tools>=0.15
>  
>  .for _t_ in ${_TOOLS.gettext-tools}
> @@ -132,6 +132,65 @@
>  .  endif
>  .endif
>  
> +###
> +### Handle "xgettext".  We use either the pkgsrc version or the built-in
> +### version of xgettext depending on availability and version.
> +###
> +.if !defined(TOOLS_IGNORE.xgettext) && !empty(USE_TOOLS:C/:.*//:Mxgettext)
> +.  if !empty(PKGPATH:Mdevel/gettext-tools)
> +MAKEFLAGS+=		TOOLS_IGNORE.xgettext=
> +.  elif !empty(REQUIRE_XGETTEXT_WITH_UI_FILES_SUPPORT:M[Yy][Ee][Ss])
> +#
> +# If we're not using the builtin gettext implementation, then we should
> +# definitely be using the pkgsrc version of gettext (gettext-tools).
> +#
> +CHECK_BUILTIN.gettext:=	yes
> +.    include "../../devel/gettext-lib/builtin.mk"
> +CHECK_BUILTIN.gettext:=	no
> +.    if !empty(USE_BUILTIN.gettext:M[nN][oO])
> +_TOOLS_USE_PKGSRC.xgettext=	yes
> +.    endif
> +
> +_TOOLS_USE_PKGSRC.xgettext?=	no
> +.    if empty(_TOOLS_USE_PKGSRC.xgettext:M[Yy][Ee][Ss]) && \
> +	defined(TOOLS_PLATFORM.xgettext) && !empty(TOOLS_PLATFORM.xgettext)
> +#
> +# XGETTEXT_SUPPORTS_UI_FILES: Yes for xgettext >= 0.18.3
> +#
> +# Determine if the platform-supplied xgettext is new enough to support
> +# the UI files.  We need at least 0.18.3 for GNU xgettext.
> +#
> +_TOOLS_VERSION.xgettext!=	${TOOLS_PLATFORM.xgettext} --version |	\
> +				${AWK} '{ print $$4; exit }'
> +.      if !defined(XGETTEXT_SUPPORTS_UI_FILES)
> +XGETTEXT_SUPPORTS_UI_FILES!=						\
> +	if ${PKG_ADMIN} pmatch "gettext<0.18.3"			\
> +			gettext-${_TOOLS_VERSION.xgettext:Q}; then	\
> +		${ECHO} no;						\
> +	else								\
> +		${ECHO} yes;						\
> +	fi
> +.      endif
> +.    else
> +_TOOLS_USE_PKGSRC.xgettext=	yes
> +.    endif
> +XGETTEXT_SUPPORTS_UI_FILES?=	no
> +
> +.    if ${XGETTEXT_SUPPORTS_UI_FILES} == "no"
> +_TOOLS_USE_PKGSRC.xgettext=	yes
> +.    endif
> +
> +.    if !empty(_TOOLS_USE_PKGSRC.xgettext:M[yY][eE][sS])
> +TOOLS_CREATE+=		xgettext
> +TOOLS_DEPENDS.xgettext?=${_TOOLS_DEP.gettext-tools}:../../devel/gettext-tools
> +TOOLS_FIND_PREFIX+=	TOOLS_PREFIX.xgettext=${TOOLS_DEPENDS.xgettext:C/:.*//}
> +TOOLS_PATH.xgettext=	${TOOLS_PREFIX.xgettext}/bin/msgfmt
> +.    endif
> +.  else
> +USE_TOOLS+=	xgettext
> +.  endif
> +.endif
> +
>  .for _t_ in ${_TOOLS.gettext-tools}
>  .  if !defined(TOOLS_IGNORE.${_t_}) && !empty(USE_TOOLS:C/:.*//:M${_t_})
>  .    if !empty(_TOOLS_USE_PKGSRC.msgfmt:M[yY][eE][sS])
> Index: x11/gtk3/Makefile
> ===================================================================
> RCS file: /cvsroot/pkgsrc/x11/gtk3/Makefile,v
> retrieving revision 1.64
> diff -u -r1.64 Makefile
> --- x11/gtk3/Makefile	15 Jun 2015 01:39:06 -0000	1.64
> +++ x11/gtk3/Makefile	15 Jun 2015 14:59:08 -0000
> @@ -13,12 +13,12 @@
>  LICENSE=	gnu-lgpl-v2.1
>  
>  USE_PKGLOCALEDIR=	yes
> -USE_TOOLS+=		gmake perl pkg-config bash
> +USE_TOOLS+=		gmake perl pkg-config bash msgfmt xgettext
> +REQUIRE_XGETTEXT_WITH_UI_FILES_SUPPORT=yes
>  USE_LANGUAGES=		c c++
>  USE_LIBTOOL=		yes
>  PTHREAD_AUTO_VARS=	yes
>  BUILD_DEPENDS+=		gdbus-codegen-[0-9]*:../../devel/gdbus-codegen
> -TOOL_DEPENDS+=		gettext-tools>=0.19.4nb1:../../devel/gettext-tools
>  
>  GNU_CONFIGURE=		yes
>  # XXX there is a subtle bashism in "configure" or a bug in NetBSD's sh
> 
> --
> Ryo ONODERA // ryo_on%yk.rim.or.jp@localhost
> PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3
> 

It looks like there are plenty of us working on gettext lately!

Perhaps this should be all overhauled, as there is another issue that needs addressing
namely the fact that configure scripts frequently look for the g' prefixed flavours of
the programs as well (in order to avoid a mix of pkgsrc and native gettext being used as
currently is frequently the case, for example, on SunOS).

The easy part is converting gettext-tools to do like GNU binutils or diffutils and
put the g' flavour in bin with symlinks in $PKGGNUDIR/bin, but the TOOLS also need to do the right thing.

Can we do this a bit more formalistic?

-- 
Richard PALO



Home | Main Index | Thread Index | Old Index