postgres.git / summary / log / commit / refs

commit    a12079109686e75c833b0b04925af8cb2fa011c0
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Mon Aug 19 17:17:02 2019 +0000
First released in: 13.0

    Use zic's new "-b slim" option to generate smaller timezone files.
    
    IANA tzcode release 2019b adds an option that tells zic not to emit
    the old 32-bit section of the timezone files, and to skip some other
    space-wasting hacks needed for compatibility with old timezone client
    libraries.  Since we only expect our own code to use the timezone data
    we install, and our code is up-to-date with 2019b, there's no apparent
    reason not to generate the smallest possible files.
    
    Unfortunately, while the individual zone files do get significantly
    smaller in many cases, they were not that big to begin with; which
    means that no real space savings ensues on filesystems that don't
    optimize small files.  (For instance, on ext4 with 4K block size,
    "du" says the installed timezone tree is the same size as before.)
    Still, it seems worth making the change, if only because this is
    presumably the wave of the future.  At the very least, we'll save
    some cycles while reading a zone file.
    
    But given the marginal value and the fact that this is a new code
    path, it doesn't seem worth the risk of back-patching this change
    into stable branches.  Hence, unlike most of our timezone-related
    changes, apply to HEAD only.
    
    Discussion: https://postgr.es/m/24998.1563403327@sss.pgh.pa.us


src/timezone/Makefile | 2 +- src/tools/msvc/Install.pm | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/timezone/Makefile b/src/timezone/Makefile index 0b0df000350..78aeab43922 100644 --- a/src/timezone/Makefile +++ b/src/timezone/Makefile @@ -55,7 +55,7 @@ zic: $(ZICOBJS) | submake-libpgport install: all installdirs ifeq (,$(with_system_tzdata)) - $(ZIC) -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' $(ZIC_OPTIONS) $(TZDATAFILES) + $(ZIC) -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' -b slim $(ZIC_OPTIONS) $(TZDATAFILES) endif $(MAKE) -C tznames $@ diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index d109b2c9060..1a92ed233ab 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -365,8 +365,9 @@ sub GenerateTimezoneFiles print "Generating timezone files..."; - my @args = - ("$conf/zic/zic", '-d', "$target/share/timezone", '-p', "$posixrules"); + my @args = ( + "$conf/zic/zic", '-d', "$target/share/timezone", '-p', + "$posixrules", '-b', 'slim'); foreach (@tzfiles) { my $tzfile = $_; [parent: 28b6ec1df647]