r887 - in glibc-package/branches/glibc-2.3.4/debian: patches po
Author: gotom
Date: 2005-04-16 12:04:02 +0000 (Sat, 16 Apr 2005)
New Revision: 887
Added:
glibc-package/branches/glibc-2.3.4/debian/patches/glibc23-mips-lazy-eval.dpatch
glibc-package/branches/glibc-2.3.4/debian/patches/glibc232-tls-crashfix.dpatch
glibc-package/branches/glibc-2.3.4/debian/patches/linuxthreads-sizefix.dpatch
glibc-package/branches/glibc-2.3.4/debian/po/fi.po
Log:
* Merge with 2.3.2.ds1-21, added:
- debian/patches/linuxthreads-sizefix.dpatch: Added.
- debian/po/fi.po: Added.
- debian/patches/glibc23-mips-lazy-eval.dpatch: Added.
- debian/patches/glibc232-tls-crashfix.dpatch: Added, remove some parts
that are applied in the recent version.
Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc23-mips-lazy-eval.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc23-mips-lazy-eval.dpatch 2005-04-16 08:55:40 UTC (rev 886)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc23-mips-lazy-eval.dpatch 2005-04-16 12:04:02 UTC (rev 887)
@@ -0,0 +1,106 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Workaround invalid resolving of lazy evaluation stubs
+# DP: Related bugs: #265678
+# DP: Dpatch author: Thiemo Seufer <ths@debian.org>
+# DP: Patch author: Thiemo Seufer <ths@debian.org>
+# DP: Upstream status: Debian-Specific
+# DP: Status Details: The correct fix will be done to modify toolchains in etch.
+# DP: Date: 2005-04-11
+
+PATCHLEVEL=2
+
+if [ $# -ne 2 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+ -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+diff -upr build-tree.orig/glibc-2.3.2/elf/do-lookup.h build-tree/glibc-2.3.2/elf/do-lookup.h
+--- build-tree.orig/glibc-2.3.2/elf/do-lookup.h 2005-02-28 23:42:31.000000000 +0100
++++ build-tree/glibc-2.3.2/elf/do-lookup.h 2005-04-11 18:19:20.000000000 +0200
+@@ -209,6 +209,13 @@ FCT (const char *undef_name, unsigned lo
+ }
+ /* FALLTHROUGH */
+ case STB_GLOBAL:
++#ifdef __mips__
++ /* HACK: MIPS marks its lazy evaluation stubs with SHN_UNDEF
++ symbols, we skip them. */
++ if (sym->st_shndx == SHN_UNDEF)
++ break;
++#endif
++
+ /* Global definition. Just what we need. */
+ result->s = sym;
+ result->m = map;
+diff -upr build-tree.orig/glibc-2.3.2/sysdeps/mips/dl-machine.h build-tree/glibc-2.3.2/sysdeps/mips/dl-machine.h
+--- build-tree.orig/glibc-2.3.2/sysdeps/mips/dl-machine.h 2005-02-28 23:42:36.000000000 +0100
++++ build-tree/glibc-2.3.2/sysdeps/mips/dl-machine.h 2005-04-10 22:39:15.000000000 +0200
+@@ -347,5 +347,6 @@ __dl_runtime_resolve (ElfW(Word) sym_ind
+ const ElfW(Word) gotsym \
+ = (const ElfW(Word)) l->l_info[DT_MIPS (GOTSYM)]->d_un.d_val; \
+ const ElfW(Sym) *sym = &symtab[sym_index]; \
++ lookup_t result; \
+ ElfW(Addr) value; \
+ \
+@@ -363,30 +364,37 @@ __dl_runtime_resolve (ElfW(Word) sym_ind
+ \
+ if (version->hash != 0) \
+ { \
+- value = _dl_lookup_versioned_symbol(strtab + sym->st_name, l, \
+- &sym, l->l_scope, version,\
+- ELF_RTYPE_CLASS_PLT, 0); \
++ result = INTUSE(_dl_lookup_versioned_symbol) (strtab \
++ + sym->st_name, \
++ l, &sym, \
++ l->l_scope, \
++ version, \
++ ELF_RTYPE_CLASS_PLT,\
++ 0);\
+ break; \
+ } \
+ /* Fall through. */ \
+ } \
+ case 0: \
+- value = _dl_lookup_symbol (strtab + sym->st_name, l, &sym, \
+- l->l_scope, ELF_RTYPE_CLASS_PLT, \
+- DL_LOOKUP_ADD_DEPENDENCY); \
++ result = INTUSE(_dl_lookup_symbol) (strtab + sym->st_name, l, &sym, \
++ l->l_scope, ELF_RTYPE_CLASS_PLT,\
++ DL_LOOKUP_ADD_DEPENDENCY); \
+ } \
+ \
+- /* Currently value contains the base load address of the object \
+- that defines sym. Now add in the symbol offset. */ \
+- value = (sym ? value + sym->st_value : 0); \
++ /* Currently result contains the base load address (or link map) \
++ of the object that defines sym. Now add in the symbol \
++ offset. */ \
++ value = (sym ? result + sym->st_value : 0); \
+ } \
+ else \
+- /* We already found the symbol. The module (and therefore its load \
+- address) is also known. */ \
+- value = l->l_addr + sym->st_value; \
++ { \
++ /* We already found the symbol. The module (and therefore its load \
++ address) is also known. */ \
++ value = l->l_addr + sym->st_value; \
++ } \
+ \
+ /* Apply the relocation with that value. */ \
+- *(got + local_gotno + sym_index - gotsym) = value; \
++ *(got + local_gotno + sym_index - gotsym) = value; \
+ \
+ return value; \
+ } \
+
Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc232-tls-crashfix.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc232-tls-crashfix.dpatch 2005-04-16 08:55:40 UTC (rev 886)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc232-tls-crashfix.dpatch 2005-04-16 12:04:02 UTC (rev 887)
@@ -0,0 +1,80 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: TLS fixes for xmms/nvidia crash
+# DP: Related bugs: #219352
+# DP: Dpatch author: Jeff Bailey
+# DP: Patch author:
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-03-22, 2005-04-16 updated by gotom
+
+PATCHLEVEL=1
+
+if [ $# -ne 2 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+ -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+2005-03-15 Jakub Jelinek <jakub@redhat.com>
+
+ [BZ#786]
+ * sysdeps/generic/dl-tls.c (_dl_next_tls_modid): Handle
+ GL(dl_tls_static_nelem) == GL(dl_tls_max_dtv_idx).
+
+--- libc/sysdeps/generic/dl-tls.c.jj 2005-02-25 14:45:06.000000000 +0100
++++ libc/sysdeps/generic/dl-tls.c 2005-03-15 15:36:55.593127093 +0100
+@@ -71,26 +71,24 @@ _dl_next_tls_modid (void)
+ NB: the offset +1 is due to the fact that DTV[0] is used
+ for something else. */
+ result = GL(dl_tls_static_nelem) + 1;
+- /* If the following would not be true we mustn't have assumed
+- there is a gap. */
+- assert (result <= GL(dl_tls_max_dtv_idx));
+- do
+- {
+- while (result - disp < runp->len)
+- {
+- if (runp->slotinfo[result - disp].map == NULL)
+- break;
+-
+- ++result;
+- assert (result <= GL(dl_tls_max_dtv_idx) + 1);
+- }
+-
+- if (result - disp < runp->len)
+- break;
+-
+- disp += runp->len;
+- }
+- while ((runp = runp->next) != NULL);
++ if (result <= GL(dl_tls_max_dtv_idx))
++ do
++ {
++ while (result - disp < runp->len)
++ {
++ if (runp->slotinfo[result - disp].map == NULL)
++ break;
++
++ ++result;
++ assert (result <= GL(dl_tls_max_dtv_idx) + 1);
++ }
++
++ if (result - disp < runp->len)
++ break;
++
++ disp += runp->len;
++ }
++ while ((runp = runp->next) != NULL);
+
+ if (result > GL(dl_tls_max_dtv_idx))
+ {
Added: glibc-package/branches/glibc-2.3.4/debian/patches/linuxthreads-sizefix.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/linuxthreads-sizefix.dpatch 2005-04-16 08:55:40 UTC (rev 886)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/linuxthreads-sizefix.dpatch 2005-04-16 12:04:02 UTC (rev 887)
@@ -0,0 +1,183 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Align TLS_PRE_TCB_SIZE between linuxthreads and nptl.
+# The patch is based on fedora-20031105.
+# DP: Related bugs: #292673
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: Jakub Jelinek <jakub@redhat.com>
+# DP: Upstream status: Debian-Specific
+# DP: Status Details: Currently IA-64 part is applied.
+# DP: Date: 2005-04-09
+
+PATCHLEVEL=1
+
+if [ $# -ne 2 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+ -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+2003-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/sparc/tls.h (TLS_TCB_SIZE): If in ld.so and NPTL struct
+ pthread is bigger than struct _pthread_descr_struct, use NPTL struct
+ pthread size.
+
+2003-07-22 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/alpha/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Change to 0.
+ (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Alignment of struct
+ _pthread_descr_struct.
+ (TLS_PRE_TCB_SIZE): Add sizeof (tcbhead_t) and pad to align.
+ If in ld.so and NPTL struct pthread is bigger than struct
+ _pthread_descr_struct, use NPTL struct pthread size.
+ (TLS_TCB_OFFSET): Define.
+ (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV,
+ THREAD_SELF, INIT_THREAD_SELF): Changed to match NPTL tls.h
+ definitions.
+ * sysdeps/i386/tls.h (TLS_TCB_SIZE): If in ld.so and NPTL struct
+ pthread is bigger than struct _pthread_descr_struct, use NPTL struct
+ pthread size.
+ * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Likewise.
+ * sysdeps/powerpc/tls.h (TLS_PRE_TCB_SIZE): Likewise.
+ * sysdeps/s390/tls.h (TLS_TCB_SIZE): Likewise.
+ * sysdeps/sh/tls.h (TLS_PRE_TCB_SIZE): Likewise.
+ * sysdeps/x86_64/tls.h (TLS_TCB_SIZE): Likewise.
+ * sysdeps/pthread/Makefile (gen-as-const-headers): Add
+ nptl-struct-pthread.sym if nptl tree is present.
+ (before-compile): Add $(common-objpfx)nptl-struct-pthread.h
+ if nptl tree is not present.
+ (common-generated): Add nptl-struct-pthread.h.
+ ($(common-objpfx)nptl-struct-pthread.h): New rule.
+ * sysdeps/pthread/nptl-struct-pthread.sym: New file.
+
+2003-07-22 Jakub Jelinek <jakub@redhat.com>
+
+ * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h
+ if __need_struct_pthread_size, instead define lll_lock_t.
+
+
+--- glibc-2.3.2-net/linuxthreads/Makefile 4 Oct 2003 11:52:58 -0000 1.1.1.53
++++ glibc-2.3.2-redhat/linuxthreads/Makefile 4 Oct 2003 12:06:23 -0000 1.32
+@@ -244,15 +244,18 @@ $(addprefix $(objpfx), \
+ $(filter-out $(tests-static) $(tests-reverse) unload, \
+ $(tests) $(test-srcs))): $(objpfx)libpthread.so \
+ $(objpfx)libpthread_nonshared.a
+-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
++# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
+ # since otherwise libpthread.so comes before libc.so when linking.
+ $(addprefix $(objpfx), $(tests-reverse)): \
+- $(objpfx)../libc.so $(objpfx)libpthread.so \
++ $(objpfx)linklibc.so $(objpfx)libpthread.so \
+ $(objpfx)libpthread_nonshared.a
+ $(objpfx)../libc.so: $(common-objpfx)libc.so ;
+ $(addprefix $(objpfx),$(librt-tests)): $(common-objpfx)rt/librt.so
+ $(objpfx)unload: $(common-objpfx)dlfcn/libdl.so
+ $(objpfx)unload.out: $(objpfx)libpthread.so $(objpfx)libpthread_nonshared.a
++$(objpfx)linklibc.so: $(common-objpfx)libc.so
++ ln -s ../libc.so $@
++generated += libclink.so
+ else
+ $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
+ $(addprefix $(objpfx),$(librt-tests)): $(common-objpfx)rt/librt.a
+--- glibc-2.3.2-net/linuxthreads/sysdeps/ia64/tls.h 31 Jul 2003 23:17:32 -0000 1.1.1.6
++++ glibc-2.3.2-redhat/linuxthreads/sysdeps/ia64/tls.h 31 Jul 2003 23:26:38 -0000 1.5
+@@ -59,7 +59,14 @@ typedef struct
+ # define TLS_TCB_SIZE sizeof (tcbhead_t)
+
+ /* This is the size we need before TCB. */
+-# define TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
++# ifndef IS_IN_rtld
++# define TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
++# else
++# include <nptl-struct-pthread.h>
++# define TLS_PRE_TCB_SIZE \
++ (sizeof (struct _pthread_descr_struct) > NPTL_STRUCT_PTHREAD_SIZE \
++ ? sizeof (struct _pthread_descr_struct) : NPTL_STRUCT_PTHREAD_SIZE)
++# endif
+
+ /* Alignment requirements for the TCB. */
+ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct)
+--- glibc-2.3.2-net/linuxthreads/sysdeps/pthread/Makefile 14 Aug 2003 13:32:49 -0000 1.1.1.6
++++ glibc-2.3.2-redhat/linuxthreads/sysdeps/pthread/Makefile 14 Aug 2003 14:10:45 -0000 1.8
+@@ -12,3 +12,15 @@ endif
+ ifeq ($(subdir),posix)
+ CFLAGS-confstr.c += -DLIBPTHREAD_VERSION="\"$(shell sed 's/\(.*\) by .*/\1/' ../linuxthreads/Banner)\""
+ endif
++
++ifeq ($(subdir),csu)
++# Find out the size of NPTL struct pthread
++ifneq (,$(wildcard $(..)nptl/descr.h))
++gen-as-const-headers += nptl-struct-pthread.sym
++else
++before-compile += $(common-objpfx)nptl-struct-pthread.h
++common-generated += nptl-struct-pthread.h
++$(common-objpfx)nptl-struct-pthread.h:
++ @echo '#define NPTL_STRUCT_PTHREAD_SIZE 0' > $@
++endif
++endif
+--- glibc-2.3.2-net/linuxthreads/sysdeps/pthread/nptl-struct-pthread.sym 1 Jan 1970 00:00:00 -0000
++++ glibc-2.3.2-redhat/linuxthreads/sysdeps/pthread/nptl-struct-pthread.sym 28 Jul 2003 10:42:00 -0000 1.1
+@@ -0,0 +1,13 @@
++#ifdef HAVE_TLS_SUPPORT
++# ifndef HAVE_FORCED_UNWIND
++# define HAVE_FORCED_UNWIND 1
++# endif
++# define __need_struct_pthread_size
++# include <nptl/descr.h>
++#endif
++
++--
++
++#ifdef HAVE_TLS_SUPPORT
++NPTL_STRUCT_PTHREAD_SIZE sizeof (struct pthread)
++#endif
+--- glibc-2.3.2-net/nptl/Makefile 4 Oct 2003 11:53:45 -0000 1.1.1.67
++++ glibc-2.3.2-redhat/nptl/Makefile 4 Oct 2003 12:06:23 -0000 1.72
+@@ -465,15 +465,19 @@ $(addprefix $(objpfx), \
+ $(tests) $(test-srcs))): $(objpfx)libpthread.so \
+ $(objpfx)libpthread_nonshared.a
+ $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
+-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
++# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
+ # since otherwise libpthread.so comes before libc.so when linking.
+ $(addprefix $(objpfx), $(tests-reverse)): \
+- $(objpfx)../libc.so $(objpfx)libpthread.so \
++ $(objpfx)linklibc.so $(objpfx)libpthread.so \
+ $(objpfx)libpthread_nonshared.a
+ $(objpfx)../libc.so: $(common-objpfx)libc.so ;
+ $(addprefix $(objpfx),$(tests-static)): $(objpfx)libpthread.a
+
+ $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so
++
++$(objpfx)linklibc.so: $(common-objpfx)libc.so
++ ln -s ../libc.so $@
++generated += libclink.so
+ else
+ $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
+ endif
+--- glibc-2.3.2-net/nptl/descr.h 28 Jul 2003 10:05:59 -0000 1.1.1.16
++++ glibc-2.3.2-redhat/nptl/descr.h 28 Jul 2003 10:42:00 -0000 1.2
+@@ -27,9 +27,13 @@
+ #include <sys/types.h>
+ #include <hp-timing.h>
+ #include <list.h>
++#ifdef __need_struct_pthread_size
++#define lll_lock_t int
++#else
+ #include <lowlevellock.h>
+ #include <pthreaddef.h>
+ #include <dl-sysdep.h>
++#endif
+ #include "../nptl_db/thread_db.h"
+ #include <tls.h>
+ #ifdef HAVE_FORCED_UNWIND
Added: glibc-package/branches/glibc-2.3.4/debian/po/fi.po
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/po/fi.po 2005-04-16 08:55:40 UTC (rev 886)
+++ glibc-package/branches/glibc-2.3.4/debian/po/fi.po 2005-04-16 12:04:02 UTC (rev 887)
@@ -0,0 +1,92 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: glibc\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-11-01 23:07-0500\n"
+"PO-Revision-Date: 2005-04-09 01:47+0300\n"
+"Last-Translator: Matti Pöllä <mpo@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../debhelper.in/locales.templates:4
+msgid "Select locales to be generated."
+msgstr "Valitse muodostettavat lokaalit."
+
+#. Type: multiselect
+#. Description
+#: ../debhelper.in/locales.templates:4
+msgid ""
+"Locale is a framework to switch between multiple languages for users who can "
+"select to use their language, country, characters, collation order, etc."
+msgstr ""
+"Lokaalien avulla on mahdollista käyttää useita kieliä siten, että\n"
+"käyttäjät voivat itse valita käyttämänsä kielen, maan, merkistön\n"
+"jne. "
+
+#. Type: multiselect
+#. Description
+#: ../debhelper.in/locales.templates:4
+msgid ""
+"Choose which locales to generate. The selection will be saved to `/etc/"
+"locale.gen', which you can also edit manually (you need to run `locale-gen' "
+"afterwards)."
+msgstr ""
+"Valitse lokaalit, jotka haluat muodostaa. Valinta talletetaan tiedostoon\n"
+"\"/etc/locale.gen\", jota voit myös itse muokata. (Muokkaamisen jälkeen\n"
+"tulee ajaa komento \"locale-gen\".)"
+
+#. Type: select
+#. Choices
+#: ../debhelper.in/locales.templates:14
+msgid "None, ${locales}"
+msgstr "Ei mitään, ${locales}"
+
+#. Type: select
+#. Description
+#: ../debhelper.in/locales.templates:16
+msgid "Which locale should be the default in the system environment?"
+msgstr "Minkä lokaalin tulisi olla järjestelmän oletus?"
+
+#. Type: select
+#. Description
+#: ../debhelper.in/locales.templates:16
+msgid ""
+"Many packages in Debian use locales to display text in the correct language "
+"for users. You can change the default locale if you're not a native English "
+"speaker. These choices are based on which locales you have chosen to "
+"generate."
+msgstr ""
+"Monet Debianin paketit käyttävät lokaaleja näyttämään käyttäjälle\n"
+"tekstit oikealla kielellä. Voit muuttaa oletusarvoisen lokaalin, jos\n"
+"et puhu suomea äidinkielenäsi. Nämä valinnat perustuvat lokaaleihin,\n"
+"jotka valitsit muodostaa."
+
+#. Type: select
+#. Description
+#: ../debhelper.in/locales.templates:16
+msgid ""
+"Note: This will select the language for your whole system. If you're running "
+"a multi-user system where not all of your users speak the language of your "
+"choice, then they will run into difficulties and you might want not to set a "
+"default locale."
+msgstr ""
+"Huomaa: Tämä valitsee koko järjestelmän kielen. Jos kyseessä on monen\n"
+"käyttäjän ympäristö, jossa kaikki käyttäjät eivät puhu valitsemaasi\n"
+"kieltä, oletuskielen valitseminen ei ehkä ole järkevää."
Reply to: