diff options
55 files changed, 1290 insertions, 212 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..8947e726a2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +timezone/* -whitespace diff --git a/ChangeLog b/ChangeLog index ea83ced3fa..d6b66bad7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,102 @@ +2009-06-15 Ulrich Drepper <drepper@redhat.com> + + * 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 + is correct. + + [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. + Patch by Arnaud Ebalard <arno@natisbad.org>. + + [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. + Patch by Joe Landers <jlanders@vmware.com>. + + [BZ #10196] + * libio/tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name. + Patch by Bruce Dubbs <bdubbs@linuxfromscratch.org>. + + [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] + * time/tzfile.c (__tzfile_compute): If we use the envvar format still + handle leap seconds if they are available. + Patch by Akinori Hattori <hattya@gentoo.org>. + + * 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. + * 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 <jakub@redhat.com> + + * 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 <drepper@redhat.com> + + * 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, + __FD_CLR, and __FD_ISSET. gcc nowadays generates better code from + the C version. + +2009-06-12 Ulrich Drepper <drepper@redhat.com> + + * Versions.def: Add GLIBC_2.11 for libpthread. + +2009-06-11 Ulrich Drepper <drepper@redhat.com> + + * resolv/res_send.c (send_dg): Remember we switched to + single-request mode. + 2009-06-09 Ulrich Drepper <drepper@redhat.com> * dlfcn/dlfcn.h: Remove comma at end of enum. 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/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 <assert.h> +#include <atomic.h> #include <libintl.h> #include <stdio.h> #include <stdlib.h> @@ -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 <assert.h> +#include <atomic.h> #include <libintl.h> #include <stdio.h> #include <stdlib.h> @@ -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/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/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/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; }; 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; diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 2f8c9e8b18..a55ab50b76 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,10 @@ +2009-06-15 Ulrich Drepper <drepper@redhat.com> + + [BZ #10213] + * 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 <drepper@redhat.com> * locales/ur_IN: New file. diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index d05c623d82..ceb2415c19 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -99,6 +99,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 "<U004D><U0056><U0052><U0020>" +currency_symbol "<U0783><U002E>" +mon_decimal_point "<U002E>" +mon_thousands_sep "<U002C>" +mon_grouping 3;3 +positive_sign "" +negative_sign "<U002D>" +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 "<U002E>" +thousands_sep "<U002C>" +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 "<U0787><U07A7><U078B><U07A9><U0787><U07B0><U078C><U07A6>";/ + "<U0780><U07AF><U0789><U07A6>";/ + "<U0787><U07A6><U0782><U07B0><U078E><U07A7><U0783><U07A6>";/ + "<U0784><U07AA><U078B><U07A6>";/ + "<U0784><U07AA><U0783><U07A7><U0790><U07B0><U078A><U07A6><U078C><U07A8>";/ + "<U0780><U07AA><U0786><U07AA><U0783><U07AA>";/ + "<U0780><U07AE><U0782><U07A8><U0780><U07A8><U0783><U07AA>" +day "<U0787><U07A7><U078B><U07A9><U0787><U07B0><U078C><U07A6>";/ + "<U0780><U07AF><U0789><U07A6>";/ + "<U0787><U07A6><U0782><U07B0><U078E><U07A7><U0783><U07A6>";/ + "<U0784><U07AA><U078B><U07A6>";/ + "<U0784><U07AA><U0783><U07A7><U0790><U07B0><U078A><U07A6><U078C><U07A8>";/ + "<U0780><U07AA><U0786><U07AA><U0783><U07AA>";/ + "<U0780><U07AE><U0782><U07A8><U0780><U07A8><U0783><U07AA>" +abmon "<U0796><U07AC><U0782><U07AA><U0787><U07A6><U0783><U07A9>";/ + "<U078A><U07AC><U0784><U07B0><U0783><U07AA><U0787><U07A6><U0783><U07A9>";/ + "<U0789><U07A7><U0783><U0797><U07B0>";/ + "<U0787><U07AC><U0795><U07B0><U0783><U07A9><U078D><U07B0>";/ + "<U0789><U07AC><U0787><U07A8>";/ + "<U0796><U07AB><U0782><U07B0>";/ + "<U0796><U07AA><U078D><U07A6><U0787><U07A8>";/ + "<U0787><U07AE><U078E><U07A6><U0790><U07B0><U0793><U07B0>";/ + "<U0790><U07AC><U0795><U07B0><U0793><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/ + "<U0787><U07AE><U0786><U07B0><U0793><U07AB><U0784><U07A6><U0783>";/ + "<U0782><U07AE><U0788><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/ + "<U0791><U07A8><U0790><U07AC><U0782><U07B0><U0784><U07A6><U0783>" +mon "<U0796><U07AC><U0782><U07AA><U0787><U07A6><U0783><U07A9>";/ + "<U078A><U07AC><U0784><U07B0><U0783><U07AA><U0787><U07A6><U0783><U07A9>";/ + "<U0789><U07A7><U0783><U0797><U07B0>";/ + "<U0787><U07AC><U0795><U07B0><U0783><U07A9><U078D><U07B0>";/ + "<U0789><U07AC><U0787><U07A8>";/ + "<U0796><U07AB><U0782><U07B0>";/ + "<U0796><U07AA><U078D><U07A6><U0787><U07A8>";/ + "<U0787><U07AE><U078E><U07A6><U0790><U07B0><U0793><U07B0>";/ + "<U0790><U07AC><U0795><U07B0><U0793><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/ + "<U0787><U07AE><U0786><U07B0><U0793><U07AB><U0784><U07A6><U0783>";/ + "<U0782><U07AE><U0788><U07AC><U0782><U07B0><U0784><U07A6><U0783>";/ + "<U0791><U07A8><U0790><U07AC><U0782><U07B0><U0784><U07A6><U0783>" + +% Date Time Format +d_t_fmt "<U0025><U005A><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059><U0020><U0025><U0062><U0020><U0025><U0064><U0020><U0025><U0061>" + +% date Format. I have put this in reverse order to try to get the date +% in R->L order +d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>" + +% time format +t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>" + +%<U0635> stands for <U0635><U0628><U062D> +%<U0634> stands for <U0634><U0627><U0645> +%am_pm "<U0020>";"<U0789><U07AC><U0782><U07B0><U078B><U07AA><U0782><U07AA><U0782><U07B0><U0787><U07A6><U0784><U07AA><U0783><U07A7>" +am_pm "<U0789><U0786>";"<U0789><U078A>" + +% time format in 12 hour clock +t_fmt_ampm "<U0025><U0050><U0020><U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>" + +% display columns right to left ? +cal_direction 3 +END LC_TIME + +LC_MESSAGES +yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>" +noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" +END LC_MESSAGES + +LC_PAPER +height 297 +width 210 +END LC_PAPER + +LC_TELEPHONE +tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/ +<U006C>" +tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>" +int_select "<U0030><U0030>" +int_prefix "<U0039><U0036><U0030>" +END LC_TELEPHONE + +LC_MEASUREMENT +measurement 1 +END LC_MEASUREMENT + +LC_NAME +name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/ +<U0025><U006D><U0025><U0074><U0025><U0066>" +END LC_NAME + +LC_ADDRESS +postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/ +<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/ +<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/ +<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/ +<U004E><U0025><U0063><U0025><U004E>" +END LC_ADDRESS 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 <cananian@alumni.princeton.edu>, 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; 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/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 <kukuk@vt.uni-paderborn.de>, 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) { diff --git a/nptl/ChangeLog b/nptl/ChangeLog index fce9209859..3eb85d9dea 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,18 @@ +2009-06-12 Ulrich Drepper <drepper@redhat.com> + + * 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 <drepper@redhat.com> + + [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 <bz-glibc@kdzbn.homelinux.net>. + 2009-05-16 Ulrich Drepper <drepper@redhat.com> * libc-cancellation.c: Move __libc_cleanup_routine to... diff --git a/nptl/Makefile b/nptl/Makefile index f2fba243aa..c99aec8ae0 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/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 ; \ 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 <drepper@redhat.com>, 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 <errno.h> +#include <signal.h> +#include <string.h> +#include <unistd.h> +#include <pthreadP.h> +#include <tls.h> +#include <sysdep.h> +#include <kernel-features.h> + + +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 +} 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 <ctype.h> #include <error.h> #include <grp.h> +#include <gshadow.h> #include <libintl.h> #include <locale.h> #include <mcheck.h> @@ -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) 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 <jan.h.d@swipnet.se>, 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 <jan.h.d@swipnet.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\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 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 <sched.h> #include <stdio.h> +#include <sys/param.h> 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) 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; 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/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 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 <atomic.h> #include <errno.h> #include <fcntl.h> #include <paths.h> @@ -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/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); } 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 <atomic.h> #include <errno.h> #include <fcntl.h> #include <paths.h> @@ -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); 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) diff --git a/time/tzfile.c b/time/tzfile.c index 970022379a..d8bd55a130 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. @@ -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); @@ -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; 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 # <pre> +# @(#)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] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=492263"> +# https://bugzilla.redhat.com/show_bug.cgi?id=492263 +# </a> +# [2] <a href="http://www.timeanddate.com/worldclock/clockchange.html?n=53"> +# http://www.timeanddate.com/worldclock/clockchange.html?n=53 +# </a> +# [3] <a href="http://wwp.greenwichmeantime.com/time-zone/africa/egypt/"> +# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/ +# </a> + +# 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 -# <a href="http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD"> -# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=3D4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD +# <a href="http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD"> +# http://www.gov.mu/portal/site/pmosite/menuitem.4ca0efdee47462e7440a600248a521ca/?content_id=4728ca68b2a5b110VgnVCM1000000a04a8c0RCRD # </a> # 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. +# <a href="http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf"> +# http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf +# </a> + # 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 # <a href="http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html"> # http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html # </a> + +# 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 +# <a href="http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html"> +# http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html +# </a> +# <a href="http://www.medi1sat.ma/fr/depeche.aspx?idp=2312"> +# http://www.medi1sat.ma/fr/depeche.aspx?idp=2312 +# </a> +# (French) +# +# Our summary: +# <a href="http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html"> +# http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html +# </a> + +# 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. +# +# <a href="http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf"> +# http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf +# </a> +# +# <a href="http://www.worldtimezone.com/dst_news/dst_news_morocco03.html"> +# http://www.worldtimezone.com/dst_news/dst_news_morocco03.html +# </a> + # 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) +# <a href="http://www.elbashayer.com/?page=viewn&nid=42546"> +# http://www.elbashayer.com/?page=viewn&nid=42546 +# </a> +# <a href="http://www.babnet.net/kiwidetail-15295.asp"> +# http://www.babnet.net/kiwidetail-15295.asp +# </a> +# +# We have also confirmed this with the US embassy in Tunisia. +# We have a wrap-up about this on the following page: +# <a href="http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html"> +# http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html +# </a> + +# 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) +# <a href="http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157"> +# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157 +# </a> +# +# (in Arabic) +# <a href="http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1"> +# http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1 +# </a> + +# 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 # <pre> +# @(#)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 # <pre> +# @(#)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 +# <a href="http://www.asiantribune.com/?q=node/17288"> +# http://www.asiantribune.com/?q=node/17288 +# </a> +# or +# <a href="http://www.worldtimezone.com/dst_news/dst_news_bangladesh02.html"> +# http://www.worldtimezone.com/dst_news/dst_news_bangladesh02.html +# </a> +# +# "... 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: +# <a href="http://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601"> +# http://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601 +# </a> +# <a href="http://bdnews24.com/details.php?id=85889&cid=2"> +# http://bdnews24.com/details.php?id=85889&cid=2 +# </a> +# +# Our wrap-up: +# <a href="http://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html"> +# http://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html +# </a> + +# 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 +# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11"> +# http://www.timeanddate.com/worldclock/timezone.html?n=11 +# </a> + +# From Steffen Thorsen (2009-04-02): +# This single one might be good enough, (2009-03-24, Arabic): +# <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279"> +# http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279 +# </a> +# +# 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 # </a> +# 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." +# <a href="http://www.thenews.com.pk/daily_detail.asp?id=171280"> +# http://www.thenews.com.pk/daily_detail.asp?id=171280 +# </a> +# +# 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 +# <a href="http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1"> +# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1 +# </a> +# +# or +# +# <a href="http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html"> +# http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html +# </a> +# +# .... +# 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 # </a> +# 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) +# <a href="http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850"> +# http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850 +# </a> +# +# or +# (English translation) +# <a href="http://www.worldtimezone.com/dst_news/dst_news_westbank01.html"> +# http://www.worldtimezone.com/dst_news/dst_news_westbank01.html +# </a> + # 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). +# +# <a href="http://sana.sy/ara/2/2008/10/07/195459.htm"> +# http://sana.sy/ara/2/2008/10/07/195459.htm +# </a> + +# From Steffen Thorsen (2009-03-19): +# Syria will start DST on 2009-03-27 00:00 this year according to many sources, +# two examples: +# +# <a href="http://www.sana.sy/eng/21/2009/03/17/217563.htm"> +# http://www.sana.sy/eng/21/2009/03/17/217563.htm +# </a> +# (English, Syrian Arab News # Agency) +# <a href="http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209"> +# http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209 +# </a> +# (Arabic, gov-site) +# +# We have not found any sources saying anything about when DST ends this year. +# +# Our summary +# <a href="http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html"> +# http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html +# </a> + +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 # <pre> +# @(#)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 +# <a href="http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf"> +# http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf +# </a> +# 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: +# <a href="http://www.timeanddate.com/news/time/south-australia-extends-dst.html"> +# http://www.timeanddate.com/news/time/south-australia-extends-dst.html +# </a> ############################################################################### # 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 +# <pre> +# @(#)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 +# <pre> +# @(#)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 # <pre> +# @(#)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 +# <pre> +# @(#)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 @@ +# <pre> +# @(#)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 +# <pre> +# @(#)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 # <pre> +# @(#)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. +# +# <a href="http://www.worldtimezone.com/dst_news/dst_news_cuba05.html"> +# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html +# (in Spanish) +# </a> + +# From Arthur David Olson (2009-03-09) +# I listened over the Internet to +# <a href="http://media.enet.cu/readioreloj"> +# http://media.enet.cu/readioreloj +# </a> +# 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 +# <pre> +# @(#)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 +# <pre> +# @(#)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 +# <pre> +# @(#)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 +# <pre> +# @(#)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 # <pre> +# @(#)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) # </a> +# 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. +# <a href="http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm"> +# http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm +# </a> +# The new one is law [Number] 26.350 +# <a href="http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm"> +# http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm +# </a> +# 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 +# <a href="http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01"> +# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01 +# </a> +# +# 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 +# <a href="http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01"> +# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01 +# </a> +# +# 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) +# <a href="http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc"> +# http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc +# </a> + 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 +# <a href="http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102"> +# http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102 +# </a> +# (I couldn't find the decree, but +# <a href="http://www.sanluis.gov.ar"> +# www.sanluis.gov.ar +# <a/> +# 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 +# <a href="http://www.lanacion.com.ar/nota.asp?nota_id=1107912"> +# http://www.lanacion.com.ar/nota.asp?nota_id=1107912 +# </a> +# +# 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 +# <a href="http://www.timeanddate.com/news/time/san-luis-new-time-zone.html"> +# http://www.timeanddate.com/news/time/san-luis-new-time-zone.html +# </a> +# 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: -# <a href="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=3Ddo&secao=3D1&pagina=3D1&data=3D25/04/2008 +# <a href="https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008"> +# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008 # </a> # # 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 # </a> # Note that this link does not always work directly, but must be accessed # by going to -# <a href="http://www.mme.gov.br/first>" +# <a href="http://www.mme.gov.br/first"> # http://www.mme.gov.br/first # </a> # @@ -768,12 +869,33 @@ Rule Brazil 2007 only - Feb 25 0:00 0 - # Decree <a href="http://pcdsh01.on.br/DecHV6212.gif">6,212</a> (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 +# <a href="http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm"> +# http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm +# </a> +# [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 +# <pre> +# @(#)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/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 <<EOF +Usage: tzselect +Select a time zone interactively. + +Report bugs to tz@elsie.nci.nih.gov. +EOF + exit 0 +elif [ "$1" = "--version" ]; then + cat <<EOF +tzselect $VERSION +EOF + exit 0 +fi + # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/zone.tab 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/zdump.c b/timezone/zdump.c index 82c91e485e..7122bbf891 100644 --- a/timezone/zdump.c +++ b/timezone/zdump.c @@ -1,4 +1,9 @@ -static char elsieid[] = "@(#)zdump.c 8.6"; +/* +** This file is in the public domain, so clarified as of +** 2009-05-17 by Arthur David Olson. +*/ + +static char elsieid[] = "@(#)zdump.c 8.9"; /* ** This code has been made independent of the rest of the time @@ -230,6 +235,17 @@ const char * const zone; warned = TRUE; } +static void +usage(const char *progname, FILE *stream, int status) +{ + (void) fprintf(stream, +_("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\ +\n\ +Report bugs to tz@elsie.nci.nih.gov.\n"), + progname, progname); + exit(status); +} + int main(argc, argv) int argc; @@ -266,6 +282,8 @@ char * argv[]; if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(progname, stdout, EXIT_SUCCESS); } vflag = 0; cutarg = NULL; @@ -275,10 +293,7 @@ char * argv[]; else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { - (void) fprintf(stderr, -_("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"), - progname, progname); - exit(EXIT_FAILURE); + usage(progname, stderr, EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { @@ -349,13 +364,9 @@ _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"), (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { - if (t >= 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]; 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 +# <pre> +# @(#)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 |