Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Aug 2008 10:35:30 GMT
From:      Ed Schouten <ed@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 146904 for review
Message-ID:  <200808081035.m78AZUlD041213@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=146904

Change 146904 by ed@ed_flippo on 2008/08/08 10:35:01

	IFC. Last time I integrated at a bad moment.

Affected files ...

.. //depot/projects/mpsafetty/games/fortune/strfile/strfile.c#3 integrate
.. //depot/projects/mpsafetty/games/random/random.c#2 integrate
.. //depot/projects/mpsafetty/games/random/randomize_fd.c#2 integrate
.. //depot/projects/mpsafetty/games/random/randomize_fd.h#2 integrate
.. //depot/projects/mpsafetty/lib/msun/src/e_asinf.c#4 integrate
.. //depot/projects/mpsafetty/lib/msun/src/e_jnf.c#2 integrate
.. //depot/projects/mpsafetty/lib/msun/src/e_rem_pio2.c#2 integrate
.. //depot/projects/mpsafetty/lib/msun/src/e_rem_pio2f.c#2 integrate
.. //depot/projects/mpsafetty/lib/msun/src/s_csqrt.c#2 integrate
.. //depot/projects/mpsafetty/lib/msun/src/s_csqrtf.c#2 integrate
.. //depot/projects/mpsafetty/lib/msun/src/s_csqrtl.c#2 integrate
.. //depot/projects/mpsafetty/share/man/man9/condvar.9#2 integrate
.. //depot/projects/mpsafetty/share/man/man9/sleep.9#2 integrate
.. //depot/projects/mpsafetty/share/man/man9/sleepqueue.9#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/Makefile#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/Theory#2 delete
.. //depot/projects/mpsafetty/share/zoneinfo/africa#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/asia#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/australasia#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/europe#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/leapseconds#3 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/northamerica#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/southamerica#2 integrate
.. //depot/projects/mpsafetty/share/zoneinfo/zone.tab#2 integrate
.. //depot/projects/mpsafetty/sys/boot/sparc64/loader/locore.S#2 integrate
.. //depot/projects/mpsafetty/sys/boot/sparc64/loader/main.c#2 integrate
.. //depot/projects/mpsafetty/sys/dev/sym/sym_hipd.c#2 integrate
.. //depot/projects/mpsafetty/sys/sparc64/include/tte.h#2 integrate
.. //depot/projects/mpsafetty/sys/sun4v/include/tte.h#2 integrate
.. //depot/projects/mpsafetty/usr.bin/make/job.c#2 integrate
.. //depot/projects/mpsafetty/usr.sbin/freebsd-update/freebsd-update.sh#3 integrate

Differences ...

==== //depot/projects/mpsafetty/games/fortune/strfile/strfile.c#3 (text+ko) ====

@@ -46,7 +46,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/games/fortune/strfile/strfile.c,v 1.30 2008/08/07 20:05:51 ache Exp $");
+__FBSDID("$FreeBSD: src/games/fortune/strfile/strfile.c,v 1.31 2008/08/07 21:36:09 ache Exp $");
 
 # include	<sys/param.h>
 # include	<sys/endian.h>
@@ -447,6 +447,10 @@
 	off_t	tmp;
 	off_t	*sp;
 
+#if __FreeBSD_version < 800041
+	srandomdev();
+#endif
+
 	Tbl.str_flags |= STR_RANDOM;
 	cnt = Tbl.str_numstr;
 
@@ -455,7 +459,11 @@
 	 */
 
 	for (sp = Seekpts; cnt > 0; cnt--, sp++) {
+#if __FreeBSD_version < 800041
+		i = random() % cnt;
+#else
 		i = arc4random_uniform(cnt);
+#endif
 		tmp = sp[0];
 		sp[0] = sp[i];
 		sp[i] = tmp;

==== //depot/projects/mpsafetty/games/random/random.c#2 (text+ko) ====

@@ -46,7 +46,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/games/random/random.c,v 1.20 2006/04/14 17:32:27 ache Exp $");
+__FBSDID("$FreeBSD: src/games/random/random.c,v 1.22 2008/08/08 01:42:17 ache Exp $");
 
 #include <sys/types.h>
 
@@ -63,12 +63,6 @@
 
 #include "randomize_fd.h"
 
-/*
- * The random() function is defined to return values between 0 and
- * 2^31 - 1 inclusive in random(3).
- */
-#define	RANDOM_MAX	0x7fffffffL
-
 static void usage(void);
 
 int
@@ -137,8 +131,8 @@
 			err(1, "%s", *argv);
 		if (denom <= 0 || *ep != '\0')
 			errx(1, "denominator is not valid.");
-		if (random_exit && denom > 255)
-			errx(1, "denominator must be <= 255 for random exit.");
+		if (random_exit && denom > 256)
+			errx(1, "denominator must be <= 256 for random exit.");
 		break;
 	default:
 		usage();
@@ -168,7 +162,7 @@
 
 	/* Compute a random exit status between 0 and denom - 1. */
 	if (random_exit)
-		return (int)((denom * random()) / RANDOM_MAX);
+		return (int)(denom * random() / RANDOM_MAX);
 
 	/*
 	 * Select whether to print the first line.  (Prime the pump.)

==== //depot/projects/mpsafetty/games/random/randomize_fd.c#2 (text+ko) ====

@@ -25,13 +25,14 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/games/random/randomize_fd.c,v 1.3 2006/04/14 17:32:27 ache Exp $");
+__FBSDID("$FreeBSD: src/games/random/randomize_fd.c,v 1.5 2008/08/08 02:46:47 ache Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
 
 #include <ctype.h>
 #include <err.h>
+#include <errno.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -94,10 +95,11 @@
 randomize_fd(int fd, int type, int unique, double denom)
 {
 	u_char *buf;
-	u_int numnode, j, selected, slen;
+	u_int slen;
+	u_long i, j, numnode, selected;
 	struct rand_node *n, *prev;
 	int bufleft, eof, fndstr, ret;
-	size_t bufc, buflen, i;
+	size_t bufc, buflen;
 	ssize_t len;
 
 	rand_root = rand_tail = NULL;
@@ -173,6 +175,11 @@
 			    (type == RANDOM_TYPE_WORDS && isspace(buf[i])) ||
 			    (eof && i == buflen - 1)) {
 			make_token:
+				if (numnode == RANDOM_MAX) {
+					errno = EFBIG;
+					err(1, "too many lines");
+				}
+				numnode++;
 				n = rand_node_allocate();
 				if (-1 != (int)i) {
 					slen = i - (u_long)bufc;
@@ -188,7 +195,6 @@
 				}
 				rand_node_append(n);
 				fndstr = 1;
-				numnode++;
 			}
 		}
 	}
@@ -202,16 +208,18 @@
 	}
 
 	for (i = numnode; i > 0; i--) {
-		selected = ((int)denom * random())/(((double)RAND_MAX + 1) / numnode);
+		selected = random() % numnode;
 
 		for (j = 0, prev = n = rand_root; n != NULL; j++, prev = n, n = n->next) {
 			if (j == selected) {
 				if (n->cp == NULL)
 					break;
 
-				ret = printf("%.*s", (int)n->len - 1, n->cp);
-				if (ret < 0)
-					err(1, "printf");
+				if ((int)(denom * random() / RANDOM_MAX) == 0) {
+					ret = printf("%.*s", (int)n->len - 1, n->cp);
+					if (ret < 0)
+						err(1, "printf");
+				}
 				if (unique) {
 					if (n == rand_root)
 						rand_root = n->next;
@@ -221,8 +229,8 @@
 					prev->next = n->next;
 					rand_node_free(n);
 					numnode--;
-					break;
 				}
+				break;
 			}
 		}
 	}

==== //depot/projects/mpsafetty/games/random/randomize_fd.h#2 (text+ko) ====

@@ -23,12 +23,18 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/games/random/randomize_fd.h,v 1.2 2003/02/15 10:26:10 seanc Exp $
+ * $FreeBSD: src/games/random/randomize_fd.h,v 1.3 2008/08/08 01:42:17 ache Exp $
  */
 
 #ifndef __RANDOMIZE_FD__
 #define __RANDOMIZE_FD__
 
+/*
+ * The random() function is defined to return values between 0 and
+ * 2^31 - 1 inclusive in random(3).
+ */
+#define	RANDOM_MAX	0x80000000UL
+
 #define RANDOM_TYPE_UNSET 0
 #define RANDOM_TYPE_LINES 1
 #define RANDOM_TYPE_WORDS 2

==== //depot/projects/mpsafetty/lib/msun/src/e_asinf.c#4 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/e_asinf.c,v 1.12 2008/08/03 17:39:54 das Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/e_asinf.c,v 1.13 2008/08/08 00:21:27 das Exp $");
 
 #include "math.h"
 #include "math_private.h"
@@ -35,7 +35,7 @@
 __ieee754_asinf(float x)
 {
 	double s;
-	float t,w,p,q,c,r;
+	float t,w,p,q;
 	int32_t hx,ix;
 	GET_FLOAT_WORD(hx,x);
 	ix = hx&0x7fffffff;

==== //depot/projects/mpsafetty/lib/msun/src/e_jnf.c#2 (text+ko) ====

@@ -14,13 +14,12 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/e_jnf.c,v 1.9 2008/02/22 02:30:35 das Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/e_jnf.c,v 1.10 2008/08/08 00:21:27 das Exp $");
 
 #include "math.h"
 #include "math_private.h"
 
 static const float
-invsqrtpi=  5.6418961287e-01, /* 0x3f106ebb */
 two   =  2.0000000000e+00, /* 0x40000000 */
 one   =  1.0000000000e+00; /* 0x3F800000 */
 

==== //depot/projects/mpsafetty/lib/msun/src/e_rem_pio2.c#2 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2.c,v 1.18 2008/02/28 16:22:36 bde Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2.c,v 1.19 2008/08/08 00:21:27 das Exp $");
 
 /* __ieee754_rem_pio2(x,y)
  * 
@@ -39,7 +39,6 @@
 
 static const double
 zero =  0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
-half =  5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
 two24 =  1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
 invpio2 =  6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
 pio2_1  =  1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */

==== //depot/projects/mpsafetty/lib/msun/src/e_rem_pio2f.c#2 (text+ko) ====

@@ -15,7 +15,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2f.c,v 1.29 2008/02/28 16:22:36 bde Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2f.c,v 1.30 2008/08/08 00:21:27 das Exp $");
 
 /* __ieee754_rem_pio2f(x,y)
  *
@@ -36,7 +36,6 @@
  */
 
 static const double
-half =  5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
 invpio2 =  6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
 pio2_1  =  1.57079631090164184570e+00, /* 0x3FF921FB, 0x50000000 */
 pio2_1t =  1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */

==== //depot/projects/mpsafetty/lib/msun/src/s_csqrt.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_csqrt.c,v 1.3 2008/03/30 20:07:14 das Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_csqrt.c,v 1.4 2008/08/08 00:15:16 das Exp $");
 
 #include <complex.h>
 #include <float.h>
@@ -40,7 +40,7 @@
  * gcc generates is acceptable, since the special cases have already been
  * handled.
  */
-#pragma	STDC CX_LIMITED_RANGE	on
+#pragma	STDC CX_LIMITED_RANGE	ON
 
 /* We risk spurious overflow for components >= DBL_MAX / (1 + sqrt(2)). */
 #define	THRESH	0x1.a827999fcef32p+1022

==== //depot/projects/mpsafetty/lib/msun/src/s_csqrtf.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_csqrtf.c,v 1.2 2008/01/11 04:18:25 das Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_csqrtf.c,v 1.3 2008/08/08 00:15:16 das Exp $");
 
 #include <complex.h>
 #include <math.h>
@@ -39,7 +39,7 @@
  * gcc generates is acceptable, since the special cases have already been
  * handled.
  */
-#pragma	STDC CX_LIMITED_RANGE	on
+#pragma	STDC CX_LIMITED_RANGE	ON
 
 float complex
 csqrtf(float complex z)

==== //depot/projects/mpsafetty/lib/msun/src/s_csqrtl.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_csqrtl.c,v 1.1 2008/03/30 20:07:14 das Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_csqrtl.c,v 1.2 2008/08/08 00:15:16 das Exp $");
 
 #include <complex.h>
 #include <float.h>
@@ -40,7 +40,7 @@
  * gcc generates is acceptable, since the special cases have already been
  * handled.
  */
-#pragma	STDC CX_LIMITED_RANGE	on
+#pragma	STDC CX_LIMITED_RANGE	ON
 
 /* We risk spurious overflow for components >= LDBL_MAX / (1 + sqrt(2)). */
 #define	THRESH	(LDBL_MAX / 2.414213562373095048801688724209698L)

==== //depot/projects/mpsafetty/share/man/man9/condvar.9#2 (text+ko) ====

@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 .\" DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/condvar.9,v 1.21 2007/06/05 20:53:18 imp Exp $
+.\" $FreeBSD: src/share/man/man9/condvar.9,v 1.22 2008/08/07 21:00:13 jhb Exp $
 .\"
 .Dd June 5, 2007
 .Dt CONDVAR 9
@@ -136,9 +136,27 @@
 .Fa lock
 is atomically released before the thread is blocked, then reacquired
 before the function call returns.
+In addition, the thread will fully drop the
+.Va Giant
+mutex
+(even if recursed)
+while the it is suspended and will reacquire the
+.Va Giant
+mutex before the function returns.
 The
 .Fn cv_wait_unlock
 function does not reacquire the lock before returning.
+Note that the
+.Va Giant
+mutex may be specified as
+.Fa lock .
+However,
+.Va Giant
+may not be used as
+.Fa lock
+for the
+.Fn cv_wait_unlock
+function.
 All waiters must pass the same
 .Fa lock
 in conjunction with

==== //depot/projects/mpsafetty/share/man/man9/sleep.9#2 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/sleep.9,v 1.62 2008/04/04 16:59:58 imp Exp $
+.\" $FreeBSD: src/share/man/man9/sleep.9,v 1.63 2008/08/07 21:00:13 jhb Exp $
 .\"
 .Dd April 4, 2008
 .Os
@@ -157,6 +157,12 @@
 while the thread is suspended and will reacquire the
 .Va Giant
 mutex before the function returns.
+Note that the
+.Va Giant
+mutex may be specified as the lock to drop.
+In that case, however, the
+.Dv PDROP
+flag is not allowed.
 .Pp
 To avoid lost wakeups,
 either a lock should be used to protect against races,

==== //depot/projects/mpsafetty/share/man/man9/sleepqueue.9#2 (text+ko) ====

@@ -21,7 +21,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/sleepqueue.9,v 1.16 2007/09/28 11:13:40 gabor Exp $
+.\" $FreeBSD: src/share/man/man9/sleepqueue.9,v 1.17 2008/08/07 20:47:01 jhb Exp $
 .\"
 .Dd August 13, 2007
 .Dt SLEEPQUEUE 9
@@ -51,13 +51,13 @@
 .In sys/sleepqueue.h
 .Ft void
 .Fn init_sleepqueues "void"
-.Ft void
+.Ft int
 .Fn sleepq_abort "struct thread *td"
 .Ft void
 .Fn sleepq_add "void *wchan" "struct lock_object *lock" "const char *wmesg" "int flags" "int queue"
 .Ft struct sleepqueue *
 .Fn sleepq_alloc "void"
-.Ft void
+.Ft int
 .Fn sleepq_broadcast "void *wchan" "int flags" "int pri" "int queue"
 .Ft int
 .Fn sleepq_calc_signal_retval "int sig"
@@ -73,7 +73,7 @@
 .Fn sleepq_release "void *wchan"
 .Ft void
 .Fn sleepq_remove "struct thread *td" "void *wchan"
-.Ft void
+.Ft int
 .Fn sleepq_signal "void *wchan" "int flags" "int pri" "int queue"
 .Ft void
 .Fn sleepq_set_timeout "void *wchan" "int timo"
@@ -347,6 +347,21 @@
 One possible use is waking up a specific thread from a widely shared sleep
 channel.
 .Pp
+The
+.Fn sleepq_abort ,
+.Fn sleepq_broadcast ,
+and
+.Fn sleepq_signal
+functions all return a boolean value.
+If the return value is true,
+then at least one thread was resumed that is currently swapped out.
+The caller is responsible for awakening the scheduler process so that the
+resumed thread will be swapped back in.
+This is done by calling the
+.Fn kick_proc0
+function after releasing the sleep queue chain lock via a call to
+.Fn sleepq_release .
+.Pp
 The sleep queue interface is currently used to implement the
 .Xr sleep 9
 and

==== //depot/projects/mpsafetty/share/zoneinfo/Makefile#2 (text+ko) ====

@@ -1,29 +1,33 @@
-# $FreeBSD: src/share/zoneinfo/Makefile,v 1.22 2007/10/08 21:16:38 edwin Exp $
+# $FreeBSD: src/share/zoneinfo/Makefile,v 1.23 2008/08/08 04:37:43 edwin Exp $
 
 #
 # HOW TO UPDATE THE ZONEINFO DATA
 #
-# In a clean directory, unpack the distribution archive and run:
+# With the use of subversion, this is a little bit simpler than the CVS method.
 #
-# $ cvs -d :ext:ncvs.freebsd.org:/home/ncvs import -b 1.1.2 \
-#	src/share/zoneinfo ADO tzdataYYYYt
+# Import the new sources to the vendor branch:
 #
-# where YYYYt is the year and the version of the distribution, for
-# example 2004h.
+# $ cd ~/svn/vendor/tzdata/dist
+# $ tar zxvf /usr/ports/distfile/tzdata2008X.tar.gz
+#   (check with "svn stat" and "svn diff" if it all makes sense)
+# $ svn commit	# Commit message: "Vendor import of tzdata2008X (+details)" 
 #
-# Then go to the checked out source, and merge the changes from the
-# previous tag to the new tag in the HEAD:
+# Tag it
 #
-# $ cd ../src/share/zoneinfo
-# $ cvs update -jtzdataYYYYp -j tzdataYYYYt
+# $ cd ~/svn/vendor/tzdata
+# $ svn cp svn+ssh://svn.freebsd.org/base/vendor/tzdata/dist \
+#	svn+ssh://svn.freebsd.org/base/vendor/tzdata/tzdata2008X
+# $ svn update
 #
-# Update it again:
-# 
-# $ cvs update
+# Merge-from-vendor
 #
-# And push it back into CVS:
-#
-# $ cvs ci
+# $ cd ~svn/head/share/zoneinfo
+# $ svn update
+# $ svn merge --accept=postpone \
+#	svn+ssh://svn.freebsd.org/base/vendor/tzdata/dist .
+# $ svn diff --no-diff-deleted \
+#	--old=svn+ssh://svn.freebsd.org/base/vendor/tzdata/dist --new=.
+# $ svn commit
 #
 
 CLEANFILES+=	yearistype

==== //depot/projects/mpsafetty/share/zoneinfo/africa#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# @(#)africa	8.10
+# @(#)africa	8.15
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -387,9 +387,63 @@
 			 0:00	-	GMT
 
 # Mauritius
+
+# From Steffen Thorsen (2008-06-25):
+# Mauritius plans to observe DST from 2008-11-01 to 2009-03-31 on a trial
+# basis....
+# It seems that Mauritius observed daylight saving time from 1982-10-10 to 
+# 1983-03-20 as well, but that was not successful....
+# http://www.timeanddate.com/news/time/mauritius-daylight-saving-time.html
+
+# From Alex Krivenyshev (2008-06-25):
+# http://economicdevelopment.gov.mu/portal/site/Mainhomepage/menuitem.a42b24128104d9845dabddd154508a0c/?content_id=0a7cee8b5d69a110VgnVCM1000000a04a8c0RCRD
+
+# From Arthur David Olson (2008-06-30):
+# The www.timeanddate.com article cited by Steffen Thorsen notes that "A
+# final decision has yet to be made on the times that daylight saving
+# would begin and end on these dates." As a place holder, use midnight.
+
+# From Paul Eggert (2008-06-30):
+# Follow Thorsen on DST in 1982/1983, instead of Shanks & Pottenger.
+
+# From Steffen Thorsen (2008-07-10):
+# According to
+# <a href="http://www.lexpress.mu/display_article.php?news_id=111216">;
+# http://www.lexpress.mu/display_article.php?news_id=111216
+# </a>
+# (in French), Mauritius will start and end their DST a few days earlier
+# than previously announced (2008-11-01 to 2009-03-31).  The new start
+# date is 2008-10-26 at 02:00 and the new end date is 2009-03-27 (no time
+# given, but it is probably at either 2 or 3 wall clock time).
+# 
+# A little strange though, since the article says that they moved the date 
+# to align itself with Europe and USA which also change time on that date, 
+# but that means they have not paid attention to what happened in 
+# USA/Canada last year (DST ends first Sunday in November). I also wonder 
+# why that they end on a Friday, instead of aligning with Europe which 
+# changes two days later.
+
+# From Alex Krivenyshev (2008-07-11):
+# Seems that English language article "The revival of daylight saving
+# time:  Energy conservation?"-# No. 16578 (07/11/2008) was originally
+# published on Monday, June 30, 2008...
+#
+# I guess that article in French "Le gouvernement avance l'introduction
+# de l'heure d'ete" stating that DST in Mauritius starting on October 26
+# and ending on March 27, 2009 is the most recent one.
+# ...
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_mauritius02.html">;
+# http://www.worldtimezone.com/dst_news/dst_news_mauritius02.html
+# </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	only	-	Oct	26	2:00s	1:00	S
+Rule Mauritius	2009	only	-	Mar	27	2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
-			4:00	-	MUT	# Mauritius Time
+			4:00 Mauritius	MU%sT	# Mauritius Time
 # Agalega Is, Rodriguez
 # no information; probably like Indian/Mauritius
 
@@ -400,6 +454,77 @@
 
 # Morocco
 # See the `europe' file for Spanish Morocco (Africa/Ceuta).
+
+# From Alex Krivenyshev (2008-05-09):
+# Here is an article that Morocco plan to introduce Daylight Saving Time between
+# 1 June, 2008 and 27 September, 2008.
+#
+# "... Morocco is to save energy by adjusting its clock during summer so it will
+# be one hour ahead of GMT between 1 June and 27 September, according to
+# Communication Minister and Gov ernment Spokesman, Khalid Naciri...."
+#
+# <a href="http://www.worldtimezone.net/dst_news/dst_news_morocco01.html">;
+# http://www.worldtimezone.net/dst_news/dst_news_morocco01.html
+# </a>
+# OR
+# <a href="http://en.afrik.com/news11892.html">;
+# http://en.afrik.com/news11892.html
+# </a>
+
+# From Alex Krivenyshev (2008-05-09):
+# The Morocco time change can be confirmed on Morocco web site Maghreb Arabe Presse:
+# <a href="http://www.map.ma/eng/sections/box3/morocco_shifts_to_da/view">;
+# http://www.map.ma/eng/sections/box3/morocco_shifts_to_da/view
+# </a>
+#
+# Morocco shifts to daylight time on June 1st through September 27, Govt.
+# spokesman.
+
+# From Patrice Scattolin (2008-05-09):
+# According to this article:
+# <a href="http://www.avmaroc.com/actualite/heure-dete-comment-a127896.html">;
+# http://www.avmaroc.com/actualite/heure-dete-comment-a127896.html
+# </a>
+# (and republished here:
+# <a href="http://www.actu.ma/heure-dete-comment_i127896_0.html">;
+# http://www.actu.ma/heure-dete-comment_i127896_0.html
+# </a>
+# )
+# the changes occurs at midnight:
+#
+# saturday night may 31st at midnight (which in french is to be
+# intrepreted as the night between saturday and sunday)
+# sunday night the 28th  at midnight
+#
+# Seeing that the 28th is monday, I am guessing that she intends to say
+# the midnight of the 28th which is the midnight between sunday and
+# monday, which jives with other sources that say that it's inclusive
+# june1st to sept 27th.
+#
+# The decision was taken by decree *2-08-224 *but I can't find the decree
+# published on the web.
+#
+# It's also confirmed here:
+# <a href="http://www.maroc.ma/NR/exeres/FACF141F-D910-44B0-B7FA-6E03733425D1.htm">;
+# http://www.maroc.ma/NR/exeres/FACF141F-D910-44B0-B7FA-6E03733425D1.htm
+# </a>
+# on a government portal as being  between june 1st and sept 27th (not yet
+# posted in english).
+#
+# The following google query will generate many relevant hits:
+# <a href="http://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search">;
+# http://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search
+# </a>
+
+# From Alex Krivenyshev (2008-05-09):
+# Is Western Sahara (part which administrated by Morocco) going to follow
+# Morocco DST changes?  Any information?  What about other part of
+# Western Sahara - under administration of POLISARIO Front (also named
+# SADR Saharawi Arab Democratic Republic)?
+
+# From Arthur David Olson (2008-05-09):
+# XXX--guess that it is only Morocco for now; guess only 2008 for now.
+
 # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
 Rule	Morocco	1939	only	-	Nov	19	 0:00	0	-
@@ -416,11 +541,13 @@
 Rule	Morocco	1977	only	-	Sep	28	 0:00	0	-
 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	28	 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
 			 1:00	-	CET	1986
-			 0:00	-	WET
+			 0:00	Morocco	WE%sT
 # Western Sahara
 Zone Africa/El_Aaiun	-0:52:48 -	LMT	1934 Jan
 			-1:00	-	WAT	1976 Apr 14

==== //depot/projects/mpsafetty/share/zoneinfo/asia#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# @(#)asia	8.18
+# @(#)asia	8.22
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -229,6 +229,28 @@
 # (could be true), for the moment I am assuming that those two
 # counties are mistakes in the astro.com data.
 
+# From Paul Eggert (2008-02-11):
+# I just now checked Google News for western news sources that talk
+# about China's single time zone, and couldn't find anything before 1986
+# talking about China being in one time zone.  (That article was: Jim
+# Mann, "A clumsy embrace for another western custom: China on daylight
+# time--sort of", Los Angeles Times, 1986-05-05.  By the way, this
+# article confirms the tz database's data claiming that China began
+# observing daylight saving time in 1986.
+#
+# From Thomas S. Mullaney (2008-02-11):
+# I think you're combining two subjects that need to treated 
+# separately: daylight savings (which, you're correct, wasn't 
+# implemented until the 1980s) and the unified time zone centered near 
+# Beijing (which was implemented in 1949). Briefly, there was also a 
+# "Lhasa Time" in Tibet and "Urumqi Time" in Xinjiang. The first was 
+# ceased, and the second eventually recognized (again, in the 1980s).
+#
+# From Paul Eggert (2008-06-30):
+# There seems to be a good chance China switched to a single time zone in 1949
+# rather than in 1980 as Shanks & Pottenger have it, but we don't have a
+# reliable documentary source saying so yet, so for now we still go with
+# Shanks & Pottenger.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Changbai Time ("Long-white Time", Long-white = Heilongjiang area)
@@ -1376,6 +1398,42 @@
 # They decided not to adopt daylight-saving time....
 # http://www.mongolnews.mn/index.php?module=unuudur&sec=view&id=15742
 
+# From Deborah Goldsmith (2008-03-30):
+# We received a bug report claiming that the tz database UTC offset for
+# Asia/Choibalsan (GMT+09:00) is incorrect, and that it should be GMT
+# +08:00 instead. Different sources appear to disagree with the tz
+# database on this, e.g.:
+#
+# <a href="http://www.timeanddate.com/worldclock/city.html?n=1026">;
+# http://www.timeanddate.com/worldclock/city.html?n=1026
+# </a>
+# <a href="http://www.worldtimeserver.com/current_time_in_MN.aspx">;
+# http://www.worldtimeserver.com/current_time_in_MN.aspx
+# </a>
+#
+# both say GMT+08:00.
+
+# From Steffen Thorsen (2008-03-31):
+# eznis airways, which operates several domestic flights, has a flight
+# schedule here:
+# <a href="http://www.eznis.com/Container.jsp?id=112">;
+# http://www.eznis.com/Container.jsp?id=112
+# </a>
+# (click the English flag for English)
+#
+# There it appears that flights between Choibalsan and Ulaanbatar arrive
+# about 1:35 - 1:50 hours later in local clock time, no matter the
+# direction, while Ulaanbaatar-Khvod takes 2 hours in the Eastern
+# direction and 3:35 back, which indicates that Ulaanbatar and Khvod are
+# in different time zones (like we know about), while Choibalsan and
+# Ulaanbatar are in the same time zone (correction needed).
+
+# From Arthur David Olson (2008-05-19):
+# Assume that Choibalsan is indeed offset by 8:00.
+# XXX--in the absence of better information, assume that transition
+# was at the start of 2008-03-31 (the day of Steffen Thorsen's report);
+# this is almost surely wrong.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	S
 Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
@@ -1411,7 +1469,8 @@
 Zone	Asia/Choibalsan	7:38:00 -	LMT	1905 Aug
 			7:00	-	ULAT	1978
 			8:00	-	ULAT	1983 Apr
-			9:00	Mongol	CHO%sT	# Choibalsan Time
+			9:00	Mongol	CHO%sT	2008 Mar 31 # Choibalsan Time
+			8:00	Mongol	CHO%sT
 
 # Nepal
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1461,10 +1520,32 @@
 # The minister told a news conference that the experiment had rather
 # shown 8 per cent higher consumption of electricity.
 
+# From Alex Krivenyshev (2008-05-15):
+# 
+# Here is an article that Pakistan plan to introduce Daylight Saving Time 
+# on June 1, 2008 for 3 months.
+# 
+# "... The federal cabinet on Wednesday announced a new conservation plan to help 
+# reduce load shedding by approving the closure of commercial centres at 9pm and 
+# moving clocks forward by one hour for the next three months. 
+# ...."
+# 
+# <a href="http://www.worldtimezone.net/dst_news/dst_news_pakistan01.html">;
+# http://www.worldtimezone.net/dst_news/dst_news_pakistan01.html
+# </a>
+# OR
+# <a href="http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4">;
+# http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4
+# </a>
+
+# From Arthur David Olson (2008-05-19):
+# XXX--midnight transitions is a guess; 2008 only is a guess.
 
 # 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	-	Sep	1	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Karachi	4:28:12 -	LMT	1907
 			5:30	-	IST	1942 Sep

==== //depot/projects/mpsafetty/share/zoneinfo/australasia#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# @(#)australasia	8.8
+# @(#)australasia	8.9
 # <pre>
 
 # This file also includes Pacific islands.
@@ -1346,7 +1346,7 @@
 # * Tonga will introduce DST in November
 #
 # I was given this link by John Letts:
-# <a hef="http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm">;
+# <a href="http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm">;
 # http://news.bbc.co.uk/hi/english/world/asia-pacific/newsid_424000/424764.stm
 # </a>
 #
@@ -1356,7 +1356,7 @@
 # (12 + 1 hour DST).
 
 # From Arthur David Olson (1999-09-20):
-# According to <a href="http://www.tongaonline.com/news/sept1799.html>;
+# According to <a href="http://www.tongaonline.com/news/sept1799.html">;
 # http://www.tongaonline.com/news/sept1799.html
 # </a>:
 # "Daylight Savings Time will take effect on Oct. 2 through April 15, 2000

==== //depot/projects/mpsafetty/share/zoneinfo/europe#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# @(#)europe	8.12
+# @(#)europe	8.17
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -457,7 +457,7 @@
 Rule	EU	1981	max	-	Mar	lastSun	 1:00u	1:00	S
 Rule	EU	1996	max	-	Oct	lastSun	 1:00u	0	-
 # The most recent directive covers the years starting in 2002.  See:
-# <a href="http://europa.eu.int/eur-lex/en/lif/dat/2000/en_300L0084.html"
+# <a href="http://europa.eu.int/eur-lex/en/lif/dat/2000/en_300L0084.html">;
 # Directive 2000/84/EC of the European Parliament and of the Council
 # of 19 January 2001 on summer-time arrangements.
 # </a>
@@ -480,9 +480,48 @@
 Rule	C-Eur	1942	only	-	Nov	 2	 2:00s	0	-
 Rule	C-Eur	1943	only	-	Mar	29	 2:00s	1:00	S
 Rule	C-Eur	1943	only	-	Oct	 4	 2:00s	0	-
-Rule	C-Eur	1944	only	-	Apr	 3	 2:00s	1:00	S
+Rule	C-Eur	1944	1945	-	Apr	Mon>=1	 2:00s	1:00	S
 # Whitman gives 1944 Oct 7; go with Shanks & Pottenger.
 Rule	C-Eur	1944	only	-	Oct	 2	 2:00s	0	-
+# From Jesper Norgaard Welen (2008-07-13):
+#
+# I found what is probably a typo of 2:00 which should perhaps be 2:00s
+# in the C-Eur rule from tz database version 2008d (this part was
+# corrected in version 2008d). The circumstancial evidence is simply the
+# tz database itself, as seen below:
+#
+# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15  0:01
+#    0:00 France WE%sT 1945 Sep 16  3:00
+#
+# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
+#    0:00 France WE%sT 1945 Sep 16 3:00
+#
+# Zone Europe/Belgrade 1:22:00 - LMT 1884
+#    1:00 1:00 CEST 1945 Sep 16  2:00s
+#
+# Rule France 1945 only - Sep 16  3:00 0 -
+# Rule Belgium 1945 only - Sep 16  2:00s 0 -
+# Rule Neth 1945 only - Sep 16 2:00s 0 -
+#
+# The rule line to be changed is:
+#
+# Rule C-Eur 1945 only - Sep 16  2:00 0 -
+#
+# It seems that Paris, Monaco, Rule France, Rule Belgium all agree on
+# 2:00 standard time, e.g. 3:00 local time.  However there are no
+# countries that use C-Eur rules in September 1945, so the only items
+# affected are apparently these ficticious zones that translates acronyms
+# CET and MET:
+#
+# Zone CET  1:00 C-Eur CE%sT
+# Zone MET  1:00 C-Eur ME%sT
+#
+# It this is right then the corrected version would look like:
+#
+# Rule C-Eur 1945 only - Sep 16  2:00s 0 -
+#
+# A small step for mankind though 8-)
+Rule	C-Eur	1945	only	-	Sep	16	 2:00s	0	-
 Rule	C-Eur	1977	1980	-	Apr	Sun>=1	 2:00s	1:00	S
 Rule	C-Eur	1977	only	-	Sep	lastSun	 2:00s	0	-
 Rule	C-Eur	1978	only	-	Oct	 1	 2:00s	0	-
@@ -725,7 +764,8 @@
 Zone	Europe/Sofia	1:33:16 -	LMT	1880
 			1:56:56	-	IMT	1894 Nov 30 # Istanbul MT?
 			2:00	-	EET	1942 Nov  2  3:00
-			1:00	C-Eur	CE%sT	1945 Apr  2  3:00
+			1:00	C-Eur	CE%sT	1945
+			1:00	-	CET	1945 Apr 2 3:00
 			2:00	-	EET	1979 Mar 31 23:00
 			2:00	Bulg	EE%sT	1982 Sep 26  2:00
 			2:00	C-Eur	EE%sT	1991
@@ -1093,33 +1133,40 @@
 # [See tz-link.htm for the URL.]
 
 # From Joerg Schilling (2002-10-23):
-# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by <a
-# href="http://www.dhm.de/lemo/html/biografien/BersarinNikolai/">;
+# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by
+# <a href="http://www.dhm.de/lemo/html/biografien/BersarinNikolai/">;
 # General [Nikolai] Bersarin</a>.
 
 # From Paul Eggert (2003-03-08):
 # <a href="http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf">;
+# http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
+# </a>
 # says that Bersarin issued an order to use Moscow time on May 20.
 # However, Moscow did not observe daylight saving in 1945, so
 # this was equivalent to CEMT (GMT+3), not GMT+4.
 
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Germany	1945	only	-	Apr	 2	2:00s	1:00	S
-Rule	Germany	1945	only	-	May	24	2:00	2:00	M # Midsummer
-Rule	Germany	1945	only	-	Sep	24	3:00	1:00	S
-Rule	Germany	1945	only	-	Nov	18	2:00s	0	-
 Rule	Germany	1946	only	-	Apr	14	2:00s	1:00	S
 Rule	Germany	1946	only	-	Oct	 7	2:00s	0	-
 Rule	Germany	1947	1949	-	Oct	Sun>=1	2:00s	0	-
-Rule	Germany	1947	only	-	Apr	 6	2:00s	1:00	S
+# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
+# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
+# Go with the PTB.
+Rule	Germany	1947	only	-	Apr	 6	3:00s	1:00	S
 Rule	Germany	1947	only	-	May	11	2:00s	2:00	M
 Rule	Germany	1947	only	-	Jun	29	3:00	1:00	S
 Rule	Germany	1948	only	-	Apr	18	2:00s	1:00	S
 Rule	Germany	1949	only	-	Apr	10	2:00s	1:00	S
+
+Rule SovietZone	1945	only	-	May	24	2:00	2:00	M # Midsummer
+Rule SovietZone	1945	only	-	Sep	24	3:00	1:00	S
+Rule SovietZone	1945	only	-	Nov	18	2:00s	0	-
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Berlin	0:53:28 -	LMT	1893 Apr
-			1:00	C-Eur	CE%sT	1945 Apr 2 2:00
+			1:00	C-Eur	CE%sT	1945 May 24 2:00
+			1:00 SovietZone	CE%sT	1946
 			1:00	Germany	CE%sT	1980
 			1:00	EU	CE%sT
 
@@ -1196,7 +1243,7 @@
 Zone	Europe/Budapest	1:16:20 -	LMT	1890 Oct
 			1:00	C-Eur	CE%sT	1918
 			1:00	Hungary	CE%sT	1941 Apr  6  2:00
-			1:00	C-Eur	CE%sT	1945 May  1 23:00
+			1:00	C-Eur	CE%sT	1945
 			1:00	Hungary	CE%sT	1980 Sep 28  2:00s
 			1:00	EU	CE%sT

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808081035.m78AZUlD041213>