From 310647e9809986986650994d036af18ca9b17fb2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 11 Jun 2009 10:07:33 -0700 Subject: [PATCH 01/21] Remember we switched to single-request mode. This change prevents repetition in most later calls of the resolver in case the DNS server or the network connection is broken. --- ChangeLog | 5 +++++ resolv/res_send.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 70c0ed8839..39e2e3c3ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-06-11 Ulrich Drepper + + * resolv/res_send.c (send_dg): Remember we switched to + single-request mode. + 2009-06-09 Ulrich Drepper * dlfcn/dlfcn.h: Remove comma at end of enum. diff --git a/resolv/res_send.c b/resolv/res_send.c index 25a854f72e..39c69da2bc 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -1008,7 +1008,7 @@ send_dg(res_state statp, seconds /= statp->nscount; if (seconds <= 0) seconds = 1; - bool single_request = ((statp->options) & RES_SNGLKUP) != 0;// XXX + bool single_request = (statp->options & RES_SNGLKUP) != 0;// XXX int save_gotsomewhere = *gotsomewhere; retry: evNowTime(&now); @@ -1059,6 +1059,7 @@ send_dg(res_state statp, have received the first answer. */ if (!single_request) { + statp->options |= RES_SNGLKUP; single_request = true; *gotsomewhere = save_gotsomewhere; goto retry; From 1828530f09bcc321cfb84c27110bbce804605ec4 Mon Sep 17 00:00:00 2001 From: Bryan Kadzban Date: Thu, 11 Jun 2009 11:32:51 -0700 Subject: [PATCH 02/21] Fix futex syscall parameter for x86 absolute timeout waits. This affects only installations compiled for kernels older than 2.6.18. --- nptl/ChangeLog | 8 ++++++++ nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index d83b46125c..34a5f9112e 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,11 @@ +2009-06-11 Ulrich Drepper + + [BZ #10262] + * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S + (LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes + cannot be assumed. + Patch by Bryan Kadzban . + 2009-05-16 Ulrich Drepper * libc-cancellation.c: Move __libc_cleanup_routine to... diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S index 056b72900a..7578c7ece0 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S @@ -60,7 +60,7 @@ # define LOAD_FUTEX_WAIT_ABS(reg) \ xorl $FUTEX_PRIVATE_FLAG, reg ; \ andl %gs:PRIVATE_FUTEX, reg ; \ - orl $FUTEX_WAIT | FUTEX_CLOCK_REALTIME, reg + orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg # define LOAD_FUTEX_WAKE(reg) \ xorl $FUTEX_PRIVATE_FLAG, reg ; \ andl %gs:PRIVATE_FUTEX, reg ; \ From bfdb73e145e6ca3bedcd5ef93e0b5d0fe9498645 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 12 Jun 2009 08:34:02 -0700 Subject: [PATCH 03/21] Implement pthread_sigqueue. The kernel from 2.3.31 on supports the rt_tgsigqueueinfo syscall. Use it to implement the non-standard extension which, like sigqueue, can pass additional data to the receiving thread. --- ChangeLog | 4 + Versions.def | 1 + nptl/ChangeLog | 7 ++ nptl/Makefile | 2 +- nptl/Versions | 4 + nptl/sysdeps/pthread/bits/sigthread.h | 8 +- .../unix/sysv/linux/pthread_sigqueue.c | 83 +++++++++++++++++++ 7 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c diff --git a/ChangeLog b/ChangeLog index 39e2e3c3ca..059d27f0a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-12 Ulrich Drepper + + * Versions.def: Add GLIBC_2.11 for libpthread. + 2009-06-11 Ulrich Drepper * resolv/res_send.c (send_dg): Remember we switched to diff --git a/Versions.def b/Versions.def index 558f7c3ed8..a8a9cd275e 100644 --- a/Versions.def +++ b/Versions.def @@ -89,6 +89,7 @@ libpthread { GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.6 + GLIBC_2.11 GLIBC_PRIVATE } libresolv { diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 34a5f9112e..ec9ace7d31 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2009-06-12 Ulrich Drepper + + * Makefile (libpthread-routines): Add pthread_sigqueue. + * Versions: Add pthread_sigqueue for GLIBC_2.11. + * sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue. + * sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file. + 2009-06-11 Ulrich Drepper [BZ #10262] diff --git a/nptl/Makefile b/nptl/Makefile index 5bba0e1455..42a0b86282 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -86,7 +86,7 @@ libpthread-routines = nptl-init vars events version \ pthread_barrierattr_setpshared \ pthread_key_create pthread_key_delete \ pthread_getspecific pthread_setspecific \ - pthread_sigmask pthread_kill \ + pthread_sigmask pthread_kill pthread_sigqueue \ pthread_cancel pthread_testcancel \ pthread_setcancelstate pthread_setcanceltype \ pthread_once \ diff --git a/nptl/Versions b/nptl/Versions index 54b9b9c6a5..09098bf987 100644 --- a/nptl/Versions +++ b/nptl/Versions @@ -240,6 +240,10 @@ libpthread { pthread_mutex_getprioceiling; pthread_mutex_setprioceiling; }; + GLIBC_2.11 { + pthread_sigqueue; + }; + GLIBC_PRIVATE { __pthread_initialize_minimal; __pthread_clock_gettime; __pthread_clock_settime; diff --git a/nptl/sysdeps/pthread/bits/sigthread.h b/nptl/sysdeps/pthread/bits/sigthread.h index 960bde18a9..9a524e57db 100644 --- a/nptl/sysdeps/pthread/bits/sigthread.h +++ b/nptl/sysdeps/pthread/bits/sigthread.h @@ -1,5 +1,5 @@ /* Signal handling function for threaded programs. - Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2002, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -35,4 +35,10 @@ extern int pthread_sigmask (int __how, /* Send signal SIGNO to the given thread. */ extern int pthread_kill (pthread_t __threadid, int __signo) __THROW; +#ifdef __USE_GNU +/* Queue signal and data to a thread. */ +extern int pthread_sigqueue (pthread_t __threadid, int __signo, + const union sigval __value) __THROW; +#endif + #endif /* bits/sigthread.h */ diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c new file mode 100644 index 0000000000..4440703b6a --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c @@ -0,0 +1,83 @@ +/* Copyright (C) 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2009. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include +#include + + +int +pthread_sigqueue (threadid, signo, value) + pthread_t threadid; + int signo; + const union sigval value; +{ +#ifdef __NR_rt_tgsigqueueinfo + struct pthread *pd = (struct pthread *) threadid; + + /* Make sure the descriptor is valid. */ + if (DEBUGGING_P && INVALID_TD_P (pd)) + /* Not a valid thread handle. */ + return ESRCH; + + /* Force load of pd->tid into local variable or register. Otherwise + if a thread exits between ESRCH test and tgkill, we might return + EINVAL, because pd->tid would be cleared by the kernel. */ + pid_t tid = atomic_forced_read (pd->tid); + if (__builtin_expect (tid <= 0, 0)) + /* Not a valid thread handle. */ + return ESRCH; + + /* Disallow sending the signal we use for cancellation, timers, for + for the setxid implementation. */ + if (signo == SIGCANCEL || signo == SIGTIMER || signo == SIGSETXID) + return EINVAL; + + /* Set up the siginfo_t structure. */ + siginfo_t info; + memset (&info, '\0', sizeof (siginfo_t)); + info.si_signo = signo; + info.si_code = SI_QUEUE; + info.si_pid = THREAD_GETMEM (THREAD_SELF, pid); + info.si_uid = getuid (); + info.si_value = value; + + /* We have a special syscall to do the work. */ + INTERNAL_SYSCALL_DECL (err); + + /* One comment: The PID field in the TCB can temporarily be changed + (in fork). But this must not affect this code here. Since this + function would have to be called while the thread is executing + fork, it would have to happen in a signal handler. But this is + no allowed, pthread_sigqueue is not guaranteed to be async-safe. */ + int val = INTERNAL_SYSCALL (rt_tgsigqueueinfo, err, 4, + THREAD_GETMEM (THREAD_SELF, pid), + tid, signo, &info); + + return (INTERNAL_SYSCALL_ERROR_P (val, err) + ? INTERNAL_SYSCALL_ERRNO (val, err) : 0); +#else + return ENOSYS; +#endif +} From eb0b6cb6e1a979ca12c14b015d9acd52fc6a133f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 14 Jun 2009 16:09:42 -0700 Subject: [PATCH 04/21] Fix warnings when using . gcc 4.4 is more picky. And the x86-64 version of contained a now unnecessary asm optimization. Remove it. --- ChangeLog | 8 ++++++++ misc/sys/select.h | 4 ++-- sysdeps/x86_64/bits/select.h | 36 ++++++------------------------------ 3 files changed, 16 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 059d27f0a4..6d86a07d79 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-06-14 Ulrich Drepper + + [BZ #10229] + * misc/sys/select.h (__NFDBITS): Expression should have type int. + * sysdeps/x86_64/bits/select.h: Remove asm versions for __FD_SET, + __FD_CLR, and __FD_ISSET. gcc nowadays generates better code from + the C version. + 2009-06-12 Ulrich Drepper * Versions.def: Add GLIBC_2.11 for libpthread. diff --git a/misc/sys/select.h b/misc/sys/select.h index 2a408433ec..f4a37be551 100644 --- a/misc/sys/select.h +++ b/misc/sys/select.h @@ -1,5 +1,5 @@ /* `fd_set' type and related macros, and `select'/`pselect' declarations. - Copyright (C) 1996,97,98,99,2000,01,02,2003 Free Software Foundation, Inc. + Copyright (C) 1996-2003, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -59,7 +59,7 @@ typedef long int __fd_mask; #undef __FDELT #undef __FDMASK /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ -#define __NFDBITS (8 * sizeof (__fd_mask)) +#define __NFDBITS (8 * (int) sizeof (__fd_mask)) #define __FDELT(d) ((d) / __NFDBITS) #define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) diff --git a/sysdeps/x86_64/bits/select.h b/sysdeps/x86_64/bits/select.h index 7f23cb59b1..5f31b84080 100644 --- a/sysdeps/x86_64/bits/select.h +++ b/sysdeps/x86_64/bits/select.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2001, 2008 Free Software Foundation, Inc. +/* Copyright (C) 1997,1998,1999,2001,2008,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -27,14 +27,8 @@ # if __WORDSIZE == 64 # define __FD_ZERO_STOS "stosq" -# define __FD_SET_BTS "btsq" -# define __FD_CLR_BTR "btrq" -# define __FD_ISSET_BT "btq" # else # define __FD_ZERO_STOS "stosl" -# define __FD_SET_BTS "btsl" -# define __FD_CLR_BTR "btrl" -# define __FD_ISSET_BT "btl" # endif # define __FD_ZERO(fdsp) \ @@ -48,26 +42,6 @@ : "memory"); \ } while (0) -# define __FD_SET(fd, fdsp) \ - __asm__ __volatile__ (__FD_SET_BTS " %1,%0" \ - : "=m" (__FDS_BITS (fdsp)[__FDELT (fd)]) \ - : "r" (((int) (fd)) % __NFDBITS) \ - : "cc","memory") -# define __FD_CLR(fd, fdsp) \ - __asm__ __volatile__ (__FD_CLR_BTR " %1,%0" \ - : "=m" (__FDS_BITS (fdsp)[__FDELT (fd)]) \ - : "r" (((int) (fd)) % __NFDBITS) \ - : "cc","memory") -# define __FD_ISSET(fd, fdsp) \ - (__extension__ \ - ({register char __result; \ - __asm__ __volatile__ (__FD_ISSET_BT " %1,%2 ; setcb %b0" \ - : "=q" (__result) \ - : "r" (((int) (fd)) % __NFDBITS), \ - "m" (__FDS_BITS (fdsp)[__FDELT (fd)]) \ - : "cc"); \ - __result; })) - #else /* ! GNU CC */ /* We don't use `memset' because this would require a prototype and @@ -79,8 +53,10 @@ for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \ __FDS_BITS (__arr)[__i] = 0; \ } while (0) -# define __FD_SET(d, set) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d)) -# define __FD_CLR(d, set) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d)) -# define __FD_ISSET(d, set) (__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) #endif /* GNU CC */ + +#define __FD_SET(d, set) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d)) +#define __FD_CLR(d, set) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d)) +#define __FD_ISSET(d, set) \ + ((__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) != 0) From 53c068910a66239259c9ea9e1454cbe26a7a017f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 14 Jun 2009 18:11:09 -0700 Subject: [PATCH 05/21] Update from translation team. --- ChangeLog | 2 ++ po/sv.po | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6d86a07d79..673493886b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-06-14 Ulrich Drepper + * po/sv.po: Update from translation team. + [BZ #10229] * misc/sys/select.h (__NFDBITS): Expression should have type int. * sysdeps/x86_64/bits/select.h: Remove asm versions for __FD_SET, diff --git a/po/sv.po b/po/sv.po index 7c7937d59a..8ff80e491e 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,14 +1,14 @@ -# GNU libc message catalog for swedish +# GNU libc message catalog for Swedish # Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the glibc package. # Jan Djärv , 1996, 1998, 2001, 2002, 2003, 2006, 2007, 2008, 2009 -# Revision: 1.60 +# Revision: 1.61 # msgid "" msgstr "" "Project-Id-Version: libc 2.9.90\n" "POT-Creation-Date: 2009-02-06 12:40-0800\n" -"PO-Revision-Date: 2009-02-28 17:57+0100\n" +"PO-Revision-Date: 2009-06-14 20:41+0200\n" "Last-Translator: Jan Djärv \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" @@ -295,11 +295,11 @@ msgstr "Användning: xtrace [FLAGGA]... PROGRAM [PROGRAMFLAGGA}...\\n" #: debug/xtrace.sh:33 msgid "Try \\`xtrace --help' for more information.\\n" -msgstr "Försök med \\\"xtrace --help\\\" för mer information\\n" +msgstr "Försök med \"xtrace --help\" för mer information\\n" #: debug/xtrace.sh:39 msgid "xtrace: option \\`$1' requires an argument.\\n" -msgstr "xtrace: flaggan \\\"$1\\\" behöver ett argument\\n" +msgstr "xtrace: flaggan \"$1\" behöver ett argument\\n" #: debug/xtrace.sh:46 msgid "" @@ -328,7 +328,7 @@ msgstr "" #: debug/xtrace.sh:127 msgid "xtrace: unrecognized option \\`$1'\\n" -msgstr "xtrace: okänd flagga \\\"$1\\\"\\n" +msgstr "xtrace: okänd flagga \"$1\"\\n" #: debug/xtrace.sh:140 msgid "No program name given\\n" @@ -337,12 +337,12 @@ msgstr "Inget programnamn givet\\n" #: debug/xtrace.sh:148 #, sh-format msgid "executable \\`$program' not found\\n" -msgstr "program \\\"$program\\\" hittades inte\\n" +msgstr "program \"$program\" hittades inte\\n" #: debug/xtrace.sh:152 #, sh-format msgid "\\`$program' is no executable\\n" -msgstr "\\\"$program\\\" är inte en körbar binär\\n" +msgstr "\"$program\" är inte en körbar binär\\n" #: dlfcn/dlinfo.c:64 msgid "RTLD_SELF used in code not dynamically loaded" @@ -932,7 +932,7 @@ msgstr "" #: elf/ldd.bash.in:82 msgid "ldd: option \\`$1' is ambiguous" -msgstr "ldd: flaggan \\\"$1\\\" är tvetydig" +msgstr "ldd: flaggan \"$1\" är tvetydig" #: elf/ldd.bash.in:89 msgid "unrecognized option" @@ -940,7 +940,7 @@ msgstr "okänd flagga" #: elf/ldd.bash.in:90 elf/ldd.bash.in:128 msgid "Try \\`ldd --help' for more information." -msgstr "Försök med \\\"ldd --help\\\" för mer information" +msgstr "Försök med \"ldd --help\" för mer information" #: elf/ldd.bash.in:127 msgid "missing file arguments" @@ -1051,7 +1051,7 @@ msgstr "Inget mål på rad %d\n" #: elf/sln.c:179 #, c-format msgid "%s: destination must not be a directory\n" -msgstr "%s: målet måste vara en katalog\n" +msgstr "%s: målet måste inte vara en katalog\n" #: elf/sln.c:185 #, c-format @@ -2824,11 +2824,11 @@ msgstr "felaktig mcheck_status, biblioteket är felaktigt\n" #: malloc/memusage.sh:27 msgid "Try \\`memusage --help' for more information." -msgstr "Försök med \\\"memusage --help\\\" för mer information" +msgstr "Försök med \"memusage --help\" för mer information" #: malloc/memusage.sh:33 msgid "memusage: option \\`$1' requires an argument" -msgstr "memusage: flaggan \\\"$1\\\" behöver ett argument" +msgstr "memusage: flaggan \"$1\" behöver ett argument" #: malloc/memusage.sh:39 msgid "" @@ -2897,11 +2897,11 @@ msgstr "" #: malloc/memusage.sh:193 msgid "memusage: option \\`${1##*=}' is ambiguous" -msgstr "memusage: flaggan \\\"${1##*=}\\\" är tvetydig" +msgstr "memusage: flaggan \"${1##*=}\" är tvetydig" #: malloc/memusage.sh:202 msgid "memusage: unrecognized option \\`$1'" -msgstr "memusage: okänd flagga \\\"$1\\\"" +msgstr "memusage: okänd flagga \"$1\"" #: malloc/memusage.sh:215 msgid "No program name given" @@ -3463,7 +3463,7 @@ msgstr "DES-post för nätnamn %s är inte unikt\n" #: nis/nss_nisplus/nisplus-publickey.c:220 #, c-format msgid "netname2user: missing group id list in `%s'" -msgstr "netname2user: gruppid-lista saknas i \"%s\"." +msgstr "netname2user: gruppid-lista saknas i \"%s\"" #: nis/nss_nisplus/nisplus-publickey.c:302 #: nis/nss_nisplus/nisplus-publickey.c:308 @@ -4371,10 +4371,10 @@ msgid "" "\n" msgstr "" "Användning: getconf [-v SPEC] VAR\n" -" eller: getconf [-v SPEC] PATH_VAR PATH\n" +" eller: getconf [-v SPEC] VÄG_VAR VÄG\n" "\n" -"Hämta konfigureringsvärdet för variabeln VAR, eller för variabeln PATH_VAR\n" -"för sökväg PATH. Om SPEC är given hämta värden för kompileringsspecifikationen\n" +"Hämta konfigureringsvärdet för variabeln VAR, eller för variabeln VÄG_VAR\n" +"för sökväg VÄG. Om SPEC är given hämta värden för kompileringsspecifikationen\n" "SPEC.\n" "\n" @@ -4431,13 +4431,13 @@ msgstr "%s: okänd flagga \"%c%s\"\n" #: posix/getopt.c:800 posix/getopt.c:803 #, c-format msgid "%s: invalid option -- '%c'\n" -msgstr "%s: ogiltig flagga -- %c\n" +msgstr "%s: ogiltig flagga -- \"%c\"\n" #: posix/getopt.c:853 posix/getopt.c:870 posix/getopt.c:1073 #: posix/getopt.c:1091 #, c-format msgid "%s: option requires an argument -- '%c'\n" -msgstr "%s: flaggan behöver ett argument -- %c\n" +msgstr "%s: flaggan behöver ett argument -- \"%c\"\n" #: posix/getopt.c:923 posix/getopt.c:939 #, c-format @@ -4611,7 +4611,7 @@ msgstr "minnet slut\n" #: sunrpc/auth_unix.c:350 msgid "auth_unix.c: Fatal marshalling problem" -msgstr "auth_unix.c - Fatalt kodningsproblem" +msgstr "auth_unix.c: Fatalt kodningsproblem" #: sunrpc/clnt_perr.c:105 sunrpc/clnt_perr.c:121 #, c-format @@ -4907,7 +4907,7 @@ msgstr "'-c\t\tgenerera XDR-funktioner\n" #: sunrpc/rpc_main.c:1473 #, c-format msgid "-C\t\tANSI C mode\n" -msgstr "-C\t\tANSI-läge\n" +msgstr "-C\t\tANSI C-läge\n" #: sunrpc/rpc_main.c:1474 #, c-format @@ -4917,7 +4917,7 @@ msgstr "-Dnamn[=värde]\tdefiniera en symbol (samma som #define)\n" #: sunrpc/rpc_main.c:1475 #, c-format msgid "-h\t\tgenerate header file\n" -msgstr "-h\t\tgenerera huvudfiler\n" +msgstr "-h\t\tgenerera huvudfil\n" #: sunrpc/rpc_main.c:1476 #, c-format From 5a5fe4350f2e1b61abcbb9e23bcb3f12073704a2 Mon Sep 17 00:00:00 2001 From: Sofwath Date: Mon, 15 Jun 2009 07:24:29 -0700 Subject: [PATCH 06/21] Dhivehi language locale for Maldives. --- localedata/ChangeLog | 6 ++ localedata/SUPPORTED | 1 + localedata/locales/dv_MV | 180 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 187 insertions(+) create mode 100644 localedata/locales/dv_MV diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 2f8c9e8b18..3c0f1931f9 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,9 @@ +2009-06-15 Ulrich Drepper + + * SUPPORTED (SUPPORTED-LOCALES): Add dv_MV.UTF-8 entry. + * locales/dv_MV: New file. + Contributed by sofwathullah.mohamed@gmail.com. + 2009-06-09 Ulrich Drepper * locales/ur_IN: New file. diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index 9d000da45a..6a75c9259c 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -98,6 +98,7 @@ de_DE@euro/ISO-8859-15 \ de_LU.UTF-8/UTF-8 \ de_LU/ISO-8859-1 \ de_LU@euro/ISO-8859-15 \ +dv_MV/UTF-8 \ dz_BT/UTF-8 \ el_GR.UTF-8/UTF-8 \ el_GR/ISO-8859-7 \ diff --git a/localedata/locales/dv_MV b/localedata/locales/dv_MV new file mode 100644 index 0000000000..064da132a8 --- /dev/null +++ b/localedata/locales/dv_MV @@ -0,0 +1,180 @@ +comment_char % +escape_char / +% +% Dhivehi Language Locale for Maldives +% Source: +% Contact: Sofwathuallah Mohamed +% Email: smohamed@wataniya-maldives.com , sofwath@hotmail.com +% Language: dv +% Territory: MV +% Revision: 0.1 +% Date: 2006-05-13 +% Users: general +% Charset: utf-8 +% Distribution and use is free, also +% for commercial purposes. + +LC_IDENTIFICATION +title "Dhivehi Language Locale for Maldives" +source "" +address "" +contact "" +email "sofwath@hotmail.com" +tel "" +fax "" +language "Divehi" +territory "Maldives" +revision "0.1" +date "2006-05-13" +% +category "dv_MV:2006";LC_IDENTIFICATION +category "dv_MV:2006";LC_CTYPE +category "dv_MV:2006";LC_COLLATE +category "dv_MV:2006";LC_TIME +category "dv_MV:2006";LC_NUMERIC +category "dv_MV:2006";LC_MONETARY +category "dv_MV:2006";LC_MESSAGES +category "dv_MV:2006";LC_PAPER +category "dv_MV:2006";LC_NAME +category "dv_MV:2006";LC_ADDRESS +category "dv_MV:2006";LC_TELEPHONE + +END LC_IDENTIFICATION + +LC_CTYPE +copy "i18n" +translit_start +include "translit_combining";"" + + +translit_end +END LC_CTYPE + +LC_COLLATE +copy "en_DK" +END LC_COLLATE + +LC_MONETARY +% it is meant to be MVR, could you see if it is correct please +int_curr_symbol "" +currency_symbol "" +mon_decimal_point "" +mon_thousands_sep "" +mon_grouping 3;3 +positive_sign "" +negative_sign "" +int_frac_digits 2 +frac_digits 2 +p_cs_precedes 1 +p_sep_by_space 1 +n_cs_precedes 1 +n_sep_by_space 0 +p_sign_posn 2 +n_sign_posn 1 +END LC_MONETARY + +LC_NUMERIC +decimal_point "" +thousands_sep "" +grouping 3;3 +END LC_NUMERIC + +% Since their is no abbreviated version of the days in dhivehi I have used the +% full names of the days and months +LC_TIME + +abday "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +day "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +abmon "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +mon "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" + +% Date Time Format +d_t_fmt "" + +% date Format. I have put this in reverse order to try to get the date +% in R->L order +d_fmt "" + +% time format +t_fmt "" + +% stands for +% stands for +%am_pm "";"" +am_pm "";"" + +% time format in 12 hour clock +t_fmt_ampm "" + +% display columns right to left ? +cal_direction 3 +END LC_TIME + +LC_MESSAGES +yesexpr "" +noexpr "" +END LC_MESSAGES + +LC_PAPER +height 297 +width 210 +END LC_PAPER + +LC_TELEPHONE +tel_int_fmt "/ +" +tel_dom_fmt "" +int_select "" +int_prefix "" +END LC_TELEPHONE + +LC_MEASUREMENT +measurement 1 +END LC_MEASUREMENT + +LC_NAME +name_fmt "/ +" +END LC_NAME + +LC_ADDRESS +postal_fmt "/ +/ +/ +/ +" +END LC_ADDRESS From 0efa1cd30ff4680de838657d3a08738344ded719 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 15 Jun 2009 07:25:14 -0700 Subject: [PATCH 07/21] Missing BZ number. --- localedata/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 3c0f1931f9..a55ab50b76 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,6 @@ 2009-06-15 Ulrich Drepper + [BZ #10213] * SUPPORTED (SUPPORTED-LOCALES): Add dv_MV.UTF-8 entry. * locales/dv_MV: New file. Contributed by sofwathullah.mohamed@gmail.com. From 021259621898fa6731d6d44c3313b6af43f727f4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 15 Jun 2009 07:46:53 -0700 Subject: [PATCH 08/21] libc part of prelink IFUNC support. The dl-lookup.c changes are needed for prelink (support in prelink checked into SVN, tested for both i?86 and x86-64), dl-irel.h just something I discovered by code inspection. --- ChangeLog | 8 ++++++++ elf/dl-lookup.c | 17 +++++++++++------ sysdeps/i386/dl-irel.h | 2 +- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 673493886b..95b13e00f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-06-15 Jakub Jelinek + + * elf/dl-lookup.c (_dl_debug_bindings): When resolving to + STT_GNU_IFUNC symbol or in 8 into type_class. + + * sysdeps/i386/dl-irel.h (elf_irel): Use Elf32_Addr type + instead of Elf64_Addr. + 2009-06-14 Ulrich Drepper * po/sv.po: Update from translation team. diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index 92dc7b226a..707d650719 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -1,5 +1,5 @@ /* Look up a symbol in the loaded objects. - Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -542,15 +542,20 @@ _dl_debug_bindings (const char *undef_name, struct link_map *undef_map, conflict = 1; } - if (value->s - && (__builtin_expect (ELFW(ST_TYPE) (value->s->st_info) - == STT_TLS, 0))) - type_class = 4; + if (value->s) + { + if (__builtin_expect (ELFW(ST_TYPE) (value->s->st_info) + == STT_TLS, 0)) + type_class = 4; + else if (__builtin_expect (ELFW(ST_TYPE) (value->s->st_info) + == STT_GNU_IFUNC, 0)) + type_class |= 8; + } if (conflict || GLRO(dl_trace_prelink_map) == undef_map || GLRO(dl_trace_prelink_map) == NULL - || type_class == 4) + || type_class >= 4) { _dl_printf ("%s 0x%0*Zx 0x%0*Zx -> 0x%0*Zx 0x%0*Zx ", conflict ? "conflict" : "lookup", diff --git a/sysdeps/i386/dl-irel.h b/sysdeps/i386/dl-irel.h index 810a35050b..30385a1ef8 100644 --- a/sysdeps/i386/dl-irel.h +++ b/sysdeps/i386/dl-irel.h @@ -35,7 +35,7 @@ elf_irel (const Elf32_Rel *reloc) if (__builtin_expect (r_type == R_386_IRELATIVE, 1)) { - Elf64_Addr value = ((Elf32_Addr (*) (void)) (*reloc_addr)) (); + Elf32_Addr value = ((Elf32_Addr (*) (void)) (*reloc_addr)) (); *reloc_addr = value; } else From a468a1d4a934bdfef77214acb46e6d3b397eb9c0 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 15 Jun 2009 08:39:40 -0700 Subject: [PATCH 09/21] Update timezone data from tzdata2009i. --- ChangeLog | 22 +++++ timezone/africa | 140 ++++++++++++++++++++++++++++++-- timezone/antarctica | 4 +- timezone/asia | 184 +++++++++++++++++++++++++++++++++++++++--- timezone/australasia | 25 +++++- timezone/backward | 6 +- timezone/etcetera | 5 +- timezone/europe | 65 +++++++++++++-- timezone/factory | 5 +- timezone/iso3166.tab | 6 +- timezone/leapseconds | 39 ++++----- timezone/northamerica | 43 ++++++++-- timezone/pacificnew | 5 +- timezone/solar87 | 5 +- timezone/solar88 | 5 +- timezone/solar89 | 5 +- timezone/southamerica | 160 +++++++++++++++++++++++++++++++----- timezone/systemv | 5 +- timezone/yearistype | 5 +- timezone/zone.tab | 28 ++++--- 20 files changed, 667 insertions(+), 95 deletions(-) diff --git a/ChangeLog b/ChangeLog index 95b13e00f9..d96e17a1b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2009-06-15 Ulrich Drepper + + * timezone/africa: Update from tzdata2009i. + * timezone/antarctica: Likewise. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/backward: Likewise. + * timezone/etcetera: Likewise. + * timezone/europe: Likewise. + * timezone/factory: Likewise. + * timezone/iso3166.tab: Likewise. + * timezone/leapseconds: Likewise. + * timezone/northamerica: Likewise. + * timezone/pacificnew: Likewise. + * timezone/solar87: Likewise. + * timezone/solar88: Likewise. + * timezone/solar89: Likewise. + * timezone/southamerica: Likewise. + * timezone/systemv: Likewise. + * timezone/yearistype: Likewise. + * timezone/zone.tab: Likewise. + 2009-06-15 Jakub Jelinek * elf/dl-lookup.c (_dl_debug_bindings): When resolving to diff --git a/timezone/africa b/timezone/africa index 304e7d3b77..3f92eb4745 100644 --- a/timezone/africa +++ b/timezone/africa @@ -1,5 +1,7 @@ -# @(#)africa 8.16 #
+# @(#)africa	8.21
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -236,7 +238,46 @@ Rule	Egypt	2007	only	-	Sep	Thu>=1	23:00s	0	-
 # unless discontinued, next DST may end Thursday 28 August 2008.
 # From Paul Eggert (2007-08-17):
 # For lack of better info, assume the new rule is last Thursday in August.
-Rule	Egypt	2008	max	-	Aug	lastThu	23:00s	0	-
+
+# From Petr Machata (2009-04-06):
+# The following appeared in Red Hat bugzilla[1] (edited):
+#
+# > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 21:59:59 2009 UTC = Thu =
+# Apr 23
+# > 23:59:59 2009 EET isdst=0 gmtoff=7200
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 22:00:00 2009 UTC = Fri =
+# Apr 24
+# > 01:00:00 2009 EEST isdst=1 gmtoff=10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 20:59:59 2009 UTC = Thu =
+# Aug 27
+# > 23:59:59 2009 EEST isdst=1 gmtoff=10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 21:00:00 2009 UTC = Thu =
+# Aug 27
+# > 23:00:00 2009 EET isdst=0 gmtoff=7200
+#
+# > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59=
+# :59)
+# > http://support.microsoft.com/kb/958729/
+#
+# timeanddate[2] and another site I've found[3] also support that.
+#
+# [1] 
+# https://bugzilla.redhat.com/show_bug.cgi?id=492263
+# 
+# [2] 
+# http://www.timeanddate.com/worldclock/clockchange.html?n=53
+# 
+# [3] 
+# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/
+# 
+
+# From Arthur David Olson (2009-04-20):
+# In 2009 (and for the next several years), Ramadan ends before the fourth
+# Thursday in September; Egypt is expected to revert to the last Thursday
+# in September.
+Rule	Egypt	2008	only	-	Aug	lastThu	23:00s	0	-
+Rule	Egypt	2009	max	-	Sep	lastThu	23:00s	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct
@@ -438,8 +479,8 @@ Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
 
 # From Riad M. Hossen Ally (2008-08-03):
 # The Government of Mauritius weblink
-# 
-# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD
+# 
+# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD
 # 
 # Cabinet Decision of July 18th, 2008 states as follows:
 #
@@ -453,11 +494,19 @@ Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
 # year 2008 - 2009 will, therefore, be effective as from 26 October 2008
 # and end on 29 March 2009.
 
+# From Ed Maste (2008-10-07):
+# THE TIME BILL (No. XXVII of 2008) Explanatory Memorandum states the
+# beginning / ending of summer time is 2 o'clock standard time in the
+# morning of the last Sunday of October / last Sunday of March.
+# 
+# http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf
+# 
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	S
 Rule Mauritius	1983	only	-	Mar	21	0:00	0	-
-Rule Mauritius	2008	max	-	Oct	lastSun	2:00	1:00	S
-Rule Mauritius	2009	max	-	Mar	lastSun	2:00	0	-
+Rule Mauritius	2008	max	-	Oct	lastSun	2:00s	1:00	S
+Rule Mauritius	2009	max	-	Mar	lastSun	2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
 			4:00 Mauritius	MU%sT	# Mauritius Time
@@ -556,6 +605,40 @@ Zone	Indian/Mayotte	3:00:56 -	LMT	1911 Jul	# Mamoutzou
 # 
 # http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html
 # 
+
+# From Steffen Thorsen (2009-03-17):
+# Morocco will observe DST from 2009-06-01 00:00 to 2009-08-21 00:00 according
+# to many sources, such as
+# 
+# http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html
+# 
+# 
+# http://www.medi1sat.ma/fr/depeche.aspx?idp=2312
+# 
+# (French)
+#
+# Our summary:
+# 
+# http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html
+# 
+
+# From Alexander Krivenyshev (2009-03-17):
+# Here is a link to official document from Royaume du Maroc Premier Ministre,
+# Ministere de la Modernisation des Secteurs Publics
+#
+# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 june 1967)
+# concerning the amendment of the legal time, the Ministry of Modernization of
+# Public Sectors announced that the official time in the Kingdom will be
+# advanced 60 minutes from Sunday 31 May 2009 at midnight.
+#
+# 
+# http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf
+# 
+#
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_morocco03.html
+# 
+
 # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 
 Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
@@ -575,6 +658,8 @@ Rule	Morocco	1978	only	-	Jun	 1	 0:00	1:00	S
 Rule	Morocco	1978	only	-	Aug	 4	 0:00	0	-
 Rule	Morocco	2008	only	-	Jun	 1	 0:00	1:00	S
 Rule	Morocco	2008	only	-	Sep	 1	 0:00	0	-
+Rule	Morocco	2009	only	-	Jun	 1	 0:00	1:00	S
+Rule	Morocco	2009	only	-	Aug	 21	 0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
 			 0:00	Morocco	WE%sT	1984 Mar 16
@@ -779,6 +864,43 @@ Zone	Africa/Lome	0:04:52 -	LMT	1893
 # Ending         : the last Sunday of October at 03:00 ...
 # http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=1188&Itemid=50
 
+# From Steffen Thorsen (2009-03-16):
+# According to several news sources, Tunisia will not observe DST this year.
+# (Arabic)
+# 
+# http://www.elbashayer.com/?page=viewn&nid=42546
+# 
+# 
+# http://www.babnet.net/kiwidetail-15295.asp
+# 
+#
+# We have also confirmed this with the US embassy in Tunisia.
+# We have a wrap-up about this on the following page:
+# 
+# http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html
+# 
+
+# From Alexander Krivenyshev (2009-03-17):
+# Here is a link to Tunis Afrique Presse News Agency
+#
+# Standard time to be kept the whole year long (tap.info.tn):
+#
+# (in English)
+# 
+# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157
+# 
+#
+# (in Arabic)
+# 
+# http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1
+# 
+
+# From Arthur David Olson (2009--3-18):
+# The Tunis Afrique Presse News Agency notice contains this: "This measure is due to the fact
+# that the fasting month of ramadan coincides with the period concerned by summer time.
+# Therefore, the standard time will be kept unchanged the whole year long."
+# So foregoing DST seems to be an exception (albeit one that may be repeated in the  future).
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Tunisia	1939	only	-	Apr	15	23:00s	1:00	S
 Rule	Tunisia	1939	only	-	Nov	18	23:00s	0	-
@@ -803,8 +925,10 @@ Rule	Tunisia	1989	only	-	Mar	26	 0:00s	1:00	S
 Rule	Tunisia	1990	only	-	May	 1	 0:00s	1:00	S
 Rule	Tunisia	2005	only	-	May	 1	 0:00s	1:00	S
 Rule	Tunisia	2005	only	-	Sep	30	 1:00s	0	-
-Rule	Tunisia	2006	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule	Tunisia	2006	max	-	Oct	lastSun	 2:00s	0	-
+Rule	Tunisia	2006	2008	-	Mar	lastSun	 2:00s	1:00	S
+Rule	Tunisia	2006	2008	-	Oct	lastSun	 2:00s	0	-
+Rule	Tunisia	2010	max	-	Mar	lastSun	 2:00s	1:00	S
+Rule	Tunisia	2010	max	-	Oct	lastSun	 2:00s	0	-
 # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
 # more precise 0:09:21.
 # Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
diff --git a/timezone/antarctica b/timezone/antarctica
index ef279cbeda..8511ab207e 100644
--- a/timezone/antarctica
+++ b/timezone/antarctica
@@ -1,5 +1,7 @@
-# @(#)antarctica	8.4
 # 
+# @(#)antarctica	8.5
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # From Paul Eggert (1999-11-15):
 # To keep things manageable, we list only locations occupied year-round; see
diff --git a/timezone/asia b/timezone/asia
index 768850f3df..de2ca39352 100644
--- a/timezone/asia
+++ b/timezone/asia
@@ -1,5 +1,7 @@
-# @(#)asia	8.23
 # 
+# @(#)asia	8.34
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -125,6 +127,48 @@ Zone	Asia/Bahrain	3:22:20 -	LMT	1920		# Al Manamah
 			3:00	-	AST
 
 # Bangladesh
+# From Alexander Krivenyshev (2009-05-13):
+# According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce
+# Daylight Saving Time from June 16 to Sept 30
+#
+# Bangladesh to introduce daylight saving time likely from June 16
+# 
+# http://www.asiantribune.com/?q=node/17288
+# 
+# or
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_bangladesh02.html
+# 
+#
+# "... Bangladesh government has decided to switch daylight saving time from
+# June
+# 16 till September 30 in a bid to ensure maximum use of daylight to cope with
+# crippling power crisis. "
+#
+# The switch will remain in effect from June 16 to Sept 30 (2009) but if
+# implemented the next year, it will come in force from April 1, 2010
+
+# From Steffen Thorsen (2009-06-02):
+# They have finally decided now, but changed the start date to midnight between
+# the 19th and 20th, and they have not set the end date yet.
+#
+# Some sources:
+# 
+# http://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601
+# 
+# 
+# http://bdnews24.com/details.php?id=85889&cid=2
+# 
+#
+# Our wrap-up:
+# 
+# http://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html
+# 
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Bang	2009	only	-	Jan	1	0:00	0	-
+Rule	Bang	2009	only	-	Jun	20	0:00	1:00	S
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Dhaka	6:01:40 -	LMT	1890
 			5:53:20	-	HMT	1941 Oct    # Howrah Mean Time?
@@ -132,7 +176,8 @@ Zone	Asia/Dhaka	6:01:40 -	LMT	1890
 			5:30	-	IST	1942 Sep
 			6:30	-	BURT	1951 Sep 30
 			6:00	-	DACT	1971 Mar 26 # Dacca Time
-			6:00	-	BDT	# Bangladesh Time
+			6:00	-	BDT	2009 # Bangladesh Time
+			6:00	Bang	BD%sT
 
 # Bhutan
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1049,6 +1094,40 @@ Zone	Asia/Tokyo	9:18:59	-	LMT	1887 Dec 31 15:00u
 # http://www.petranews.gov.jo/nepras/2006/Sep/05/4000.htm
 # "Jordan will switch to winter time on Friday, October 27".
 #
+
+# From Phil Pizzey (2009-04-02):
+# ...I think I may have spotted an error in the timezone data for
+# Jordan.
+# The current (2009d) asia file shows Jordan going to daylight
+# saving
+# time on the last Thursday in March.
+#
+# Rule  Jordan      2000  max	-  Mar   lastThu     0:00s 1:00  S
+#
+# However timeanddate.com, which I usually find reliable, shows Jordan
+# going to daylight saving time on the last Friday in March since 2002.
+# Please see
+# 
+# http://www.timeanddate.com/worldclock/timezone.html?n=11
+# 
+
+# From Steffen Thorsen (2009-04-02):
+# This single one might be good enough, (2009-03-24, Arabic):
+# 
+# http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279
+# 
+#
+# Google's translation:
+#
+# > The Council of Ministers decided in 2002 to adopt the principle of timely
+# > submission of the summer at 60 minutes as of midnight on the last Thursday
+# > of the month of March of each year.
+#
+# So - this means the midnight between Thursday and Friday since 2002.
+
+# From Arthur David Olson (2009-04-06):
+# We still have Jordan switching to DST on Thursdays in 2000 and 2001.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Jordan	1973	only	-	Jun	6	0:00	1:00	S
 Rule	Jordan	1973	1975	-	Oct	1	0:00	0	-
@@ -1071,8 +1150,9 @@ Rule	Jordan	1993	1998	-	Apr	Fri>=1	0:00	1:00	S
 Rule	Jordan	1994	only	-	Sep	Fri>=15	0:00	0	-
 Rule	Jordan	1995	1998	-	Sep	Fri>=15	0:00s	0	-
 Rule	Jordan	1999	only	-	Jul	 1	0:00s	1:00	S
-Rule	Jordan	1999	2002	-	Sep	lastThu	0:00s	0	-
-Rule	Jordan	2000	max	-	Mar	lastThu	0:00s	1:00	S
+Rule	Jordan	1999	2002	-	Sep	lastFri	0:00s	0	-
+Rule	Jordan	2000	2001	-	Mar	lastThu	0:00s	1:00	S
+Rule	Jordan	2002	max	-	Mar	lastThu	24:00	1:00	S
 Rule	Jordan	2003	only	-	Oct	24	0:00s	0	-
 Rule	Jordan	2004	only	-	Oct	15	0:00s	0	-
 Rule	Jordan	2005	only	-	Sep	lastFri	0:00s	0	-
@@ -1474,7 +1554,7 @@ Zone	Asia/Choibalsan	7:38:00 -	LMT	1905 Aug
 
 # Nepal
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Katmandu	5:41:16 -	LMT	1920
+Zone	Asia/Kathmandu	5:41:16 -	LMT	1920
 			5:30	-	IST	1986
 			5:45	-	NPT	# Nepal Time
 
@@ -1554,11 +1634,46 @@ Zone	Asia/Muscat	3:54:20 -	LMT	1920
 # http://dailymailnews.com/200808/28/news/dmbrn03.html
 # 
 
+# From Alexander Krivenyshev (2009-04-08):
+# Based on previous media reports that "... proposed plan to
+# advance clocks by one hour from May 1 will cause disturbance
+# to the working schedules rather than bringing discipline in
+# official working."
+# 
+# http://www.thenews.com.pk/daily_detail.asp?id=171280
+# 
+#
+# recent news that instead of May 2009 - Pakistan plan to
+# introduce DST from April 15, 2009
+#
+# FYI: Associated Press Of Pakistan
+# April 08, 2009
+# Cabinet okays proposal to advance clocks by one hour from April 15
+# 
+# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1
+# 
+#
+# or
+#
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html
+# 
+#
+# ....
+# The Federal Cabinet on Wednesday approved the proposal to
+# advance clocks in the country by one hour from April 15 to
+# conserve energy"
+
+# From Arthur David Olson (2009-04-10):
+# Assume for now that Pakistan will end DST in 2009 as it did in 2008.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule Pakistan	2002	only	-	Apr	Sun>=2	0:01	1:00	S
 Rule Pakistan	2002	only	-	Oct	Sun>=2	0:01	0	-
 Rule Pakistan	2008	only	-	Jun	1	0:00	1:00	S
 Rule Pakistan	2008	only	-	Nov	1	0:00	0	-
+Rule Pakistan	2009	only	-	Apr	15	0:00	1:00	S
+Rule Pakistan	2009	only	-	Nov	1	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Karachi	4:28:12 -	LMT	1907
 			5:30	-	IST	1942 Sep
@@ -1695,6 +1810,22 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # http://www.worldtimezone.com/dst_news/dst_news_gazastrip01.html
 # 
 
+# From Alexander Krivenyshev (2009-03-26):
+# According to the Palestine News Network (arabic.pnn.ps), Palestinian
+# government decided to start Daylight Time on Thursday night March
+# 26 and continue until the night of 27 September 2009.
+#
+# (in Arabic)
+# 
+# http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850
+# 
+#
+# or
+# (English translation)
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_westbank01.html
+# 
+
 # The rules for Egypt are stolen from the `africa' file.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
@@ -1708,10 +1839,12 @@ Rule Palestine	1999	2005	-	Apr	Fri>=15	0:00	1:00	S
 Rule Palestine	1999	2003	-	Oct	Fri>=15	0:00	0	-
 Rule Palestine	2004	only	-	Oct	 1	1:00	0	-
 Rule Palestine	2005	only	-	Oct	 4	2:00	0	-
-Rule Palestine	2006	max	-	Apr	 1	0:00	1:00	S
+Rule Palestine	2006	2008	-	Apr	 1	0:00	1:00	S
 Rule Palestine	2006	only	-	Sep	22	0:00	0	-
 Rule Palestine	2007	only	-	Sep	Thu>=8	2:00	0	-
-Rule Palestine	2008	max	-	Aug	lastThu	2:00	0	-
+Rule Palestine	2008	only	-	Aug	lastFri	2:00	0	-
+Rule Palestine	2009	max	-	Mar	lastFri	0:00	1:00	S
+Rule Palestine	2009	max	-	Sep	lastMon	2:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
@@ -1957,8 +2090,41 @@ Rule	Syria	2007	only	-	Nov	 Fri>=1	0:00	0	-
 # compilers can't handle  or having multiple Rules (a la Israel).
 # For now, use "Apr Fri>=1", and go with IATA on a uniform Sep 30 end.
 
-Rule	Syria	2008	max	-	Apr	Fri>=1	0:00	1:00	S
-Rule	Syria	2008	max	-	Oct	1	0:00	0	-
+# From Steffen Thorsen (2008-10-07):
+# Syria has now officially decided to end DST on 2008-11-01 this year,
+# according to the following article in the Syrian Arab News Agency (SANA).
+#
+# The article is in Arabic, and seems to tell that they will go back to
+# winter time on 2008-11-01 at 00:00 local daylight time (delaying/setting
+# clocks back 60 minutes).
+#
+# 
+# http://sana.sy/ara/2/2008/10/07/195459.htm
+# 
+
+# From Steffen Thorsen (2009-03-19):
+# Syria will start DST on 2009-03-27 00:00 this year according to many sources,
+# two examples:
+#
+# 
+# http://www.sana.sy/eng/21/2009/03/17/217563.htm
+# 
+# (English, Syrian Arab News # Agency)
+# 
+# http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209
+# 
+# (Arabic, gov-site)
+#
+# We have not found any sources saying anything about when DST ends this year.
+#
+# Our summary
+# 
+# http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html
+# 
+
+Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
+Rule	Syria	2008	max	-	Nov	1	0:00	0	-
+Rule	Syria	2009	max	-	Mar	lastFri	0:00	1:00	S
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Damascus	2:25:12 -	LMT	1920	# Dimashq
diff --git a/timezone/australasia b/timezone/australasia
index 41608cdc34..efcfec74d1 100644
--- a/timezone/australasia
+++ b/timezone/australasia
@@ -1,5 +1,7 @@
-# @(#)australasia	8.9
 # 
+# @(#)australasia	8.11
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # This file also includes Pacific islands.
 
@@ -1119,6 +1121,27 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # From Paul Eggert (2007-07-23):
 # See "southeast Australia" above for 2008 and later.
 
+# From Steffen Thorsen (2009-04-28):
+# According to the official press release, South Australia's extended daylight 
+# saving period will continue with the same rules as used during the 2008-2009 
+# summer (southern hemisphere).
+# 
+# From
+# 
+# http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf
+# 
+# The extended daylight saving period that South Australia has been trialling 
+# for over the last year is now set to be ongoing.
+# Daylight saving will continue to start on the first Sunday in October each 
+# year and finish on the first Sunday in April the following year.
+# Industrial Relations Minister, Paul Caica, says this provides South Australia 
+# with a consistent half hour time difference with NSW, Victoria, Tasmania and 
+# the ACT for all 52 weeks of the year...
+# 
+# We have a wrap-up here:
+# 
+# http://www.timeanddate.com/news/time/south-australia-extends-dst.html
+# 
 ###############################################################################
 
 # New Zealand
diff --git a/timezone/backward b/timezone/backward
index a65991c2dd..c896968c9a 100644
--- a/timezone/backward
+++ b/timezone/backward
@@ -1,4 +1,7 @@
-# @(#)backward	8.6
+# 
+# @(#)backward	8.8
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # This file provides links between current names for time zones
 # and their old names.  Many names changed in late 1993.
@@ -24,6 +27,7 @@ Link	America/St_Thomas	America/Virgin
 Link	Asia/Ashgabat		Asia/Ashkhabad
 Link	Asia/Chongqing		Asia/Chungking
 Link	Asia/Dhaka		Asia/Dacca
+Link	Asia/Kathmandu		Asia/Katmandu
 Link	Asia/Kolkata		Asia/Calcutta
 Link	Asia/Macau		Asia/Macao
 Link	Asia/Jerusalem		Asia/Tel_Aviv
diff --git a/timezone/etcetera b/timezone/etcetera
index cddbe8a294..5c93682985 100644
--- a/timezone/etcetera
+++ b/timezone/etcetera
@@ -1,4 +1,7 @@
-# @(#)etcetera	8.1
+# 
+# @(#)etcetera	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # These entries are mostly present for historical reasons, so that
 # people in areas not otherwise covered by the tz files could "zic -l"
diff --git a/timezone/europe b/timezone/europe
index 7bb9864733..3f39215bf6 100644
--- a/timezone/europe
+++ b/timezone/europe
@@ -1,5 +1,7 @@
-# @(#)europe	8.18
 # 
+# @(#)europe	8.21
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -2313,11 +2315,64 @@ Zone Europe/Stockholm	1:12:12 -	LMT	1879 Jan  1
 # mean time in preference to apparent time -- Geneva from 1780 ....
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # From Whitman (who writes ``Midnight?''):
-Rule	Swiss	1940	only	-	Nov	 2	0:00	1:00	S
-Rule	Swiss	1940	only	-	Dec	31	0:00	0	-
+# Rule	Swiss	1940	only	-	Nov	 2	0:00	1:00	S
+# Rule	Swiss	1940	only	-	Dec	31	0:00	0	-
 # From Shanks & Pottenger:
-Rule	Swiss	1941	1942	-	May	Sun>=1	2:00	1:00	S
-Rule	Swiss	1941	1942	-	Oct	Sun>=1	0:00	0	-
+# Rule	Swiss	1941	1942	-	May	Sun>=1	2:00	1:00	S
+# Rule	Swiss	1941	1942	-	Oct	Sun>=1	0:00	0	-
+
+# From Alois Treindl (2008-12-17):
+# I have researched the DST usage in Switzerland during the 1940ies.
+#
+# As I wrote in an earlier message, I suspected the current tzdata values
+# to be wrong. This is now verified.
+#
+# I have found copies of the original ruling by the Swiss Federal
+# government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss
+# federal law collection)...
+#
+# DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am
+# DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am.
+#
+# DST began on Monday, 4 May 1942 at 01:00 am
+# DST ended on Monday, 5 Oct 1942 at 02:00 am
+#
+# There was no DST in 1940, I have checked the law collection carefully.
+# It is also indicated by the fact that the 1942 entry in the law
+# collection points back to 1941 as a reference, but no reference to any
+# other years are made.
+#
+# Newspaper articles I have read in the archives on 6 May 1941 reported
+# about the introduction of DST (Sommerzeit in German) during the previous
+# night as an absolute novelty, because this was the first time that such
+# a thing had happened in Switzerland.
+#
+# I have also checked 1916, because one book source (Gabriel, Traite de
+# l'heure dans le monde) claims that Switzerland had DST in 1916. This is
+# false, no official document could be found. Probably Gabriel got misled
+# by references to Germany, which introduced DST in 1916 for the first time.
+#
+# The tzdata rules for Switzerland must be changed to:
+# Rule  Swiss   1941    1942    -       May     Mon>=1  1:00    1:00    S
+# Rule  Swiss   1941    1942    -       Oct     Mon>=1  2:00    0       -
+#
+# The 1940 rules must be deleted.
+#
+# One further detail for Switzerland, which is probably out of scope for
+# most users of tzdata:
+# The zone file
+# Zone    Europe/Zurich   0:34:08 -       LMT     1848 Sep 12
+#                          0:29:44 -       BMT     1894 Jun #Bern Mean Time
+#                          1:00    Swiss   CE%sT   1981
+#                          1:00    EU      CE%sT
+# describes all of Switzerland correctly, with the exception of
+# the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not
+# follow Bern Mean Time but kept its own local mean time.
+# To represent this, an extra zone would be needed.
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Swiss	1941	1942	-	May	Mon>=1	1:00	1:00	S
+Rule	Swiss	1941	1942	-	Oct	Mon>=1	2:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Zurich	0:34:08 -	LMT	1848 Sep 12
 			0:29:44	-	BMT	1894 Jun # Bern Mean Time
diff --git a/timezone/factory b/timezone/factory
index 946063c0dd..624ccc0c36 100644
--- a/timezone/factory
+++ b/timezone/factory
@@ -1,4 +1,7 @@
-# @(#)factory	8.1
+# 
+# @(#)factory	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # For companies who don't want to put time zone specification in
 # their installation procedures.  When users run date, they'll get the message.
diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab
index 8d62399580..b8a2592c00 100644
--- a/timezone/iso3166.tab
+++ b/timezone/iso3166.tab
@@ -1,7 +1,9 @@
+# 
+# @(#)iso3166.tab	8.6
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 # ISO 3166 alpha-2 country codes
 #
-# @(#)iso3166.tab	8.5
-#
 # From Paul Eggert (2006-09-27):
 #
 # This file contains a table with the following columns:
diff --git a/timezone/leapseconds b/timezone/leapseconds
index a2f4f0be37..d6343c0209 100644
--- a/timezone/leapseconds
+++ b/timezone/leapseconds
@@ -1,4 +1,7 @@
-# @(#)leapseconds	8.6
+# 
+# @(#)leapseconds	8.8
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # Allowance for leapseconds added to each timezone file.
 
@@ -53,40 +56,32 @@ Leap	2008	Dec	31	23:59:60	+	S
 # SERVICE DE LA ROTATION TERRESTRE
 # OBSERVATOIRE DE PARIS
 # 61, Av. de l'Observatoire 75014 PARIS (France)
-# Tel.      : 33 (0) 1 40 51 22 26
+# Tel.      : 33 (0) 1 40 51 22 29
 # FAX       : 33 (0) 1 40 51 22 91
-# e-mail    : services.iers@obspm.fr
-# http://hpiers.obspm.fr/eop-pc
+# Internet  : services.iers@obspm.fr
 #
-# Paris, 4 July 2008
+# Paris, 15 January 2009
 #
-# Bulletin C 36
+# Bulletin C 37
 #
 # To authorities responsible
 # for the measurement and
 # distribution of time
 #
-# UTC TIME STEP
-# on the 1st of January 2009
+# INFORMATION ON UTC - TAI
 #
-# A positive leap second will be introduced at the end of December 2008.
-# The sequence of dates of the UTC second markers will be:		
+# NO positive leap second will be introduced at the end of June 2009.
+# The difference between Coordinated Universal Time UTC and the
+# International Atomic Time TAI is :		
 #
-# 2008 December 31,     23h 59m 59s
-# 2008 December 31,     23h 59m 60s
-# 2009 January   1,      0h  0m  0s
-#
-# The difference between UTC and the International Atomic Time TAI is:
-#
-# from 2006 January 1, 0h UTC, to 2009 January 1  0h UTC  : UTC-TAI = - 33s
-# from 2009 January 1, 0h UTC, until further notice       : UTC-TAI = - 34s
+# from 2009 January 1, 0h UTC, until further notice : UTC-TAI = -34 s
 #
 # Leap seconds can be introduced in UTC at the end of the months of December
-# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
-# six months, either to announce a time step in UTC or to confirm that there
+# or June,  depending on the evolution of UT1-TAI. Bulletin C is mailed every
+# six months, either to announce a time step in UTC, or to confirm that there
 # will be no time step at the next possible date.
 #
 # Daniel GAMBIS
-# Head		
-# Earth Orientation Center of IERS
+# Head			
+# Earth Orientation Center of the IERS
 # Observatoire de Paris, France
diff --git a/timezone/northamerica b/timezone/northamerica
index b8b333cc56..236922d754 100644
--- a/timezone/northamerica
+++ b/timezone/northamerica
@@ -1,5 +1,7 @@
-# @(#)northamerica	8.24
 # 
+# @(#)northamerica	8.28
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # also includes Central America and the Caribbean
 
@@ -1742,9 +1744,13 @@ Zone America/Dawson_Creek -8:00:56 -	LMT	1884
 # The individual that answered the phone confirmed that the clocks did not
 # move at the end of daylight saving on October 29/2006.  He also told me that
 # the clocks did not move this past weekend (March 11/2007)....
-#
-# America/Resolute should use the "Canada" Rule up to October 29/2006.
-# After that it should be fixed on Eastern Standard Time until further notice.
+
+# From Chris Walton (2008-11-13):
+# ...the residents of Resolute believe that they are changing "time zones"
+# twice a year.  In winter months, local time is qualified with "Eastern
+# Time" which is really "Eastern Standard Time (UTC-5)".  In summer
+# months, local time is qualified with "Central Time" which is really
+# "Central Daylight Time (UTC-5)"...
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	NT_YK	1918	only	-	Apr	14	2:00	1:00	D
@@ -1772,11 +1778,14 @@ Zone America/Iqaluit	0	-	zzz	1942 Aug # Frobisher Bay est.
 			-6:00	Canada	C%sT	2000 Oct 29 2:00
 			-5:00	Canada	E%sT
 # aka Qausuittuq
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Resolute 2006	max	-	Nov	Sun>=1	2:00	0	ES
+Rule	Resolute 2007	max	-	Mar	Sun>=8	2:00	0	CD
 Zone America/Resolute	0	-	zzz	1947 Aug 31 # Resolute founded
 			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
 			-5:00	-	EST	2001 Apr  1 3:00
 			-6:00	Canada	C%sT	2006 Oct 29 2:00
-			-5:00	-	EST
+			-5:00	Resolute	%sT
 # aka Kangiqiniq
 Zone America/Rankin_Inlet 0	-	zzz	1957 # Rankin Inlet founded
 			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
@@ -2251,6 +2260,25 @@ Zone America/Costa_Rica	-5:36:20 -	LMT	1890		# San Jose
 # From Arthur David Olson (2008-03-12):
 # Assume Sun>=15 (third Sunday) going forward.
 
+# From Alexander Krivenyshev (2009-03-04)
+# According to the Radio Reloj - Cuba will start Daylight Saving Time on
+# midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009-
+# not on midnight March 14 / March 15 as previously thought.
+#
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html
+# (in Spanish)
+# 
+
+# From Arthur David Olson (2009-03-09)
+# I listened over the Internet to
+# 
+# http://media.enet.cu/readioreloj
+# 
+# this morning; when it was 10:05 a. m. here in Bethesda, Maryland the
+# the time was announced as "diez cinco"--the same time as here, indicating
+# that has indeed switched to DST. Assume second Sunday from 2009 forward.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
 Rule	Cuba	1928	only	-	Oct	10	0:00	0	S
@@ -2280,10 +2308,11 @@ Rule	Cuba	1996	only	-	Oct	 6	0:00s	0	S
 Rule	Cuba	1997	only	-	Oct	12	0:00s	0	S
 Rule	Cuba	1998	1999	-	Mar	lastSun	0:00s	1:00	D
 Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	0	S
-Rule	Cuba	2000	2006	-	Apr	Sun>=1	0:00s	1:00	D
+Rule	Cuba	2000	2004	-	Apr	Sun>=1	0:00s	1:00	D
 Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
 Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
-Rule	Cuba	2008	max	-	Mar	Sun>=15	0:00s	1:00	D
+Rule	Cuba	2008	only	-	Mar	Sun>=15	0:00s	1:00	D
+Rule	Cuba	2009	max	-	Mar	Sun>=8	0:00s	1:00	D
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Havana	-5:29:28 -	LMT	1890
diff --git a/timezone/pacificnew b/timezone/pacificnew
index 667940bf53..e2512c1d1b 100644
--- a/timezone/pacificnew
+++ b/timezone/pacificnew
@@ -1,4 +1,7 @@
-# @(#)pacificnew	8.1
+# 
+# @(#)pacificnew	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # From Arthur David Olson (1989-04-05):
 # On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
diff --git a/timezone/solar87 b/timezone/solar87
index 71839320ad..47ee7e7aad 100644
--- a/timezone/solar87
+++ b/timezone/solar87
@@ -1,4 +1,7 @@
-# @(#)solar87	8.1
+# 
+# @(#)solar87	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # So much for footnotes about Saudi Arabia.
 # Apparent noon times below are for Riyadh; your mileage will vary.
diff --git a/timezone/solar88 b/timezone/solar88
index b4cfe8e37a..8db590edd9 100644
--- a/timezone/solar88
+++ b/timezone/solar88
@@ -1,4 +1,7 @@
-# @(#)solar88	8.1
+# 
+# @(#)solar88	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # Apparent noon times below are for Riyadh; they're a bit off for other places.
 # Times were computed using formulas in the U.S. Naval Observatory's
diff --git a/timezone/solar89 b/timezone/solar89
index 8c48531461..d24de4a77e 100644
--- a/timezone/solar89
+++ b/timezone/solar89
@@ -1,4 +1,7 @@
-# @(#)solar89	8.1
+# 
+# @(#)solar89	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # Apparent noon times below are for Riyadh; they're a bit off for other places.
 # Times were computed using a formula provided by the U. S. Naval Observatory:
diff --git a/timezone/southamerica b/timezone/southamerica
index e2244cf237..341e57ff90 100644
--- a/timezone/southamerica
+++ b/timezone/southamerica
@@ -1,5 +1,7 @@
-# @(#)southamerica	8.27
 # 
+# @(#)southamerica	8.36
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -177,6 +179,42 @@ Rule	Arg	2000	only	-	Mar	3	0:00	0	-
 # http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
 # 
 
+# From Rodrigo Severo (2008-10-06):
+# Here is some info available at a Gentoo bug related to TZ on Argentina's DST:
+# ...
+# ------- Comment #1 from [jmdocile]  2008-10-06 16:28 0000 -------
+# Hi, there is a problem with timezone-data-2008e and maybe with
+# timezone-data-2008f
+# Argentinian law [Number] 25.155 is no longer valid.
+# 
+# http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm
+# 
+# The new one is law [Number] 26.350
+# 
+# http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm
+# 
+# So there is no summer time in Argentina for now.
+
+# From Mariano Absatz (2008-10-20):
+# Decree 1693/2008 applies Law 26.350 for the summer 2008/2009 establishing DST in Argentina
+# From 2008-10-19 until 2009-03-15
+# 
+# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01
+# 
+#
+# Decree 1705/2008 excepting 12 Provinces from applying DST in the summer 2008/2009:
+# Catamarca, La Rioja, Mendoza, Salta, San Juan, San Luis, La Pampa, Neuquen, Rio Negro, Chubut, Santa Cruz
+# and Tierra del Fuego
+# 
+# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01
+# 
+#
+# Press release 235 dated Saturday October 18th, from the Government of the Province of Jujuy saying
+# it will not apply DST either (even when it was not included in Decree 1705/2008)
+# 
+# http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc
+# 
+
 Rule	Arg	2007	only	-	Dec	30	0:00	1:00	S
 Rule	Arg	2008	max	-	Mar	Sun>=15	0:00	0	-
 Rule	Arg	2008	max	-	Oct	Sun>=15	0:00	1:00	S
@@ -315,6 +353,50 @@ Rule	Arg	2008	max	-	Oct	Sun>=15	0:00	1:00	S
 # keep America/Cordoba a single region rather than splitting it into the
 # other 5 subregions.
 
+# From Mariano Absatz (2009-03-13):
+# Yesterday (with our usual 2-day notice) the Province of San Luis
+# decided that next Sunday instead of "staying" @utc-03:00 they will go
+# to utc-04:00 until the second Saturday in October...
+#
+# The press release is at
+# 
+# http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102
+# 
+# (I couldn't find the decree, but
+# 
+# www.sanluis.gov.ar
+# 
+# is the official page for the Province Government).
+#
+# There's also a note in only one of the major national papers (La Nación) at
+# 
+# http://www.lanacion.com.ar/nota.asp?nota_id=1107912
+# 
+# 
+# The press release says:
+#  (...) anunció que el próximo domingo a las 00:00 los puntanos deberán
+# atrasar una hora sus relojes.
+#
+# A partir de entonces, San Luis establecerá el huso horario propio de
+# la Provincia. De esta manera, durante el periodo del calendario anual
+# 2009, el cambio horario quedará comprendido entre las 00:00 del tercer
+# domingo de marzo y las 24:00 del segundo sábado de octubre.
+# Quick&dirty translation
+# (...) announced that next Sunday, at 00:00, Puntanos (the San Luis
+# inhabitants) will have to turn back one hour their clocks
+#
+# Since then, San Luis will establish its own Province timezone. Thus,
+# during 2009, this timezone change will run from 00:00 the third Sunday
+# in March until 24:00 of the second Saturday in October.
+
+# From Arthur David Olson (2009-03-16):
+# The unofficial claim at
+# 
+# http://www.timeanddate.com/news/time/san-luis-new-time-zone.html
+# 
+# is that "The province will most likely follow the next daylight saving schedule,
+# which is planned for the second Sunday in October."
+
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 #
@@ -327,9 +409,8 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	Arg	AR%sT
 #
-# Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
-# Formosa (FM), Salta (SA), Santiago del Estero (SE), Cordoba (CB),
-# La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
+# Cordoba (CB), Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN),
+# Chaco (CC), Formosa (FM), Santiago del Estero (SE)
 #
 # Shanks & Pottenger also make the following claims, which we haven't verified:
 # - Formosa switched to -3:00 on 1991-01-07.
@@ -348,6 +429,18 @@ Zone America/Argentina/Cordoba -4:16:48 - LMT	1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	Arg	AR%sT
 #
+# Salta (SA), La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
+Zone America/Argentina/Salta -4:21:40 - LMT	1894 Oct 31
+			-4:16:48 -	CMT	1920 May
+			-4:00	-	ART	1930 Dec
+			-4:00	Arg	AR%sT	1969 Oct  5
+			-3:00	Arg	AR%sT	1991 Mar  3
+			-4:00	-	WART	1991 Oct 20
+			-3:00	Arg	AR%sT	1999 Oct  3
+			-4:00	Arg	AR%sT	2000 Mar  3
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
+#
 # Tucuman (TM)
 Zone America/Argentina/Tucuman -4:20:52 - LMT	1894 Oct 31
 			-4:16:48 -	CMT	1920 May
@@ -372,7 +465,8 @@ Zone America/Argentina/La_Rioja -4:27:24 - LMT	1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	-	ART	2004 Jun  1
 			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 #
 # San Juan (SJ)
 Zone America/Argentina/San_Juan -4:34:04 - LMT	1894 Oct 31
@@ -385,7 +479,8 @@ Zone America/Argentina/San_Juan -4:34:04 - LMT	1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	-	ART	2004 May 31
 			-4:00	-	WART	2004 Jul 25
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 #
 # Jujuy (JY)
 Zone America/Argentina/Jujuy -4:21:12 -	LMT	1894 Oct 31
@@ -399,7 +494,8 @@ Zone America/Argentina/Jujuy -4:21:12 -	LMT	1894 Oct 31
 			-3:00	1:00	ARST	1992
 			-3:00	Arg	AR%sT	1999 Oct  3
 			-4:00	Arg	AR%sT	2000 Mar  3
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 #
 # Catamarca (CT), Chubut (CH)
 Zone America/Argentina/Catamarca -4:23:08 - LMT	1894 Oct 31
@@ -412,7 +508,8 @@ Zone America/Argentina/Catamarca -4:23:08 - LMT	1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	-	ART	2004 Jun  1
 			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 #
 # Mendoza (MZ)
 Zone America/Argentina/Mendoza -4:35:16 - LMT	1894 Oct 31
@@ -429,7 +526,8 @@ Zone America/Argentina/Mendoza -4:35:16 - LMT	1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	-	ART	2004 May 23
 			-4:00	-	WART	2004 Sep 26
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 #
 # San Luis (SL)
 Zone America/Argentina/San_Luis -4:25:24 - LMT	1894 Oct 31
@@ -446,7 +544,8 @@ Zone America/Argentina/San_Luis -4:25:24 - LMT	1894 Oct 31
 			-3:00	-	ART	2004 May 31
 			-4:00	-	WART	2004 Jul 25
 			-3:00	Arg	AR%sT	2008 Jan 21
-			-3:00	-	ART
+			-3:00	-	ART	2009 Mar 15
+			-4:00	Arg	WAR%sT
 #
 # Santa Cruz (SC)
 Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
@@ -457,7 +556,8 @@ Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	-	ART	2004 Jun  1
 			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 #
 # Tierra del Fuego, Antartida e Islas del Atlantico Sur (TF)
 Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
@@ -468,7 +568,8 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
 			-4:00	Arg	AR%sT	2000 Mar  3
 			-3:00	-	ART	2004 May 30
 			-4:00	-	WART	2004 Jun 20
-			-3:00	Arg	AR%sT
+			-3:00	Arg	AR%sT	2008 Oct 18
+			-3:00	-	ART
 
 # Aruba
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -575,8 +676,8 @@ Zone	America/La_Paz	-4:32:36 -	LMT	1890
 
 # From Rodrigo Severo (2008-06-24):
 # Just correcting the URL:
-# 
-# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=3Ddo&secao=3D1&pagina=3D1&data=3D25/04/2008
+# 
+# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008
 # 
 #
 # As a result of the above Decree I believe the America/Rio_Branco
@@ -619,7 +720,7 @@ Zone	America/La_Paz	-4:32:36 -	LMT	1890
 # 
 # Note that this link does not always work directly, but must be accessed
 # by going to
-# 
 # http://www.mme.gov.br/first
 # 
 #
@@ -768,12 +869,33 @@ Rule	Brazil	2007	only	-	Feb	25	 0:00	0	-
 # Decree 6,212 (2007-09-26),
 # adopted by the same states as before.
 Rule	Brazil	2007	only	-	Oct	Sun>=8	 0:00	1:00	S
-Rule	Brazil	2008	max	-	Feb	Sun>=15	 0:00	0	-
-Rule	Brazil	2008	max	-	Oct	Sun>=15	 0:00	1:00	S
+# From Frederico A. C. Neves (2008-09-10):
+# Acording to this decree
+# 
+# http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm
+# 
+# [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the
+# 3rd Feb Sunday. There is an exception on the return date when this is
+# the Carnival Sunday then the return date will be the next Sunday...
+Rule	Brazil	2008	max	-	Oct	Sun>=15	0:00	1:00	S
+Rule	Brazil	2008	2011	-	Feb	Sun>=15	0:00	0	-
+Rule	Brazil	2012	only	-	Feb	Sun>=22	0:00	0	-
+Rule	Brazil	2013	2014	-	Feb	Sun>=15	0:00	0	-
+Rule	Brazil	2015	only	-	Feb	Sun>=22	0:00	0	-
+Rule	Brazil	2016	2022	-	Feb	Sun>=15	0:00	0	-
+Rule	Brazil	2023	only	-	Feb	Sun>=22	0:00	0	-
+Rule	Brazil	2024	2025	-	Feb	Sun>=15	0:00	0	-
+Rule	Brazil	2026	only	-	Feb	Sun>=22	0:00	0	-
+Rule	Brazil	2027	2033	-	Feb	Sun>=15	0:00	0	-
+Rule	Brazil	2034	only	-	Feb	Sun>=22	0:00	0	-
+Rule	Brazil	2035	2036	-	Feb	Sun>=15	0:00	0	-
+Rule	Brazil	2037	only	-	Feb	Sun>=22	0:00	0	-
+# From Arthur David Olson (2008-09-29):
+# The next is wrong in some years but is better than nothing.
+Rule	Brazil	2038	max	-	Feb	Sun>=15	0:00	0	-
+
 # The latest ruleset listed above says that the following states observe DST:
 # DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP.
-# For dates after mid-2008, the above rules with TO="max" are guesses
-# and are quite possibly wrong, but are more likely than no DST at all.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 #
diff --git a/timezone/systemv b/timezone/systemv
index 6cf9645de0..767388d6aa 100644
--- a/timezone/systemv
+++ b/timezone/systemv
@@ -1,4 +1,7 @@
-# @(#)systemv	8.1
+# 
+# @(#)systemv	8.2
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 
 # Old rules, should the need arise.
 # No attempt is made to handle Newfoundland, since it cannot be expressed
diff --git a/timezone/yearistype b/timezone/yearistype
index d3a248032e..66dbf89a2b 100755
--- a/timezone/yearistype
+++ b/timezone/yearistype
@@ -1,6 +1,9 @@
 #! /bin/sh
 
-: '@(#)yearistype.sh	7.8'
+: 'This file is in the public domain, so clarified as of'
+: '2006-07-17 by Arthur David Olson.'
+
+: '@(#)yearistype.sh	8.2'
 
 case $#-$1 in
 	2-|2-0*|2-*[!0-9]*)
diff --git a/timezone/zone.tab b/timezone/zone.tab
index 39cc55f816..18aff1bb5a 100644
--- a/timezone/zone.tab
+++ b/timezone/zone.tab
@@ -1,4 +1,7 @@
-# @(#)zone.tab	8.18
+# 
+# @(#)zone.tab	8.28
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
 #
 # TZ zone descriptions
 #
@@ -42,14 +45,15 @@ AQ	-7824+10654	Antarctica/Vostok	Vostok Station, S Magnetic Pole
 AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
 AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
 AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
-AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF)
-AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
+AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, MN, SE, SF)
+AR	-2447-06525	America/Argentina/Salta	(SA, LP, NQ, RN)
 AR	-2411-06518	America/Argentina/Jujuy	Jujuy (JY)
 AR	-2649-06513	America/Argentina/Tucuman	Tucuman (TM)
 AR	-2828-06547	America/Argentina/Catamarca	Catamarca (CT), Chubut (CH)
 AR	-2926-06651	America/Argentina/La_Rioja	La Rioja (LR)
 AR	-3132-06831	America/Argentina/San_Juan	San Juan (SJ)
 AR	-3253-06849	America/Argentina/Mendoza	Mendoza (MZ)
+AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
 AR	-5138-06913	America/Argentina/Rio_Gallegos	Santa Cruz (SC)
 AR	-5448-06818	America/Argentina/Ushuaia	Tierra del Fuego (TF)
 AS	-1416-17042	Pacific/Pago_Pago
@@ -100,7 +104,7 @@ BR	-0640-06952	America/Eirunepe	W Amazonas
 BR	-0958-06748	America/Rio_Branco	Acre
 BS	+2505-07721	America/Nassau
 BT	+2728+08939	Asia/Thimphu
-BW	-2545+02555	Africa/Gaborone
+BW	-2439+02555	Africa/Gaborone
 BY	+5354+02734	Europe/Minsk
 BZ	+1730-08812	America/Belize
 CA	+4734-05243	America/St_Johns	Newfoundland Time, including SE Labrador
@@ -115,7 +119,7 @@ CA	+4901-08816	America/Nipigon	Eastern Time - Ontario & Quebec - places that did
 CA	+4823-08915	America/Thunder_Bay	Eastern Time - Thunder Bay, Ontario
 CA	+6344-06828	America/Iqaluit	Eastern Time - east Nunavut - most locations
 CA	+6608-06544	America/Pangnirtung	Eastern Time - Pangnirtung, Nunavut
-CA	+744144-0944945	America/Resolute	Eastern Time - Resolute, Nunavut
+CA	+744144-0944945	America/Resolute	Eastern Standard Time - Resolute, Nunavut
 CA	+484531-0913718	America/Atikokan	Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
 CA	+624900-0920459	America/Rankin_Inlet	Central Time - central Nunavut
 CA	+4953-09709	America/Winnipeg	Central Time - Manitoba & west Ontario
@@ -284,16 +288,16 @@ MY	+0310+10142	Asia/Kuala_Lumpur	peninsular Malaysia
 MY	+0133+11020	Asia/Kuching	Sabah & Sarawak
 MZ	-2558+03235	Africa/Maputo
 NA	-2234+01706	Africa/Windhoek
-NC	-2216+16530	Pacific/Noumea
+NC	-2216+16627	Pacific/Noumea
 NE	+1331+00207	Africa/Niamey
 NF	-2903+16758	Pacific/Norfolk
 NG	+0627+00324	Africa/Lagos
 NI	+1209-08617	America/Managua
 NL	+5222+00454	Europe/Amsterdam
 NO	+5955+01045	Europe/Oslo
-NP	+2743+08519	Asia/Katmandu
+NP	+2743+08519	Asia/Kathmandu
 NR	-0031+16655	Pacific/Nauru
-NU	-1901+16955	Pacific/Niue
+NU	-1901-16955	Pacific/Niue
 NZ	-3652+17446	Pacific/Auckland	most locations
 NZ	-4357-17633	Pacific/Chatham	Chatham Islands
 OM	+2336+05835	Asia/Muscat
@@ -364,7 +368,7 @@ TK	-0922-17114	Pacific/Fakaofo
 TL	-0833+12535	Asia/Dili
 TM	+3757+05823	Asia/Ashgabat
 TN	+3648+01011	Africa/Tunis
-TO	-2110+17510	Pacific/Tongatapu
+TO	-2110-17510	Pacific/Tongatapu
 TR	+4101+02858	Europe/Istanbul
 TT	+1039-06131	America/Port_of_Spain
 TV	-0831+17913	Pacific/Funafuti
@@ -384,13 +388,13 @@ US	+381515-0854534	America/Kentucky/Louisville	Eastern Time - Kentucky - Louisvi
 US	+364947-0845057	America/Kentucky/Monticello	Eastern Time - Kentucky - Wayne County
 US	+394606-0860929	America/Indiana/Indianapolis	Eastern Time - Indiana - most locations
 US	+384038-0873143	America/Indiana/Vincennes	Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
-US	+411745-0863730	America/Indiana/Knox	Eastern Time - Indiana - Starke County
 US	+410305-0863611	America/Indiana/Winamac	Eastern Time - Indiana - Pulaski County
 US	+382232-0862041	America/Indiana/Marengo	Eastern Time - Indiana - Crawford County
+US	+382931-0871643	America/Indiana/Petersburg	Eastern Time - Indiana - Pike County
 US	+384452-0850402	America/Indiana/Vevay	Eastern Time - Indiana - Switzerland County
 US	+415100-0873900	America/Chicago	Central Time
 US	+375711-0864541	America/Indiana/Tell_City	Central Time - Indiana - Perry County
-US	+382931-0871643	America/Indiana/Petersburg	Central Time - Indiana - Pike County
+US	+411745-0863730	America/Indiana/Knox	Central Time - Indiana - Starke County
 US	+450628-0873651	America/Menominee	Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
 US	+470659-1011757	America/North_Dakota/Center	Central Time - North Dakota - Oliver County
 US	+465042-1012439	America/North_Dakota/New_Salem	Central Time - North Dakota - Morton County (except Mandan area)
@@ -408,7 +412,7 @@ US	+211825-1575130	Pacific/Honolulu	Hawaii
 UY	-3453-05611	America/Montevideo
 UZ	+3940+06648	Asia/Samarkand	west Uzbekistan
 UZ	+4120+06918	Asia/Tashkent	east Uzbekistan
-VA	+4154+01227	Europe/Vatican
+VA	+415408+0122711	Europe/Vatican
 VC	+1309-06114	America/St_Vincent
 VE	+1030-06656	America/Caracas
 VG	+1827-06437	America/Tortola

From 5fb55a68c1123398f1ed27c6fc8ee196dc121bc7 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper 
Date: Mon, 15 Jun 2009 08:49:18 -0700
Subject: [PATCH 10/21] Update from tzcode2009i.

---
 ChangeLog             |  4 ++++
 timezone/tzselect.ksh | 17 ++++++++++++++++-
 timezone/zdump.c      | 31 +++++++++++++++++++++----------
 timezone/zic.c        | 26 +++++++++++++++-----------
 4 files changed, 56 insertions(+), 22 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d96e17a1b9..dcd7444dd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-06-15  Ulrich Drepper  
 
+	* timezone/tzselect.ksh: Update from tzcode2009i.
+	* timezone/zdump.c: Likewise.
+	* timezone/zic.c: Likewise.
+
 	* timezone/africa: Update from tzdata2009i.
 	* timezone/antarctica: Likewise.
 	* timezone/asia: Likewise.
diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
index b99af8273b..57bf707e45 100644
--- a/timezone/tzselect.ksh
+++ b/timezone/tzselect.ksh
@@ -1,6 +1,6 @@
 #! @KSH@
 
-# '@(#)tzselect.ksh	8.1'
+VERSION='@(#)tzselect.ksh	8.2'
 
 # Ask the user about the time zone, and output the resulting TZ value to stdout.
 # Interact with the user via stderr and stdin.
@@ -45,6 +45,21 @@
 	exit 1
 }
 
+if [ "$1" = "--help" ]; then
+    cat <= cuthitime)
+			if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12)
 				break;
 			newt = t + SECSPERHOUR * 12;
-			if (newt >= cuthitime)
-				break;
-			if (newt <= t)
-				break;
 			newtmp = localtime(&newt);
 			if (newtmp != NULL)
 				newtm = *newtmp;
diff --git a/timezone/zic.c b/timezone/zic.c
index 5f8028e480..01d9f135bd 100644
--- a/timezone/zic.c
+++ b/timezone/zic.c
@@ -3,7 +3,7 @@
 ** 2006-07-17 by Arthur David Olson.
 */
 
-static char	elsieid[] = "@(#)zic.c	8.17";
+static char	elsieid[] = "@(#)zic.c	8.19";
 
 #include "private.h"
 #include "locale.h"
@@ -156,7 +156,7 @@ static void 	stringzone(char * result,
 			const struct zone * zp, int ntzones);
 static void	setboundaries(void);
 static zic_t	tadd(zic_t t1, long t2);
-static void	usage(void);
+static void	usage(FILE *stream, int status);
 static void	writezone(const char * name, const char * string);
 static int	yearistype(int year, const char * type);
 
@@ -454,13 +454,15 @@ const char * const	string;
 }
 
 static void
-usage(void)
+usage(FILE *stream, int status)
 {
-	(void) fprintf(stderr, _("%s: usage is %s \
-[ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
-\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
-		progname, progname);
-	exit(EXIT_FAILURE);
+	(void) fprintf(stream, _("%s: usage is %s \
+[ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
+\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\
+\n\
+Report bugs to tz@elsie.nci.nih.gov.\n"),
+		       progname, progname);
+	exit(status);
 }
 
 static const char *	psxrules;
@@ -498,11 +500,13 @@ char *	argv[];
 		if (strcmp(argv[i], "--version") == 0) {
 			(void) printf("%s\n", elsieid);
 			exit(EXIT_SUCCESS);
+		} else if (strcmp(argv[i], "--help") == 0) {
+			usage(stdout, EXIT_SUCCESS);
 		}
 	while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
 		switch (c) {
 			default:
-				usage();
+				usage(stderr, EXIT_FAILURE);
 			case 'd':
 				if (directory == NULL)
 					directory = optarg;
@@ -561,7 +565,7 @@ _("%s: More than one -L option specified\n"),
 				break;
 		}
 	if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
-		usage();	/* usage message by request */
+		usage(stderr, EXIT_FAILURE);	/* usage message by request */
 	if (directory == NULL)
 		directory = TZDIR;
 	if (yitcommand == NULL)
@@ -1991,7 +1995,7 @@ const int			zonecount;
 	min_year = max_year = EPOCH_YEAR;
 	if (leapseen) {
 		updateminmax(leapminyear);
-		updateminmax(leapmaxyear);
+		updateminmax(leapmaxyear + (leapmaxyear < INT_MAX));
 	}
 	for (i = 0; i < zonecount; ++i) {
 		zp = &zpfirst[i];

From c9bb32415460f5bcf4accacadf9060d504fddd69 Mon Sep 17 00:00:00 2001
From: Jim Meyering 
Date: Mon, 15 Jun 2009 18:03:56 +0200
Subject: [PATCH 11/21] exempt timezone files from the no-bad-whitespace policy

* .gitattributes: New file.  Exempt imported timezone files from
the no-bad-whitespace rules.
---
 .gitattributes | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 .gitattributes

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..8947e726a2
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+timezone/* -whitespace

From 29143408ae6d474a115768e809691635f507b1fd Mon Sep 17 00:00:00 2001
From: Akinori Hattori 
Date: Mon, 15 Jun 2009 10:54:26 -0700
Subject: [PATCH 12/21] Handle leap seconds even if no DST rule exists.

This fixes BZ #10211.
---
 ChangeLog     | 5 +++++
 time/tzfile.c | 7 +++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index dcd7444dd5..d758a8394f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10211]
+	* time/tzfile.c (__tzfile_compute): If we use the envvar format still
+	handle leap seconds if they are available.
+	Patch by Akinori Hattori .
+
 	* timezone/tzselect.ksh: Update from tzcode2009i.
 	* timezone/zdump.c: Likewise.
 	* timezone/zic.c: Likewise.
diff --git a/time/tzfile.c b/time/tzfile.c
index 970022379a..4e20b25a12 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006, 2007
+/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006,2007,2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -659,9 +659,7 @@ __tzfile_compute (time_t timer, int use_localtime,
 	      __tzname[1] = __tzstring (&zone_names[strlen (zone_names) + 1]);
 	    }
 
-	  *leap_correct = 0L;
-	  *leap_hit = 0;
-	  return;
+	  goto leap;
 	}
       else
 	{
@@ -762,6 +760,7 @@ __tzfile_compute (time_t timer, int use_localtime,
       tp->tm_gmtoff = info->offset;
     }
 
+ leap:
   *leap_correct = 0L;
   *leap_hit = 0;
 

From 6355c99740c91ed5a7fa14e378f74950e09f5f48 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper 
Date: Mon, 15 Jun 2009 11:00:08 -0700
Subject: [PATCH 13/21] Fix computation of tzspec_len.

Without this it should never have worked that we can use the
embedded envvar in the timezone data files for dates after the last
matching rule.
---
 ChangeLog     | 2 ++
 time/tzfile.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index d758a8394f..9e13cb7945 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2009-06-15  Ulrich Drepper  
 
+	* time/tzfile.c (__tzfile_read): Correct computation of tzspec_len.
+
 	[BZ #10211]
 	* time/tzfile.c (__tzfile_compute): If we use the envvar format still
 	handle leap seconds if they are available.
diff --git a/time/tzfile.c b/time/tzfile.c
index 4e20b25a12..d8bd55a130 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -248,7 +248,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
 				+ num_transitions * (8 + 1)
 				+ num_types * 6
 				+ chars
-				+ num_leaps * 8
+				+ num_leaps * 12
 				+ num_isstd
 				+ num_isgmt) - 1 : 0);
 

From 48dcd0ba84c5a0fa08a0bd000b24af07d20dce44 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper 
Date: Mon, 15 Jun 2009 16:17:09 -0700
Subject: [PATCH 14/21] Preserve message printed before abort.

The terminal output etc is not visible in a core file.  The new
libc-internal variable __abort_msg will point to a string with the
message which has been printed before the abort in case abort is
called from inside libc.  BZ #10217
---
 ChangeLog                            | 11 +++++++++++
 assert/assert-perr.c                 | 10 ++++++----
 assert/assert.c                      | 11 +++++++----
 include/stdlib.h                     |  3 +++
 stdlib/Versions                      |  2 ++
 stdlib/abort.c                       |  6 +++++-
 sysdeps/posix/libc_fatal.c           | 17 ++++++++++++++++-
 sysdeps/unix/sysv/linux/libc_fatal.c | 18 +++++++++++++++++-
 8 files changed, 67 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9e13cb7945..6c97032c14 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10217]
+	* stdlib/abort.c: Define variable __abort_msg.
+	* stdlib/Versions: Export __abort_msg with GLIBC_PRIVATE version.
+	* include/stdlib.h: Declare __abort_msg.
+	* assert/assert-perr.c: Don't free buffer for message immediately.
+	Store atomically in __abort_msg and free old buffer if necessary.
+	* assert/assert.c: Likewise.
+	* sysdeps/posix/libc_fatal.c: Allocate buffer for message, copy it,
+	store pointer in __abort_msg, and possibly free old string.
+	* sysdeps/unix/sysv/linux/libc_fatal.c: Likewise.
+
 	* time/tzfile.c (__tzfile_read): Correct computation of tzspec_len.
 
 	[BZ #10211]
diff --git a/assert/assert-perr.c b/assert/assert-perr.c
index dd54246360..f239fab86b 100644
--- a/assert/assert-perr.c
+++ b/assert/assert-perr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-1998,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1994-1998,2001,2002,2005,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
    02111-1307 USA.  */
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -64,9 +65,10 @@ __assert_perror_fail (int errnum,
       (void) __fxprintf (NULL, "%s", buf);
       (void) fflush (stderr);
 
-      /* We have to free the buffer since the appplication might catch the
-	 SIGABRT.  */
-      free (buf);
+      /* We have to free the old buffer since the application might
+	 catch the SIGABRT signal.  */
+      char *old = atomic_exchange_acq (&__abort_msg, buf);
+      free (old);
     }
   else
     {
diff --git a/assert/assert.c b/assert/assert.c
index 0ef4ca62e4..727fb1446c 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1994-1996,1998,2001,2002,2005
+/* Copyright (C) 1991,1994-1996,1998,2001,2002,2005,2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -43,6 +44,7 @@ extern const char *__progname;
 # include FATAL_PREPARE_INCLUDE
 #endif
 
+
 #undef __assert_fail
 void
 __assert_fail (const char *assertion, const char *file, unsigned int line,
@@ -64,9 +66,10 @@ __assert_fail (const char *assertion, const char *file, unsigned int line,
       (void) __fxprintf (NULL, "%s", buf);
       (void) fflush (stderr);
 
-      /* We have to free the buffer since the application might catch the
-	 SIGABRT.  */
-      free (buf);
+      /* We have to free the old buffer since the application might
+	 catch the SIGABRT signal.  */
+      char *old = atomic_exchange_acq (&__abort_msg, buf);
+      free (old);
     }
   else
     {
diff --git a/include/stdlib.h b/include/stdlib.h
index 883bc34d4a..d90e6ff4fe 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -221,6 +221,9 @@ extern int __qfcvt_r (long double __value, int __ndigit,
 extern void *__default_morecore (ptrdiff_t) __THROW;
 libc_hidden_proto (__default_morecore)
 
+extern char *__abort_msg;
+libc_hidden_proto (__abort_msg)
+
 __END_DECLS
 
 #undef __Need_M_And_C
diff --git a/stdlib/Versions b/stdlib/Versions
index 93c68f6e31..3e7b8921c4 100644
--- a/stdlib/Versions
+++ b/stdlib/Versions
@@ -104,5 +104,7 @@ libc {
     # functions which have an additional interface since they are
     # are cancelable.
     __libc_system;
+    # Variable which needs a dynamic symbol table entry.
+    __abort_msg;
   }
 }
diff --git a/stdlib/abort.c b/stdlib/abort.c
index 00788f22c7..3c188c9516 100644
--- a/stdlib/abort.c
+++ b/stdlib/abort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,93,95,96,97,98,2001,02 Free Software Foundation, Inc.
+/* Copyright (C) 1991,93,1995-1998,2001,02,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -36,6 +36,10 @@
 # define fflush(s) _IO_flush_all_lockp (0)
 #endif
 
+/* Exported variable to locate abort message in core files etc.  */
+char *__abort_msg __attribute__ ((nocommon));
+libc_hidden_def (__abort_msg)
+
 /* We must avoid to run in circles.  Therefore we remember how far we
    already got.  */
 static int stage;
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index c611b84363..4f11c0fcb0 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1994,1995,1997,2000,2004,2005
+/* Copyright (C) 1993-1995,1997,2000,2004,2005,2009
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include 
 #include 
 #include 
 #include 
@@ -123,6 +124,20 @@ __libc_message (int do_abort, const char *fmt, ...)
 
       if (TEMP_FAILURE_RETRY (__writev (fd, iov, nlist)) == total)
 	written = true;
+
+      char *buf = do_abort ? malloc (total + 1) : NULL;
+      if (buf != NULL)
+	{
+	  char *wp = buf;
+	  for (int cnt = 0; cnt < nlist; ++cnt)
+	    wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+	  *wp = '\0';
+
+	  /* We have to free the old buffer since the application might
+	     catch the SIGABRT signal.  */
+	  char *old = atomic_exchange_acq (&__abort_msg, buf);
+	  free (old);
+	}
     }
 
   va_end (ap);
diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
index c7fac6ab51..7287f4ef6c 100644
--- a/sysdeps/unix/sysv/linux/libc_fatal.c
+++ b/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1993-1995,1997,2000,2002-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1993-1995,1997,2000,2002-2005,2009
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include 
 #include 
 #include 
 #include 
@@ -131,6 +133,20 @@ __libc_message (int do_abort, const char *fmt, ...)
 
       if (cnt == total)
 	written = true;
+
+      char *buf = do_abort ? malloc (total + 1) : NULL;
+      if (buf != NULL)
+	{
+	  char *wp = buf;
+	  for (int cnt = 0; cnt < nlist; ++cnt)
+	    wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+	  *wp = '\0';
+
+	  /* We have to free the old buffer since the application might
+	     catch the SIGABRT signal.  */
+	  char *old = atomic_exchange_acq (&__abort_msg, buf);
+	  free (old);
+	}
     }
 
   va_end (ap);

From 4155d926336ba38428a98359bf0908453ff83625 Mon Sep 17 00:00:00 2001
From: Bruce Dubbs 
Date: Mon, 15 Jun 2009 17:27:48 -0700
Subject: [PATCH 15/21] (do_test): Use de_DE.UTF-8 as locale name.

---
 ChangeLog          | 4 ++++
 libio/tst-fgetwc.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 6c97032c14..402b5cb3e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10196]
+	* libio/tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name.
+	Patch by Bruce Dubbs .
+
 	[BZ #10217]
 	* stdlib/abort.c: Define variable __abort_msg.
 	* stdlib/Versions: Export __abort_msg with GLIBC_PRIVATE version.
diff --git a/libio/tst-fgetwc.c b/libio/tst-fgetwc.c
index 9ccfeb1526..06e4a424ff 100644
--- a/libio/tst-fgetwc.c
+++ b/libio/tst-fgetwc.c
@@ -6,7 +6,7 @@
 static int
 do_test (void)
 {
-  if (setlocale (LC_ALL, "de_DE.utf8") == NULL)
+  if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
     {
       puts ("setlocale failed");
       return 1;

From 233a182b9ee2a48eddbb15f70af8bc24add24af3 Mon Sep 17 00:00:00 2001
From: Joe Landers 
Date: Mon, 15 Jun 2009 17:37:40 -0700
Subject: [PATCH 16/21] Fix memory leak when batch-reading large NIS password
 maps.

Not the whole was traversed in the function to free all buffers.
BZ #10203
---
 ChangeLog             | 5 +++++
 nis/nss_nis/nis-pwd.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 402b5cb3e2..2bfa774655 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10203]
+	* nis/nss_nis/nis-pwd.c (internal_nis_endpwent): Free all buffers,
+	not just the currently used one and those which follow.
+	Patch by Joe Landers .
+
 	[BZ #10196]
 	* libio/tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name.
 	Patch by Bruce Dubbs .
diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c
index 1b5206ad6d..fdc7dc9e1e 100644
--- a/nis/nss_nis/nis-pwd.c
+++ b/nis/nss_nis/nis-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1998,2001,2002,2003,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1998,2001-2003,2006,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk , 1996.
 
@@ -116,7 +116,7 @@ internal_nis_endpwent (void)
       oldkeylen = 0;
     }
 
-  struct response_t *curr = intern.next;
+  struct response_t *curr = intern.start;
 
   while (curr != NULL)
     {

From c518f9a4b442af13bc5ac79011eb73a05585e0a9 Mon Sep 17 00:00:00 2001
From: Aurelien Jarno 
Date: Mon, 15 Jun 2009 17:49:35 -0700
Subject: [PATCH 17/21] Extend getent to handle the shadow database.

BZ #10207
---
 ChangeLog    |  3 +++
 nss/getent.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 2bfa774655..91b3976d72 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10207]
+	* nss/getent.c: Add support for print gshadow data.
+
 	[BZ #10203]
 	* nis/nss_nis/nis-pwd.c (internal_nis_endpwent): Free all buffers,
 	not just the currently used one and those which follow.
diff --git a/nss/getent.c b/nss/getent.c
index ea5608f1e2..dbcae26809 100644
--- a/nss/getent.c
+++ b/nss/getent.c
@@ -24,6 +24,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -232,6 +233,70 @@ group_keys (int number, char *key[])
   return result;
 }
 
+/* This is for gshadow */
+static void
+print_gshadow (struct sgrp *sg)
+{
+  unsigned int i = 0;
+
+  printf ("%s:%s:",
+	  sg->sg_namp ? sg->sg_namp : "",
+	  sg->sg_passwd ? sg->sg_passwd : "");
+
+  while (sg->sg_adm[i] != NULL)
+    {
+      fputs_unlocked (sg->sg_adm[i], stdout);
+      ++i;
+      if (sg->sg_adm[i] != NULL)
+	putchar_unlocked (',');
+    }
+
+  putchar_unlocked (':');
+
+  i = 0;
+  while (sg->sg_mem[i] != NULL)
+    {
+      fputs_unlocked (sg->sg_mem[i], stdout);
+      ++i;
+      if (sg->sg_mem[i] != NULL)
+	putchar_unlocked (',');
+    }
+
+  putchar_unlocked ('\n');
+}
+
+static int
+gshadow_keys (int number, char *key[])
+{
+  int result = 0;
+  int i;
+
+  if (number == 0)
+    {
+      struct sgrp *sg;
+
+      setsgent ();
+      while ((sg = getsgent ()) != NULL)
+	print_gshadow (sg);
+      endsgent ();
+      return result;
+    }
+
+  for (i = 0; i < number; ++i)
+    {
+      struct sgrp *sg;
+
+      sg = getsgnam (key[i]);
+
+      if (sg == NULL)
+	result = 2;
+      else
+	print_gshadow (sg);
+    }
+
+  return result;
+}
+
 /* This is for hosts */
 static void
 print_hosts (struct hostent *host)
@@ -756,6 +821,7 @@ D(ahostsv6)
 D(aliases)
 D(ethers)
 D(group)
+D(gshadow)
 D(hosts)
 D(netgroup)
 D(networks)

From 7ed520bd8504700cf4aaf3b06deb10575bfc546a Mon Sep 17 00:00:00 2001
From: Arnaud Ebalard 
Date: Mon, 15 Jun 2009 20:33:39 -0700
Subject: [PATCH 18/21] Fix type of nd_opt_home_agent_info_preference.

---
 ChangeLog            | 5 +++++
 inet/netinet/icmp6.h | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 91b3976d72..b4f7524aef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10195]
+	* inet/netinet/icmp6.h (struct nd_opt_home_agent_info): Change type
+	of nd_opt_home_agent_info_preference to uint16_t.
+	Patch by Arnaud Ebalard .
+
 	[BZ #10207]
 	* nss/getent.c: Add support for print gshadow data.
 
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
index 0cb1aa6a6c..82893daa99 100644
--- a/inet/netinet/icmp6.h
+++ b/inet/netinet/icmp6.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1997,2000,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1997,2000,2006,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -339,7 +339,7 @@ struct nd_opt_home_agent_info
     uint8_t   nd_opt_home_agent_info_type;
     uint8_t   nd_opt_home_agent_info_len;
     uint16_t  nd_opt_home_agent_info_reserved;
-    int16_t   nd_opt_home_agent_info_preference;
+    uint16_t  nd_opt_home_agent_info_preference;
     uint16_t  nd_opt_home_agent_info_lifetime;
   };
 

From 395a37e379bf900b2b6a25e17c44cde2d1c46c44 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper 
Date: Mon, 15 Jun 2009 21:12:57 -0700
Subject: [PATCH 19/21] When iterating over CPU bitmask, don't try more than
 CPU_SETSIZE.

---
 ChangeLog            | 3 +++
 posix/tst-cpucount.c | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index b4f7524aef..a431f3914c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10183]
+	* posix/tst-cpucount.c: Don't try more than CPU_SETSIZE bits.
+
 	[BZ #10195]
 	* inet/netinet/icmp6.h (struct nd_opt_home_agent_info): Change type
 	of nd_opt_home_agent_info_preference to uint16_t.
diff --git a/posix/tst-cpucount.c b/posix/tst-cpucount.c
index fe3cded732..b3691a18da 100644
--- a/posix/tst-cpucount.c
+++ b/posix/tst-cpucount.c
@@ -1,5 +1,6 @@
 #include 
 #include 
+#include 
 
 static int
 do_test (void)
@@ -8,7 +9,7 @@ do_test (void)
 
   CPU_ZERO (&c);
 
-  for (int cnt = 0; cnt < 130; ++cnt)
+  for (int cnt = 0; cnt < MIN (CPU_SETSIZE, 130); ++cnt)
     {
       int n = CPU_COUNT (&c);
       if (n != cnt)

From 292e3abebff9f94ca47c1a725a691cb6ed6cff5f Mon Sep 17 00:00:00 2001
From: Ulrich Drepper 
Date: Mon, 15 Jun 2009 22:56:51 -0700
Subject: [PATCH 20/21] Fix permission of slave device on devpts if necessary.

If devptr is misconfigured the slave device permission after grantpt
might not be 0620.  BZ #10166
---
 ChangeLog                         |  5 +++++
 sysdeps/unix/sysv/linux/grantpt.c | 13 ++++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a431f3914c..812fbdf6cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-06-15  Ulrich Drepper  
 
+	[BZ #10166]
+	* sysdeps/unix/sysv/linux/grantpt.c: If slave device is on devpts or
+	devfs, the mode might not be correct.  Check it and return only if it
+	is correct.
+
 	[BZ #10183]
 	* posix/tst-cpucount.c: Don't try more than CPU_SETSIZE bits.
 
diff --git a/sysdeps/unix/sysv/linux/grantpt.c b/sysdeps/unix/sysv/linux/grantpt.c
index b894b8b631..c858f89c8b 100644
--- a/sysdeps/unix/sysv/linux/grantpt.c
+++ b/sysdeps/unix/sysv/linux/grantpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2001, 2002, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -70,9 +70,16 @@ grantpt (int fd)
     return -1;
 
   /* If the slave pseudo terminal lives on a `devpts' filesystem, the
-     ownership and access permission are already set.  */
+     ownership is already set and the access permission might already
+     be set.  */
   if (fsbuf.f_type == DEVPTS_SUPER_MAGIC || fsbuf.f_type == DEVFS_SUPER_MAGIC)
-    return 0;
+    {
+      struct stat64 st;
+
+      if (fstat (fd, &st) == 0
+	  && (st.st_mode & ACCESSPERMS) == (S_IRUSR|S_IWUSR|S_IWGRP))
+	return 0;
+    }
 
   return __unix_grantpt (fd);
 }

From 837dea7cf54827d6e43d88a9463bcc10d30472d0 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper 
Date: Mon, 15 Jun 2009 22:58:21 -0700
Subject: [PATCH 21/21] Optimize pt_chown.

Don't call chown and chmod if not necessary.
---
 ChangeLog                 | 3 +++
 login/programs/pt_chown.c | 7 ++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 812fbdf6cd..00b651fbd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2009-06-15  Ulrich Drepper  
 
+	* sysdeps/unix/sysv/linux/grantpt.c (grantpt): Only call chown and
+	chmod if it is necessary.
+
 	[BZ #10166]
 	* sysdeps/unix/sysv/linux/grantpt.c: If slave device is on devpts or
 	devfs, the mode might not be correct.  Check it and return only if it
diff --git a/login/programs/pt_chown.c b/login/programs/pt_chown.c
index 485eddabc9..5167b29225 100644
--- a/login/programs/pt_chown.c
+++ b/login/programs/pt_chown.c
@@ -1,5 +1,5 @@
 /* pt_chmod - helper program for `grantpt'.
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by C. Scott Ananian , 1998.
 
@@ -119,12 +119,13 @@ do_pt_chown (void)
 
   /* Set the owner to the real user ID, and the group to that special
      group ID.  */
-  if (chown (pty, getuid (), gid) < 0)
+  if (st.st_gid != gid && chown (pty, getuid (), gid) < 0)
     return FAIL_EACCES;
 
   /* Set the permission mode to readable and writable by the owner,
      and writable by the group.  */
-  if (chmod (pty, S_IRUSR|S_IWUSR|S_IWGRP) < 0)
+  if ((st.st_mode & ACCESSPERMS) != (S_IRUSR|S_IWUSR|S_IWGRP)
+      && chmod (pty, S_IRUSR|S_IWUSR|S_IWGRP) < 0)
     return FAIL_EACCES;
 
   return 0;