summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2006-04-17 06:12:46 +0000
committerjlam <jlam@pkgsrc.org>2006-04-17 06:12:46 +0000
commit3f6f5f89b5614091cf04b2e4aea8e7c400db5bed (patch)
treed65d13435e9097692c27b211065932e9cc1990af
parentae5f9ccb332325c5eeffa6c1c7b7b072897092eb (diff)
downloadpkgsrc-3f6f5f89b5614091cf04b2e4aea8e7c400db5bed.tar.gz
Modify the plist module to automatically transform "^share/locale" in
PLISTs to "${PKGLOCALEDIR}/locale" for the installed PLIST. This is similar to the work that's already done to automatically handle PKGINFODIR and PKGMANDIR. PLISTs in pkgsrc will be modified so that they would just list the message files to be under "share/locale". USE_PKGLOCALEDIR must continue to be set in package Makefiles so that localedir substitutions happen at post-configure time.
-rw-r--r--doc/guide/files/plist.xml17
-rw-r--r--mk/plist/plist-locale.awk56
-rw-r--r--mk/plist/plist.mk4
-rw-r--r--mk/plist/print-plist.mk5
4 files changed, 63 insertions, 19 deletions
diff --git a/doc/guide/files/plist.xml b/doc/guide/files/plist.xml
index c397096f493..2567edc15b2 100644
--- a/doc/guide/files/plist.xml
+++ b/doc/guide/files/plist.xml
@@ -1,4 +1,4 @@
-<!-- $NetBSD: plist.xml,v 1.11 2006/02/12 14:44:59 rillig Exp $ -->
+<!-- $NetBSD: plist.xml,v 1.12 2006/04/17 06:12:46 jlam Exp $ -->
<chapter id="plist">
<title>PLIST issues</title>
@@ -132,21 +132,6 @@
</itemizedlist>
</listitem>
</varlistentry>
-
- <varlistentry>
- <term><varname>${PKGLOCALEDIR}</varname></term>
-
- <listitem>
- <para>Packages that install locale files should list them in
- the PLIST as
- <quote>${PKGLOCALEDIR}/locale/de/LC_MESSAGES/...</quote>
- instead of <quote>share/locale/de/LC_MESSAGES/...</quote>.
- This properly handles the fact that different operating
- systems expect locale files to be either in
- <filename>share</filename> or <filename>lib</filename> by
- default.</para>
- </listitem>
- </varlistentry>
</variablelist>
<para> For a complete list of values which are replaced by
diff --git a/mk/plist/plist-locale.awk b/mk/plist/plist-locale.awk
new file mode 100644
index 00000000000..0cd95f87a1b
--- /dev/null
+++ b/mk/plist/plist-locale.awk
@@ -0,0 +1,56 @@
+# $NetBSD: plist-locale.awk,v 1.1 2006/04/17 06:12:46 jlam Exp $
+#
+# Copyright (c) 2006 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Johnny C. Lam.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the NetBSD
+# Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+### This awk script handles locale entries in PLISTs.
+###
+### Certain environment variables must be set prior to running this script:
+###
+### PKGLOCALEDIR is the ${PREFIX}-relative path to the "locale" directory
+### under which all locale files are installed.
+###
+BEGIN {
+ PKGLOCALEDIR = ENVIRON["PKGLOCALEDIR"] ? ENVIRON["PKGLOCALEDIR"] : "share"
+}
+
+###
+### Convert share/locale to ${PKGLOCALEDIR}/locale for all locale entries.
+###
+/^share\/locale\// {
+ sub("^share", PKGLOCALEDIR)
+}
+/^@dirrm share\/locale\// {
+ sub("^@dirrm share", "@dirrm " PKGLOCALEDIR)
+}
diff --git a/mk/plist/plist.mk b/mk/plist/plist.mk
index b52c3adac65..2e91a5b501d 100644
--- a/mk/plist/plist.mk
+++ b/mk/plist/plist.mk
@@ -1,4 +1,4 @@
-# $NetBSD: plist.mk,v 1.9 2006/04/16 04:27:18 jlam Exp $
+# $NetBSD: plist.mk,v 1.10 2006/04/17 06:12:46 jlam Exp $
#
# This Makefile fragment handles the creation of PLISTs for use by
# pkg_create(8).
@@ -90,6 +90,7 @@ MAKEVARS+= _IGNORE_INFO_PATH
# that does post-processing of the PLIST. See the individual *.awk
# scripts for information on each of the variable set in the environment.
#
+_PLIST_AWK_ENV+= PKGLOCALEDIR=${PKGLOCALEDIR:Q}
_PLIST_AWK_ENV+= IMAKE_MANINSTALL=${_IMAKE_MANINSTALL:Q}
_PLIST_AWK_ENV+= IGNORE_INFO_PATH=${_IGNORE_INFO_PATH:Q}
_PLIST_AWK_ENV+= PKGINFODIR=${PKGINFODIR:Q}
@@ -141,6 +142,7 @@ _PLIST_AWK_ENV+= PLIST_SUBST_VARS=${PLIST_SUBST:S/^/PLIST_/:C/=.*//:M*:Q}
_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-functions.awk
_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-subst.awk
+_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-locale.awk
_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-info.awk
_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-man.awk
_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-libtool.awk
diff --git a/mk/plist/print-plist.mk b/mk/plist/print-plist.mk
index 7df9dad78aa..6e0c18b2816 100644
--- a/mk/plist/print-plist.mk
+++ b/mk/plist/print-plist.mk
@@ -1,4 +1,4 @@
-# $NetBSD: print-plist.mk,v 1.5 2006/03/20 01:48:58 jlam Exp $
+# $NetBSD: print-plist.mk,v 1.6 2006/04/17 06:12:46 jlam Exp $
###
### Automatic PLIST generation
@@ -27,7 +27,8 @@ _PRINT_PLIST_AWK_SUBST+= \
gsub(/${LOWER_OPSYS}/, "$${LOWER_OPSYS}"); \
gsub(/${PKGNAME_NOREV}/, "$${PKGNAME}"); \
gsub(/${PKGVERSION:S/./\./g:C/nb[0-9]*$$//}/, "$${PKGVERSION}");\
- gsub(/${PKGLOCALEDIR}\/locale/, "$${PKGLOCALEDIR}/locale"); \
+ gsub(/^${PKGLOCALEDIR}\/locale/, "share/locale"); \
+ gsub(/^@dirrm ${PKGLOCALEDIR}\/locale/, "@dirrm share/locale"); \
gsub("^${PKGINFODIR}\/", "info/"); \
gsub("^${PKGMANDIR}\/", "man/"); \
}