* [Buildroot] [PATCH v4] postgresql: new package
@ 2014-04-04 20:14 Peter Seiderer
2014-04-20 17:04 ` Thomas Petazzoni
0 siblings, 1 reply; 2+ messages in thread
From: Peter Seiderer @ 2014-04-04 20:14 UTC (permalink / raw)
To: buildroot
Based on suggested new package by Marco Trapanese ([1]).
[1] http://lists.busybox.net/pipermail/buildroot/2014-February/090661.html
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v3 -> v4:
- renamed diplayed package name all lower case postgresql
(as suggested by Thomas Petazzoni)
- disabled postgresql for uClibc with locale/i18n because of compile
failure/uClibc bug (as suggested by Thomas Petazzoni)
- fixed data dir for initializing test in startup script
(as suggested by Thomas Petazzoni)
- fixed typos in feature disable commands
(as suggested by Thomas Petazzoni)
- fixed typo in license file variable name
(as suggested by Jerzy Grzegorek)
Changes v2 -> v3:
- change data dir from /srv/pqsql/data to /var/lib/pgsql
(as suggested by Thomas Petazzoni)
- fix POSTGRESQL_SITE url (removed cut and paste error)
(as suggested by Thomas Petazzoni)
- remove superfluous POSTGRESQL_CONF_OPT prefix option
(as suggested by Thomas Petazzoni)
- fix POSTGRESQL_USERS (remove superfluous own group)
(as suggested by Yann E. MORIN)
- fix data dir install command (remove superfluous -v option)
(as suggested by Yann E. MORIN)
- make readline an zlib optional (add hint in the help text
instead)
(as suggested by Thomas Petazzoni)
Changes v1 -> v2:
- add postgresql user
- add postgresql data directory
- add sysv initialize and startup script
---
package/Config.in | 1 +
package/postgresql/Config.in | 24 ++++++++++++++++++
package/postgresql/S50postgresql | 44 ++++++++++++++++++++++++++++++++
package/postgresql/postgresql.mk | 54 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 123 insertions(+)
create mode 100644 package/postgresql/Config.in
create mode 100644 package/postgresql/S50postgresql
create mode 100644 package/postgresql/postgresql.mk
diff --git a/package/Config.in b/package/Config.in
index e816603..5805342 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -544,6 +544,7 @@ source "package/berkeleydb/Config.in"
source "package/cppdb/Config.in"
source "package/gdbm/Config.in"
source "package/mysql/Config.in"
+source "package/postgresql/Config.in"
source "package/redis/Config.in"
source "package/sqlcipher/Config.in"
source "package/sqlite/Config.in"
diff --git a/package/postgresql/Config.in b/package/postgresql/Config.in
new file mode 100644
index 0000000..4139799
--- /dev/null
+++ b/package/postgresql/Config.in
@@ -0,0 +1,24 @@
+config BR2_PACKAGE_POSTGRESQL
+ bool "postgresql"
+ depends on BR2_INET_IPV6
+ depends on !BR2_TOOLCHAIN_USES_UCLIBC || !BR2_TOOLCHAIN_BUILDROOT_LOCALE
+ select BR2_PACKAGE_READLINE
+ select BR2_PACKAGE_ZLIB
+ help
+ PostgreSQL is a powerful, open source object-relational
+ database system.
+
+ Enable the readline package to gain readline support in
+ pgsql (the command line interpreter), which offers
+ command history and edit functions.
+
+ Enable the zlib package to gain builtin compression for
+ archives with pg_dump and pg_restore.
+
+ http://www.postgresql.org
+
+comment "postgresql needs a toolchain w/ IPv6"
+ depends on !BR2_INET_IPV6
+
+comment "postgresql does not compile w/ uClibc and locale/i18n enabled"
+ depends on BR2_TOOLCHAIN_USES_UCLIBC && BR2_TOOLCHAIN_BUILDROOT_LOCALE
diff --git a/package/postgresql/S50postgresql b/package/postgresql/S50postgresql
new file mode 100644
index 0000000..86a8d83
--- /dev/null
+++ b/package/postgresql/S50postgresql
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# start postgresql
+#
+
+umask 077
+
+if [ ! -f /var/lib/pgsql/PG_VERSION ]; then
+ echo "Initializing postgresql data base..."
+ su - postgres -c '/usr/bin/pg_ctl initdb -D /var/lib/pgsql'
+ echo "done"
+fi
+
+start() {
+ echo -n "Starting postgresql: "
+ su - postgres -c '/usr/bin/pg_ctl start -D /var/lib/pgsql -l logfile'
+ echo "OK"
+}
+stop() {
+ echo -n "Stopping postgresql: "
+ su - postgres -c '/usr/bin/pg_ctl stop -D /var/lib/pgsql -m fast'
+ echo "OK"
+}
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
diff --git a/package/postgresql/postgresql.mk b/package/postgresql/postgresql.mk
new file mode 100644
index 0000000..16e644f
--- /dev/null
+++ b/package/postgresql/postgresql.mk
@@ -0,0 +1,54 @@
+################################################################################
+#
+# postgresql
+#
+################################################################################
+
+POSTGRESQL_VERSION = 9.3.3
+POSTGRESQL_SOURCE = postgresql-$(POSTGRESQL_VERSION).tar.bz2
+POSTGRESQL_SITE = http://ftp.postgresql.org/pub/source/v$(POSTGRESQL_VERSION)
+POSTGRESQL_LICENSE = PostgreSQL
+POSTGRESQL_LICENSE_FILES = COPYRIGHT
+
+ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+ POSTGRESQL_CONF_OPT += --disable-thread-safety
+endif
+
+ifeq ($(BR2_PACKAGE_READLINE),y)
+ POSTGRESQL_DEPENDENCIES += readline
+else
+ POSTGRESQL_CONF_OPT += --without-readline
+endif
+
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+ POSTGRESQL_DEPENDENCIES += zlib
+else
+ POSTGRESQL_CONF_OPT += --without-zlib
+endif
+
+ifeq ($(BR2_PACKAGE_TZDATA),y)
+ POSTGRESQL_DEPENDENCIES += tzdata
+ POSTGRESQL_CONF_OPT += --with-system-tzdata=/usr/share/zoneinfo
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+ POSTGRESQL_DEPENDENCIES += openssl
+ POSTGRESQL_CONF_OPT += --with-openssl
+endif
+
+define POSTGRESQL_USERS
+ postgres -1 postgres -1 * /var/lib/pgsql /bin/sh - PostgreSQL Server
+endef
+
+define POSTGRESQL_INSTALL_TARGET_FIXUP
+ $(INSTALL) -dm 0700 $(TARGET_DIR)/var/lib/pgsql
+endef
+
+POSTGRESQL_POST_INSTALL_TARGET_HOOKS += POSTGRESQL_INSTALL_TARGET_FIXUP
+
+define POSTGRESQL_INSTALL_INIT_SYSV
+ $(INSTALL) -m 0755 -D package/postgresql/S50postgresql \
+ $(TARGET_DIR)/etc/init.d/S50postgresql
+endef
+
+$(eval $(autotools-package))
--
1.8.1.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] [PATCH v4] postgresql: new package
2014-04-04 20:14 [Buildroot] [PATCH v4] postgresql: new package Peter Seiderer
@ 2014-04-20 17:04 ` Thomas Petazzoni
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni @ 2014-04-20 17:04 UTC (permalink / raw)
To: buildroot
Dear Peter Seiderer,
On Fri, 4 Apr 2014 22:14:01 +0200, Peter Seiderer wrote:
> Based on suggested new package by Marco Trapanese ([1]).
>
> [1] http://lists.busybox.net/pipermail/buildroot/2014-February/090661.html
>
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Applied, thanks. However I've made the package only available with
glibc toolchains, since uClibc was causing problems with locales
enabled. Yann E. Morin has reported the uClibc locales bug to the
uClibc developers.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-04-20 17:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-04 20:14 [Buildroot] [PATCH v4] postgresql: new package Peter Seiderer
2014-04-20 17:04 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox