diff --git a/configure b/configure index 7d7472414c..f814cfb154 100755 --- a/configure +++ b/configure @@ -314,7 +314,7 @@ ac_includes_default="\ # include #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 diff --git a/configure.in b/configure.in index 5f7cd886f1..5b13961f6e 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $PostgreSQL: pgsql/configure.in,v 1.523 2007/08/05 15:43:00 tgl Exp $ +dnl $PostgreSQL: pgsql/configure.in,v 1.524 2007/08/20 08:53:12 petere Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -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 # diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index b1bc316666..0b5899c1ae 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -1,4 +1,4 @@ - + <![%standalone-include[<productname>PostgreSQL</>]]> @@ -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> diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 032da4f579..3f81b9e786 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.237 2007/06/26 22:05:04 tgl Exp $ +# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.238 2007/08/20 08:53:12 petere Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -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@ diff --git a/src/timezone/Makefile b/src/timezone/Makefile index f3d5088b4d..f5667809f9 100644 --- a/src/timezone/Makefile +++ b/src/timezone/Makefile @@ -4,7 +4,7 @@ # Makefile for the timezone library # IDENTIFICATION -# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.26 2007/03/14 17:38:06 tgl Exp $ +# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.27 2007/08/20 08:53:12 petere Exp $ # #------------------------------------------------------------------------- @@ -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: