<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in README</title>
    <link>http://nxr.netbsd.org/rss/src/lib/libc/time/README</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>Release 2025c - 2025-12-10 14:42:37 -0800<br/><br/>  Briefly:<br/>    Several code changes for compatibility with FreeBSD.<br/><br/>  Changes to code<br/><br/>    An unset TZ is no longer invalid when /etc/localtime is missing,<br/>    and is abbreviated "UTC" not "-00".  This reverts to 2024b behavior.<br/>    (Problem and patch reported by Dag-Erling Smørgrav.)<br/><br/>    New function offtime_r, short for fixed-offset localtime_rz.<br/>    It is defined if STD_INSPIRED is defined.<br/>    (Patch from Dag-Erling Smørgrav.)<br/><br/>    tzset etc. are now more cautious about questionable TZ settings.<br/>    Privileged programs now reject TZ settings that start with '/',<br/>    unless they are TZDEFAULT (default "/etc/localtime") or<br/>    start with TZDIR then '/' (default "/usr/share/zoneinfo/").<br/>    Unprivileged programs now require files to be regular files<br/>    and reject relative names containing ".." directory components;<br/>    formerly, only privileged programs did those two things.<br/>    These changes were inspired by similar behavior in FreeBSD.<br/>    On NetBSD, unprivileged programs now use O_REGULAR to check<br/>    whether a TZ setting starting with '/' names a regular file,<br/>    avoiding a minor security race still present elsewhere.<br/>    TZ strings taken from tzalloc arguments are now treated with<br/>    no less caution than TZ strings taken from the environment, as<br/>    the old undocumented behavior would have been hard to explain.<br/>    tzset etc. no longer use the 'access' system call to check access;<br/>    instead they now use the system calls issetugid, getauxval,<br/>    getresuid/getresgid, and geteuid/getegid/getuid/getgid (whichever<br/>    first works) to test whether a program is privileged.<br/>    Compile with -DHAVE_SYS_AUXV_H=[01] to enable or disable<br/>    &lt;sys/auxv.h&gt; which (if it defines AT_SECURE) enables getauxval,<br/>    and compile with -DHAVE_ISSETUGID=[01], -DHAVE_GETRESUID=[01], and<br/>    -DHAVE_GETEUID=[01] to enable or disable the other calls' use.<br/><br/>    The new CFLAGS option -DTZ_CHANGE_INTERVAL=N makes tzset etc.<br/>    check for TZif file changes if the in-memory data are N seconds<br/>    old or more, and are derived from the TZ environment variable.<br/>    This is intended for platforms that want tzset etc. to reflect<br/>    changes to whatever file TZ selects (including changes to<br/>    /etc/localtime if TZ is unset).  If N is negative (the default)<br/>    these checks are omitted; this is the traditional behavior.<br/><br/>    The new CFLAGS options -DHAVE_STRUCT_STAT_ST_CTIM=0 and<br/>    -DHAVE_STRUCT_TIMESPEC=0 port to non-POSIX.1-2008 platforms<br/>    that lack st_ctim and struct timespec, respectively.<br/><br/>    tzset etc. now treat ' ' like '_' in time zone abbreviations,<br/>    just as they treat other invalid bytes.  This continues the<br/>    transition begun in release 96k, which removed spaces in tzdata<br/>    because the spaces break time string parsers.<br/><br/>    The new CFLAGS option -DTHREAD_PREFER_SINGLE causes tzcode<br/>    in single-threaded processes to avoid locks, as FreeBSD does.<br/>    This can save time in single-threaded apps.  The threadedness<br/>    testing costs CPU time and energy in multi-threaded apps.<br/>    New options -DHAVE___ISTHREADED and -DHAVE_SYS_SINGLE_THREADED_H<br/>    can help configure how to test for single-threadedness.<br/><br/>    The new CFLAGS option -DTHREAD_RWLOCK uses read-write locks, as<br/>    macOS does, instead of mutexes.  This saves real time when TZ is<br/>    rarely changing and many threads call tzcode simultaneously.<br/>    It costs more CPU time and energy.<br/><br/>    The new CFLAGS option -TTHREAD_TM_MULTI causes localtime to return<br/>    a pointer to thread-specific memory, as FreeBSD does, instead of<br/>    to the same memory in all threads.  This supports unportable<br/>    programs that incorrectly use localtime instead of localtime_r.<br/>    This option affects gmtime and offtime similarly to localtime.<br/>    Because the corresponding storage is freed on thread exit, this<br/>    option is incompatible with POSIX.1-2024 and earlier.  It also<br/>    costs CPU time and memory.<br/><br/>    tzfree now preserves errno, consistently with POSIX.1-2024 'free'.<br/><br/>    tzcode now uses mempcpy if available, guessing its availability.<br/>    Compile with -DHAVE_MEMPCPY=1 or 0 to override the guess.<br/><br/>    tzcode now uses strnlen to improve asymptotic performance a bit.<br/>    Compile with -DHAVE_STRNLEN=0 if your platform lacks it.<br/><br/>    tzcode now hand-declares unistd.h-provided symbols like getopt<br/>    if HAVE_UNISTD_H=0, not if HAVE_POSIX_DECLS=0.<br/><br/>    tzset etc. now have an experimental OPENAT_TZDIR option;<br/>    see Makefile and localtime.c for details.<br/><br/>    On platforms like GNU/Hurd that do not define PATH_MAX,<br/>    exceedingly long TZ strings no longer fail merely because they<br/>    exceed an arbitrary file name length limit imposed by tzcode.<br/><br/>    zic has new options inspired by FreeBSD.  '-D' skips creation of<br/>    output ancestor directories, '-m MODE' sets output files' mode,<br/>    and '-u OWNER[:GROUP]' sets output files' owner and group.<br/><br/>    zic now uses the fdopen function, which was standardized by<br/>    POSIX.1-1988 and is now safe to use in portable code.<br/>    This replaces its use of the older umask function, which<br/>    complicated maintenance.</title>
    <description>/src/lib/libc/time/README - 1.18</description>
    <pubDate>Thu Dec 18 17:45:29 UTC 2025</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Import tzcode 2023d:<br/><br/>    localtime.c no longer mishandles TZif files that contain a single<br/>    transition into a DST regime.  Previously, it incorrectly assumed<br/>    DST was in effect before the transition too.  (Thanks to Alois<br/>    Treindl for debugging help.)<br/><br/>    localtime.c's timeoff no longer collides with OpenBSD 7.4.<br/><br/>    The C code now uses _Generic only if __STDC_VERSION__ says the<br/>    compiler is C11 or later.<br/><br/>    tzselect now optionally reads zonenow.tab, to simplify when<br/>    configuring only for timestamps dated from now on.<br/><br/>    tzselect no longer creates temporary files.<br/><br/>    tzselect no longer mishandles the following:<br/><br/>      Spaces and most other special characters in BUGEMAIL, PACKAGE,<br/>      TZDIR, and VERSION.<br/><br/>      TZ strings when using mawk 1.4.3, which mishandles regular<br/>      expressions of the form /X{2,}/.<br/><br/>      ISO 6709 coordinates when using an awk that lacks the GNU<br/>      extension of newlines in -v option-arguments.<br/><br/>      Non UTF-8 locales when using an iconv command that lacks the GNU<br/>      //TRANSLIT extension.<br/><br/>    zic no longer mishandles data for Palestine after the year 2075.<br/>    Previously, it incorrectly omitted post-2075 transitions that are<br/>    predicted for just before and just after Ramadan.  (Thanks to Ken<br/>    Murchison for debugging help.)<br/><br/>    zic now works again on Linux 2.6.16 and 2.6.17 (2006).</title>
    <description>/src/lib/libc/time/README - 1.17</description>
    <pubDate>Sat Dec 23 20:48:38 UTC 2023</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Merge tzcode2020b (except we keep tzsetwall(3) for now for compatibility,<br/>and we were "slim" already)<br/><br/>Support for zic's long-obsolete '-y YEARISTYPE' option has been<br/>removed and, with it, so has support for the TYPE field in Rule<br/>lines, which is now reserved for compatibility with earlier zic.<br/>These features were previously deprecated in release 2015f.<br/>(Thanks to Tim Parenti.)<br/><br/>zic now defaults to '-b slim' instead of to '-b fat'.<br/><br/>zic's new '-l -' and '-p -' options uninstall any existing<br/>localtime and posixrules files, respectively.<br/><br/>The undocumented and ineffective tzsetwall function has been<br/>removed.</title>
    <description>/src/lib/libc/time/README - 1.16</description>
    <pubDate>Fri Oct 09 18:38:48 UTC 2020</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>merge 2019a<br/><br/>  Changes to code<br/><br/>    zic now has an -r option to limit the time range of output data.<br/>    For example, 'zic -r @1000000000' limits the output data to<br/>    timestamps starting 1000000000 seconds after the Epoch.<br/>    This helps shrink output size and can be useful for applications<br/>    not needing the full timestamp history, such as TZDIST truncation;<br/>    see Internet RFC 8536 section 5.1.  (Inspired by a feature request<br/>    from Christopher Wong, helped along by bug reports from Wong and<br/>    from Tim Parenti.)<br/><br/>  Changes to documentation<br/><br/>    Mention Internet RFC 8536 (February 2019), which documents TZif.<br/><br/>    tz-link.html now cites tzdata-meta<br/>    &lt;https://tzdata-meta.timtimeonline.com/&gt;.</title>
    <description>/src/lib/libc/time/README - 1.15</description>
    <pubDate>Thu Apr 04 18:18:31 UTC 2019</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Update to 2018f:<br/><br/>  Changes to code<br/><br/>    zic now always generates TZif files where time type 0 is used for<br/>    timestamps before the first transition.  This simplifies the<br/>    reading of TZif files and should not affect behavior of existing<br/>    TZif readers because the same set of time types is used; only<br/>    their internal indexes may have changed.  This affects only the<br/>    legacy zones EST5EDT, CST6CDT, MST7MDT, PST8PDT, CET, MET, and<br/>    EET, which previously used nonzero types for these timestamps.<br/><br/>    Because of the type 0 change, zic no longer outputs a dummy<br/>    transition at time -2**59 (before the Big Bang), as clients should<br/>    no longer need this to handle historical timestamps correctly.<br/>    This reverts a change introduced in 2013d and shrinks most TZif<br/>    files by a few bytes.<br/><br/>    zic now supports negative time-of-day in Rule and Leap lines, e.g.,<br/>    "Rule X min max - Apr lastSun -6:00 1:00 -" means the transition<br/>    occurs at 18:00 on the Saturday before the last Sunday in April.<br/>    This behavior was documented in 2018a but the code did not<br/>    entirely match the documentation.<br/><br/>    localtime.c no longer requires at least one time type in TZif<br/>    files that lack transitions or have a POSIX-style TZ string.  This<br/>    future-proofs the code against possible future extensions to the<br/>    format that would allow TZif files with POSIX-style TZ strings and<br/>    without transitions or time types.<br/><br/>    A read-access subscript error in localtime.c has been fixed.<br/>    It could occur only in TZif files with timecnt == 0, something that<br/>    does not happen in practice now but could happen in future versions.<br/><br/>    localtime.c no longer ignores TZif POSIX-style TZ strings that<br/>    specify only standard time.  Instead, these TZ strings now<br/>    override the default time type for timestamps after the last<br/>    transition (or for all time stamps if there are no transitions),<br/>    just as DST strings specifying DST have always done.<br/><br/>    leapseconds.awk now outputs "#updated" and "#expires" comments,<br/>    and supports leap seconds at the ends of months other than June<br/>    and December.  (Inspired by suggestions from Chris Woodbury.)<br/><br/>  Changes to documentation<br/><br/>    New restrictions: A Rule name must start with a character that<br/>    is neither an ASCII digit nor "-" nor "+", and an unquoted name<br/>    should not use characters in the set "!$%&amp;'()*,/:;&lt;=&gt;?@[\]^`{|}~".<br/>    The latter restriction makes room for future extensions (a<br/>    possibility noted by Tom Lane).<br/><br/>    tzfile.5 now documents what time types apply before the first and<br/>    after the last transition, if any.<br/><br/>    Documentation now uses the spelling "timezone" for a TZ setting<br/>    that determines timestamp history, and "time zone" for a<br/>    geographic region currently sharing the same standard time.<br/><br/>    The name "TZif" is now used for the tz binary data format.<br/><br/>    tz-link.htm now mentions the A0 TimeZone Migration utilities.<br/>    (Thanks to Aldrin Martoq for the link.)</title>
    <description>/src/lib/libc/time/README - 1.14</description>
    <pubDate>Fri Oct 19 23:05:35 UTC 2018</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>branches:  1.13.2;  1.13.4;<br/>Merge tzcode2018c [ changelog with changes to tzdata sections removed ]<br/><br/>Release 2018c - 2018-01-22 23:00:44 -0800<br/><br/>  Changes to build procedure<br/><br/>    The build procedure now works around mawk 1.3.3's lack of support<br/>    for character class expressions.  (Problem reported by Ohyama.)<br/><br/><br/>Release 2018b - 2018-01-17 23:24:48 -0800<br/><br/>  Changes to build procedure<br/><br/>    The distribution now contains the file 'pacificnew' again.<br/>    This file was inadvertantly omitted in the 2018a distribution.<br/>    (Problem reported by Matias Fonzo.)<br/><br/><br/>Release 2018a - 2018-01-12 22:29:21 -0800<br/><br/>  Changes to build procedure<br/><br/>    The default installation locations have been changed to mostly<br/>    match Debian circa 2017, instead of being designed as an add-on to<br/>    4.3BSD circa 1986.  This affects the Makefile macros TOPDIR,<br/>    TZDIR, MANDIR, and LIBDIR.  New Makefile macros TZDEFAULT, USRDIR,<br/>    USRSHAREDIR, BINDIR, ZDUMPDIR, and ZICDIR let installers tailor<br/>    locations more precisely.  (This responds to suggestions from<br/>    Brian Inglis and from Steve Summit.)<br/><br/>    The default installation procedure no longer creates the<br/>    backward-compatibility link US/Pacific-New, which causes<br/>    confusion during user setup (e.g., see Debian bug 815200).<br/>    Use 'make BACKWARD="backward pacificnew"' to create the link<br/>    anyway, for now.  Eventually we plan to remove the link entirely.<br/><br/>    tzdata.zi now contains a version-number comment.<br/>    (Suggested by Tom Lane.)<br/><br/>    The Makefile now quotes values like BACKWARD more carefully when<br/>    passing them to the shell.  (Problem reported by Zefram.)<br/><br/>    Builders no longer need to specify -DHAVE_SNPRINTF on platforms<br/>    that have snprintf and use pre-C99 compilers.  (Problem reported<br/>    by Jon Skeet.)<br/><br/>  Changes to code<br/><br/>    zic has a new option -t FILE that specifies the location of the<br/>    file that determines local time when TZ is unset.  The default for<br/>    this location can be configured via the new TZDEFAULT makefile<br/>    macro, which defaults to /etc/localtime.<br/><br/>    Diagnostics and commentary now distinguish UT from UTC more<br/>    carefully; see theory.html for more information about UT vs UTC.<br/><br/>    zic has been ported to GCC 8's -Wstringop-truncation option.<br/>    (Problem reported by Martin Sebor.)<br/><br/>  Changes to documentation and commentary<br/><br/>    The zic man page now documents the longstanding behavior that<br/>    times and years can be out of the usual range, with negative times<br/>    counting backwards from midnight and with year 0 preceding year 1.<br/>    (Problem reported by Michael Deckers.)<br/><br/>    The theory.html file now mentions the POSIX limit of six chars<br/>    per abbreviation, and lists alphabetic abbreviations used.<br/><br/>    The files tz-art.htm and tz-link.htm have been renamed to<br/>    tz-art.html and tz-link.html, respectively, for consistency with<br/>    other file names and to simplify web server configuration.</title>
    <description>/src/lib/libc/time/README - 1.13</description>
    <pubDate>Thu Jan 25 22:48:42 UTC 2018</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>merge 2017a</title>
    <description>/src/lib/libc/time/README - 1.12</description>
    <pubDate>Sat Mar 11 18:23:14 UTC 2017</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>branches:  1.11.2;<br/>merge tzcode2016g</title>
    <description>/src/lib/libc/time/README - 1.11</description>
    <pubDate>Fri Oct 07 15:29:42 UTC 2016</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>branches:  1.10.2;<br/>Sync with 2016b</title>
    <description>/src/lib/libc/time/README - 1.10</description>
    <pubDate>Tue Mar 15 15:16:01 UTC 2016</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Sync with tzcode2014h</title>
    <description>/src/lib/libc/time/README - 1.9</description>
    <pubDate>Tue Oct 07 21:51:03 UTC 2014</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>branches:  1.8.4;<br/>update from tzcode 2013e to tzcode2013i<br/>i:<br/>    The compile-time flag NOSOLAR has been removed, as nowadays the<br/>    benefit of slightly shrinking runtime table size is outweighed by the<br/>    cost of disallowing potential future updates that exceed old limits.<br/>h:<br/>    Fix localtime overflow bugs with 32-bit unsigned time_t.<br/><br/>    zdump no longer assumes sscanf returns maximal values on overflow.<br/>g:<br/>    'zic' now runs on platforms that lack both hard links and symlinks.<br/>    (Thanks to Theo Veenker for reporting the problem, for MinGW.)<br/>    Also, fix some bugs on platforms that lack hard links but have symlinks.<br/><br/>    'zic -v' again warns that Asia/Tehran has no POSIX environment variable<br/>    to predict the far future, fixing a bug introduced in 2013e.<br/>f:<br/>    The types of the global variables 'timezone' and 'altzone' (if present)<br/>    have been changed back to 'long'.  This is required for 'timezone'<br/>    by POSIX, and for 'altzone' by common practice, e.g., Solaris 11.<br/>    These variables were originally 'long' in the tz code, but were<br/>    mistakenly changed to 'time_t' in 1987; nobody reported the<br/>    incompatibility until now.  The difference matters on x32, where<br/>    'long' is 32 bits and 'time_t' is 64.  (Thanks to Elliott Hughes.)</title>
    <description>/src/lib/libc/time/README - 1.8</description>
    <pubDate>Thu Dec 26 18:34:28 UTC 2013</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>branches:  1.7.2;<br/>merge 2012e</title>
    <description>/src/lib/libc/time/README - 1.7</description>
    <pubDate>Thu Aug 09 00:38:25 UTC 2012</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>branches:  1.6.6;<br/>Import tzcode2009k.<br/>- now understands 64bit time_t and 64bit data in timezone files.<br/>- localtime(), gmtime(), asctime() and ctime() may now fail with<br/>  a NULL result if time_t cannot be represented by struct tm.</title>
    <description>/src/lib/libc/time/README - 1.6</description>
    <pubDate>Thu Dec 31 22:49:15 UTC 2009</pubDate>
    <dc:creator>mlelstv</dc:creator>
</item>

<item>
    <title>Merge tzcode2002b.</title>
    <description>/src/lib/libc/time/README - 1.5</description>
    <pubDate>Tue Jan 29 00:40:33 UTC 2002</pubDate>
    <dc:creator>kleink</dc:creator>
</item>

<item>
    <title>branches:  1.4.12;<br/>sync with tzcode1998b</title>
    <description>/src/lib/libc/time/README - 1.4</description>
    <pubDate>Thu Jan 22 07:17:19 UTC 1998</pubDate>
    <dc:creator>jtc</dc:creator>
</item>

<item>
    <title>sync with tzcode1998a</title>
    <description>/src/lib/libc/time/README - 1.3</description>
    <pubDate>Thu Jan 22 07:06:56 UTC 1998</pubDate>
    <dc:creator>jtc</dc:creator>
</item>

<item>
    <title>RCS Id Police.</title>
    <description>/src/lib/libc/time/README - 1.2</description>
    <pubDate>Fri Jan 09 04:11:55 UTC 1998</pubDate>
    <dc:creator>perry</dc:creator>
</item>

<item>
    <title>branches:  1.1.1;<br/>Initial revision</title>
    <description>/src/lib/libc/time/README - 1.1</description>
    <pubDate>Fri Mar 10 07:08:14 UTC 1995</pubDate>
    <dc:creator>jtc</dc:creator>
</item>

<item>
    <title>import tzcode2009k</title>
    <description>/src/lib/libc/time/README - 1.1.1.7</description>
    <pubDate>Sun Oct 25 16:20:16 UTC 2009</pubDate>
    <dc:creator>mlelstv</dc:creator>
</item>

<item>
    <title>Import tzcode2002b.</title>
    <description>/src/lib/libc/time/README - 1.1.1.6</description>
    <pubDate>Tue Jan 29 00:30:29 UTC 2002</pubDate>
    <dc:creator>kleink</dc:creator>
</item>
</channel></rss>

