From a0621306cb8d13009795828ab7da834fde28bf55 Mon Sep 17 00:00:00 2001 From: nico Date: Tue, 18 Jul 2006 15:27:51 +0000 Subject: [PATCH] port postgresql (client library and cli) to buildroot-ng git-svn-id: svn://svn.openwrt.org/openwrt/packages@4143 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- libs/postgresql/Makefile | 145 ++++++++++++++++++ .../patches/100-debian-12asmconstraints | 21 +++ .../patches/101-debian-27dbf2pg-textfield | 14 ++ libs/postgresql/patches/102-debian-30libpq | 33 ++++ .../750-configure-honor-cppflags.patch | 10 ++ 5 files changed, 223 insertions(+) create mode 100644 libs/postgresql/Makefile create mode 100644 libs/postgresql/patches/100-debian-12asmconstraints create mode 100644 libs/postgresql/patches/101-debian-27dbf2pg-textfield create mode 100644 libs/postgresql/patches/102-debian-30libpq create mode 100644 libs/postgresql/patches/750-configure-honor-cppflags.patch diff --git a/libs/postgresql/Makefile b/libs/postgresql/Makefile new file mode 100644 index 000000000..78cc54256 --- /dev/null +++ b/libs/postgresql/Makefile @@ -0,0 +1,145 @@ +# +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_NAME:=postgresql +PKG_VERSION:=7.4.9 +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=\ + ftp://ftp3.us.postgresql.org/pub/postgresql/source/v$(PKG_VERSION)/ \ + ftp://ftp.br.postgresql.org/pub/PostgreSQL/source/v$(PKG_VERSION)/ \ + ftp://ftp.au.postgresql.org/pub/postgresql/source/v$(PKG_VERSION)/ \ + ftp://ftp.tw.postgresql.org/pub/postgresql/source/v$(PKG_VERSION)/ +PKG_MD5SUM:=d7cf0f0a0e1dda19268f55cb1e124c77 +PKG_CAT:=bzcat + +PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install + +include $(INCLUDE_DIR)/package.mk + +define Package/libpq + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+zlib + TITLE:=PostgreSQL client library + DESCRIPTION:=PostgreSQL client library. + URL:=http://www.postgresql.org/ +endef + +define Package/pgsql-cli + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=libpq + TITLE:=Command Line Interface (CLI) to PostgreSQL databases + DESCRIPTION:=Command Line Interface (CLI) to PostgreSQL databases. + URL:=http://www.postgresql.org/ +endef + +# ./configure advertise "--infodir", but does not support it, replaced with "--docdir" +define Build/Configure + (cd $(PKG_BUILD_DIR); rm -f config.cache; \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + CPPFLAGS="$$$$CPPFLAGS -I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ + LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --program-prefix="" \ + --program-suffix="" \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --datadir=/usr/share \ + --includedir=/usr/include \ + --docdir=/usr/share/info \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + $(DISABLE_NLS) \ + $(DISABLE_LARGEFILE) \ + --enable-shared \ + --enable-static \ + --disable-integer-datetimes \ + --disable-rpath \ + --without-java \ + --without-krb4 \ + --without-krb5 \ + --without-openssl \ + --without-pam \ + --without-perl \ + --without-python \ + --without-readline \ + --without-rendezvous \ + --without-tcl \ + --without-tk \ + --with-zlib="yes" \ + ); +endef + +define Build/Compile + $(MAKE) -C "$(PKG_BUILD_DIR)/src/include" \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + all install + $(MAKE) -C "$(PKG_BUILD_DIR)/src/interfaces/libpq" \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + all install + $(MAKE) -C "$(PKG_BUILD_DIR)/src/bin/pg_config" \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + includedir="$(STAGING_DIR)/usr/include" \ + libdir="$(STAGING_DIR)/usr/lib" \ + all install + $(MAKE) -C "$(PKG_BUILD_DIR)/src/bin/psql" \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + all install +endef + +define Package/libpq/install + install -d -m0755 $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpq.so.* $(1)/usr/lib/ +endef + +define Package/pgsql-cli/install + install -d -m0755 $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/psql $(1)/usr/bin/ +endef + +define Build/InstallDev + mkdir -p $(STAGING_DIR)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/pg_config $(STAGING_DIR)/usr/bin/ + mkdir -p $(STAGING_DIR)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/libpq $(STAGING_DIR)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/libpq-fe.h $(STAGING_DIR)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/pg_config.h $(STAGING_DIR)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/postgres_ext.h $(STAGING_DIR)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/postgresql $(STAGING_DIR)/usr/include/ + mkdir -p $(STAGING_DIR)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpq.{a,so*} $(STAGING_DIR)/usr/lib/ +endef + +define Build/UninstallDev + rm -rf \ + $(STAGING_DIR)/usr/bin/pg_config \ + $(STAGING_DIR)/usr/include/libpq \ + $(STAGING_DIR)/usr/include/libpq-fe.h \ + $(STAGING_DIR)/usr/include/pg_config.h \ + $(STAGING_DIR)/usr/include/postgres_ext.h \ + $(STAGING_DIR)/usr/include/postgresql \ + $(STAGING_DIR)/usr/lib/libpq.{a,so*} +endef + +$(eval $(call BuildPackage,libpq)) +$(eval $(call BuildPackage,pgsql-cli)) diff --git a/libs/postgresql/patches/100-debian-12asmconstraints b/libs/postgresql/patches/100-debian-12asmconstraints new file mode 100644 index 000000000..f43eedc80 --- /dev/null +++ b/libs/postgresql/patches/100-debian-12asmconstraints @@ -0,0 +1,21 @@ +diff -ruN postgresql-7.4.7-old/src/include/storage/s_lock.h postgresql-7.4.7/src/include/storage/s_lock.h +--- postgresql-7.4.7-old/src/include/storage/s_lock.h 2004-06-15 16:09:30.000000000 +0200 ++++ postgresql-7.4.7/src/include/storage/s_lock.h 2004-06-15 16:19:02.000000000 +0200 +@@ -125,7 +125,7 @@ + __asm__ __volatile__( + " xchg4 %0=%1,%2 \n" + : "=r"(ret), "=m"(*lock) +-: "r"(1), "1"(*lock) ++: "r"(1), "m"(*lock) + : "memory"); + + return (int) ret; +@@ -294,7 +294,7 @@ + " tas %1 \n" + " sne %0 \n" + : "=d"(rv), "=m"(*lock) +-: "1"(*lock) ++: "m"(*lock) + : "cc"); + + return rv; diff --git a/libs/postgresql/patches/101-debian-27dbf2pg-textfield b/libs/postgresql/patches/101-debian-27dbf2pg-textfield new file mode 100644 index 000000000..a4507710f --- /dev/null +++ b/libs/postgresql/patches/101-debian-27dbf2pg-textfield @@ -0,0 +1,14 @@ +diff -ruN postgresql-7.4.7-old/contrib/dbase/dbf2pg.c postgresql-7.4.7/contrib/dbase/dbf2pg.c +--- postgresql-7.4.7-old/contrib/dbase/dbf2pg.c 2004-10-31 20:09:10.923855000 +0100 ++++ postgresql-7.4.7/contrib/dbase/dbf2pg.c 2004-10-31 20:11:24.676521696 +0100 +@@ -324,6 +324,10 @@ + case 'L': + strcat(query, " char"); + break; ++ ++ case 'M': ++ strcat(query, " text"); ++ break; + } + } + diff --git a/libs/postgresql/patches/102-debian-30libpq b/libs/postgresql/patches/102-debian-30libpq new file mode 100644 index 000000000..245b97fac --- /dev/null +++ b/libs/postgresql/patches/102-debian-30libpq @@ -0,0 +1,33 @@ +diff -ruN postgresql-7.4.7-old/src/interfaces/libpq/Makefile postgresql-7.4.7/src/interfaces/libpq/Makefile +--- postgresql-7.4.7-old/src/interfaces/libpq/Makefile 2003-08-23 05:21:59.000000000 +0100 ++++ postgresql-7.4.7/src/interfaces/libpq/Makefile 2003-08-29 18:35:25.000000000 +0100 +@@ -32,7 +32,7 @@ + SHLIB_LINK += $(filter -lcrypt -ldes -lkrb -lcom_err -lcrypto -lk5crypto -lkrb5 -lssl -lsocket -lnsl -lresolv -lintl, $(LIBS)) $(THREAD_LIBS) + + +-all: all-lib ++all: all-lib libpq3-config + + # Shared library stuff + include $(top_srcdir)/src/Makefile.shlib +@@ -58,6 +58,8 @@ + encnames.c wchar.c : % : $(backend_src)/utils/mb/% + rm -f $@ && $(LN_S) $< . + ++libpq3-config: ++ sed -e "s|%LIBRARIES%|$(SHLIB_LINK)|" libpq3-config + + install: all installdirs install-lib + $(INSTALL_DATA) $(srcdir)/libpq-fe.h $(DESTDIR)$(includedir) +@@ -73,3 +75,4 @@ + + clean distclean maintainer-clean: clean-lib + rm -f $(OBJS) crypt.c getaddrinfo.c inet_aton.c snprintf.c strerror.c path.c thread.c dllist.c md5.c ip.c encnames.c wchar.c ++ rm -f libpq3-config +diff -ruN postgresql-7.4.7-old/src/interfaces/libpq/libpq3-config.in postgresql-7.4.7/src/interfaces/libpq/libpq3-config.in +--- postgresql-7.4.7-old/src/interfaces/libpq/libpq3-config.in 1970-01-01 01:00:00.000000000 +0100 ++++ postgresql-7.4.7/src/interfaces/libpq/libpq3-config.in 2003-08-29 18:34:25.000000000 +0100 +@@ -0,0 +1,3 @@ ++#!/bin/bash ++ ++echo %LIBRARIES% diff --git a/libs/postgresql/patches/750-configure-honor-cppflags.patch b/libs/postgresql/patches/750-configure-honor-cppflags.patch new file mode 100644 index 000000000..897c6c05a --- /dev/null +++ b/libs/postgresql/patches/750-configure-honor-cppflags.patch @@ -0,0 +1,10 @@ +diff -ruN postgresql-7.4.6-old/src/template/linux postgresql-7.4.6-new/src/template/linux +--- postgresql-7.4.6-old/src/template/linux 2003-10-09 18:52:45.000000000 +0200 ++++ postgresql-7.4.6-new/src/template/linux 2005-04-13 03:12:49.000000000 +0200 +@@ -1,5 +1,5 @@ + # Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise +-CPPFLAGS="-D_GNU_SOURCE" ++CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" + + THREAD_SUPPORT=yes + NEED_REENTRANT_FUNCS=yes # Debian kernel 2.2 2003-09-27