diff --git a/libs/postgresql/Makefile b/libs/postgresql/Makefile index 710623fc43..f0cd1b2c75 100644 --- a/libs/postgresql/Makefile +++ b/libs/postgresql/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=postgresql -PKG_VERSION:=16.3 +PKG_VERSION:=15.6 PKG_RELEASE:=1 PKG_MAINTAINER:=Daniel Golle PKG_LICENSE:=PostgreSQL @@ -17,20 +17,21 @@ PKG_SOURCE_URL:=\ http://ftp.postgresql.org/pub/source/v$(PKG_VERSION) \ ftp://ftp.postgresql.org/pub/source/v$(PKG_VERSION) -PKG_HASH:=331963d5d3dc4caf4216a049fa40b66d6bcb8c730615859411b9518764e60585 +PKG_HASH:=8455146ed9c69c93a57de954aead0302cafad035c2b242175d6aa1e17ebcb2fb PKG_BUILD_FLAGS:=no-mips16 -PKG_BUILD_DEPENDS:=perl/host postgresql/host +PKG_FIXUP:=autoreconf +PKG_MACRO_PATHS:=config +PKG_BUILD_DEPENDS:=postgresql/host PKG_INSTALL:=1 include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/meson.mk define Package/libpq SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+BUILD_NLS:icu +libpthread + DEPENDS:=+libpthread TITLE:=PostgreSQL client library URL:=http://www.postgresql.org/ SUBMENU:=Database @@ -113,29 +114,29 @@ PGSQL_CLI_EXTRA_BIN := \ vacuumdb \ vacuumlo -FAKE_CONFIGURE_ARGS := \ - --disable-nls \ - --disable-rpath \ - --without-bonjour \ - --without-gssapi \ - --without-icu \ - --without-ldap \ - --without-openssl \ - --without-pam \ - --without-perl \ - --without-python \ - --without-readline \ - --without-tcl \ - --without-systemd \ - --with-zlib="yes" \ - --enable-depend +PGSQL_CONFIG_VARS:= \ + pgac_cv_snprintf_long_long_int_format="%lld" \ + pgac_cv_snprintf_size_t_support=yes \ + USE_DEV_URANDOM=1 \ + ac_cv_file__dev_urandom="/dev/urandom" \ + ZIC=zic + +ifeq ($(CONFIG_USE_UCLIBC),y) +# PostgreSQL does not build against uClibc with locales +# enabled, due to an uClibc bug, see +# http://lists.uclibc.org/pipermail/uclibc/2014-April/048326.html +# so overwrite automatic detection and disable locale support +PGSQL_CONFIG_VARS+= \ + pgac_cv_type_locale_t=no +endif + +TARGET_CONFIGURE_OPTS+=$(PGSQL_CONFIG_VARS) HOST_CONFIGURE_ARGS += \ --disable-nls \ --disable-rpath \ --without-bonjour \ --without-gssapi \ - --without-icu \ --without-ldap \ --without-openssl \ --without-pam \ @@ -147,33 +148,24 @@ HOST_CONFIGURE_ARGS += \ --with-zlib="yes" \ --enable-depend +CONFIGURE_ARGS += \ + $(DISABLE_NLS) \ + --disable-rpath \ + --without-bonjour \ + --without-gssapi \ + --without-ldap \ + --without-openssl \ + --without-pam \ + --without-perl \ + --without-python \ + --without-tcl \ + --without-systemd \ + --with-zlib="yes" \ + --enable-depend \ + $(if $(CONFIG_arc),--disable-spinlocks) + HOST_CFLAGS += -std=gnu99 -MESON_ARGS += \ - -Dnls=$(if $(CONFIG_BUILD_NLS),en,dis)abled \ - -Dicu=$(if $(CONFIG_BUILD_NLS),en,dis)abled \ - -Ddocs=disabled \ - -Ddocs_pdf=disabled \ - -Drpath=false \ - -Dbonjour=disabled \ - -Dbsd_auth=disabled \ - -Dgssapi=disabled \ - -Dldap=disabled \ - -Dlibxml=disabled \ - -Dlibxslt=disabled \ - -Dssl=none \ - -Dpam=disabled \ - -Dplperl=disabled \ - -Dplpython=disabled \ - -Dpltcl=disabled \ - -Dsystemd=disabled \ - -Dzlib=enabled \ - -Dspinlocks=$(if $(CONFIG_arc),true,false) - -define Host/Configure - $(call Host/Configure/Default) -endef - # Need a native zic and pg_config for build define Host/Compile +$(HOST_MAKE_VARS) MAKELEVEL=0 $(MAKE) -C $(HOST_BUILD_DIR)/src/bin/pg_config CC="$(HOSTCC)" @@ -189,6 +181,13 @@ define Host/Install $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/timezone/zic $(STAGING_DIR_HOSTPKG)/bin/ endef +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) MAKELEVEL=0 all contrib +endef + +# because PROFILE means something else in the project Makefile +unexport PROFILE + define Package/libpq/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpq.so.* $(1)/usr/lib/ @@ -232,12 +231,6 @@ define Package/pgsql-server/install $(INSTALL_BIN) ./files/postgresql.init $(1)/etc/init.d/postgresql endef -define Build/Configure - $(call Build/Configure/Default,$(FAKE_CONFIGURE_ARGS)) - make -C $(PKG_BUILD_DIR) maintainer-clean - $(call Build/Configure/Meson) -endef - define Build/InstallDev $(INSTALL_DIR) $(1)/usr/bin $(CP) $(STAGING_DIR_HOSTPKG)/lib/pg_config $(1)/usr/bin diff --git a/libs/postgresql/patches/050-build-contrib.patch b/libs/postgresql/patches/050-build-contrib.patch new file mode 100644 index 0000000000..88a23f099a --- /dev/null +++ b/libs/postgresql/patches/050-build-contrib.patch @@ -0,0 +1,11 @@ +--- a/GNUmakefile.in ++++ b/GNUmakefile.in +@@ -8,7 +8,7 @@ subdir = + top_builddir = . + include $(top_builddir)/src/Makefile.global + +-$(call recurse,all install,src config) ++$(call recurse,all install,src config contrib) + + docs: + $(MAKE) -C doc all diff --git a/libs/postgresql/patches/200-ranlib.patch b/libs/postgresql/patches/200-ranlib.patch new file mode 100644 index 0000000000..d4184a3542 --- /dev/null +++ b/libs/postgresql/patches/200-ranlib.patch @@ -0,0 +1,10 @@ +--- a/src/port/Makefile ++++ b/src/port/Makefile +@@ -83,6 +83,7 @@ uninstall: + libpgport.a: $(OBJS) + rm -f $@ + $(AR) $(AROPT) $@ $^ ++ $(RANLIB) libpgport.a + + # getaddrinfo.o and getaddrinfo_shlib.o need PTHREAD_CFLAGS (but getaddrinfo_srv.o does not) + getaddrinfo.o: CFLAGS+=$(PTHREAD_CFLAGS) diff --git a/libs/postgresql/patches/300-fix-includes.patch b/libs/postgresql/patches/300-fix-includes.patch index 4109f2d769..3611c8e00a 100644 --- a/libs/postgresql/patches/300-fix-includes.patch +++ b/libs/postgresql/patches/300-fix-includes.patch @@ -1,15 +1,13 @@ --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c -@@ -12,11 +12,13 @@ +@@ -12,9 +12,11 @@ #include "postgres_fe.h" #include +#include #include #include - #include #include - #include +#include #include #include diff --git a/libs/postgresql/patches/700-no-arm-crc-march-change.patch b/libs/postgresql/patches/700-no-arm-crc-march-change.patch index 18ed97e3fb..33637f5d59 100644 --- a/libs/postgresql/patches/700-no-arm-crc-march-change.patch +++ b/libs/postgresql/patches/700-no-arm-crc-march-change.patch @@ -1,17 +1,15 @@ --- a/configure.ac +++ b/configure.ac -@@ -2124,10 +2124,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ - # First check if __crc32c* intrinsics can be used with the default compiler +@@ -2239,9 +2239,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ # flags. If not, check if adding -march=armv8-a+crc flag helps. - # CFLAGS_CRC is set if the extra flag is required. --PGAC_ARMV8_CRC32C_INTRINSICS([]) + # CFLAGS_ARMV8_CRC32C is set if the extra flag is required. + PGAC_ARMV8_CRC32C_INTRINSICS([]) -if test x"$pgac_armv8_crc32c_intrinsics" != x"yes"; then - PGAC_ARMV8_CRC32C_INTRINSICS([-march=armv8-a+crc]) -fi -+#PGAC_ARMV8_CRC32C_INTRINSICS([]) +#if test x"$pgac_armv8_crc32c_intrinsics" != x"yes"; then +# PGAC_ARMV8_CRC32C_INTRINSICS([-march=armv8-a+crc]) +#fi + AC_SUBST(CFLAGS_ARMV8_CRC32C) - AC_SUBST(CFLAGS_CRC) - + # Select CRC-32C implementation. diff --git a/libs/postgresql/patches/900-pg_ctl-setuid.patch b/libs/postgresql/patches/900-pg_ctl-setuid.patch index b969d172aa..64d558fcc0 100644 --- a/libs/postgresql/patches/900-pg_ctl-setuid.patch +++ b/libs/postgresql/patches/900-pg_ctl-setuid.patch @@ -1,6 +1,6 @@ --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c -@@ -91,6 +91,7 @@ static char *event_source = NULL; +@@ -96,6 +96,7 @@ static char *event_source = NULL; static char *register_servicename = "PostgreSQL"; /* FIXME: + version ID? */ static char *register_username = NULL; static char *register_password = NULL; @@ -8,7 +8,7 @@ static char *argv0 = NULL; static bool allow_core_files = false; static time_t start_time; -@@ -1991,6 +1992,9 @@ do_help(void) +@@ -2086,6 +2087,9 @@ do_help(void) #endif printf(_(" -s, --silent only print errors, no informational messages\n")); printf(_(" -t, --timeout=SECS seconds to wait when using -w option\n")); @@ -18,7 +18,7 @@ printf(_(" -V, --version output version information, then exit\n")); printf(_(" -w, --wait wait until operation completes (default)\n")); printf(_(" -W, --no-wait do not wait until operation completes\n")); -@@ -2203,6 +2207,7 @@ main(int argc, char **argv) +@@ -2298,6 +2302,7 @@ main(int argc, char **argv) {"options", required_argument, NULL, 'o'}, {"silent", no_argument, NULL, 's'}, {"timeout", required_argument, NULL, 't'}, @@ -26,7 +26,7 @@ {"core-files", no_argument, NULL, 'c'}, {"wait", no_argument, NULL, 'w'}, {"no-wait", no_argument, NULL, 'W'}, -@@ -2243,20 +2248,6 @@ main(int argc, char **argv) +@@ -2338,20 +2343,6 @@ main(int argc, char **argv) } } @@ -47,7 +47,7 @@ env_wait = getenv("PGCTLTIMEOUT"); if (env_wait != NULL) -@@ -2342,11 +2333,15 @@ main(int argc, char **argv) +@@ -2437,11 +2428,15 @@ main(int argc, char **argv) wait_seconds_arg = true; break; case 'U': @@ -63,7 +63,7 @@ break; case 'w': do_wait = true; -@@ -2428,6 +2423,41 @@ main(int argc, char **argv) +@@ -2523,6 +2518,41 @@ main(int argc, char **argv) exit(1); }