From 102a4981ba02bf4c68ccc0e09d11f4deaf165ab8 Mon Sep 17 00:00:00 2001 From: benoitc Date: Sat, 24 Jan 2015 09:10:58 +0100 Subject: [PATCH 1/6] add start_front command strat_front command to start a release in the foreground. --- priv/base/runner | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/priv/base/runner b/priv/base/runner index eed11b4..43037f1 100755 --- a/priv/base/runner +++ b/priv/base/runner @@ -21,7 +21,7 @@ usage() { cat < /dev/null + ES=$? + if [ "$ES" -ne 0 ]; then + exit $ES + fi + + # Warn the user if ulimit is too low + check_ulimit + + # Make sure log directory exists + mkdir -p $RUNNER_LOG_DIR + + mkdir -p $PIPE_DIR + $ERTS_PATH/run_erl $PIPE_DIR/ $RUNNER_LOG_DIR \ + "exec $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT console" 2>&1 +} + do_stop() { get_pid ES=$? @@ -253,6 +275,12 @@ case "$1" in do_start ;; + start_front) + # Bootstrap daemon command (check perms & drop to $RUNNER_USER) + bootstrapd $@ + do_start_front + ;; + stop) # Bootstrap daemon command (check perms & drop to $RUNNER_USER) bootstrapd $@ From 2dc6d6cd5e9a14cedd7381cf9669e85d2bdca4d6 Mon Sep 17 00:00:00 2001 From: benoitc Date: Sat, 24 Jan 2015 09:14:15 +0100 Subject: [PATCH 2/6] dont't hard code the rundir --- priv/base/env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/priv/base/env.sh b/priv/base/env.sh index 53704fc..d2b749d 100755 --- a/priv/base/env.sh +++ b/priv/base/env.sh @@ -30,7 +30,7 @@ APP_VERSION={{app_version}} # Variables needed to support creation of .pid files # PID directory and pid file name of this app # ex: /var/run/riak & /var/run/riak/riak.pid -RUN_DIR="/var/run" # for now hard coded unless we find a platform that differs +RUN_DIR="{{platform_run_dir}}" PID_DIR=$RUN_DIR/$RUNNER_SCRIPT PID_FILE=$PID_DIR/$RUNNER_SCRIPT.pid From 4df15175aecdc6ad0e5341b749133a1e0818bfe6 Mon Sep 17 00:00:00 2001 From: benoitc Date: Mon, 26 Jan 2015 08:15:05 +0100 Subject: [PATCH 3/6] make sure to set default RUN_DIR --- priv/base/env.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/priv/base/env.sh b/priv/base/env.sh index d2b749d..88c127f 100755 --- a/priv/base/env.sh +++ b/priv/base/env.sh @@ -31,6 +31,9 @@ APP_VERSION={{app_version}} # PID directory and pid file name of this app # ex: /var/run/riak & /var/run/riak/riak.pid RUN_DIR="{{platform_run_dir}}" +if [ -z "$RUN_DIR" ]; then + RUN_DIR=/var/run +fi PID_DIR=$RUN_DIR/$RUNNER_SCRIPT PID_FILE=$PID_DIR/$RUNNER_SCRIPT.pid From 5c20913f29327fd5a9181877f058674eabf8d1ce Mon Sep 17 00:00:00 2001 From: benoitc Date: Wed, 28 Jan 2015 09:42:03 +0100 Subject: [PATCH 4/6] handle share directory --- priv/templates/deb/deb.template | 3 ++- priv/templates/deb/dirs | 1 + priv/templates/deb/postinst | 1 + priv/templates/deb/rules | 3 +++ priv/templates/deb/vars.config | 1 + priv/templates/fbsd/Makefile | 8 ++++++++ priv/templates/fbsd/fbsd.template | 1 + priv/templates/fbsd/vars.config | 1 + priv/templates/fbsdng/Makefile | 4 ++++ priv/templates/fbsdng/fbsdng.template | 1 + priv/templates/fbsdng/vars.config | 1 + priv/templates/rpm/specfile | 7 ++++++- priv/templates/smartos/smartos.template | 1 + priv/templates/smartos/vars.config | 1 + priv/templates/solaris/solaris.template | 1 + priv/templates/solaris/vars.config | 1 + 16 files changed, 34 insertions(+), 2 deletions(-) diff --git a/priv/templates/deb/deb.template b/priv/templates/deb/deb.template index 79ae81c..aff160b 100644 --- a/priv/templates/deb/deb.template +++ b/priv/templates/deb/deb.template @@ -21,7 +21,8 @@ {platform_etc_dir, "/etc/{{package_install_name}}"}, {platform_base_dir, "/usr/lib/{{package_install_name}}"}, {platform_lib_dir, "/usr/lib/{{package_install_name}}/lib"}, - {platform_log_dir, "/var/log/{{package_install_name}}"} + {platform_log_dir, "/var/log/{{package_install_name}}"}, + {platform_share_dir, "/usr/share/{{package_install_name}}"} ] }. {template, "Makefile", "Makefile"}. diff --git a/priv/templates/deb/dirs b/priv/templates/deb/dirs index 1425671..47e2a07 100644 --- a/priv/templates/deb/dirs +++ b/priv/templates/deb/dirs @@ -3,6 +3,7 @@ etc/{{package_install_name}} etc/logrotate.d usr/lib/{{package_install_name}} usr/{{bin_or_sbin}} +usr/share/{{package_install_name}} usr/share/man/man1 var/run/{{package_install_name}} var/lib/{{package_install_name}} diff --git a/priv/templates/deb/postinst b/priv/templates/deb/postinst index 1c3d32b..5dc0f0f 100755 --- a/priv/templates/deb/postinst +++ b/priv/templates/deb/postinst @@ -28,6 +28,7 @@ done chown -R {{package_install_user}}:{{package_install_group}} /usr/lib/{{package_install_name}} chown -R {{package_install_user}}:{{package_install_group}} /etc/{{package_install_name}} +chown -R {{package_install_user}}:{{package_install_group}} /usr/share/{{package_install_name}} chmod 0755 /var/run/{{package_install_name}} /etc/{{package_install_name}} chmod 0644 /etc/{{package_install_name}}/* diff --git a/priv/templates/deb/rules b/priv/templates/deb/rules index deee941..1b27c41 100755 --- a/priv/templates/deb/rules +++ b/priv/templates/deb/rules @@ -42,6 +42,9 @@ install: build cp -R rel/{{package_install_name}}/releases \ debian/{{package_name}}/usr/lib/{{package_install_name}} + cp -R rel/{{package_install_name}}/share \ + debian/{{package_name}}/usr/share/{{package_install_name}} + ## executables if [ -d rel/{{package_install_name}}/bin ]; then \ mkdir -p debian/{{package_name}}/usr/{{bin_or_sbin}} && \ diff --git a/priv/templates/deb/vars.config b/priv/templates/deb/vars.config index 22276fb..fa29eab 100644 --- a/priv/templates/deb/vars.config +++ b/priv/templates/deb/vars.config @@ -8,6 +8,7 @@ {platform_base_dir, "{{platform_base_dir}}"}. {platform_lib_dir, "{{platform_lib_dir}}"}. {platform_log_dir, "{{platform_log_dir}}"}. +{{platform_share_dir, "{{platform_share_dir}}"}. {runner_script_dir, "{{platform_bin_dir}}"}. {runner_base_dir, "{{platform_base_dir}}"}. diff --git a/priv/templates/fbsd/Makefile b/priv/templates/fbsd/Makefile index 2d79af9..1156760 100644 --- a/priv/templates/fbsd/Makefile +++ b/priv/templates/fbsd/Makefile @@ -7,6 +7,7 @@ PMAN_DIR = $(BUILD_STAGE_DIR)/man PBIN_DIR = $(BUILD_STAGE_DIR)/{{bin_or_sbin}} PETC_DIR = $(BUILD_STAGE_DIR)/etc/{{package_install_name}} PLIB_DIR = $(BUILD_STAGE_DIR)/lib/{{package_install_name}} +PSHARE_DIR = $(BUILD_STAGE_DIR)/share/{{package_install_name}} # /var based dirs PDATA_DIR = $(BUILD_STAGE_DIR)/{{platform_data_dir}} PLOG_DIR = $(BUILD_STAGE_DIR)/log/{{package_install_name}} @@ -28,6 +29,7 @@ build: packing_list_files templates find {{bin_or_sbin}} -type f | tar -rf $(TARNAME) -T - && \ find lib -type f | tar -rf $(TARNAME) -T - && \ find etc -type f | tar -rf $(TARNAME) -T - && \ + find share -type f | tar -rf $(TARNAME) -T && \ find var -type f | tar -rf $(TARNAME) -T - && \ find log -type f | tar -rf $(TARNAME) -T - @@ -97,6 +99,10 @@ packing_list_files: $(BUILD_STAGE_DIR) find lib -type f >> +CONTENTS && \ find lib -d -type d -mindepth 1 -exec echo "@dirrm {}" \; >> +CONTENTS && \ echo "@exec chown -R {{package_install_user}}:{{package_install_group}} {{platform_base_dir}}" >> +CONTENTS + cd $(BUILD_STAGE_DIR) && \ + find share -type f >> +CONTENTS && \ + find share -d -type d -mindepth 1 -exec echo "@dirrm {}" \; >> +CONTENTS && \ + echo "@exec chown -R {{package_install_user}}:{{package_install_group}} {{platform_base_dir}}" >> +CONTENTS cd $(BUILD_STAGE_DIR) && \ echo "@owner root" >> +CONTENTS && \ echo "@group wheel" >> +CONTENTS && \ @@ -144,6 +150,8 @@ $(BUILD_STAGE_DIR): buildrel cp -R rel/{{package_install_name}}/lib $(PLIB_DIR) cp -R rel/{{package_install_name}}/erts-* $(PLIB_DIR) cp -R rel/{{package_install_name}}/releases $(PLIB_DIR) + mkdir -p $(PSHARE_DIR) + cp -R rel/{{package_install_name}}/share $(PSHARE_DIR) mkdir -p $(PDATA_DIR) cp -R rel/{{package_install_name}}/data/* $(PDATA_DIR) mkdir -p $(PLOG_DIR) diff --git a/priv/templates/fbsd/fbsd.template b/priv/templates/fbsd/fbsd.template index b1d7e61..5b6ab12 100644 --- a/priv/templates/fbsd/fbsd.template +++ b/priv/templates/fbsd/fbsd.template @@ -16,6 +16,7 @@ {platform_etc_dir, "/usr/local/etc/{{package_install_name}}"}, {platform_base_dir, "/usr/local/lib/{{package_install_name}}"}, {platform_lib_dir, "/usr/local/lib/{{package_install_name}}/lib"}, + {platform_share_dir, "/usr/local/share/{{package_install_name}}"}, {platform_log_dir, "/var/log/{{package_install_name}}"} ] }. diff --git a/priv/templates/fbsd/vars.config b/priv/templates/fbsd/vars.config index 7ecaee8..ffda1d4 100644 --- a/priv/templates/fbsd/vars.config +++ b/priv/templates/fbsd/vars.config @@ -8,6 +8,7 @@ {platform_base_dir, "{{platform_base_dir}}"}. {platform_lib_dir, "{{platform_lib_dir}}"}. {platform_log_dir, "{{platform_log_dir}}"}. +{platform_share_dir, "{{platform_share_dir}}"}. %% TODO can we just get rid of these? {runner_script_dir, "{{platform_bin_dir}}"}. diff --git a/priv/templates/fbsdng/Makefile b/priv/templates/fbsdng/Makefile index 7c2ff12..ebd6b1c 100644 --- a/priv/templates/fbsdng/Makefile +++ b/priv/templates/fbsdng/Makefile @@ -7,6 +7,8 @@ PMAN_DIR = $(BUILD_STAGE_DIR)/usr/local/man PBIN_DIR = $(BUILD_STAGE_DIR)/{{platform_bin_dir}} PETC_DIR = $(BUILD_STAGE_DIR)/{{platform_etc_dir}} PLIB_DIR = $(BUILD_STAGE_DIR)/{{platform_base_dir}} +PSHARE_DIR = $(BUILD_STAGE_DIR)/{{platform_share_dir}} + # /var based dirs PDATA_DIR = $(BUILD_STAGE_DIR)/{{platform_data_dir}} PLOG_DIR = $(BUILD_STAGE_DIR)/var/log/{{package_install_name}} @@ -79,6 +81,8 @@ $(BUILD_STAGE_DIR): buildrel cp -R rel/{{package_install_name}}/lib $(PLIB_DIR) cp -R rel/{{package_install_name}}/erts-* $(PLIB_DIR) cp -R rel/{{package_install_name}}/releases $(PLIB_DIR) + mkdir -p $(PSHARE_DIR) + cp -R rel/{{package_install_name}}/share $(PSHARE_DIR) mkdir -p $(PDATA_DIR) cp -R rel/{{package_install_name}}/data/* $(PDATA_DIR) mkdir -p ${BUILD_STAGE_DIR}/usr/local/etc/rc.d diff --git a/priv/templates/fbsdng/fbsdng.template b/priv/templates/fbsdng/fbsdng.template index 939aafd..9f661eb 100644 --- a/priv/templates/fbsdng/fbsdng.template +++ b/priv/templates/fbsdng/fbsdng.template @@ -16,6 +16,7 @@ {platform_etc_dir, "/usr/local/etc/{{package_install_name}}"}, {platform_base_dir, "/usr/local/lib/{{package_install_name}}"}, {platform_lib_dir, "/usr/local/lib/{{package_install_name}}/lib"}, + {platform_share_dir, "/usr/local/share/{{package_install_name}}/share"}, {platform_log_dir, "/var/log/{{package_install_name}}"} ] }. diff --git a/priv/templates/fbsdng/vars.config b/priv/templates/fbsdng/vars.config index 7ecaee8..ffda1d4 100644 --- a/priv/templates/fbsdng/vars.config +++ b/priv/templates/fbsdng/vars.config @@ -8,6 +8,7 @@ {platform_base_dir, "{{platform_base_dir}}"}. {platform_lib_dir, "{{platform_lib_dir}}"}. {platform_log_dir, "{{platform_log_dir}}"}. +{platform_share_dir, "{{platform_share_dir}}"}. %% TODO can we just get rid of these? {runner_script_dir, "{{platform_bin_dir}}"}. diff --git a/priv/templates/rpm/specfile b/priv/templates/rpm/specfile index 5775241..c8598dd 100644 --- a/priv/templates/rpm/specfile +++ b/priv/templates/rpm/specfile @@ -44,7 +44,7 @@ Obsoletes: {{package_name}} %define platform_base_dir %{_libdir}/{{package_install_name}} %define platform_lib_dir %{platform_base_dir}/lib %define platform_log_dir %{_localstatedir}/log/{{package_install_name}} - +%define platform_share_dir %{_datarootdir}/{{package_install_name}} %prep %setup -q -n %{_tarname_base} @@ -58,6 +58,7 @@ cat > rpm.vars.config < Date: Wed, 28 Jan 2015 09:50:13 +0100 Subject: [PATCH 5/6] fix typo --- priv/templates/deb/vars.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/priv/templates/deb/vars.config b/priv/templates/deb/vars.config index fa29eab..9fbdc38 100644 --- a/priv/templates/deb/vars.config +++ b/priv/templates/deb/vars.config @@ -8,7 +8,7 @@ {platform_base_dir, "{{platform_base_dir}}"}. {platform_lib_dir, "{{platform_lib_dir}}"}. {platform_log_dir, "{{platform_log_dir}}"}. -{{platform_share_dir, "{{platform_share_dir}}"}. +{platform_share_dir, "{{platform_share_dir}}"}. {runner_script_dir, "{{platform_bin_dir}}"}. {runner_base_dir, "{{platform_base_dir}}"}. From 2fc1168f4e9350140a02f41d59e147786b5360da Mon Sep 17 00:00:00 2001 From: benoitc Date: Wed, 28 Jan 2015 10:06:13 +0100 Subject: [PATCH 6/6] fix debian package: correctly copy share env --- priv/templates/deb/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/priv/templates/deb/rules b/priv/templates/deb/rules index 1b27c41..b69ce92 100755 --- a/priv/templates/deb/rules +++ b/priv/templates/deb/rules @@ -42,7 +42,7 @@ install: build cp -R rel/{{package_install_name}}/releases \ debian/{{package_name}}/usr/lib/{{package_install_name}} - cp -R rel/{{package_install_name}}/share \ + cp -R rel/{{package_install_name}}/share/* \ debian/{{package_name}}/usr/share/{{package_install_name}} ## executables