summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/glibc/files/2.17/locale-gen_prefix.patch')
-rw-r--r--sys-libs/glibc/files/2.17/locale-gen_prefix.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/sys-libs/glibc/files/2.17/locale-gen_prefix.patch b/sys-libs/glibc/files/2.17/locale-gen_prefix.patch
new file mode 100644
index 0000000..f378605
--- /dev/null
+++ b/sys-libs/glibc/files/2.17/locale-gen_prefix.patch
@@ -0,0 +1,77 @@
+bug #473484
+Index: work/extra/locale/locale-gen
+===================================================================
+--- work.orig/extra/locale/locale-gen
++++ work/extra/locale/locale-gen
+@@ -8,7 +8,13 @@ unset POSIXLY_CORRECT IFS
+ umask 0022
+
+ argv0=${0##*/}
+-source /etc/init.d/functions.sh || {
++
++EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
++if [[ ${EPREFIX} == "@"GENTOO_PORTAGE_EPREFIX"@" ]] ; then
++ EPREFIX=""
++fi
++
++source "${EPREFIX}"/etc/init.d/functions.sh || {
+ echo "${argv0}: Could not source /etc/init.d/functions.sh!" 1>&2
+ exit 1
+ }
+@@ -97,13 +103,14 @@ if [[ -n ${DESTDIR} ]] && [[ ${ROOT} !=
+ eerror "DESTDIR and ROOT are mutually exclusive options"
+ exit 1
+ fi
+-if [[ ${ROOT} != "/" ]] ; then
+- einfo "Using locale.gen from ROOT ${ROOT}etc/"
++: ${EROOT:="${ROOT%/}${EPREFIX}/"}
++if [[ ${EROOT} != "/" ]] ; then
++ einfo "Using locale.gen from ROOT ${EROOT}etc/"
+ fi
+ if [[ -n ${DESTDIR} ]] ; then
+ einfo "Building locales in DESTDIR '${DESTDIR}'"
+ else
+- DESTDIR=${ROOT}
++ DESTDIR=${EROOT}
+ fi
+
+ # XXX: should fix this ...
+@@ -112,7 +119,7 @@ if [[ ${ROOT} != "/" ]] ; then
+ exit 0
+ fi
+
+-: ${CONFIG:=${ROOT}etc/locale.gen}
++: ${CONFIG:=${EROOT}etc/locale.gen}
+ LOCALES=${DESTDIR}usr/share/i18n/locales
+ CHARMAPS=${DESTDIR}usr/share/i18n/charmaps
+ SUPPORTED=${DESTDIR}usr/share/i18n/SUPPORTED
+@@ -150,7 +157,10 @@ fi
+
+ # Extract the location of the locale dir on the fly as `localedef --help` has:
+ # locale path : /usr/lib64/locale:/usr/share/i18n
+-LOCALEDIR=${DESTDIR}$(LC_ALL="C" "${DESTDIR}"usr/bin/localedef --help | sed -n -e '/locale path/{s|.* : ||;s|:.*||;p}')
++# For long paths, the line may get wrapped into two, in which case space (' ') is replaced
++# by newline (\n).
++LOCALEDIR=$(LC_ALL="C" "${DESTDIR}"usr/bin/localedef --help | sed -n -r '/locale path/{N;s|.*:[ \n](.*):/.*|\1|;p}')
++LOCALEDIR="${DESTDIR}${LOCALEDIR#${EPREFIX}}"
+ if [[ $? -ne 0 ]] || [[ -z ${LOCALEDIR} ]] || [[ ${LOCALEDIR} != ${DESTDIR}/usr/lib*/locale ]] ; then
+ eerror "Unable to parse the output of your localedef utility." 1>&2
+ eerror "File a bug about this issue and include the output of 'localedef --help'." 1>&2
+@@ -160,7 +170,7 @@ fi
+
+
+ if [[ ${QUIET} -eq 0 ]] && [[ -z ${JUST_LIST} ]] && \
+- [[ -e ${ROOT}etc/locales.build ]]
++ [[ -e ${EROOT}etc/locales.build ]]
+ then
+ ewarn "You should upgrade your /etc/locales.build to /etc/locale.gen"
+ ewarn "and then remove /etc/locales.build when you're done.\n"
+@@ -280,7 +290,7 @@ generate_locale() {
+ -i "${input}" \
+ -f "${charmap}" \
+ -A "${ALIAS}" \
+- --prefix "${DESTDIR}" \
++ --prefix "${DESTDIR%${EPREFIX}/}/" \
+ "${locale}" 2>&1
+ ret=$?
+ [[ -n ${output} ]] && eend ${ret}