diff options
author | Stuart Bishop <stuart.bishop@canonical.com> | 2020-12-25 07:42:52 +1100 |
---|---|---|
committer | Stuart Bishop <stuart.bishop@canonical.com> | 2020-12-25 07:42:52 +1100 |
commit | aaef58a8e40d7e6bd70f2d4ce347caa772510e59 (patch) | |
tree | f30c29def341fdcb502e575c5a9441e4567a55c2 /Makefile | |
parent | a4a62d8d41eea2df3759cbcdbd9100a72e8c28c7 (diff) | |
download | pytz-git-aaef58a8e40d7e6bd70f2d4ce347caa772510e59.tar.gz |
Squashed 'tz/' changes from 9c175ec6c..a816a5c4d
efc5c0619 Release 2020e
b804a741d Improve doc of zic coalescing zone+DST transitions
c8891f390 Cite publication of Volgograd change
316c1598e Correct LMT and pre-1919 transitions for Nigeria
3dcdea78d Fix NEWS typo
c983a0fb7 Document zic coalescing zone+DST transitions
ce7b1bbc7 Seychelles switched from LMT to +04 on 1907-01-01
b980f1cac Model Turks & Caicos time 2015-2018 as AST
ff90fc93a Fix Vanuatu DST in 1973-1974 and 1984 transition
7c7419c6a Volgograd change likely December 27, not 20
0b5ae1fb7 Fix some errors in recent Bahamas changes
cd1769fe6 Fix Ghana again, for 1942 through 1946
3831c591e Fix Volgograd label in {zone,zone1970}.tab
adf4d8d35 Fix several pre-1946 transitions for Bahamas
0415d0e5f Re-fix Ghana typo for 1919/1920
6e7558f19 Fix Ghana typo for 1919/1920
271d9438b Volgograd switches from +04 to +03 on 12-20 02:00
a499dd6e0 * northamerica: Add URL for Yukon OIC 1980/02
7cc6d7c00 Fix several pre-1957 transitions for Ghana
17acee8cb Fix several pre-1957 transitions for Bermuda
1aca4cad3 Fix several pre-1972 transitions for Australia
a47ef9c71 * tz-link.html: Use <abbr> more systematically.
48e68fbfd Document "right" seconds better
beba17f43 Fix mistaken Belize interpretation
d7e93bdba Fix several Belize transitions 1942/1968
b231fbdb5 Port 'make rearguard_tarballs' to Solaris 10
8b21cc5d2 Fix Israel and Palestine transitions 1940/1985
52ba05422 Fix zone*.tab Yukon comment columns
b106a6e84 leapseconds now says why NIST, not IERS
eff0719a7 Fix Kenya transitions 1908/1960
78422f077 Use better fallback for unknown $(VERSION)
ac029805c * etcetera: Update comment in the light of Neil Fuller’s comments.
e4645c40a Port to downstream HP-UX-style ‘make’
git-subtree-dir: tz
git-subtree-split: a816a5c4de427cae12477455dea2bc4eb990b2c9
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 57 |
1 files changed, 43 insertions, 14 deletions
@@ -583,11 +583,19 @@ INSTALL: ALL install date.1 cp date '$(DESTDIR)$(BINDIR)/.' cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.' +# Calculate version number from git, if available. +# Otherwise, use $(VERSION) unless it is "unknown" and there is already +# a 'version' file, in which case reuse the existing 'version' contents +# and append "-dirty" if the contents do not already end in "-dirty". version: $(VERSION_DEPS) { (type git) >/dev/null 2>&1 && \ V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ --abbrev=7 --dirty` || \ - V='$(VERSION)'; } && \ + if test '$(VERSION)' = unknown && V=`cat $@`; then \ + case $$V in *-dirty);; *) V=$$V-dirty;; esac; \ + else \ + V='$(VERSION)'; \ + fi; } && \ printf '%s\n' "$$V" >$@.out mv $@.out $@ @@ -872,11 +880,34 @@ $(MANTXTS): workman.sh LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out mv $@.out $@ +# Set file timestamps deterministically if possible, +# so that tarballs containing the timestamps are reproducible. +# +# '$(SET_TIMESTAMP_N) N DEST A B C ...' sets the timestamp of the +# file DEST to the maximum of the timestamps of the files A B C ..., +# plus N if GNU ls and touch are available. +SET_TIMESTAMP_N = sh -c '\ + n=$$0 dest=$$1; shift; \ + touch -cmr `ls -t "$$@" | sed 1q` "$$dest" && \ + if test $$n != 0 && \ + lsout=`ls -n --time-style="+%s" "$$dest" 2>/dev/null`; then \ + set x $$lsout && \ + touch -cmd @`expr $$7 + $$n` "$$dest"; \ + else :; fi' +# If DEST depends on A B C ... in this Makefile, callers should use +# $(SET_TIMESTAMP_DEP) DEST A B C ..., for the benefit of any +# downstream 'make' that considers equal timestamps to be out of date. +# POSIX allows this 'make' behavior, and HP-UX 'make' does it. +# If all that matters is that the timestamp be reproducible +# and plausible, use $(SET_TIMESTAMP). +SET_TIMESTAMP = $(SET_TIMESTAMP_N) 0 +SET_TIMESTAMP_DEP = $(SET_TIMESTAMP_N) 1 + # Set the timestamps 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, don't bother to sync with git timestamps. +# This uses GNU 'ls --time-style=+%s', which outputs the seconds count, +# and GNU 'touch -d@N FILE', where N is the number of seconds since 1970. +# If git or GNU is absent, don't bother to sync with git timestamps. # Also, set the timestamp of each prebuilt file like 'leapseconds' # to be the maximum of the files it depends on. set-timestamps.out: $(EIGHT_YARDS) @@ -894,16 +925,16 @@ set-timestamps.out: $(EIGHT_YARDS) fi || exit; \ done; \ fi - touch -cmr `ls -t $(LEAP_DEPS) | sed 1q` leapseconds + $(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS) for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \ - touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \ + $(SET_TIMESTAMP_DEP) $$file.txt $$file workman.sh || \ exit; \ done - touch -cmr `ls -t $(TZDATA_ZI_DEPS) | sed 1q` tzdata.zi - touch -cmr `ls -t $(VERSION_DEPS) | sed 1q` version + $(SET_TIMESTAMP_DEP) version $(VERSION_DEPS) + $(SET_TIMESTAMP_DEP) tzdata.zi $(TZDATA_ZI_DEPS) touch $@ set-tzs-timestamp.out: $(TZS) - touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS) + $(SET_TIMESTAMP_DEP) $(TZS) $(TZS_DEPS) touch $@ # The zics below ensure that each data file can stand on its own. @@ -981,7 +1012,7 @@ tarballs rearguard_tarballs traditional_tarballs \ signatures rearguard_signatures traditional_signatures: \ version set-timestamps.out rearguard.zi VERSION=`cat version` && \ - $(MAKE) VERSION="$$VERSION" $@_version + $(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version # These *_version rules are intended for use if VERSION is set by some # other means. Ordinarily these rules are used only by the above @@ -1018,7 +1049,7 @@ tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out for f in $(TDATA) $(PACKRATDATA); do \ rearf=tzdata$(VERSION)-rearguard.dir/$$f; \ $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \ - touch -cmr `ls -t ziguard.awk $$f` $$rearf || exit; \ + $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \ done sed '1s/$$/-rearguard/' \ <version >tzdata$(VERSION)-rearguard.dir/version @@ -1037,7 +1068,7 @@ tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out rm -fr tzdb-$(VERSION) mkdir tzdb-$(VERSION) ln $(ENCHILADA) tzdb-$(VERSION) - touch -cmr `ls -t tzdb-$(VERSION)/* | sed 1q` tzdb-$(VERSION) + $(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/* LC_ALL=C && export LC_ALL && \ tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out mv $@.out $@ @@ -1079,8 +1110,6 @@ strftime.o: private.h tzfile.h zdump.o: version.h zic.o: private.h tzfile.h version.h -.KEEP_STATE: - .PHONY: ALL INSTALL all .PHONY: check check_time_t_alternatives .PHONY: check_web check_zishrink |