Is postgresql83-server broken? (update: ICU and autotools problems?)

Ivan Voras ivoras at freebsd.org
Mon Sep 1 11:45:32 UTC 2008


2008/9/1 Alex Goncharov <alex-goncharov at comcast.net>:
> ,--- You/Ivan (Mon, 01 Sep 2008 11:29:39 +0200) ----*
> | Can someone else confirm this? Do your postgresql83-server ports build?
>
> Builds for me:
>

> $ ls -l Makefile
> -rw-r--r--  1 root  wheel  10599 Aug 26 06:53 Makefile
>
> $ md5 Makefile
> MD5 (Makefile) = a2e5324a341aba72d86904c3f7453509
>
> --------------------
>
> What problem do you have?  With the same Makefile?

Yes,  my Makefile is the same:

/usr/ports/databases/postgresql83-server> md5 Makefile
MD5 (Makefile) = a2e5324a341aba72d86904c3f7453509

Are you using ICU?

My (first) problem is this: distfile contains the following:
MD5 (postgresql/pg-833-icu-xx-2008-08-28.diff.gz) =
94fb6634636cd36cb5fde449d76ece65
SHA256 (postgresql/pg-833-icu-xx-2008-08-28.diff.gz) =
c7d77dafe78afcf2e92567c7cdfda45dcfe41ea71efb2e326ef4f7eb66ec416b
SIZE (postgresql/pg-833-icu-xx-2008-08-28.diff.gz) = 5302

but the Makefile contains:

.  if (defined(SERVER_ONLY) && defined(WITH_ICU)) || make(makesum)
USE_AUTOTOOLS=  autoconf:262
CONFIGURE_ARGS+=--with-icu
LIB_DEPENDS=    icudata:${PORTSDIR}/devel/icu
PATCH_SITES+=   http://people.freebsd.org/~girgen/postgresql-icu/:icu
PATCHFILES+=    pg-833-icu-xx-2008-06-11.diff.gz:icu
.  endif

e.g. the ICU patches are mismatched:

# make

===>  Vulnerability check disabled, database not found
===>  Found saved configuration for postgresql-server-8.3.1
===>  Extracting for postgresql-server-8.3.3
=> MD5 Checksum OK for postgresql/postgresql-8.3.3.tar.bz2.
=> SHA256 Checksum OK for postgresql/postgresql-8.3.3.tar.bz2.
=> No MD5 checksum recorded for postgresql/pg-833-icu-xx-2008-06-11.diff.gz.
=> No SHA256 checksum recorded for postgresql/pg-833-icu-xx-2008-06-11.diff.gz.
=> No suitable checksum found for postgresql/pg-833-icu-xx-2008-06-11.diff.gz.
*** Error code 1

Stop in /usr/ports/databases/postgresql83-server.
*** Error code 1

Stop in /usr/ports/databases/postgresql83-server.

----

After I fix this manually with "make makesum", there's another problem:

===>  Configuring for postgresql-server-8.3.3
configure.in:22: error: Autoconf version 2.61 is required.
Untested combinations of 'autoconf' and PostgreSQL versions are not
recommended.  You can remove the check from 'configure.in' but it is then
your responsibility whether the result works or not.
configure.in:22: the top level
autom4te-2.62: /usr/local/bin/gm4 failed with exit status: 1
*** Error code 1

Stop in /usr/ports/databases/postgresql83-server.
*** Error code 1

Stop in /usr/ports/databases/postgresql83-server.

I believe this is also related to ICU because of this fragment in Makefile:

.  if (defined(SERVER_ONLY) && defined(WITH_ICU)) || make(makesum)
USE_AUTOTOOLS=  autoconf:262
CONFIGURE_ARGS+=--with-icu
LIB_DEPENDS=    icudata:${PORTSDIR}/devel/icu
PATCH_SITES+=   http://people.freebsd.org/~girgen/postgresql-icu/:icu
PATCHFILES+=    pg-833-icu-xx-2008-06-11.diff.gz:icu
.  endif

i.e. ICU is forcing autoconf 2.62 instead of 2.61. There is no
autoconf 2.61 in ports. It is needed because configure.in needs to be
patched for ICU. I think the ICU patch needs to be updated to the one
I attached (or maybe the fixed ICU patches were mistakenly not
committed before?)

(ICU is needed to get working collations with UTF-8).
-------------- next part --------------
--- configure.in.orig	2008-06-09 02:38:40.000000000 +0200
+++ configure.in	2008-09-01 13:41:47.000000000 +0200
@@ -19,7 +19,7 @@
 
 AC_INIT([PostgreSQL], [8.3.3], [pgsql-bugs at postgresql.org])
 
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.59], [], [m4_fatal([Autoconf version 2.59 is required.
+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.62], [], [m4_fatal([Autoconf version 2.62 is required.
 Untested combinations of 'autoconf' and PostgreSQL versions are not
 recommended.  You can remove the check from 'configure.in' but it is then
 your responsibility whether the result works or not.])])
@@ -547,6 +547,14 @@
 AC_MSG_RESULT([$with_openssl])
 AC_SUBST(with_openssl)
 
+#
+# ICU
+#
+AC_MSG_CHECKING([whether to build with ICU support])
+PGAC_ARG_BOOL(with, icu, no, [  --with-icu              build with ICU support],
+              [AC_DEFINE([USE_ICU], 1, [Define to build with ICU support. (--with-icu)])])
+AC_MSG_RESULT([$with_icu])
+AC_SUBST(with_icu)
 
 #
 # Readline
@@ -786,6 +794,19 @@
   fi
 fi
 
+if test "$with_icu" = yes ; then
+  AC_CHECK_LIB(icui18n, ucol_open_3_8, [], [
+     AC_CHECK_LIB(icui18n, ucol_open_3_6, [], [
+        AC_CHECK_LIB(icui18n, ucol_open_3_4, [], [AC_MSG_ERROR([library 'icui18n' is required for ICU])])
+   ])
+  ])
+  AC_CHECK_LIB(icuuc, ucnv_fromUChars_3_8, [], [
+     AC_CHECK_LIB(icuuc, ucnv_fromUChars_3_6, [], [
+        AC_CHECK_LIB(icuuc, ucnv_fromUChars_3_4, [], [AC_MSG_ERROR([library 'icuuc' is required for ICU])])
+   ])
+  ])
+fi
+
 if test "$with_pam" = yes ; then
   AC_CHECK_LIB(pam,    pam_start, [], [AC_MSG_ERROR([library 'pam' is required for PAM])])
 fi
@@ -883,6 +904,10 @@
   AC_CHECK_FUNCS([ERR_set_mark])
 fi
 
+if test "$with_icu" = yes ; then
+  AC_CHECK_HEADER(unicode/utypes.h, [], [AC_MSG_ERROR([header file <unicode/utypes.h> is required for ICU])])
+fi
+ 
 if test "$with_pam" = yes ; then
   AC_CHECK_HEADERS(security/pam_appl.h, [],
                    [AC_CHECK_HEADERS(pam/pam_appl.h, [],


More information about the freebsd-ports mailing list