From 8465b116407c1d477d852785d5bd499665296b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?penSec=2EIT=20UG=20=28haftungsbeschr=C3=A4nkt=29?= Date: Sun, 4 Apr 2010 04:19:46 +0200 Subject: apt Buildsystem --- build/apt/DEBIAN/control | 16 +++ build/apt/DEBIAN/postinst | 291 +++++++++++++++++++++++++++++++++++++++++++++ build/apt/DEBIAN/prerm | 36 ++++++ build/apt/DEBIAN/templates | 63 ++++++++++ 4 files changed, 406 insertions(+) create mode 100644 build/apt/DEBIAN/control create mode 100755 build/apt/DEBIAN/postinst create mode 100755 build/apt/DEBIAN/prerm create mode 100644 build/apt/DEBIAN/templates (limited to 'build/apt/DEBIAN') diff --git a/build/apt/DEBIAN/control b/build/apt/DEBIAN/control new file mode 100644 index 0000000..0129652 --- /dev/null +++ b/build/apt/DEBIAN/control @@ -0,0 +1,16 @@ +Package: etherpad-%BRANCH% +Priority: optional +Section: web +Maintainer: penSec.IT UG (haftungsbeschränkt) +Architecture: all +Version: 1.0-%REVISION% +Depends: debconf (>= 0.2.17), sun-java6-jre, scala, mysql-server, mysql-client, libmysql-java, bash +Description: Etherpad is... + EtherPad is the only web-based word processor that allows people to work + together in really real-time. + . + When multiple people edit the same document simultaneously, any changes are + instantly reflected on everyone's screen. The result is a new and productive + way to collaborate on text documents, useful for meeting notes, drafting + sessions, education, team programming, and more. + diff --git a/build/apt/DEBIAN/postinst b/build/apt/DEBIAN/postinst new file mode 100755 index 0000000..d92c6a7 --- /dev/null +++ b/build/apt/DEBIAN/postinst @@ -0,0 +1,291 @@ +#!/bin/bash + +################################################################################ +# +# Copyright (c) 2010 penSec.IT UG (haftungsbeschränkt) +# http://www.pensec.it +# mail@pensec.it +# +# Diese Software wird ohne ausdrückliche oder implizierte Garantie +# bereitgestellt. Auf keinen Fall können die Autoren für irgendwelche Schäden, +# die durch die Benutzung dieser Software entstehen, haftbar gemacht werden. +# +# Es ist dem Auftraggeber gestattet diese Software für jeden Zweck, inklusive +# kommerzieller Anwendungen, zu benutzten und zu verändern aber nicht +# weiterzuverbreiten, solange folgende Bedingungen erfüllt sind: +# +# 1. Die Herkunft dieser Software darf nicht falsch dargestellt werden; Sie +# dürfen nicht angeben, dass Sie die ursprüngliche Software geschrieben +# haben. Wenn Sie diese Software in einem Produkt benutzten, würde eine +# Erwähnung geschätzt werden, sie ist aber nicht erforderlich. +# 2. Veränderte Quelltextversionen müssen deutlich als solche +# gekennzeichnet werden und dürfen nicht als die Originalsoftware +# dargestellt werden. +# 3. Diese Notiz darf in den Quelltexten nicht verändert oder gelöscht +# werden. +# +################################################################################ + + + +set -e +. /usr/share/debconf/confmodule + +if [ -n "$ETHERPAD_DEBUG" ]; then + echo "now debugging $0 $@" + set -x +fi + +db_version 2.0 + + + + + +##### +# +# Fragt einen Konfigurationswert ab und schreibt ihn in die Eigenschaftsdatei +# +# @param $1 Name des debconfig Templates +# @param $2 Name der Datei in welche der Konfigurationswert geschrieben werden +# soll +# @param $3 Wird aktuell nicht verwendet, Platzhalter in etherpad.properties +# welcher mit dem Wert dieser Varialbe ersetzt werden soll +# +function configuration_property() { + TEMPLATE="${1}" + PROPERTY_FILE="/etc/etherpad/properties/${2}" + PLACEHOLDER="${3}" + + PROPERTY=`cat "${PROPERTY_FILE}"` + db_input high "etherpad-%BRANCH%/${TEMPLATE}" || true + db_go + + db_get "etherpad-%BRANCH%/${TEMPLATE}" + if [ "" != "$RET" ]; then + PROPERTY="$RET" + fi + + echo "${PROPERTY}" > "${PROPERTY_FILE}" +} +# +##### + + + +case "$1" in + + configure) + + # Create system user + if ! getent passwd etherpad > /dev/null ; then + echo 'Adding system-user for etherpad' 1>&2 + adduser --system --group --quiet \ + --home /usr/share/etherpad --no-create-home \ + --disabled-login --force-badname etherpad + fi + + + # Give user the rights to write into the log & data directory + if [ -d "/var/log/etherpad" ]; then + EMPTY_STATEMENT="true" + else + mkdir -p "/var/log/etherpad" + fi + chown -R etherpad:etherpad "/var/log/etherpad" + + if [ -d "/usr/share/etherpad/etherpad/data" ]; then + EMPTY_STATEMENT="true" + else + mkdir -p "/usr/share/etherpad/etherpad/data" + fi + chown -R etherpad:etherpad "/usr/share/etherpad/etherpad/data" + + + # Give user the rights do write everywhere, did not yet figure + # out which rights are necessary, exactly + chown -R etherpad:etherpad "/usr/share/etherpad" + ;; + +esac + + + +##### +# +# Get configuration properties +# +configuration_property "is_production" "is-production" "IS_PRODUCTION" +configuration_property "admin_password" "admin-password" "ADMIN_PASSWORD" +configuration_property "port" "port" "PORT" +configuration_property "database_host" "database-host" "DATABASE_HOST" +configuration_property "database_port" "database-port" "DATABASE_PORT" +configuration_property "database_name" "database-name" "DATABASE_NAME" +configuration_property "database_username" "database-username" "DATABASE_USERNAME" +configuration_property "database_password" "database-password" "DATABASE_PASSWORD" +# +##### + + + + + +# ##### +# # +# # Install in production mode +# # +# IS_PRODUCTION="false" +# db_input high "etherpad-%BRANCH%/is_production" || true +# db_go +# +# db_get "etherpad-%BRANCH%/is_production" +# if [ "" != "$RET" ]; then +# IS_PRODUCTION="$RET" +# fi +# +# apply_config "IS_PRODUCTION" "${IS_PRODUCTION}" +# # +# ##### + +# ##### +# # +# # Admin password +# # +# ADMIN_PASSWORD="password" +# db_input high "etherpad-%BRANCH%/admin_password" || true +# db_go +# +# db_get "etherpad-%BRANCH%/admin_password" +# if [ "" != "$RET" ]; then +# ADMIN_PASSWORD="$RET" +# fi +# +# apply_config "ADMIN_PASSWORD" "${ADMIN_PASSWORD}" +# # +# ##### + +# ##### +# # +# # Application listen port +# # +# PORT="9000" +# db_input high "etherpad-%BRANCH%/port" || true +# db_go +# +# db_get "etherpad-%BRANCH%/port" +# if [ "" != "$RET" ]; then +# PORT="$RET" +# fi +# +# apply_config "PORT" "${PORT}" +# # +# ##### + +# ##### +# # +# # MySQL Host +# # +# DATABASE_HOST="localhost" +# db_input high "etherpad-%BRANCH%/database_host" || true +# db_go +# +# db_get "etherpad-%BRANCH%/database_host" +# if [ "" != "$RET" ]; then +# DATABASE_HOST="$RET" +# fi +# +# apply_config "DATABASE_HOST" "${DATABASE_HOST}" +# # +# ##### + +# ##### +# # +# # MySQL Port +# # +# DATABASE_PORT="3306" +# db_input high "etherpad-%BRANCH%/database_port" || true +# db_go +# +# db_get "etherpad-%BRANCH%/database_port" +# if [ "" != "$RET" ]; then +# DATABASE_PORT="$RET" +# fi +# +# apply_config "DATABASE_PORT" "${DATABASE_PORT}" +# # +# ##### + +# ##### +# # +# # MySQL database name +# # +# DATABASE_NAME="etherpad" +# db_input high "etherpad-%BRANCH%/database_name" || true +# db_go +# +# db_get "etherpad-%BRANCH%/database_name" +# if [ "" != "$RET" ]; then +# DATABASE_NAME="$RET" +# fi +# +# apply_config "DATABASE_NAME" "${DATABASE_NAME}" +# # +# ##### + +# ##### +# # +# # MySQL database username +# # +# DATABASE_USERNAME="etherpad" +# db_input high "etherpad-%BRANCH%/database_username" || true +# db_go +# +# db_get "etherpad-%BRANCH%/database_username" +# if [ "" != "$RET" ]; then +# DATABASE_USERNAME="$RET" +# fi +# +# apply_config "DATABASE_USERNAME" "${DATABASE_USERNAME}" +# # +# ##### + +# ##### +# # +# # MySQL database password +# # +# DATABASE_PASSWORD="password" +# db_input high "etherpad-%BRANCH%/database_password" || true +# db_go +# +# db_get "etherpad-%BRANCH%/database_password" +# if [ "" != "$RET" ]; then +# DATABASE_PASSWORD="$RET" +# fi +# +# apply_config "DATABASE_PASSWORD" "${DATABASE_PASSWORD}" +# # +# ##### + + +##### +# +# MySQL-Autosetup should be discussed. Simply calling setup-myql-db.sh is +# insufficient +# +# # Auto-setup database +# db_input medium "etherpad-%BRANCH%/setup_database" || true +# db_go +# +# db_get "etherpad-%BRANCH%/setup_database" +# if [ "$RET" = "true" ]; then +# # TODO +# fi +# +##### + + + + + + + diff --git a/build/apt/DEBIAN/prerm b/build/apt/DEBIAN/prerm new file mode 100755 index 0000000..2f54468 --- /dev/null +++ b/build/apt/DEBIAN/prerm @@ -0,0 +1,36 @@ +#!/bin/sh + +################################################################################ +# +# Copyright (c) 2010 penSec.IT UG (haftungsbeschränkt) +# http://www.pensec.it +# mail@pensec.it +# +# Diese Software wird ohne ausdrückliche oder implizierte Garantie +# bereitgestellt. Auf keinen Fall können die Autoren für irgendwelche Schäden, +# die durch die Benutzung dieser Software entstehen, haftbar gemacht werden. +# +# Es ist dem Auftraggeber gestattet diese Software für jeden Zweck, inklusive +# kommerzieller Anwendungen, zu benutzten und zu verändern aber nicht +# weiterzuverbreiten, solange folgende Bedingungen erfüllt sind: +# +# 1. Die Herkunft dieser Software darf nicht falsch dargestellt werden; Sie +# dürfen nicht angeben, dass Sie die ursprüngliche Software geschrieben +# haben. Wenn Sie diese Software in einem Produkt benutzten, würde eine +# Erwähnung geschätzt werden, sie ist aber nicht erforderlich. +# 2. Veränderte Quelltextversionen müssen deutlich als solche +# gekennzeichnet werden und dürfen nicht als die Originalsoftware +# dargestellt werden. +# 3. Diese Notiz darf in den Quelltexten nicht verändert oder gelöscht +# werden. +# +################################################################################ + + + +set -e + +# Remove log+data directories, otherwise uninstall will fail +rm -rf /var/log/etherpad +rm -rf /usr/share/etherpad/etherpad/data + diff --git a/build/apt/DEBIAN/templates b/build/apt/DEBIAN/templates new file mode 100644 index 0000000..8cf6124 --- /dev/null +++ b/build/apt/DEBIAN/templates @@ -0,0 +1,63 @@ +Template: etherpad-%BRANCH%/is_production +Type: boolean +Default: false +Description: Install as production mode? + Do you wish to install etherpad in production mode? + . + Note: be aware that etherpad is under active development and not yet ready + for general deployment! + +Template: etherpad-%BRANCH%/admin_password +Type: password +Default: password +Description: etherpad administration password + Please insert the administration password, default is password. + +Template: etherpad-%BRANCH%/port +Type: string +Default: 9000 +Description: etherpad tcp port + Please insert the port on which etherpad should listen, default is 9000. + +Template: etherpad-%BRANCH%/setup_database +Type: boolean +Default: false +Description: Do yo want etherpad to create a database for you? + Do you want to use the database wizard to setup a database for etherpad to + use? + . + Note: This wizard only works with local mysql installations. If you want to use + a remote mysql database, then answer no and edit + /etc/etherpad/etherpad.properties appropriatly. + +Template: etherpad-%BRANCH%/database_host +Type: string +Default: localhost +Description: MySQL database hostname + Please insert the database hostname, default is localhost. + +Template: etherpad-%BRANCH%/database_port +Type: string +Default: 3306 +Description: MySQL database port + Please insert the database port, default is 3306. + +Template: etherpad-%BRANCH%/database_name +Type: string +Default: etherpad +Description: MySQL database name + Please insert the database name, default is etherpad. + +Template: etherpad-%BRANCH%/database_username +Type: string +Default: etherpad +Description: MySQL database username + Please insert the database username, default is etherpad. + +Template: etherpad-%BRANCH%/database_password +Type: password +Default: password +Description: MySQL database password + Please insert the password for the specified database user, default is + password. + -- cgit v1.2.3-1-g7c22