postgresql: update source to 9.4.4 and refresh scripts
authorDaniel Golle <daniel@makrotopia.org>
Mon, 29 Jun 2015 14:40:06 +0000 (16:40 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 18 Oct 2015 22:41:59 +0000 (00:41 +0200)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
libs/postgresql/Makefile
libs/postgresql/files/postgresql.init

index 727f7c721929b66a7d583a6451272e7af11e5052..33cb010abe4f3073df4af1289b50a1dd555cbd0f 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postgresql
-PKG_VERSION:=9.4.1
+PKG_VERSION:=9.4.4
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
 PKG_LICENSE:=PostgreSQL
@@ -18,7 +18,7 @@ PKG_SOURCE_URL:=\
        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:=2cf30f50099ff1109d0aa517408f8eff
+PKG_MD5SUM:=1fe952c44ed26d7e6a335cf991a9c1c6
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
 PKG_FIXUP:=autoreconf
@@ -59,6 +59,7 @@ define Package/pgsql-server
   TITLE:=PostgreSQL databases Server
   URL:=http://www.postgresql.org/
   SUBMENU:=database
+  USERID:=postgres=5432:postgres=5432
 endef
 
 define Package/pgsql-server/description
@@ -86,7 +87,9 @@ define Build/Configure
                        --enable-static \
                        --disable-integer-datetimes \
                        --disable-rpath \
-                       --without-krb5 \
+                       --without-bonjour \
+                       --without-gssapi \
+                       --without-ldap \
                        --without-openssl \
                        --without-pam \
                        --without-perl \
@@ -138,7 +141,9 @@ define Build/Configure
                        --enable-static \
                        --disable-integer-datetimes \
                        --disable-rpath \
-                       --without-krb5 \
+                       --without-bonjour \
+                       --without-gssapi \
+                       --without-ldap \
                        --without-openssl \
                        --without-pam \
                        --without-perl \
@@ -200,32 +205,6 @@ define Package/pgsql-server/conffiles
 /etc/config/postgresql
 endef
 
-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
index 1e1c52f95933ac34e3fb68aabd452440bcff4bbc..458e8c00f8387e729e89b4a1c9e1437ae1f1a81f 100644 (file)
@@ -1,93 +1,73 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 START=50
 
-EXTRA_COMMANDS="status reload"
+PROG=/usr/bin/postmaster
 
-config_load "postgresql"
-config_get pgdata config PGDATA
-config_get pguser config PGUSER
-config_get pgctl config PG_CTL
-config_get pglog config PGLOG
+USE_PROCD=1
 
-start() {
-    if [ ! -e /usr/bin/su ]; then
-        echo "The su command is requred to run postgres"
-        exit 1
-    fi
+EXTRA_COMMANDS="status"
+EXTRA_HELP="        status  Show current status of the PostgreSQL server"
 
-    if [ ! -d ${pgdata} ]; then
-        echo "Create the data directory (${pgdata}) and try again"
-        exit 1
-    fi
+fix_hosts() {
+       # make sure localhost (without a dot) is in /etc/hosts
+       grep -q 'localhost$' /etc/hosts || echo '127.0.0.1 localhost' >> /etc/hosts
+}
 
-    echo "starting postgres..."
-    # make sure localhost (without a dot) is in /etc/hosts
-    grep -q 'localhost$' /etc/hosts || echo '127.0.0.1 localhost' >> /etc/hosts
+fix_perms() {
+       # for whatever reason, /dev/null gets wrong perms
+       chmod a+w /dev/null
+}
 
-    # for whatever reason, /dev/null gets wrong perms
-    chmod a+w /dev/null
+cleanup() {
+       if [ -f "$1/postmaster.pid" ]; then
+               rm "$1/postmaster.pid"
+       fi
+}
 
-    if [ -f ${pgdata}/postmaster.pid ]; then
-        rm ${pgdata}/postmaster.pid
-    fi
+start_service() {
+       config_load "postgresql"
+       config_get pgdata config PGDATA
+       config_get pguser config PGUSER
+       config_get pgctl config PG_CTL
+       config_get pgopts config PGOPTS
 
-    config_get pgopts config PGOPTS
-    if [ -n "${pgopts}" ]; then
-        pgopts="-o ${pgopts}"
-    fi
-    /usr/bin/su ${pguser} -c "/usr/bin/postmaster -D '${pgdata}' &" >> ${pglog} 2>&1
+       user_exists postgres 5432 || user_add postgres 5432
+       group_exists postgres 5432 || group_add postgres 5432
 
-    while :
-    do
-        cnt=$((${cnt} + 1))
-        if [ -f "${pgdata}/postmaster.pid" ]; then
-            ret=0
-            break
-        fi
+       if [ ! -d "${pgdata}" ]; then
+               echo "Create the data directory (${pgdata}) and try again"
+               return 1
+       fi
 
-        if [ ${cnt} -eq 30 ]; then
-            echo "Postgres failed to start.  See ${pglog} for details"
-            ret=1
-            break
-        fi
-        sleep 1
-    done
+       fix_perms
+       fix_hosts
 
-    echo "ok"
-    return ${ret}
-}
+       procd_open_instance
 
-stop() {
-    echo "stopping postgres..."
-    /usr/bin/su ${pguser} -c "${pgctl} stop -D '${pgdata}' -s -m fast"
-    ret=$?
-    if [ -f ${pgdata}/postmaster.pid ]; then
-        rm ${pgdata}/postmaster.pid
-    fi
-    echo "ok"
-    return ${ret}
-}
+       procd_set_param user ${pguser}
+       procd_set_param command $PROG
+       procd_append_param command -D "${pgdata}"
+       [ -n "${pgopts}" ] && procd_append_param command -o "${pgopts}"
 
-restart() {
-    echo "restarting postgres..."
-    /usr/bin/su ${pguser} -c "${pgctl} stop -D '${pgdata}' -s -m fast -w"
-    if [ -f ${pgdata}/postmaster.pid ]; then
-        rm ${pgdata}/postmaster.pid
-    fi
-    /usr/bin/su ${pguser} -c "/usr/bin/postmaster -D '${pgdata}' &" >> ${pglog} 2>&1
-    echo "ok"
-    return $?
+       procd_set_param respawn retry=60
+       procd_close_instance
 }
 
-reload() {
-    echo "reloading postgres..."
-    /usr/bin/su ${pguser} -c "${pgctl} reload -D '${pgdata}' -s"
-    echo "ok"
+reload_service() {
+       config_load "postgresql"
+       config_get pgdata config PGDATA
+       config_get pguser config PGUSER
+       config_get pgctl config PG_CTL
+       ${pgctl} reload -U ${pguser} -D '${pgdata}' -s
 }
 
 status() {
-    echo "status postgres..."
-    /usr/bin/su ${pguser} -c "${pgctl} status -D '${pgdata}'"
-    echo "ok"
+       config_load "postgresql"
+       config_get pgdata config PGDATA
+       config_get pguser config PGUSER
+       config_get pgctl config PG_CTL
+       echo "status postgres..."
+       ${pgctl} status -U ${pguser} -D '${pgdata}'
+       echo "ok"
 }