X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=libs%2Fpostgresql%2FMakefile;h=74d2ceb7a99bb78d7a5557d7f6eff2a1117da57e;hb=ca74ca9b86f4b2b5813b3f5812f66c22a240b959;hp=78cc54256941ddc072d6f754265c4eb293a07688;hpb=a0621306cb8d13009795828ab7da834fde28bf55;p=packages.git diff --git a/libs/postgresql/Makefile b/libs/postgresql/Makefile index 78cc54256..74d2ceb7a 100644 --- a/libs/postgresql/Makefile +++ b/libs/postgresql/Makefile @@ -1,56 +1,118 @@ -# -# Copyright (C) 2006 OpenWrt.org +# +# Copyright (C) 2006-2012 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_VERSION:=9.0.1 +PKG_RELEASE:=3 -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 + http://ftp9.us.postgresql.org/pub/mirrors/postgresql/source/v$(PKG_VERSION) \ + http://ftp.be.postgresql.org/postgresql/source/v$(PKG_VERSION) \ + ftp://ftp-archives.postgresql.org/pub/source/v$(PKG_VERSION) +PKG_MD5SUM:=57ba57e43cfe29e16dacbf5789be98d1 +PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk define Package/libpq SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+zlib + DEPENDS:=+zlib +libreadline +libpthread +libncurses +shadow-su TITLE:=PostgreSQL client library - DESCRIPTION:=PostgreSQL client library. URL:=http://www.postgresql.org/ + SUBMENU:=database +endef + +define Package/libpq/description +PostgreSQL client library. endef define Package/pgsql-cli - SECTION:=libs - CATEGORY:=Libraries - DEPENDS:=libpq + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+libpq TITLE:=Command Line Interface (CLI) to PostgreSQL databases - DESCRIPTION:=Command Line Interface (CLI) to PostgreSQL databases. URL:=http://www.postgresql.org/ + SUBMENU:=database +endef + +define Package/pgsql-cli/description +Command Line Interface (CLI) to PostgreSQL databases. +endef + +define Package/pgsql-server + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+libpq + TITLE:=PostgreSQL databases Server + URL:=http://www.postgresql.org/ + SUBMENU:=database +endef + +define Package/pgsql-server/description +PostgreSQL databases Server. endef -# ./configure advertise "--infodir", but does not support it, replaced with "--docdir" +# Need a native ecpg ,pg_config, and zic for build define Build/Configure (cd $(PKG_BUILD_DIR); rm -f config.cache; \ + ./configure \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --datadir=/usr/share \ + --includedir=/usr/include \ + --infodir=/usr/share/info \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + $(DISABLE_NLS) \ + --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" \ + --enable-depend \ + --with-system-timezone=/tmp \ + ); + $(MAKE) -C $(PKG_BUILD_DIR)/src/interfaces/ecpg/preproc CC="$(HOSTCC)" CFLAGS+="-I../../libpq" + mv $(PKG_BUILD_DIR)/src/interfaces/ecpg/preproc/ecpg \ + $(PKG_BUILD_DIR)/src/interfaces/ecpg/preproc/ecpg.host + $(MAKE) -C $(PKG_BUILD_DIR)/src/timezone CC="$(HOSTCC)" + mv $(PKG_BUILD_DIR)/src/timezone/zic $(PKG_BUILD_DIR)/host-zic + $(INSTALL_DIR) $(STAGING_DIR)/host/bin/ + $(CP) $(PKG_BUILD_DIR)/host-zic $(STAGING_DIR)/host/bin/zic + $(MAKE) -C $(PKG_BUILD_DIR)/src/bin/pg_config CC="$(HOSTCC)" + mv $(PKG_BUILD_DIR)/src/bin/pg_config/pg_config \ + $(PKG_BUILD_DIR)/src/bin/pg_config/pg_config.host + $(MAKE) -C $(PKG_BUILD_DIR) distclean + + (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" \ + CFLAGS="$(TARGET_CFLAGS)" \ + CPPFLAGS="$$$$CPPFLAGS $(TARGET_CPPFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ ./configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ @@ -62,7 +124,7 @@ define Build/Configure --bindir=/usr/bin \ --datadir=/usr/share \ --includedir=/usr/include \ - --docdir=/usr/share/info \ + --infodir=/usr/share/info \ --libdir=/usr/lib \ --libexecdir=/usr/lib \ --localstatedir=/var \ @@ -82,64 +144,107 @@ define Build/Configure --without-pam \ --without-perl \ --without-python \ - --without-readline \ --without-rendezvous \ --without-tcl \ --without-tk \ --with-zlib="yes" \ + --enable-depend \ + $(if $(CONFIG_TARGET_avr32),--disable-spinlocks) \ ); + $(SED) 's@ECPG = ../../preproc/ecpg@ECPG = ../../preproc/ecpg.host@' $(PKG_BUILD_DIR)/src/interfaces/ecpg/test/Makefile.regress endef +TARGET_CFLAGS += $(FPIC) + +# because PROFILE means something else in the project Makefile +unexport PROFILE + 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" \ + +$(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" \ DESTDIR="$(PKG_INSTALL_DIR)" \ - includedir="$(STAGING_DIR)/usr/include" \ - libdir="$(STAGING_DIR)/usr/lib" \ - all install - $(MAKE) -C "$(PKG_BUILD_DIR)/src/bin/psql" \ + all + +$(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" \ DESTDIR="$(PKG_INSTALL_DIR)" \ - all install + install endef define Package/libpq/install - install -d -m0755 $(1)/usr/lib + $(INSTALL_DIR) $(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/ + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(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/ +define Package/pgsql-server/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_DIR) $(1)/usr/share/postgresql + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin + ln -sf postgres $(1)/usr/bin/postmaster + + $(INSTALL_BIN) ./files/postgresql.init $(1)/etc/init.d/postgresql + + $(CP) -r $(PKG_INSTALL_DIR)/usr/share/postgresql/* \ + $(1)/usr/share/postgresql + + $(INSTALL_DATA) ./files/postgresql.config $(1)/etc/config/postgresql + + $(CP) -r \ + $(PKG_INSTALL_DIR)/usr/lib/postgresql \ + $(1)/usr/lib +endef + +define Package/pgsql-server/conffiles +/etc/config/postgresql 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*} +define Package/pgsql-server/postinst +#!/bin/sh +grep -q '^postgres:' /etc/passwd && exit 0 +group=$$(grep '^postgres:' /etc/group | cut -f3 -d:) +if [ -z "$${group}" ] ; then + group=1000 + tst=$$(cat /etc/group | grep ":$${group}:") + while [ -n "$${tst}" ] ; do + group=$$(($${group}+1)) + tst=$$(cat /etc/group | grep ":$${group}:") + done + echo "postgres:x:$${group}:" >>/etc/group +fi + +user=$$(cat /etc/passwd | grep "^postgres:") +if [ -z "$${user}" ] ; then + num="$${group}" + tst=$$(cat /etc/passwd | grep ":.*:$${num}:") + while [ -n "$${tst}" ] ; do + num=$$(($${num}+1)) + tst=$$(cat /etc/passwd | grep ":.*:$${num}:") + done + echo "postgres:*:$${num}:$${group}:PostgreSQL administrator:/tmp:/bin/ash" >>/etc/passwd +fi +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/bin/pg_config/pg_config.host $(1)/usr/bin/pg_config + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/libpq $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/libpq-fe.h $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/pg_config.h $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/pg_config_manual.h $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/postgres_ext.h $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/postgresql $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpq.{a,so*} $(1)/usr/lib/ + $(CP) $(PKG_BUILD_DIR)/src/interfaces/ecpg/preproc/ecpg.host $(1)/usr/bin/ecpg + $(CP) $(PKG_BUILD_DIR)/host-zic $(1)/usr/bin/zic endef $(eval $(call BuildPackage,libpq)) $(eval $(call BuildPackage,pgsql-cli)) +$(eval $(call BuildPackage,pgsql-server))