mirror of
https://frontier.innolan.net/rainlance/amiga-tz.git
synced 2025-11-22 19:10:33 +00:00
main: distribute leapseconds in tzdata, and fix timestamps
Problem with leapseconds reported by Matt Burgess in <http://mm.icann.org/pipermail/tz/2013-September/020379.html> with a followup by Ian Abbott in <http://mm.icann.org/pipermail/tz/2013-September/020383.html>. * Makefile (MANTXTS): New macro. (maintainer-clean): Use it. (DOCS): Add it. (DATA): Add 'leapseconds'. (LEAP_DEPS): New macro. (leapseconds): Use it. (public): Don't depend on set-timestamps; each tarball does that individually now, to allow for more parallelization. (date.1.txt, newctime.3.txt, newstrftime.3.txt, newtzset.3.txt) (time2posix.3.txt, tzfile.5.txt, tzselect.8.txt, zdump.8.txt) (zic.8.txt): Depend on the corresponding non-.txt file. $(MANTXTS): New rule. (set-timestamps.out): Rename from set-timestamps, and make it a file, so that it has its own timestamp; this avoids useless rework. Depend on $(ENCHILADA) and ignore files under Git that are not also listed in $(ENCHILADA). Set the timestamp of 'leapseconds' and each $(MANTXTS) to be the maximum of its dependencies, to avoid timestamp churn in future tarballs. Prefer touch -m, as we don't care about access time here. (tzcode$(VERSION).tar.gz, tzdata$(VERSION).tar.gz): Depend on set-timestamps.out rather than the individual files, so timestamps are set before creating the tarballs even when make is parallelized. (tzcode$(VERSION).tar.gz): Don't mention *.[1-8].txt explicitly, since we now get $(MANTXTS) via $(DOCS). * NEWS: Document the above.
This commit is contained in:
53
Makefile
53
Makefile
@ -311,8 +311,12 @@ NEWUCBSRCS= date.c strftime.c
|
||||
SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) tzselect.ksh
|
||||
MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \
|
||||
tzfile.5 tzselect.8 zic.8 zdump.8
|
||||
MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \
|
||||
time2posix.3.txt \
|
||||
tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
|
||||
date.1.txt
|
||||
COMMON= Makefile README
|
||||
DOCS= NEWS Theory $(MANS) date.1
|
||||
DOCS= NEWS Theory $(MANS) date.1 $(MANTXTS)
|
||||
PRIMARY_YDATA= africa antarctica asia australasia \
|
||||
europe northamerica southamerica
|
||||
YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward
|
||||
@ -320,8 +324,9 @@ NDATA= systemv factory
|
||||
SDATA= solar87 solar88 solar89
|
||||
TDATA= $(YDATA) $(NDATA) $(SDATA)
|
||||
TABDATA= iso3166.tab zone.tab
|
||||
LEAP_DEPS= leapseconds.awk leap-seconds.list
|
||||
DATA= $(YDATA) $(NDATA) $(SDATA) $(TABDATA) \
|
||||
leap-seconds.list yearistype.sh
|
||||
leapseconds $(LEAP_DEPS) yearistype.sh
|
||||
WEB_PAGES= tz-art.htm tz-link.htm
|
||||
AWK_SCRIPTS= checktab.awk leapseconds.awk
|
||||
MISC= usno1988 usno1989 usno1989a usno1995 usno1997 usno1998 \
|
||||
@ -382,7 +387,7 @@ yearistype: yearistype.sh
|
||||
cp yearistype.sh yearistype
|
||||
chmod +x yearistype
|
||||
|
||||
leapseconds: leapseconds.awk leap-seconds.list
|
||||
leapseconds: $(LEAP_DEPS)
|
||||
$(AWK) -f leapseconds.awk leap-seconds.list >$@
|
||||
|
||||
posix_only: zic $(TDATA)
|
||||
@ -460,22 +465,38 @@ clean: clean_misc
|
||||
maintainer-clean: clean
|
||||
@echo 'This command is intended for maintainers to use; it'
|
||||
@echo 'deletes files that may need special tools to rebuild.'
|
||||
rm -f *.[1-8].txt *.asc *.tar.gz
|
||||
rm -f $(MANTXTS) *.asc *.tar.gz
|
||||
|
||||
names:
|
||||
@echo $(ENCHILADA)
|
||||
|
||||
public: check check_public check_time_t_alternatives \
|
||||
set-timestamps tarballs signatures
|
||||
tarballs signatures
|
||||
|
||||
date.1.txt: date.1
|
||||
newctime.3.txt: newctime.3
|
||||
newstrftime.3.txt: newstrftime.3
|
||||
newtzset.3.txt: newtzset.3
|
||||
time2posix.3.txt: time2posix.3
|
||||
tzfile.5.txt: tzfile.5
|
||||
tzselect.8.txt: tzselect.8
|
||||
zdump.8.txt: zdump.8
|
||||
zic.8.txt: zic.8
|
||||
|
||||
$(MANTXTS): workman.sh
|
||||
LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@
|
||||
|
||||
# Set the time stamps to those of the git repository, if available,
|
||||
# and if the files have not changed since then.
|
||||
# This uses GNU 'touch' syntax 'touch -d@N FILE',
|
||||
# where N is the number of seconds since 1970.
|
||||
# If git or GNU 'touch' is absent, do nothing and fail.
|
||||
set-timestamps:
|
||||
-files=`git ls-files` && \
|
||||
touch -d @1 test.out && rm -f test.out && \
|
||||
# Also, set the timestamp of each prebuilt file like 'leapseconds'
|
||||
# to be the maximum of the files it depends on.
|
||||
set-timestamps.out: $(ENCHILADA)
|
||||
rm -f $@
|
||||
-files=`git ls-files $(ENCHILADA)` && \
|
||||
touch -md @1 test.out && rm -f test.out && \
|
||||
for file in $$files; do \
|
||||
if git diff --quiet $$file; then \
|
||||
time=`git log -1 --format='tformat:%ct' $$file` && \
|
||||
@ -484,6 +505,12 @@ set-timestamps:
|
||||
echo >&2 "$$file: warning: does not match repository"; \
|
||||
fi || exit; \
|
||||
done
|
||||
touch -cmr `ls -t $(LEAP_DEPS) | sed 1q` leapseconds
|
||||
for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \
|
||||
touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \
|
||||
exit; \
|
||||
done
|
||||
touch $@
|
||||
|
||||
# The zics below ensure that each data file can stand on its own.
|
||||
# We also do an all-files run to catch links to links.
|
||||
@ -529,17 +556,13 @@ check_time_t_alternatives:
|
||||
|
||||
tarballs: tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
|
||||
|
||||
tzcode$(VERSION).tar.gz: $(COMMON) $(DOCS) $(SOURCES) $(MISC)
|
||||
for i in *.[1-8] ; do \
|
||||
LC_ALL=C sh workman.sh $$i > $$i.txt && \
|
||||
touch -r $$i $$i.txt || exit; \
|
||||
done
|
||||
tzcode$(VERSION).tar.gz: set-timestamps.out
|
||||
LC_ALL=C && export LC_ALL && \
|
||||
tar $(TARFLAGS) -cf - \
|
||||
$(COMMON) $(DOCS) $(SOURCES) $(MISC) *.[1-8].txt | \
|
||||
$(COMMON) $(DOCS) $(SOURCES) $(MISC) | \
|
||||
gzip $(GZIPFLAGS) > $@
|
||||
|
||||
tzdata$(VERSION).tar.gz: $(COMMON) $(DATA)
|
||||
tzdata$(VERSION).tar.gz: set-timestamps.out
|
||||
LC_ALL=C && export LC_ALL && \
|
||||
tar $(TARFLAGS) -cf - $(COMMON) $(DATA) | \
|
||||
gzip $(GZIPFLAGS) > $@
|
||||
|
||||
7
NEWS
7
NEWS
@ -3,6 +3,13 @@ News for the tz database
|
||||
|
||||
Unreleased, experimental changes
|
||||
|
||||
Changes affecting the build procedure
|
||||
|
||||
The 'leapseconds' file is again put into the tzdata tarball.
|
||||
Also, 'leapseconds.awk', so tzdata is self-contained. (Thanks to
|
||||
Matt Burgess and Ian Abbott.) The timestamps of these and other
|
||||
dependent files in tarballs are adjusted more consistently.
|
||||
|
||||
Changes affecting documentation and commentary
|
||||
|
||||
The README file is now part of the data tarball as well as the code.
|
||||
|
||||
Reference in New Issue
Block a user