diff --git a/scm-packaging/unix/pom.xml b/scm-packaging/unix/pom.xml new file mode 100644 index 0000000000..ce579bcf75 --- /dev/null +++ b/scm-packaging/unix/pom.xml @@ -0,0 +1,123 @@ + + + + + 4.0.0 + + + sonia.scm.packaging + scm-packaging + 2.0.0-SNAPSHOT + + + unix + pom + 2.0.0-SNAPSHOT + + + + + sonia.scm + scm-server + ${project.version} + + + + sonia.scm + scm-webapp + ${project.version} + war + + + + commons-daemon + commons-daemon-native + 1.1.0 + tar.gz + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.1.2 + + + copy-jsvc + prepare-package + + unpack + + + + + commons-daemon + commons-daemon-native + 1.1.0 + tar.gz + + + + + + **/jsvc-* + ${project.build.directory}/unix/libexec + false + true + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + src/main/assembly/scm-server-app.xml + + + + + package + + single + + + + + + + + + diff --git a/scm-packaging/unix/src/main/assembly/scm-server-app.xml b/scm-packaging/unix/src/main/assembly/scm-server-app.xml new file mode 100644 index 0000000000..e38d95e914 --- /dev/null +++ b/scm-packaging/unix/src/main/assembly/scm-server-app.xml @@ -0,0 +1,93 @@ + + + + + app + + + tar.gz + + + true + + + + + src/main/fs + false + + + + + src/main/bin + false + bin + 0755 + + + + target/unix/lib + false + lib + + + + target/unix/libexec + false + libexec + 0755 + + + + target/unix/var + false + var + + + + + + + false + lib + + *:jar + + + + false + var/webapp + scm-webapp.war + + *:war + + + + + diff --git a/scm-packaging/unix/src/main/bin/scm-server b/scm-packaging/unix/src/main/bin/scm-server new file mode 100755 index 0000000000..9ccaafb188 --- /dev/null +++ b/scm-packaging/unix/src/main/bin/scm-server @@ -0,0 +1,192 @@ +#!/bin/bash +# ---------------------------------------------------------------------------- +# Copyright 2001-2006 The Apache Software Foundation. +# +# Licensed 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. +# ---------------------------------------------------------------------------- + +# Copyright (c) 2001-2002 The Apache Software Foundation. All rights +# reserved. + +# user used to run the daemon (defaults to current user) +USER="scm" + +# extra jvm arguments +EXTRA_JVM_ARGUMENTS="-Djava.awt.headless=true -Dlogback.configurationFile=logging.xml" + +BASEDIR="/opt/scm-server" + +# set pid path for jsvc +PIDFILE="/var/run/scm-server.pid" + +# set log dir for jsvc +LOGDIR="/var/log/scm" + +# load settings from defaults directory +[ -r /etc/default/scm-server ] && . /etc/default/scm-server + +OS=`uname | tr '[:upper:]' '[:lower:]'` +ARCH=`uname -m` + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +case "$OS" in + sunos*) OS="solaris" + ARCH=`uname -p` + ;; + cygwin*) cygwin=true ;; + darwin*) darwin=true + if [ -z "$JAVA_VERSION" ] ; then + JAVA_VERSION="CurrentJDK" + else + echo "Using Java version: $JAVA_VERSION" + fi + if [ -z "$JAVA_HOME" ] ; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# If a specific java binary isn't specified search for the standard 'java' binary +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD=`which java` + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " We cannot execute $JAVACMD" + exit 1 +fi + +if [ -z "$REPO" ] +then + REPO="$BASEDIR"/lib +fi + +CLASSPATH=$CLASSPATH_PREFIX:"$BASEDIR"/conf:"$REPO"/scm-server-2.0.0-SNAPSHOT.jar:"$REPO"/commons-daemon-1.2.2.jar:"$REPO"/jetty-server-9.4.27.v20200227.jar:"$REPO"/javax.servlet-api-3.1.0.jar:"$REPO"/jetty-http-9.4.27.v20200227.jar:"$REPO"/jetty-io-9.4.27.v20200227.jar:"$REPO"/jetty-webapp-9.4.27.v20200227.jar:"$REPO"/jetty-xml-9.4.27.v20200227.jar:"$REPO"/jetty-servlet-9.4.27.v20200227.jar:"$REPO"/jetty-security-9.4.27.v20200227.jar:"$REPO"/jetty-jmx-9.4.27.v20200227.jar:"$REPO"/jetty-util-9.4.27.v20200227.jar + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$HOME" ] && HOME=`cygpath --path --windows "$HOME"` + [ -n "$BASEDIR" ] && BASEDIR=`cygpath --path --windows "$BASEDIR"` + [ -n "$REPO" ] && REPO=`cygpath --path --windows "$REPO"` +fi + +jsvc=false; +stop=""; + +if [ "$1" == "start" ] +then + jsvc=true; +else + if [ "$1" == "stop" ] + then + jsvc=true; + stop='-stop'; + fi +fi + +USER_ARGUMENT="" + +if [ "x$USER" != "x" ] +then + USER_ARGUMENT="-user $USER" +fi + +DARWIN_USE_ARCH="false" + +if $jsvc; then + + JSVCCMD="" + if [ "$OS" == "darwin" ]; then + if [ "$DARWIN_USE_ARCH" == "true" ]; then + JSVCCMD="/usr/bin/arch -arch $ARCH $BASEDIR/libexec/jsvc-$OS" + else + JSVCCMD="exec $BASEDIR/libexec/jsvc-$OS" + fi + else + JSVCCMD="exec $BASEDIR/libexec/jsvc-$OS-$ARCH" + fi + + # try to extract JAVA_HOME from JAVACMD + if [ -z "$JAVA_HOME" ] ; then + PRG="$JAVACMD" + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + DIR="$(dirname "$PRG")" + DIR="$(dirname "$DIR")" + if [ -d "$DIR" ] ; then + JAVA_HOME="$DIR" + fi + fi + + # TODO JVM Arguments + + $JSVCCMD -cp "$CLASSPATH" $JAVA_OPTS \ + $EXTRA_JVM_ARGUMENTS $USER_ARGUMENT \ + -outfile "$LOGDIR/scm-server.out" \ + -errfile "$LOGDIR/scm-server.err" \ + -pidfile "$PIDFILE" \ + -jvm server \ + -home "$JAVA_HOME" \ + -Dapp.name="scm-server" \ + -Dapp.pid="$$" \ + -Dapp.repo="$REPO" \ + -Dbasedir="$BASEDIR" \ + $stop sonia.scm.server.ScmServerDaemon \ + "$@" + +else + + exec "$JAVACMD" $JAVA_OPTS \ + $EXTRA_JVM_ARGUMENTS \ + -classpath "$CLASSPATH" \ + -Dapp.name="scm-server" \ + -Dapp.pid="$$" \ + -Dapp.repo="$REPO" \ + -Dbasedir="$BASEDIR" \ + sonia.scm.server.ScmServerDaemon \ + "$@" + +fi diff --git a/scm-packaging/unix/src/main/fs/README.txt b/scm-packaging/unix/src/main/fs/README.txt new file mode 100644 index 0000000000..b21db9b168 --- /dev/null +++ b/scm-packaging/unix/src/main/fs/README.txt @@ -0,0 +1,13 @@ +SCM-Manager Version ${project.version} +================================================================================ + +First Access: + + URL: http://localhost:8080 + Username: scmadmin + Password: scmadmin + +Further reading: + + Release notes: https://bitbucket.org/sdorra/scm-manager/wiki/release-notes + Getting started: https://bitbucket.org/sdorra/scm-manager/wiki/getting-started \ No newline at end of file diff --git a/scm-packaging/unix/src/main/fs/conf/logging.xml b/scm-packaging/unix/src/main/fs/conf/logging.xml new file mode 100644 index 0000000000..b3f4014265 --- /dev/null +++ b/scm-packaging/unix/src/main/fs/conf/logging.xml @@ -0,0 +1,106 @@ + + + + + + + + + + /var/log/scm/scm-manager.log + + + /var/log/scm/scm-manager-%i.log + 1 + 10 + + + + 10MB + + + true + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-10X{transaction_id}] %-5level %logger - %msg%n + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-10X{transaction_id}] %-5level %logger - %msg%n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scm-packaging/unix/src/main/fs/conf/server-config.xml b/scm-packaging/unix/src/main/fs/conf/server-config.xml new file mode 100644 index 0000000000..b7a5a7efef --- /dev/null +++ b/scm-packaging/unix/src/main/fs/conf/server-config.xml @@ -0,0 +1,193 @@ + + + + + + + + 16384 + 16384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /scm + + /var/webapp/scm-webapp.war + + + org.eclipse.jetty.servlet.Default.dirAllowed + false + + /var/cache/scm/work/webapp + + + + / + + + + + + /var/webapp/docroot + + + + + /var/cache/scm/work/work/docroot + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scm-packaging/unix/src/main/fs/var/webapp/docroot/index.html b/scm-packaging/unix/src/main/fs/var/webapp/docroot/index.html new file mode 100644 index 0000000000..a3bff3f8b3 --- /dev/null +++ b/scm-packaging/unix/src/main/fs/var/webapp/docroot/index.html @@ -0,0 +1,35 @@ + + + + + SCM-Server + + + + + + diff --git a/scm-packaging/unix/src/main/fs/work/WORKDIR.txt b/scm-packaging/unix/src/main/fs/work/WORKDIR.txt new file mode 100644 index 0000000000..9538e4852b --- /dev/null +++ b/scm-packaging/unix/src/main/fs/work/WORKDIR.txt @@ -0,0 +1,5 @@ +This directory is the temp directory for the SCM-Manager webapp. + +Further reading on jetty temp directories: + +- http://wiki.eclipse.org/Jetty/Reference/Temporary_Directories \ No newline at end of file