You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/09/28 16:58:43 UTC
svn commit: r1002201 - in
/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main:
java/org/apache/directory/daemon/installers/bin/
java/org/apache/directory/daemon/installers/deb/
resources/org/apache/directory/daemon/installers/...
Author: pamarcelot
Date: Tue Sep 28 14:58:42 2010
New Revision: 1002201
URL: http://svn.apache.org/viewvc?rev=1002201&view=rev
Log:
Fixed deb installer.
Removed:
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds-default.conf
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds.conf
Modified:
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebTarget.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds-init
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/control
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/postinst
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/prerm
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java Tue Sep 28 14:58:42 2010
@@ -120,7 +120,6 @@ public class BinInstallerCommand extends
new File( binShDirectory, "install.sh" ), false );
MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "variables.sh" ),
new File( binShDirectory, "variables.sh" ), false );
-
}
catch ( Exception e )
{
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebInstallerCommand.java?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebInstallerCommand.java Tue Sep 28 14:58:42 2010
@@ -22,7 +22,6 @@ package org.apache.directory.daemon.inst
import java.io.File;
import java.io.IOException;
-import java.util.Properties;
import org.apache.directory.daemon.installers.AbstractMojoCommand;
import org.apache.directory.daemon.installers.GenerateMojo;
@@ -33,17 +32,12 @@ import org.apache.tools.ant.taskdefs.Exe
/**
- * Nullsoft INstaller System (NSIS) Installer command for Windows installers
+ * Deb Installer command for Linux.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class DebInstallerCommand extends AbstractMojoCommand<DebTarget>
{
- private final Properties filterProperties = new Properties( System.getProperties() );
- /** The dpkg utility*/
- private File dpkgUtility;
-
-
/**
* Creates a new instance of DebInstallerCommand.
*
@@ -68,153 +62,125 @@ public class DebInstallerCommand extends
*/
public void execute() throws MojoExecutionException, MojoFailureException
{
- // TODO FIXME
- // // Verifying the target is linux
- // if ( !target.getOsFamily().equals( "linux" ) )
- // {
- // log.warn( "DEB package installer can only be targeted for Linux platforms!" );
- // log.warn( "The build will continue, but please check the the platform of this installer " );
- // log.warn( "target" );
- // return;
- // }
- //
- // // Verifying the dpkg utility exists
- // if ( !target.getDpkgUtility().exists() )
- // {
- // log.warn( "Cannot find dpkg utility at this location: " + target.getDpkgUtility() );
- // log.warn( "The build will continue, but please check the location of your dpkg " );
- // log.warn( "utility." );
- // return;
- // }
- // else
- // {
- // dpkgUtility = target.getDpkgUtility();
- // }
- //
- // File baseDirectory = target.getLayout().getInstallationDirectory();
- // File imagesDirectory = baseDirectory.getParentFile();
- //
- // log.info( "Creating Debian DEB Package..." );
- //
- // // Creating the package directory
- // File debDirectory = new File( imagesDirectory, target.getId() + "-deb" );
- // debDirectory.mkdirs();
- //
- // log.info( "Copying DEB Package files" );
- //
- // // Copying the apacheds files in the '/opt/apacheds-$VERSION/' directory
- // File debApacheDsHomeDirectory = new File( debDirectory, "opt/apacheds-" + mojo.getProject().getVersion() );
- // try
- // {
- // // Copying the generated layout
- // MojoHelperUtils.copyFiles( baseDirectory, debApacheDsHomeDirectory );
- //
- // // Replacing the apacheds.conf file
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "apacheds.conf" ),
- // new File( debApacheDsHomeDirectory, "conf/apacheds.conf" ), false );
- // }
- // catch ( IOException e )
- // {
- // log.error( e.getMessage() );
- // throw new MojoFailureException( "Failed to copy image (" + target.getLayout().getInstallationDirectory()
- // + ") to the DEB directory (" + debApacheDsHomeDirectory + ")" );
- // }
- //
- // // Copying the instances in the '/var/lib/apacheds-$VERSION/default' directory
- // File debDefaultInstanceDirectory = new File( debDirectory, "var/lib/apacheds-"
- // + mojo.getProject().getVersion() + "/default" );
- // debDefaultInstanceDirectory.mkdirs();
- // File debDefaultInstanceConfDirectory = new File( debDefaultInstanceDirectory, "conf" );
- // debDefaultInstanceConfDirectory.mkdirs();
- // new File( debDefaultInstanceDirectory, "ldif" ).mkdirs();
- // new File( debDefaultInstanceDirectory, "log" ).mkdirs();
- // new File( debDefaultInstanceDirectory, "partitions" ).mkdirs();
- // new File( debDefaultInstanceDirectory, "run" ).mkdirs();
- // File debEtcInitdDirectory = new File( debDirectory, "etc/init.d" );
- // debEtcInitdDirectory.mkdirs();
- // new File( debDirectory, "/var/run/apacheds-" + mojo.getProject().getVersion() ).mkdirs();
- // try
- // {
- // // Copying the apacheds.conf file in the default instance conf directory
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream(
- // "apacheds-default.conf" ), new File( debDefaultInstanceConfDirectory, "apacheds.conf" ), false );
- //
- // // Copying the log4j.properties file in the default instance conf directory
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, new File( debApacheDsHomeDirectory,
- // "conf/log4j.properties" ), new File( debDefaultInstanceConfDirectory, "log4j.properties" ), false );
- //
- // // Copying the server.xml file in the default instance conf directory
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, new File( debApacheDsHomeDirectory,
- // "conf/server.xml" ), new File( debDefaultInstanceConfDirectory, "server.xml" ), false );
- //
- // // Copying the init script in /etc/init.d/
- // MojoHelperUtils
- // .copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "apacheds-init" ), new File(
- // debEtcInitdDirectory, "apacheds-" + mojo.getProject().getVersion() + "-default" ), true );
- //
- // // Removing the redundant server.xml file (see DIRSERVER-1112)
- // new File( debApacheDsHomeDirectory, "conf/server.xml" ).delete();
- // }
- // catch ( IOException e )
- // {
- // log.error( e.getMessage() );
- // throw new MojoFailureException( "Failed to copy resources files to the DEB directory ("
- // + debDefaultInstanceDirectory + ")" );
- // }
- //
- // // Create DEBIAN directory
- // File debDebianDirectory = new File( debDirectory, "DEBIAN" );
- // debDebianDirectory.mkdirs();
- //
- // // Copying the 'control' file
- // try
- // {
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "control" ),
- // new File( debDebianDirectory, "control" ), true );
- //
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "postinst" ),
- // new File( debDebianDirectory, "postinst" ), true );
- //
- // MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "prerm" ),
- // new File( debDebianDirectory, "prerm" ), true );
- // }
- // catch ( IOException e )
- // {
- // log.error( e.getMessage() );
- // throw new MojoFailureException( "Failed to copy DEB 'control' file." );
- // }
- //
- // // Setting correct permission on the postinst script
- // MojoHelperUtils.exec( new String[]
- // { "chmod", "755", new File( debDebianDirectory, "postinst" ).toString() }, debDebianDirectory, false );
- // MojoHelperUtils.exec( new String[]
- // { "chmod", "755", new File( debDebianDirectory, "prerm" ).toString() }, debDebianDirectory, false );
- //
- // // Generating the DEB
- // log.info( "Generating Debian DEB Package" );
- // String finalName = target.getFinalName();
- // if ( !finalName.endsWith( ".deb" ) )
- // {
- // finalName = finalName + ".deb";
- // }
- // Execute createDebTask = new Execute();
- // String[] cmd = new String[]
- // { dpkgUtility.getAbsolutePath(), "-b", target.getId() + "-deb", finalName };
- // createDebTask.setCommandline( cmd );
- // createDebTask.setSpawn( true );
- // createDebTask.setWorkingDirectory( imagesDirectory );
- //
- // try
- // {
- // createDebTask.execute();
- // }
- // catch ( IOException e )
- // {
- // log.error( e.getMessage() );
- // throw new MojoFailureException( "Failed while trying to generate the DEB package: " + e.getMessage() );
- // }
- //
- // log.info( "Debian DEB package generated at " + new File( imagesDirectory, finalName ) );
+ // Verifying the target
+ if ( !verifyTarget() )
+ {
+ return;
+ }
+
+ log.info( " Creating Deb installer..." );
+
+ // Creating the target directory
+ getTargetDirectory().mkdirs();
+
+ log.info( " Copying Deb installer files" );
+
+ try
+ {
+ // Creating the installation and instance layouts
+ createLayouts();
+
+ // Copying the init script in /etc/init.d/
+ File debEtcInitdDirectory = new File( getDebDirectory(), "etc/init.d" );
+ debEtcInitdDirectory.mkdirs();
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "apacheds-init" ),
+ new File( debEtcInitdDirectory, "apacheds-" + mojo.getProject().getVersion() + "-default" ), true );
+ }
+ catch ( Exception e )
+ {
+ log.error( e.getMessage() );
+ throw new MojoFailureException( "Failed to copy Deb installer files." );
+ }
+
+ // Create DEBIAN directory
+ File debDebianDirectory = new File( getDebDirectory(), "DEBIAN" );
+ debDebianDirectory.mkdirs();
+
+ // Copying the 'control' file
+ try
+ {
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "control" ),
+ new File( debDebianDirectory, "control" ), true );
+
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "postinst" ),
+ new File( debDebianDirectory, "postinst" ), true );
+
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "prerm" ),
+ new File( debDebianDirectory, "prerm" ), true );
+ }
+ catch ( IOException e )
+ {
+ log.error( e.getMessage() );
+ throw new MojoFailureException( "Failed to copy DEB 'control' file." );
+ }
+
+ // Setting correct permission on the postinst script
+ MojoHelperUtils.exec( new String[]
+ { "chmod", "755", new File( debDebianDirectory, "postinst" ).toString() }, debDebianDirectory,
+ false );
+ MojoHelperUtils.exec( new String[]
+ { "chmod", "755", new File( debDebianDirectory, "prerm" ).toString() }, debDebianDirectory, false );
+
+ // Generating the Deb
+ log.info( " Generating Deb installer" );
+
+ String finalName = target.getFinalName();
+ if ( !finalName.endsWith( ".deb" ) )
+ {
+ finalName = finalName + ".deb";
+ }
+
+ Execute createDebTask = new Execute();
+ String[] cmd = new String[]
+ {
+ target.getDpkgUtility().getAbsolutePath(),
+ "-b",
+ getTargetDirectory().getName() + "/" + getDebDirectory().getName(),
+ finalName
+ };
+ createDebTask.setCommandline( cmd );
+ createDebTask.setWorkingDirectory( mojo.getOutputDirectory() );
+
+ try
+ {
+ createDebTask.execute();
+ }
+ catch ( IOException e )
+ {
+ log.error( e.getMessage() );
+ throw new MojoFailureException( "Failed while trying to generate the DEB package: " + e.getMessage() );
+ }
+
+ log.info( "Debian DEB package generated at " + new File( mojo.getOutputDirectory(), finalName ) );
+ }
+
+
+ /**
+ * Verifies the target.
+ *
+ * @return
+ * <code>true</code> if the target is correct,
+ * <code>false</code> if not.
+ */
+ private boolean verifyTarget()
+ {
+ // Verifying the target is linux
+ if ( !target.isOsNameLinux() )
+ {
+ log.warn( "Deb package installer can only be targeted for Linux platforms!" );
+ log.warn( "The build will continue, but please check the the platform of this installer target" );
+ return false;
+ }
+
+ // Verifying the dpkg utility exists
+ if ( !target.getDpkgUtility().exists() )
+ {
+ log.warn( "Cannot find dpkg utility at this location: " + target.getDpkgUtility() );
+ log.warn( "The build will continue, but please check the location of your dpkg utility." );
+ return false;
+ }
+
+ return true;
}
@@ -236,27 +202,45 @@ public class DebInstallerCommand extends
{
filterProperties.put( "version.debian", version );
}
-
- filterProperties.put( "version", version );
- }
- else
- {
- filterProperties.put( "version", "1.0" );
}
filterProperties.put( "arch", target.getOsArch() );
+
+ filterProperties.put( "installation.directory", "/opt/apacheds-" + mojo.getProject().getVersion() );
+ filterProperties.put( "instances.directory", "/var/lib/apacheds-" + mojo.getProject().getVersion() );
+ filterProperties.put( "user", "apacheds" );
+ filterProperties.put( "wrapper.java.command", "# wrapper.java.command=<path-to-java-executable>" );
+ filterProperties.put( "double.quote", "" );
+ filterProperties.put( "default.instance.name", "default" );
+ filterProperties.put( "installation.directory", "/opt/apacheds-" + mojo.getProject().getVersion() );
}
+ /**
+ * {@inheritDoc}
+ */
public File getInstallationDirectory()
{
- // TODO Auto-generated method stub
- return null;
+ return new File( getDebDirectory(), "opt/apacheds-" + mojo.getProject().getVersion() );
}
+ /**
+ * {@inheritDoc}
+ */
public File getInstanceDirectory()
{
- // TODO Auto-generated method stub
- return null;
+ return new File( getDebDirectory(), "var/lib/apacheds-" + mojo.getProject().getVersion() + "/default" );
+ }
+
+
+ /**
+ * Gets the directory for the Deb installer.
+ *
+ * @return
+ * the directory for the Deb installer
+ */
+ private File getDebDirectory()
+ {
+ return new File( getTargetDirectory(), "deb" );
}
}
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebTarget.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebTarget.java?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebTarget.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/deb/DebTarget.java Tue Sep 28 14:58:42 2010
@@ -35,33 +35,29 @@ import org.apache.directory.daemon.insta
*/
public class DebTarget extends Target
{
- /** The wrapper executable path */
- private String wrapperExecutablePath = "src/main/installers/wrapper/bin/wrapper-windows-x86-32.exe";
/** The PackageMaker utility executable */
private File dpkgUtility = new File( "/usr/bin/dpkg" );
/**
- * Gets the dpkg utility.
- *
- * @return
- * the dpkg utility
+ * Creates a new instance of DebTarget.
*/
- public File getDpkgUtility()
+ public DebTarget()
{
- return dpkgUtility;
+ setOsName( Target.OS_NAME_LINUX );
+ setOsArch( Target.OS_ARCH_X86_64 );
}
/**
- * Gets the Wrapper executable path.
+ * Gets the dpkg utility.
*
* @return
- * the wrapper executable path
+ * the dpkg utility
*/
- public String getWrapperExecutablePath()
+ public File getDpkgUtility()
{
- return wrapperExecutablePath;
+ return dpkgUtility;
}
@@ -75,16 +71,4 @@ public class DebTarget extends Target
{
this.dpkgUtility = dpkgUtility;
}
-
-
- /**
- * Sets the Wrapper executable path.
- *
- * @param wrapperExecutablePath
- * the wrapper executable path
- */
- public void setWrapperExecutablePath( String wrapperExecutablePath )
- {
- this.wrapperExecutablePath = wrapperExecutablePath;
- }
}
\ No newline at end of file
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init Tue Sep 28 14:58:42 2010
@@ -21,12 +21,11 @@
# *** Linux Standard Base Information ***
### BEGIN INIT INFO
# Provides: apacheds
-# Required-Start: $local_fs $network $remote_fs
-# Required-Stop: $local_fs $network $remote_fs
-# Default-Start: 2 3 4 5
+# Required-Start: $local_fs $remote_fs $network $syslog
+# Required-Stop: $local_fs $remote_fs $network $syslog
+# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop ApacheDS
-# Description: Start and stop ApacheDS
### END INIT INFO
# *** Information for chkconfig ***
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds-init
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds-init?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds-init (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/apacheds-init Tue Sep 28 14:58:42 2010
@@ -1,5 +1,4 @@
-#! /bin/sh
-#
+#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -19,603 +18,19 @@
# under the License.
#
+# *** Linux Standard Base Information ***
### BEGIN INIT INFO
# Provides: apacheds
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
-# Short-Description: Start/stop Apache Directory Server
-### END INIT INFO
+# Short-Description: Start and stop ApacheDS
+### END INIT INFO
-# Shell script to start/stop Apache Directory Server
-# If you want to change apacheds service settings please modify the apacheds.conf
-# file for the instance you wish to change.
+# *** Information for chkconfig ***
# chkconfig: 2345 91 35
-# description: This script starts and stops Apache DS
-#
-
-# Variables
-INSTANCE_HOME=/var/lib/@app@-@app.version@
-APACHEDS_HOME=/opt/@app@-@app.version@
-INSTANCE=default
-
-# Application
-APP_NAME="@app@"
-export APACHEDS_HOME
-APP_LONG_NAME="Apache Directory Server - $INSTANCE"
-
-
-# Wrapper
-WRAPPER_CMD="$APACHEDS_HOME/bin/@app@"
-WRAPPER_CONF="$APACHEDS_HOME/conf/@app@.conf"
-
-# Priority at which to run the wrapper. See "man nice" for valid priorities.
-# nice is only used if a priority is specified.
-PRIORITY=
-
-# Location of the pid file.
-PIDDIR="/var/run/@app@-@app.version@"
-
-# If uncommented, causes the Wrapper to be shutdown using an anchor file.
-# When launched with the 'start' command, it will also ignore all INT and
-# TERM signals.
-#IGNORE_SIGNALS=true
-
-# If specified, the Wrapper will be run as the specified user.
-# IMPORTANT - Make sure that the user has the required privileges to write
-# the PID file and wrapper.log files. Failure to be able to write the log
-# file will cause the Wrapper to exit without any way to write out an error
-# message.
-# NOTE - This will set the user which is used to run the Wrapper as well as
-# the JVM and is not useful in situations where a privileged resource or
-# port needs to be allocated prior to the user being changed.
-RUN_AS_USER=$APP_NAME
-
-# Do not modify anything beyond this point
-#-----------------------------------------------------------------------------
-
-# Get the fully qualified path to the script
-case $0 in
- /*)
- SCRIPT="$0"
- ;;
- ./*)
- SCRIPT="`pwd`/`echo $0 | sed -e 's/^[ ]*\.\///'`"
- ;;
- *)
- SCRIPT="`pwd`/`echo $0 | sed -e 's/^[ ]*//'`"
- ;;
-esac
-
-# Resolve the true real path without any sym links.
-CHANGED=true
-while [ "X$CHANGED" != "X" ]
-do
- # Change spaces to ":" so the tokens can be parsed.
- SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
- # Get the real path to this script, resolving any symbolic links
- TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'`
- REALPATH=
- for C in $TOKENS; do
- # Change any ":" in the token back to a space.
- C=`echo $C | sed -e 's;:; ;g'`
- REALPATH="$REALPATH/$C"
- # If REALPATH is a sym link, resolve it. Loop for nested links.
- while [ -h "$REALPATH" ] ; do
- LS="`ls -ld "$REALPATH"`"
- LINK="`expr "$LS" : '.*-> \(.*\)$'`"
- if expr "$LINK" : '/.*' > /dev/null; then
- # LINK is absolute.
- REALPATH="$LINK"
- else
- # LINK is relative.
- REALPATH="`dirname "$REALPATH"`""/$LINK"
- fi
- done
- done
-
- if [ "$REALPATH" = "$SCRIPT" ]
- then
- CHANGED=""
- else
- SCRIPT="$REALPATH"
- fi
-done
-
-# Change the current directory to the location of the script
-cd "`dirname "$REALPATH"`"
-REALDIR=`pwd`
-
-# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
-# the working directory is later changed.
-FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
- PIDDIR=$REALDIR/$PIDDIR
-fi
-# Same test for WRAPPER_CMD
-FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
- WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
-fi
-# Same test for WRAPPER_CONF
-FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
- WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
-fi
-
-# Process ID
-ANCHORFILE="$PIDDIR/@app@-@app.version@-$INSTANCE.anchor"
-PIDFILE="$PIDDIR/$INSTANCE.pid"
-LOCKDIR="/var/lock/subsys"
-LOCKFILE="$LOCKDIR/$INSTANCE"
-pid=""
-
-# Resolve the location of the 'ps' command
-PSEXE="/usr/bin/ps"
-if [ ! -x "$PSEXE" ]
-then
- PSEXE="/bin/ps"
- if [ ! -x "$PSEXE" ]
- then
- echo "Unable to locate 'ps'."
- echo "Please report this message along with the location of the command on your system."
- exit 1
- fi
-fi
-
-# Resolve the os
-DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
-case "$DIST_OS" in
- 'sunos')
- DIST_OS="solaris"
- ;;
- 'hp-ux' | 'hp-ux64')
- DIST_OS="hpux"
- ;;
- 'darwin')
- DIST_OS="macosx"
- ;;
- 'unix_sv')
- DIST_OS="unixware"
- ;;
-esac
-
-# Resolve the architecture
-DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
-if [ "$DIST_ARCH" = "unknown" ]
-then
- DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
-fi
-case "$DIST_ARCH" in
- 'amd64' | 'athlon' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
- DIST_ARCH="x86"
- ;;
- 'ip27')
- DIST_ARCH="mips"
- ;;
- 'power' | 'powerpc' | 'power_pc' | 'ppc64')
- DIST_ARCH="ppc"
- ;;
- 'pa_risc' | 'pa-risc')
- DIST_ARCH="parisc"
- ;;
- 'sun4u' | 'sparcv9')
- DIST_ARCH="sparc"
- ;;
- '9000/800')
- DIST_ARCH="parisc"
- ;;
-esac
-
-outputFile() {
- if [ -f "$1" ]
- then
- echo " $1 (Found but not executable.)";
- else
- echo " $1"
- fi
-}
-
-# Decide on the wrapper binary to use.
-# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit
-# platforms, if the 64-bit binary exists then the distribution most
-# likely wants to use long names. Otherwise, look for the default.
-# For macosx, we also want to look for universal binaries.
-WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
-if [ -x "$WRAPPER_TEST_CMD" ]
-then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
-else
- if [ "$DIST_OS" = "macosx" ]
- then
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- if [ ! -x "$WRAPPER_CMD" ]
- then
- echo "Unable to locate any of the following binaries:"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
- outputFile "$WRAPPER_CMD-$DIST_OS-universal-32"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- outputFile "$WRAPPER_CMD-$DIST_OS-universal-64"
- outputFile "$WRAPPER_CMD"
- exit 1
- fi
- fi
- fi
- fi
- else
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- if [ ! -x "$WRAPPER_CMD" ]
- then
- echo "Unable to locate any of the following binaries:"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- outputFile "$WRAPPER_CMD"
- exit 1
- fi
- fi
- fi
-fi
-
-# Build the nice clause
-if [ "X$PRIORITY" = "X" ]
-then
- CMDNICE=""
-else
- CMDNICE="nice -$PRIORITY"
-fi
-
-# Build the anchor file clause.
-if [ "X$IGNORE_SIGNALS" = "X" ]
-then
- ANCHORPROP=
- IGNOREPROP=
-else
- ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\"
- IGNOREPROP=wrapper.ignore_signals=TRUE
-fi
-
-# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
-LOCKPROP=
-if [ -d $LOCKDIR ]
-then
- if [ -w $LOCKDIR ]
- then
- LOCKPROP=wrapper.lockfile=\"$LOCKFILE\"
- fi
-fi
-
-checkUser() {
- # $1 touchLock flag
- # $2 command
- # $3 instance
-
- # Check the configured user. If necessary rerun this script as the desired user.
- if [ "X$RUN_AS_USER" != "X" ]
- then
- # Resolve the location of the 'id' command
- IDEXE="/usr/xpg4/bin/id"
- if [ ! -x "$IDEXE" ]
- then
- IDEXE="/usr/bin/id"
- if [ ! -x "$IDEXE" ]
- then
- IDEXE="/bin/id"
- if [ ! -x "$IDEXE" ]
- then
- echo "Unable to locate 'id'."
- echo "Please report this message along with the location of the command on your system."
- exit 1
- fi
- fi
- fi
-
- if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
- then
- # Already running as the configured user. Avoid password prompts by not calling su.
- RUN_AS_USER=""
- fi
- fi
- if [ "X$RUN_AS_USER" != "X" ]
- then
- # If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
- # able to create the lock file. The Wrapper will be able to update this file once it
- # is created but will not be able to delete it on shutdown. If $2 is defined then
- # the lock file should be created for the current command
- if [ "X$LOCKPROP" != "X" ]
- then
- if [ "X$1" != "X" ]
- then
- # Resolve the primary group
- RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
- if [ "X$RUN_AS_GROUP" = "X" ]
- then
- RUN_AS_GROUP=$RUN_AS_USER
- fi
- touch $LOCKFILE
- chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
- fi
- fi
-
- # Still want to change users, recurse. This means that the user will only be
- # prompted for a password once. Variables shifted by 1
- su -m $RUN_AS_USER -c "\"$REALPATH\" $2 $3"
-
- # Now that we are the original user again, we may need to clean up the lock file.
- if [ "X$LOCKPROP" != "X" ]
- then
- getpid
- if [ "X$pid" = "X" ]
- then
- # Wrapper is not running so make sure the lock file is deleted.
- if [ -f "$LOCKFILE" ]
- then
- rm "$LOCKFILE"
- fi
- fi
- fi
-
- exit 0
- fi
-}
-
-getpid() {
- if [ -f "$PIDFILE" ]
- then
- if [ -r "$PIDFILE" ]
- then
- pid=`cat "$PIDFILE"`
- if [ "X$pid" != "X" ]
- then
- # It is possible that 'a' process with the pid exists but that it is not the
- # correct process. This can happen in a number of cases, but the most
- # common is during system startup after an unclean shutdown.
- # The ps statement below looks for the specific wrapper command running as
- # the pid. If it is not found then the pid file is considered to be stale.
- pidtest=`$PSEXE -p $pid -o args | grep "$WRAPPER_CMD" | tail -1`
- if [ "X$pidtest" = "X" ]
- then
- # This is a stale pid file.
- rm -f "$PIDFILE"
- echo "Removed stale pid file: $PIDFILE"
- pid=""
- fi
- fi
- else
- echo "Cannot read $PIDFILE."
- exit 1
- fi
- fi
-}
-
-testpid() {
- pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
- if [ "X$pid" = "X" ]
- then
- # Process is gone so remove the pid file.
- rm -f "$PIDFILE"
- pid=""
- fi
-}
-
-testpiddir()
-{
- # Be sure that the PIDDIR exists
- if [ ! -d $PIDDIR ]
- then
- # If it doesn't exist, we create it
- mkdir -p $PIDDIR
- chown apacheds:apacheds $PIDDIR
- fi
-}
-
-usage() {
- echo "Usage: $0 <command>"
- echo " Available Commands: "
- echo " console - Run in interactive mode with log output to the console."
- echo " Press CTRL-C to stop."
- echo " start - Run the instance in the background"
- echo " stop - Stop the running instance"
- echo " restart - Restart the instance if it is already running,"
- echo " or start if it wasn't already running"
- echo " status - Display the status of the instance (running or stopped)"
- echo " dump - Request a JVM dump of the running process"
-}
-
-console() {
- echo "Running $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- # The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" set.INSTANCE_HOME=\"$INSTANCE_HOME\" set.INSTANCE=\"$INSTANCE\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP wrapper.debug=true"
- eval $COMMAND_LINE
- else
- echo "$APP_LONG_NAME is already running."
- exit 1
- fi
-}
-
-start() {
- echo "Starting $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- # The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" set.INSTANCE_HOME=$INSTANCE_HOME set.INSTANCE=$INSTANCE wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
- eval $COMMAND_LINE
- else
- echo "$APP_LONG_NAME is already running."
- exit 1
- fi
-
-
-}
-
-stopit() {
- echo "Stopping $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- echo "$APP_LONG_NAME was not running."
- else
- if [ "X$IGNORE_SIGNALS" = "X" ]
- then
- # Running so try to stop it.
- kill $pid
- if [ $? -ne 0 ]
- then
- # An explanation for the failure should have been given
- echo "Unable to stop $APP_LONG_NAME."
- exit 1
- fi
- else
- rm -f "$ANCHORFILE"
- if [ -f "$ANCHORFILE" ]
- then
- # An explanation for the failure should have been given
- echo "Unable to stop $APP_LONG_NAME."
- exit 1
- fi
- fi
-
- # We can not predict how long it will take for the wrapper to
- # actually stop as it depends on settings in apacheds.conf.
- # Loop until it does.
- savepid=$pid
- CNT=0
- TOTCNT=0
- while [ "X$pid" != "X" ]
- do
- # Show a waiting message every 5 seconds.
- if [ "$CNT" -lt "5" ]
- then
- CNT=`expr $CNT + 1`
- else
- echo "Waiting for $APP_LONG_NAME to exit..."
- CNT=0
- fi
- TOTCNT=`expr $TOTCNT + 1`
-
- sleep 1
-
- testpid
- done
-
- pid=$savepid
- testpid
- if [ "X$pid" != "X" ]
- then
- echo "Failed to stop $APP_LONG_NAME."
- exit 1
- else
- echo "Stopped $APP_LONG_NAME."
- fi
- fi
-}
-
-status() {
- getpid
- if [ "X$pid" = "X" ]
- then
- echo "$APP_LONG_NAME is not running."
- exit 1
- else
- echo "$APP_LONG_NAME is running ($pid)."
- exit 0
- fi
-}
-
-dump() {
- echo "Dumping $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- echo "$APP_LONG_NAME was not running."
-
- else
- kill -3 $pid
-
- if [ $? -ne 0 ]
- then
- echo "Failed to dump $APP_LONG_NAME."
- exit 1
- else
- echo "Dumped $APP_LONG_NAME."
- fi
- fi
-}
-
-list() {
- echo "Available instances..."
- for instance in $INSTANCE_HOME/* ; do
- echo " " `basename $instance`;
- done
-}
-
-case "$1" in
-
- 'console')
- testpiddir
- checkUser touchlock $1 $INSTANCE
- console
- ;;
-
- 'start')
- testpiddir
- checkUser touchlock $1 $INSTANCE
- start
- ;;
-
- 'stop')
- checkUser "" $1 $INSTANCE
- stopit
- ;;
-
- 'restart')
- checkUser touchlock $1 $INSTANCE
- stopit
- start
- ;;
-
- 'status')
- checkUser "" $1 $INSTANCE
- status
- ;;
-
- 'dump')
- checkUser "" $1 $INSTANCE
- dump
- ;;
- 'list')
- list
- ;;
-
- *)
- echo "Usage: $0 { console | start | stop | restart | status | dump }"
- exit 1
- ;;
-esac
+# description: Start and stop ApacheDS
-exit 0
+# Forwarding the command to the default script
+@installation.directory@/bin/apacheds $1 @default.instance.name@
\ No newline at end of file
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/control
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/control?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/control (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/control Tue Sep 28 14:58:42 2010
@@ -3,7 +3,7 @@ Version: ${version.debian}
Section: devel
Priority: optional
Architecture: ${arch}
-Installed-Size: 10285
+Installed-Size: 11504
Maintainer: Apache Directory Project <de...@directory.apache.org>
Description: LDAP Server
ApacheDS is an embeddable directory server entirely written in Java, which
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/postinst
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/postinst?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/postinst (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/postinst Tue Sep 28 14:58:42 2010
@@ -20,26 +20,21 @@
set -e
# Setting executable permissions
-chmod +x /opt/apacheds-${app.version}/bin/apacheds
-chmod +x /etc/init.d/apacheds-${app.version}-default
+chmod +x /opt/apacheds-${version}/bin/apacheds
+chmod +x /opt/apacheds-${version}/bin/wrapper
+chmod +x /etc/init.d/apacheds-${version}-default
# Creating the apacheds user (only if needed)
USER=`eval "id -u -n apacheds 2>/dev/null || :"`
if [ ! "Xapacheds" = "X$USER" ]
then
/usr/sbin/groupadd --system apacheds >/dev/null 2>&1 || :
- /usr/sbin/useradd --system -g apacheds -d /opt/apacheds-${app.version} apacheds >/dev/null 2>&1 || :
+ /usr/sbin/useradd --system -g apacheds -d /opt/apacheds-${version} apacheds >/dev/null 2>&1 || :
fi
# Modifying owner
-chown -R apacheds:apacheds /opt/apacheds-${app.version}
-chown -R apacheds:apacheds /var/lib/apacheds-${app.version}
-chown apacheds:apacheds /var/run/apacheds-${app.version}
-chown root:root /etc/init.d/apacheds-${app.version}-default
+chown -R apacheds:apacheds /opt/apacheds-${version}
+chown -R apacheds:apacheds /var/lib/apacheds-${version}
+chown root:root /etc/init.d/apacheds-${version}-default
-# Create symbolic links for runlevels for default instance
-update-rc.d apacheds-${app.version}-default defaults
-
-# Start the default instance
-/etc/init.d/apacheds-${app.version}-default start
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/prerm
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/prerm?rev=1002201&r1=1002200&r2=1002201&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/prerm (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/deb/prerm Tue Sep 28 14:58:42 2010
@@ -20,25 +20,21 @@
set -e
# Emptying some directories
-for instance_dir in `find /var/lib/apacheds-${app.version} -maxdepth 1 -mindepth 1 -type d`; do
+for instance_dir in `find /var/lib/apacheds-${version} -maxdepth 1 -mindepth 1 -type d`; do
# Get instance and use it to shutdown
instance=$(echo $instance_dir | sed -e 's/.*apacheds.*\///g')
echo Shutting down ApacheDS instance $instance
- /etc/init.d/apacheds-${app.version}-$instance stop
-
- # Remove init script links
- update-rc.d -f apacheds-${app.version}-$instance remove
+ /etc/init.d/apacheds-${version}-$instance stop
# Backup old instance folders before deleting them
timestamp=$(date '+%Y%m%d_%H%M%S')
parent_dir=/var/lib
- tarball=$parent_dir/apacheds-${app.version}-$instance"_"$timestamp.tgz
+ tarball=$parent_dir/apacheds-${version}-$instance"_"$timestamp.tgz
echo Backing up old $instance instance data to $tarball
tar -zcf $tarball $instance_dir
rm -rf $instance_dir/partitions/*
rm -rf $instance_dir/log/*
+ rm -rf $instance_dir/.dirservice.lock
done
-
-rm -rf /opt/apacheds-${app.version}/bin/wrapper.log