Add configure option --with-system-tzdata to use operating system time zone
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 20 Aug 2007 08:53:12 +0000 (08:53 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Mon, 20 Aug 2007 08:53:12 +0000 (08:53 +0000)
database.

configure
configure.in
doc/src/sgml/installation.sgml
src/Makefile.global.in
src/timezone/Makefile

index 7d7472414cba40ca2b0a5157ee3920b5404dc8cb..f814cfb1548de218233ddad3f5410c31dda45641 100755 (executable)
--- a/configure
+++ b/configure
@@ -314,7 +314,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug enable_profiling DTRACE DTRACEFLAGS enable_dtrace CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_gssapi with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_ossp_uuid XML2_CONFIG with_libxml with_libxslt with_zlib EGREP ELF_SYS LDFLAGS_SL LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB TAR LN_S AWK YACC YFLAGS FLEX FLEXFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS LDAP_LIBS_FE LDAP_LIBS_BE HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug enable_profiling DTRACE DTRACEFLAGS enable_dtrace CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_gssapi with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_ossp_uuid XML2_CONFIG with_libxml with_libxslt with_system_tzdata with_zlib EGREP ELF_SYS LDFLAGS_SL LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB TAR LN_S AWK YACC YFLAGS FLEX FLEXFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS LDAP_LIBS_FE LDAP_LIBS_BE HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -899,6 +899,7 @@ Optional Packages:
   --with-ossp-uuid        build with OSSP UUID library for UUID generation
   --with-libxml           build with XML support
   --with-libxslt          build with XSLT support
+  --with-system-tzdata=DIR  use system time zone data in DIR
   --without-zlib          do not use Zlib
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
 
@@ -4500,6 +4501,37 @@ fi;
 
 
 
+#
+# tzdata
+#
+
+pgac_args="$pgac_args with_system_tzdata"
+
+
+# Check whether --with-system-tzdata or --without-system-tzdata was given.
+if test "${with_system_tzdata+set}" = set; then
+  withval="$with_system_tzdata"
+
+  case $withval in
+    yes)
+      { { echo "$as_me:$LINENO: error: argument required for --with-system-tzdata option" >&5
+echo "$as_me: error: argument required for --with-system-tzdata option" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+    no)
+      { { echo "$as_me:$LINENO: error: argument required for --with-system-tzdata option" >&5
+echo "$as_me: error: argument required for --with-system-tzdata option" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+    *)
+
+      ;;
+  esac
+
+fi;
+
+
+
 #
 # Zlib
 #
@@ -25237,6 +25269,7 @@ s,@with_ossp_uuid@,$with_ossp_uuid,;t t
 s,@XML2_CONFIG@,$XML2_CONFIG,;t t
 s,@with_libxml@,$with_libxml,;t t
 s,@with_libxslt@,$with_libxslt,;t t
+s,@with_system_tzdata@,$with_system_tzdata,;t t
 s,@with_zlib@,$with_zlib,;t t
 s,@EGREP@,$EGREP,;t t
 s,@ELF_SYS@,$ELF_SYS,;t t
index 644effae45ca1fde270648ae085707b7e0cba3da..1a33620b78fc8bdfcdb6320451507d69e60f1c36 100644 (file)
@@ -606,6 +606,13 @@ PGAC_ARG_BOOL(with, libxslt, no, [  --with-libxslt          build with XSLT supp
 
 AC_SUBST(with_libxslt)
 
+#
+# tzdata
+#
+PGAC_ARG_REQ(with, system-tzdata,
+             [  --with-system-tzdata=DIR  use system time zone data in DIR])
+AC_SUBST(with_system_tzdata)
+
 #
 # Zlib
 #
index 7c74a9fa7f8e61ba553a4e1b2823bc8d587050f4..8fb93f228f498e584272c61f6fcdc675ccaa1384 100644 (file)
@@ -1021,6 +1021,44 @@ su - postgres
        </listitem>
       </varlistentry>
 
+      <varlistentry>
+       <term><option>--with-system-tzdata=<replaceable>DIRECTORY</replaceable></option></term>
+       <indexterm>
+        <primary>time zone data</primary>
+       </indexterm>
+       <listitem>
+        <para>
+         PostgreSQL includes its own time zone database, which it
+         requires for date and time operations.  This time zone
+         database is in fact compatible with the time zone database
+         provided by many operating systems such as FreeBSD, Linux,
+         and Solaris, so it would be redundant to install it again.
+         When this option is used, the operating system supplied time
+         zone database in <replaceable>DIRECTORY</replaceable> is used
+         instead of the one included in the PostgreSQL source
+         distribution.  <filename>/usr/share/zoneinfo/</filename> is a
+         likely directory on some operating systems.  Note that the
+         installation routine does not detect mismatching or erroneous
+         time zone data.  You are advised to run the regression tests
+         to verify that the time zone data you have pointed to works
+         correctly.
+        </para>
+
+        <para>
+         This option is mainly aimed at binary package distributors
+         who know their target operating system well.  The main
+         advantage of using this option is that the PostgreSQL package
+         won't need to be upgraded whenever any of the many local
+         daylight-saving time rules changes.  Another completely
+         incidental advantage is that PostgreSQL can be
+         cross-compiled<indexterm><primary>cross
+         compilation</primary></indexterm> straightforwardly if the
+         time-zone database does not need to be built during the
+         installation.
+        </para>
+       </listitem>
+      </varlistentry>
+
       <varlistentry>
        <term><option>--without-zlib</option></term>
        <listitem>
index 1a14892096ec2acfaf15c641d9dac12f40cf43e0..9a535f00f3d379a4c7480489581c2d2db3ed6c2d 100644 (file)
@@ -158,6 +158,7 @@ with_openssl        = @with_openssl@
 with_ossp_uuid = @with_ossp_uuid@
 with_libxml    = @with_libxml@
 with_libxslt   = @with_libxslt@
+with_system_tzdata = @with_system_tzdata@
 with_zlib      = @with_zlib@
 enable_shared  = @enable_shared@
 enable_rpath   = @enable_rpath@
index 3f8a4b704ae2def34b4f7f8a45d3d5e5418335d5..d9176e2a83650799728016792fcc279184c24fb5 100644 (file)
@@ -32,11 +32,17 @@ all: SUBSYS.o submake-libpgport zic
 SUBSYS.o: $(OBJS)
        $(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
 
+ifeq (,$(with_system_tzdata))
 zic: $(ZICOBJS)
        $(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X)
+endif
 
 install: all installdirs
+ifeq (,$(with_system_tzdata))
        ./zic -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' $(TZDATAFILES)
+else
+       ln -s '$(with_system_tzdata)' '$(DESTDIR)$(datadir)/timezone'
+endif
        $(MAKE) -C tznames $@
 
 installdirs: