You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2015/03/26 08:21:30 UTC
svn commit: r1669279 - in /sling/trunk/contrib: launchpad/debian/
launchpad/debian/src/deb/control/ launchpad/debian/src/root_fs/etc/default/
launchpad/debian/src/root_fs/etc/init.d/
launchpad/debian/src/root_fs/etc/logrotate.d/ launchpad/debian/src/ro...
Author: tomekr
Date: Thu Mar 26 07:21:30 2015
New Revision: 1669279
URL: http://svn.apache.org/r1669279
Log:
SLING-4517 Update debian packaging to use crankstart.
Added:
sling/trunk/contrib/launchpad/debian/README.md
sling/trunk/contrib/launchpad/debian/src/deb/control/postrm
sling/trunk/contrib/launchpad/debian/src/root_fs/etc/default/sling
sling/trunk/contrib/launchpad/debian/src/root_fs/opt/
sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/
sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/scripts/
sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/scripts/sling-common.sh
sling/trunk/contrib/sling-s3/crank-s3.d/05-credentials.txt
Removed:
sling/trunk/contrib/launchpad/debian/README.txt
sling/trunk/contrib/launchpad/debian/src/root_fs/etc/default/sling.sample
Modified:
sling/trunk/contrib/launchpad/debian/pom.xml
sling/trunk/contrib/launchpad/debian/src/deb/control/control
sling/trunk/contrib/launchpad/debian/src/deb/control/postinst
sling/trunk/contrib/launchpad/debian/src/deb/control/prerm
sling/trunk/contrib/launchpad/debian/src/root_fs/etc/init.d/sling
sling/trunk/contrib/launchpad/debian/src/root_fs/etc/logrotate.d/sling
sling/trunk/contrib/sling-s3/Makefile
sling/trunk/contrib/sling-s3/scripts/download_dependencies.rb
Added: sling/trunk/contrib/launchpad/debian/README.md
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/README.md?rev=1669279&view=auto
==============================================================================
--- sling/trunk/contrib/launchpad/debian/README.md (added)
+++ sling/trunk/contrib/launchpad/debian/README.md Thu Mar 26 07:21:30 2015
@@ -0,0 +1,33 @@
+Apache Sling debian/ubuntu packaging
+====================================
+
+This is a work in progress .deb packaging for Sling.
+It provides basic init.d start/stop logrotate & sample sling config. The goal is to provide a generic yet configurable sling package to eliminate the need to build sling for in-house deployments.
+
+To run this, and install using dpkg/apt commands, review /etc/default.sling
+config and run
+ "service sling start"
+
+Components used are:
+* [Sling crankstart](https://github.com/apache/sling/tree/trunk/contrib/crankstart)
+* [Sling-s3](https://github.com/apache/sling/tree/trunk/contrib/sling-s3)
+
+Supported run modes are:
+
+ crank - tar files for nodes and data
+ crank-s3 - tar files for nodes, s3 for data
+ crank-mongo - mongo for nodes and data
+ crank-s3-mongo - mongo for nodes, s3 for data
+
+Each of these are supported by building crank files using the sling-s3 module to aggregate configuration templates into usable configurations.
+
+* SLING_EXEC=/opt/sling - Location for all binaries & scripts.
+* SLING_CFG=/etc/sling - Tree of config file templates from which final.crantstart files are built. Editing any of these config templates triggers a rebuild of the target/crank* files.
+* SLING_DEFAULTS=/etc/default/sling - Defaults file for location & path setup and to override any of the crank settings.
+* SLING_DATA=/var/lib/sling - Local sling data dir.
+* SLING_LOG_DIR=/var/log/sling - Sling log data.
+
+TODO:
+* Support clustered configurations.
+
+
Modified: sling/trunk/contrib/launchpad/debian/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/pom.xml?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/launchpad/debian/pom.xml (original)
+++ sling/trunk/contrib/launchpad/debian/pom.xml Thu Mar 26 07:21:30 2015
@@ -17,9 +17,9 @@ KIND, either express or implied. See th
specific language governing permissions and limitations
under the License.
-->
-<project
- xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -28,7 +28,7 @@ under the License.
<version>22</version>
<relativePath>../../../parent/pom.xml</relativePath>
</parent>
- <artifactId>sling-lauchpad</artifactId>
+ <artifactId>sling-server</artifactId>
<packaging>jar</packaging>
<version>8-SNAPSHOT</version>
<name>Apache Sling Launchpad Debian Package Builder</name>
@@ -45,14 +45,87 @@ under the License.
<!--
jdeb plugin version for debian package
-->
- <jdeb.version>1.0.1</jdeb.version>
+ <jdeb.version>1.4</jdeb.version>
<launchpad.artifact>org.apache.sling.launchpad</launchpad.artifact>
<launchpad.version>8-SNAPSHOT</launchpad.version>
<launchpad.classifier>standalone</launchpad.classifier>
+ <slingInstallDir>/opt/sling</slingInstallDir>
+ <slingConfigDir>/etc/sling</slingConfigDir>
+ <slingS3Dir>${basedir/../../sling-s3}</slingS3Dir>
</properties>
<build>
<plugins>
<plugin>
+ <!-- Copy sling-s3 info local workdir -->
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-sling-s3</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/${slingConfigDir}</outputDirectory>
+ <overwrite>true</overwrite>
+ <resources>
+ <resource>
+ <directory>${slingS3Dir}</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- Use exec plugin to call make sling-s3 targets -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <executions>
+ <execution>
+ <!-- make all in the Maven compile phase -->
+ <id>fix-exec-permissions</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <workingDirectory>${project.build.directory}/${slingConfigDir}</workingDirectory>
+ <executable>chmod</executable>
+ <arguments>
+ <argument>-R</argument>
+ <argument>775</argument>
+ <argument>scripts</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <!-- make all in the Maven compile phase -->
+ <id>build-config</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ > <environmentVariables>
+ <OUTPUT>
+ ${project.build.directory}/contrib
+ </OUTPUT>
+ </environmentVariables>
+ <workingDirectory>${project.build.directory}/${slingConfigDir}</workingDirectory>
+ <executable>make</executable>
+ <arguments>
+ <argument>update-bundles</argument>
+ <argument>install-deps</argument>
+ <argument>all</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<artifactId>jdeb</artifactId>
<groupId>org.vafer</groupId>
<version>${jdeb.version}</version>
@@ -63,24 +136,72 @@ under the License.
<goal>jdeb</goal>
</goals>
<configuration>
+ <classifier>all</classifier>
<dataSet>
+ <!-- etc/{default,logrotate.d}/sling - conf files -->
<data>
- <src>${project.build.directory}/${launchpad.artifact}-${project.version}-${launchpad.classifier}.jar</src>
- <type>file</type>
+ <src>${project.basedir}/src/root_fs/etc</src>
+ <type>directory</type>
+ <excludes>**/.svn/,**/init.d/</excludes>
+ <conffile>true</conffile>
<mapper>
<type>perm</type>
- <prefix>/opt/sling/${project.parent.artifactId}</prefix>
+ <prefix>/etc</prefix>
</mapper>
</data>
+ <!-- all other root_fs -->
<data>
<src>${project.basedir}/src/root_fs/</src>
<type>directory</type>
- <excludes>**/.svn/</excludes>
+ <excludes>**/.svn/,**/etc/default/,**/etc/logrotate.d/</excludes>
<mapper>
+ <filemode>775</filemode>
<type>perm</type>
<prefix>/</prefix>
</mapper>
</data>
+ <!-- etc/sling/crank-*.d/ conf files -->
+ <data>
+ <src>${project.build.directory}/${slingConfigDir}</src>
+ <type>directory</type>
+ <conffile>true</conffile>
+ <excludes>**/.svn/,**/contrib/,**/scripts/,**/target/</excludes>
+ <mapper>
+ <type>perm</type>
+ <prefix>${slingConfigDir}</prefix>
+ </mapper>
+ </data>
+ <!-- crank target files, etc - non-conf files, as they are generated -->
+ <data>
+ <src>${project.build.directory}/${slingConfigDir}</src>
+ <type>directory</type>
+ <includes>**/target/*</includes>
+ <mapper>
+ <filemode>775</filemode>
+ <type>perm</type>
+ <prefix>${slingConfigDir}</prefix>
+ </mapper>
+ </data>
+ <!-- sling-s3 scripts & other binaries -->
+ <data>
+ <src>${project.build.directory}/${slingConfigDir}</src>
+ <type>directory</type>
+ <includes>**/contrib/*,**/scripts/*</includes>
+ <mapper>
+ <filemode>775</filemode>
+ <type>perm</type>
+ <prefix>${slingInstallDir}</prefix>
+ </mapper>
+ </data>
+ <!-- dependencies -->
+ <data>
+ <src>${project.build.directory}/contrib</src>
+ <type>directory</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>${slingInstallDir}/contrib</prefix>
+ </mapper>
+ </data>
</dataSet>
</configuration>
</execution>
@@ -98,7 +219,6 @@ under the License.
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
- <includeArtifactIds>${launchpad.artifact}</includeArtifactIds>
<excludeTransitive>true</excludeTransitive>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
@@ -108,14 +228,6 @@ under the License.
</plugin>
</plugins>
</build>
- <dependencies>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>${launchpad.artifact}</artifactId>
- <version>${launchpad.version}</version>
- <classifier>${launchpad.classifier}</classifier>
- </dependency>
- </dependencies>
<reporting>
<plugins>
<plugin>
@@ -143,4 +255,4 @@ under the License.
</snapshots>
</repository>
</repositories>
-</project>
\ No newline at end of file
+</project>
Modified: sling/trunk/contrib/launchpad/debian/src/deb/control/control
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/deb/control/control?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/deb/control/control (original)
+++ sling/trunk/contrib/launchpad/debian/src/deb/control/control Thu Mar 26 07:21:30 2015
@@ -4,6 +4,6 @@ Section: misc
Priority: optional
Architecture: all
Maintainer: Bruce Edge <br...@nextissuemedia.com>
-Depends: oracle-java7-installer
+Depends: oracle-java7-installer, make
Description: [[description]]
Distribution: development
Modified: sling/trunk/contrib/launchpad/debian/src/deb/control/postinst
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/deb/control/postinst?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/deb/control/postinst (original)
+++ sling/trunk/contrib/launchpad/debian/src/deb/control/postinst Thu Mar 26 07:21:30 2015
@@ -19,39 +19,31 @@
echo $0 $*
[ "$DEBUG" ] && set -x
-
-
-SLING_DEFAULTS=/etc/default/sling
-if [ ! -e $SLING_DEFAULTS ] ; then
- cp $SLING_DEFAULTS.sample $SLING_DEFAULTS
+SLING_COMMON=/opt/sling/scripts/sling-common.sh
+if [ -r $SLING_COMMON ] ; then
+ . $SLING_COMMON
+else
+ log_failure_msg "Missing $SLING_COMMON file, cannot read env settings."
+ exit -1
fi
-. $SLING_DEFAULTS
-chmod +x /etc/init.d/sling
+SLING_USER=${SLING_USER:-sling}
+SLING_GROUP=${SLING_GROUP:-sling}
-# Check for sling user
-if ! getent passwd | grep -q sling ; then
- useradd --home-dir $SLING_HOME --gid adm $SLING_USER
-fi
-# Make data dir
-SLING_DATA=/var/lib/sling
-if [ ! -d $SLING_DATA ] ; then
- echo Create $SLING_DATA
- mkdir -p $SLING_DATA
- chown -R $SLING_USER:adm $SLING_DATA
+# Check for sling user and group
+if ! getent group | grep -q $SLING_USER ; then
+ groupadd --system $SLING_GROUP
fi
-
-# Make log dir
-if [ ! -d $SLING_LOG_DIR ] ; then
- echo Create $SLING_LOG_DIR
- mkdir -p $SLING_LOG_DIR
- chown -R $SLING_USER:adm $SLING_LOG_DIR
+if ! getent passwd | grep -q $SLING_GROUP ; then
+ useradd --home-dir $SLING_EXEC --gid $SLING_GROUP $SLING_USER
fi
+check_sling_permissions force
+
update-rc.d sling defaults
+# Only restart if already running
if service sling status; then
service sling restart
fi
-
Added: sling/trunk/contrib/launchpad/debian/src/deb/control/postrm
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/deb/control/postrm?rev=1669279&view=auto
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/deb/control/postrm (added)
+++ sling/trunk/contrib/launchpad/debian/src/deb/control/postrm Thu Mar 26 07:21:30 2015
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+echo $0 $*
+[ "$DEBUG" ] && set -x
+
+if [ remove = "$1" ]; then
+ update-rc.d -f sling remove
+
+ # Run cleanup script created by prerm
+ CLEANUP=/tmp/sling-cleanup.sh
+ [ -e ${CLEANUP} ] && sh ${CLEANUP} $@
+fi
Modified: sling/trunk/contrib/launchpad/debian/src/deb/control/prerm
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/deb/control/prerm?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/deb/control/prerm (original)
+++ sling/trunk/contrib/launchpad/debian/src/deb/control/prerm Thu Mar 26 07:21:30 2015
@@ -25,8 +25,18 @@ if [ remove = "$1" ]; then
service sling stop
fi
rm -f $SLING_DEFAULTS
- if [ "$SLING_DATA" ] && [ -d $SLING_DATA ] ; then
- echo Not Purging $SLING_DATA
- # rm -rf $SLING_DATA
- fi
+
+ # Generate a cleanup script to purge all generated files
+ # Note: validate all deletions!
+ cat >/tmp/sling-cleanup.sh <<-EOT
+ #!/bin/bash
+ echo Purging sling generated files
+ [ "$DEBUG" ] && set -x
+ [ "${SLING_EXEC}" ] && [ -d ${SLING_EXEC} ] && rm -rf ${SLING_EXEC}
+ [ -d ${SLING_CFG}/target ] && rm -rf ${SLING_CFG}/target
+ [ "${SLING_LOG_DIR}" ] && [ -d ${SLING_LOG_DIR} ] && rm -rf ${SLING_LOG_DIR}
+ # Purge deletes data as well
+ rm -f $0
+EOT
+
fi
Added: sling/trunk/contrib/launchpad/debian/src/root_fs/etc/default/sling
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/root_fs/etc/default/sling?rev=1669279&view=auto
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/root_fs/etc/default/sling (added)
+++ sling/trunk/contrib/launchpad/debian/src/root_fs/etc/default/sling Thu Mar 26 07:21:30 2015
@@ -0,0 +1,89 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+set -a
+
+# Identification
+SLING_USER=sling
+SLING_GROUP=sling
+
+# sling defaults
+# Note, init script uses :
+# $JAVA_ARGS $JAVA_DEBUG_ARGS -jar $SLING_JAR $SLING_DEFAULT_ARGS
+
+#
+# All configuration items are setup in /etc/sling/*
+# The files are processed aggregated using /etc/sling/Makefile to generate
+# the configuration specific start modes.
+# The final mode of execution is determined by the RUNMODE setting below.
+#
+
+##########################################################################
+#
+# SET RUNMODE HERE
+#
+# This must be set before sling will run as one needs to make the choice
+# of storage configurations before running for the first time
+#
+# Runtime startup mode options:
+# crank - tar files for nodes and data
+# crank-s3 - tar files for nodes, s3 for data
+# crank-mongo - mongo for nodes and data
+# crank-s3-mongo - mongo for nodes, s3 for data
+#
+# key:
+# node store - for node properties and tree structure
+# data store - for binaries
+#
+RUNMODE=""
+#
+##########################################################################
+
+#
+# Base locations - override default settings in crankfiles.
+#
+SLING_EXEC=/opt/sling
+SLING_CFG=/etc/sling
+SLING_DEFAULTS=/etc/default/sling
+SLING_DATA=/var/lib/sling
+SLING_LOG_DIR=/var/log/sling
+
+START_LOG_FILE=$SLING_LOG_DIR/startup.log
+
+# Define where to load dependencies from
+M2REPO="${SLING_EXEC}/contrib"
+SLING_SCRIPTS=${SLING_EXEC}/scripts
+CRANKSTART_ENV=${SLING_SCRIPTS}/crankstart.sh
+
+# Bump RAM allowance
+JAVA_ARGS="-Xmx384M "
+
+# Uncomment for debugging:
+JAVA_ARGS+=" -agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n"
+
+#
+# crank file overrides
+#
+JAVA_ARGS+=" -Dport=8090"
+JAVA_ARGS+=" -Dsling.home=${SLING_DATA}"
+JAVA_ARGS+=" -Dlog.file=/var/log/sling/sling.log"
+
+# Allow gogo shell to run in noninteractive env:
+# From: http://apache-felix.18485.x6.nabble.com/Gogo-shell-on-standard-input-output-streams-td4845969.html#a4845970
+JAVA_ARGS+=" -Dgosh.args=--nointeractive"
+
+set +a
Modified: sling/trunk/contrib/launchpad/debian/src/root_fs/etc/init.d/sling
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/root_fs/etc/init.d/sling?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/root_fs/etc/init.d/sling (original)
+++ sling/trunk/contrib/launchpad/debian/src/root_fs/etc/init.d/sling Thu Mar 26 07:21:30 2015
@@ -16,79 +16,93 @@
# specific language governing permissions and limitations
# under the License.
-#
-# Usage
-#
-function usage () {
- echo "Purpose: Stop/Start sling"
- echo "Usage : $0 { stop | start }"
-}
-
-NAME=sling
-
-PID=/var/run/${NAME}.pid
-
-[ "$DEBUG" ] && set -x
+### BEGIN INIT INFO
+# Provides: sling
+# Required-Start: $remote_fs $syslog $named
+# Required-Stop: $remote_fs $syslog $named
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Start sling at boot time
+# Description: Enable service provided by sling.
+### END INIT INFO
. /etc/profile
-
+export FANCYTTY=true
+. /lib/lsb/init-functions
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
+SLING_COMMON=/opt/sling/scripts/sling-common.sh
+if [ -r $SLING_COMMON ] ; then
+ . $SLING_COMMON
+else
+ log_failure_msg "Missing $SLING_COMMON file, cannot read env settings."
+ exit -1
+fi
-SLING_DEFAULTS=/etc/default/sling
-[ -r $SLING_DEFAULTS ] && . $SLING_DEFAULTS
-
-SLING_JAR=$(find $SLING_HOME -name \*-standalone.jar)
+PID=/var/run/sling.pid
+DAEMON=$(which java)
-running()
-{
- local PID=$(cat "$1" 2>/dev/null) || return 1
- kill -0 "$PID" 2>/dev/null
+function usage () {
+ log_warning_msg "Purpose: Stop/Start sling"
+ log_warning_msg "Usage : $0 { stop | start | restart }"
}
-status()
-{
- if running "$PID"
- then
- echo "OK"
- else
- echo "FAILED"
- fi
+function rebuild_config () {
+ log_progress_msg "Rebuild configuration"
+ cd ${SLING_CFG}
+ make -e target/${RUNMODE}.txt
}
-#
-# Stop current sling instance
-#
function stop () {
- start-stop-daemon --stop --pidfile $PID --chdir $SLING_HOME --startas "./$NAME" --signal TERM
+ killproc -p $PID $DAEMON TERM
}
-#
-# Start batch job scheduler
-#
function start () {
- if start-stop-daemon --start \
- --chdir "$SLING_HOME" \
- --chuid $SLING_USER \
- --pidfile "$PID" \
- --make-pidfile \
- --startas $(which java) \
- -- \
- $JAVA_ARGS $JAVA_DEBUG_ARGS \
- -jar $SLING_JAR $SLING_DEFAULT_ARGS \
- >>$LOG_FILE 2>&1 &
- then
- sleep 3s
- status
- fi
+ if [ ! "${RUNMODE}" ] ; then
+ log_warning_msg "RUNMODE is not set in ${SLING_DEFAULTS}"
+ fi
+
+ check_sling_permissions
+
+ # Get MVN_OPTS from crankstart env file.
+ [ -r $CRANKSTART_ENV ] && . $CRANKSTART_ENV
+ CRANKSTART_JAR=${M2REPO}/crankstart.jar
+
+ # Update crankstart file if needed
+ log_daemon_msg "Starting sling serices"
+ rebuild_config
+
+ log_progress_msg "Start sling daemon"
+ if start-stop-daemon --start \
+ --chdir "$SLING_EXEC" \
+ --chuid $SLING_USER \
+ --pidfile "$PID" \
+ --make-pidfile \
+ --background \
+ --verbose \
+ --no-close \
+ --exec $(which java) \
+ --start \
+ -- \
+ ${JAVA_ARGS} \
+ ${MVN_OPTS} \
+ -jar ${CRANKSTART_JAR} \
+ ${SLING_CFG}/target/${RUNMODE}.txt \
+ >$START_LOG_FILE 2>&1
+ then
+ sleep 3
+ status_of_proc -p $PID $DAEMON
+ fi
+ log_end_msg $?
}
if test -z "$1"; then
- usage
- exit
+ usage
+ exit
fi
-case $1 in
+
+case $1 in
start)
start
;;
@@ -96,24 +110,19 @@ case $1 in
stop
;;
restart)
- stop
- while ps --pid $(cat $PID) >/dev/null ; do
- sleep 1
- done
+ if [ -f $PID ] ; then
+ stop
+ while pidofproc -p $PID $DAEMON > /dev/null ; do
+ sleep 1
+ done
+ fi
start
- ;;
+ ;;
status)
- if [ $(status) == "OK" ] ; then
- exit 0
- else
- exit 1
- fi
+ status_of_proc -p $PID $DAEMON
;;
*)
echo "Unknown parameter: $1"
usage
;;
- esac
-
-
-# end_of_file
+esac
Modified: sling/trunk/contrib/launchpad/debian/src/root_fs/etc/logrotate.d/sling
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/root_fs/etc/logrotate.d/sling?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/root_fs/etc/logrotate.d/sling (original)
+++ sling/trunk/contrib/launchpad/debian/src/root_fs/etc/logrotate.d/sling Thu Mar 26 07:21:30 2015
@@ -1,6 +1,6 @@
-/var/log/sling/sling-start.log {
- rotate 5
- size 4M
+/var/log/sling/startup.log {
+ rotate
+ size 10M
copytruncate
daily
compress
Added: sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/scripts/sling-common.sh
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/scripts/sling-common.sh?rev=1669279&view=auto
==============================================================================
--- sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/scripts/sling-common.sh (added)
+++ sling/trunk/contrib/launchpad/debian/src/root_fs/opt/sling/scripts/sling-common.sh Thu Mar 26 07:21:30 2015
@@ -0,0 +1,62 @@
+#
+#Copyright (c) 2002-08 Chris Lawrence
+#All rights reserved.
+#
+#Redistribution and use in source and binary forms, with or without
+#modification, are permitted provided that the following conditions
+#are met:
+#1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#3. Neither the name of the author nor the names of other contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+#ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+#LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+#CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+#SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+#BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+#WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+#EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+SLING_DEFAULTS=/etc/default/sling
+[ "$DEBUG" ] && set -x
+if [ -r $SLING_DEFAULTS ] ; then
+ . $SLING_DEFAULTS
+else
+ echo "Missing $SLING_DEFAULTS file, cannot read env settings." 1>&2
+ exit -1
+fi
+
+# Make sure premissions & directoreis are OK.
+# $1 = force sets all permissions
+function check_sling_permissions() {
+
+ chmod +x /etc/init.d/sling
+
+ for d in SLING_DATA SLING_EXEC SLING_CFG SLING_LOG_DIR ; do
+ eval n=\$$d
+ if [ ! "${n}" ] ; then
+ log_failure_msg "Missing $d"
+ exit -1
+ fi
+ if [ ! -d ${n} ] ; then
+ echo "Fix type of ${n}"
+ rm -rf ${n}
+ install --directory --owner=${SLING_USER} --group=${SLING_GROUP} ${n}
+ else
+ if [ "$(stat -c '%U' ${n})" != "${SLING_USER}" ] || [ "$1" = "force" ]; then
+ [ "$1" == "force" ] || echo "Update ownership of ${n}"
+ chown -R ${SLING_USER}:${SLING_GROUP} ${n}
+ fi
+ fi
+ done
+}
Modified: sling/trunk/contrib/sling-s3/Makefile
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/sling-s3/Makefile?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/sling-s3/Makefile (original)
+++ sling/trunk/contrib/sling-s3/Makefile Thu Mar 26 07:21:30 2015
@@ -39,7 +39,7 @@ contrib/crankstart.jar:
wget http://central.maven.org/maven2/org/apache/sling/org.apache.sling.crankstart.launcher/1.0.0/org.apache.sling.crankstart.launcher-1.0.0.jar -O contrib/crankstart.jar
update-bundles:
- rm crank.d/*-sling-startlevel-*.txt
+ rm -f crank.d/*-sling-startlevel-*.txt
$(BUNDLES)
install-deps: contrib/crankstart.jar
Added: sling/trunk/contrib/sling-s3/crank-s3.d/05-credentials.txt
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/sling-s3/crank-s3.d/05-credentials.txt?rev=1669279&view=auto
==============================================================================
--- sling/trunk/contrib/sling-s3/crank-s3.d/05-credentials.txt (added)
+++ sling/trunk/contrib/sling-s3/crank-s3.d/05-credentials.txt Thu Mar 26 07:21:30 2015
@@ -0,0 +1,5 @@
+# defaults s3AccessKey ...
+# defaults s3SecretKey ...
+# defaults s3Bucket ...
+# defaults s3Region ...
+# defaults s3EndPoint ...
Modified: sling/trunk/contrib/sling-s3/scripts/download_dependencies.rb
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/sling-s3/scripts/download_dependencies.rb?rev=1669279&r1=1669278&r2=1669279&view=diff
==============================================================================
--- sling/trunk/contrib/sling-s3/scripts/download_dependencies.rb (original)
+++ sling/trunk/contrib/sling-s3/scripts/download_dependencies.rb Thu Mar 26 07:21:30 2015
@@ -1,11 +1,32 @@
#!/usr/bin/env ruby
+#
+# Copy all rependencies from crank files on command line
+# Optionally copy also to output folder
+# output folder can e specified but OUTPUT in the enviroment, or --output as a command line arg
+# the local maven repo can also be overridden by LOCAL_REPO or --local
+# the remote maven repo can also be overridden by REMOTE_REPO or --remote
+#
require 'fileutils'
+require 'optparse'
DEP_PLUGIN = 'org.apache.maven.plugins:maven-dependency-plugin:2.10'
-SNAPSHOT_REPO = 'https://repository.apache.org/content/repositories/snapshots'
-LOCAL_REPO = '~/.m2/repository'
+
+# Env defaults
+$remote_repo = ENV.fetch("REMOTE_REPO",'https://repository.apache.org/content/repositories/snapshots')
+$local_repo = ENV.fetch("LOCAL_REPO",'~/.m2/repository')
# If set, copy artifacts to OUTPUT location, default is ~/.m2 only
-OUTPUT = ENV["OUTPUT"]
+$output = ENV["OUTPUT"]
+
+# Override from command line
+OptionParser.new do |opt|
+ opt.on('-o', '--output OUTPUT, copy to OUTPUT location') { |o| $output = o }
+ opt.on('-l', '--local repo location') { |o| $local_repo = o }
+ opt.on('-r', '--remote repo location') { |o| $remote_repo = o }
+ opt.on('-v', '--verbose') { $verbose = true }
+end.parse!
+
+puts "local_repo=#{$local_repo}" if $verbose
+puts "output=#{$output}" if $verbose
def run cmd
output = ""
@@ -17,7 +38,9 @@ def run cmd
end
def dep_get groupId, artifactId, version
- result = run "mvn #{DEP_PLUGIN}:get -DremoteRepositories=#{SNAPSHOT_REPO} -Dartifact=#{groupId}:#{artifactId}:#{version} -Dtransitive=false"
+ cmd = "mvn #{DEP_PLUGIN}:get -Dmaven.repo.local=#{$local_repo} -DremoteRepositories=#{$remote_repo} -Dartifact=#{groupId}:#{artifactId}:#{version} -Dtransitive=false"
+ puts cmd if $verbose
+ result = run cmd
result.include? 'BUILD SUCCESS'
end
@@ -27,23 +50,29 @@ def download groupId, artifactId, versio
repo_dir = "#{groupId.gsub('.', '/')}/#{artifactId}/#{version}"
jar_name = "#{artifactId}-#{version}.jar"
- repo_file = File.expand_path("#{LOCAL_REPO}/#{repo_dir}/#{jar_name}")
- puts "Retreiving #{repo_file}"
- if File.exists?(repo_file)
- puts "(/) Already downloaded"
- elsif dep_get groupId, artifactId, version
- puts "(/) Downloaded"
+ repo_file = File.expand_path("#{$local_repo}/#{repo_dir}/#{jar_name}")
+ if !$output.nil?
+ output_dir = File.expand_path("#{$output}/#{repo_dir}")
+ output_file = File.expand_path("#{output_dir}/#{jar_name}")
+ end
+ puts "Retreiving #{repo_file}" if $verbose
+ if File.exists?(repo_file) or ( !$output.nil? and File.exists?(output_file) )
+ puts "(/) Already downloaded" if $verbose
else
- abort "(X) Error"
+ dep_get groupId, artifactId, version
+ if !File.exists?(repo_file)
+ abort "(X) Error downloading #{repo_file}"
+ else
+ puts "(/) Downloaded" if $verbose
+ end
end
- if !OUTPUT.nil?
- output_dir = File.expand_path("#{OUTPUT}/#{repo_dir}")
+ if !$output.nil? and !File.exists?(output_file)
FileUtils.rm_rf output_dir
FileUtils.mkdir_p output_dir
if !File.exists?(repo_file)
- abort "(X) Missing "
+ abort "(X) Missing #{repo_file}"
else
- puts "(/) #{repo_file} -> #{output_dir}"
+ puts "(/) #{repo_file} -> #{output_dir}" if $verbose
FileUtils.cp repo_file, output_dir
end
end