From 44f945e40b2d632fe289ba3041ba09187ccaf95f Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Tue, 10 Mar 2015 14:47:08 +0000
Subject: [PATCH] OPENDJ-1772: Add profile to build deb package
---
opendj-server-legacy/resource/debian/control/control | 10 +-
opendj-server-legacy/resource/debian/changelog | 6 +
opendj-server-legacy/resource/debian/control/preinst | 10 +-
opendj-server-legacy/pom.xml | 157 +++++++++++++++++++++++++++++++++++++++
opendj-server-legacy/resource/debian/control/postinst | 30 +++---
opendj-server-legacy/resource/debian/control/prerm | 8 +-
6 files changed, 192 insertions(+), 29 deletions(-)
diff --git a/opendj-server-legacy/pom.xml b/opendj-server-legacy/pom.xml
index 3671bd2..13ba6d9 100644
--- a/opendj-server-legacy/pom.xml
+++ b/opendj-server-legacy/pom.xml
@@ -1514,6 +1514,163 @@
</build>
</profile>
+ <!-- Build the debian package -->
+ <profile>
+ <id>package-deb</id>
+
+ <properties>
+ <deb.prefix>/opt/${lowerCaseProductName}</deb.prefix>
+ <deb.docprefix>/usr/share/doc/${lowerCaseProductName}</deb.docprefix>
+ <deb.release>1</deb.release>
+ <deb.maintainer>opendj@forgerock.org</deb.maintainer>
+ </properties>
+
+ <build>
+ <plugins>
+ <!-- Filter deb install and remove scripts -->
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-deb-scripts</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/deb/control</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/resource/debian/control</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Generates changelog.Debian.gz file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-deb-gzipped-changelog</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <gzip src="resource/debian/changelog" destfile="${project.build.directory}/deb/changelog.Debian.gz" />
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Generates the deb package -->
+ <plugin>
+ <groupId>org.vafer</groupId>
+ <artifactId>jdeb</artifactId>
+ <version>1.3</version>
+ <executions>
+ <execution>
+ <phase>verify</phase>
+ <goals>
+ <goal>jdeb</goal>
+ </goals>
+ <configuration>
+ <deb>${project.build.directory}/deb/${lowerCaseProductName}_${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}-${deb.release}.${maven.build.timestamp}_all.deb</deb>
+ <controlDir>${project.build.directory}/deb/control</controlDir>
+ <dataSet>
+ <!-- OpenDJ service file -->
+ <data>
+ <src>${basedir}/resource/sysv/opendj</src>
+ <type>file</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>/etc/init.d</prefix>
+ <filemode>755</filemode>
+ </mapper>
+ </data>
+
+ <!-- Debian copyright file in documentation -->
+ <data>
+ <src>${basedir}/resource/debian/copyright</src>
+ <type>file</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>${deb.docprefix}</prefix>
+ </mapper>
+ </data>
+
+ <!-- Debian changelog file in documentation -->
+ <data>
+ <src>${project.build.directory}/deb/changelog.Debian.gz</src>
+ <type>file</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>${deb.docprefix}</prefix>
+ </mapper>
+ </data>
+
+ <!-- OpenDJ archive documentation files -->
+ <data>
+ <src>${project.build.directory}/package/${lowerCaseProductName}</src>
+ <type>directory</type>
+ <includes>legal-notices/**, copyright, example-plugin.zip, changelog.Debian.gz</includes>
+ <mapper>
+ <type>perm</type>
+ <prefix>${deb.docprefix}</prefix>
+ </mapper>
+ </data>
+
+ <!-- OpenDJ archive files without specific permission -->
+ <data>
+ <src>${project.build.directory}/package/${lowerCaseProductName}</src>
+ <type>directory</type>
+ <excludes>**/bat/**, **/*.app/**, **/*.bat*, **/*.exe*, bin/*, template/**/*, lib/*.sh, setup, uninstall, upgrade, legal-notices/**, copyright, README, example-plugin.zip, opendj</excludes>
+ <mapper>
+ <type>perm</type>
+ <prefix>${deb.prefix}</prefix>
+ </mapper>
+ </data>
+
+ <!-- OpenDJ archive files with specific permission -->
+ <data>
+ <src>${project.build.directory}/package/${lowerCaseProductName}</src>
+ <type>directory</type>
+ <includes>lib/*.sh, bin/*, setup, uninstall, upgrade</includes>
+ <excludes>bin/ControlPanel.app/**</excludes>
+ <mapper>
+ <type>perm</type>
+ <prefix>${deb.prefix}</prefix>
+ <filemode>755</filemode>
+ </mapper>
+ </data>
+
+ <!-- OpenDJ archive template folder -->
+ <data>
+ <src>${project.build.directory}/package/${lowerCaseProductName}</src>
+ <type>directory</type>
+ <includes>template/**/*</includes>
+ <mapper>
+ <type>perm</type>
+ <prefix>${deb.prefix}</prefix>
+ <filemode>444</filemode>
+ </mapper>
+ </data>
+ </dataSet>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
<!-- Build the RPM package -->
<profile>
<id>package-rpm</id>
diff --git a/opendj-server-legacy/resource/debian/changelog b/opendj-server-legacy/resource/debian/changelog
index ea40a71..72cb290 100644
--- a/opendj-server-legacy/resource/debian/changelog
+++ b/opendj-server-legacy/resource/debian/changelog
@@ -1,3 +1,9 @@
+ opendj (3.0.0) unstable; urgency=low
+
+ * Package is now build using maven.
+
+ -- ForgeRock <opendj@forgerock.org> Tue, 10 Mar 2015 14:24:00 +0100
+
opendj (2.7.0) unstable; urgency=low
* Added changelog to /usr/share/doc/opendj/
diff --git a/opendj-server-legacy/resource/debian/control/control b/opendj-server-legacy/resource/debian/control/control
index 05e9be6..00dba61 100644
--- a/opendj-server-legacy/resource/debian/control/control
+++ b/opendj-server-legacy/resource/debian/control/control
@@ -1,12 +1,12 @@
-Package: [[name]]
-Version: [[version]]
+Package: [[lowerCaseProductName]]
+Version: [[parsedVersion.majorVersion]].[[parsedVersion.minorVersion]].[[parsedVersion.incrementalVersion]]
Section: misc
Priority: low
Architecture: all
Depends: default-jre | java6-runtime | java7-runtime
-Homepage: [[homepage]]
-Maintainer: [[maintainer]]
-Description: [[description]]
+Homepage: [[docHomepageUrl]]
+Maintainer: [[deb.maintainer]]
+Description: [[shortProductName]]
OpenDJ is an LDAPv3 compliant directory service, developed for the Java
platform, providing a high performance, highly available and secure store
for the identities managed by enterprises. Its easy installation process,
diff --git a/opendj-server-legacy/resource/debian/control/postinst b/opendj-server-legacy/resource/debian/control/postinst
index 9bf9a36..47d401e 100644
--- a/opendj-server-legacy/resource/debian/control/postinst
+++ b/opendj-server-legacy/resource/debian/control/postinst
@@ -2,48 +2,48 @@
set -e
# Post install script
# Install is launched with an empty second arg.
-# If the package is already installed,
+# If the package is already installed,
# the second arg. is not empty.
# Registers the service
update-rc.d opendj defaults
# Symlinks to process ID
-test -h "/var/run/opendj.pid" || ln -s /opt/opendj/logs/server.pid /var/run/opendj.pid
+test -h "/var/run/opendj.pid" || ln -s ${deb.prefix}/logs/server.pid /var/run/opendj.pid
# In this case, we are in upgrade mode.
if [ "$1" = "configure" ] && [ ! -z "$2" ]
then
# For being secure, we check the buildinfo file too.
- if [ -f @prefix@/config/buildinfo ]
+ if [ -f ${deb.prefix}/config/buildinfo ]
then
echo *Starting upgrade...
- @prefix@/./upgrade -n --acceptLicense
+ ${deb.prefix}/./upgrade -n --acceptLicense
echo
# Upgrade fails - Requires mandatory user interaction.
# Nevertheless, exits successfully of the pkg process.
if [ "$?" -eq 2 ]
then
- exit 0
+ exit 0
fi
# Restarts the service if needed.
-# If server is stopped by upgrade process,
+# If server is stopped by upgrade process,
# the server will restart after upgrade.
-# If server is stopped before the upgrade process
+# If server is stopped before the upgrade process
# (eg. upgrade the new package), the server will not restart.
# Uses the flag for determining server status at this point.
if [ "$?" -eq 0 ]
then
- if [ -f @prefix@/logs/status ]
+ if [ -f ${deb.prefix}/logs/status ]
then
echo
- echo "*Restarting server..."
- @prefix@/./bin/start-ds
- rm -f @prefix@/logs/status
- fi
+ echo "*Restarting server..."
+ ${deb.prefix}/./bin/start-ds
+ rm -f ${deb.prefix}/logs/status
+ fi
fi
- else
+ else
# Invalid installation, could not find the buildinfo file.
echo "Invalid installation, could not find the build info file."
- exit -1
+ exit -1
fi
fi
# End post install script
-echo
\ No newline at end of file
+echo
\ No newline at end of file
diff --git a/opendj-server-legacy/resource/debian/control/preinst b/opendj-server-legacy/resource/debian/control/preinst
index 0fceba2..2b8a0d7 100644
--- a/opendj-server-legacy/resource/debian/control/preinst
+++ b/opendj-server-legacy/resource/debian/control/preinst
@@ -4,19 +4,19 @@
if [ "$1" = "upgrade" ]
then
# Only if the instance has been configured
- if [ -f @prefix@/config/buildinfo ] && [ "$(ls -A @prefix@/config/archived-configs)" ]
+ if [ -f ${deb.prefix}/config/buildinfo ] && [ "$(ls -A ${deb.prefix}/config/archived-configs)" ]
then
# If the server is running before upgrade, creates a flag.
- if [ -f @prefix@/logs/server.pid ]
+ if [ -f ${deb.prefix}/logs/server.pid ]
then
- touch @prefix@/logs/status
+ touch ${deb.prefix}/logs/status
fi
echo *Stopping OpenDJ server...
- @prefix@/bin/./stop-ds
+ ${deb.prefix}/bin/./stop-ds
else
echo "Instance is not configured. Upgrade aborded."
exit -1
fi
fi
-echo
+echo
# End of the pre installation script
\ No newline at end of file
diff --git a/opendj-server-legacy/resource/debian/control/prerm b/opendj-server-legacy/resource/debian/control/prerm
index 7758969..07fbd14 100644
--- a/opendj-server-legacy/resource/debian/control/prerm
+++ b/opendj-server-legacy/resource/debian/control/prerm
@@ -1,17 +1,17 @@
#!/bin/bash
set -e
# Pre rm script
-# Stops the service.
+# Stops the service.
/etc/init.d/opendj stop >/dev/null 2>&1
-# Deletes the service.
+# Deletes the service.
update-rc.d -f opendj remove
# Unlink the symlink to the process ID if it exists.
test -h "/var/run/opendj.pid" && unlink /var/run/opendj.pid
# Stops the server
# Only if the instance has been configured
-if [ "$1" = "remove" ] && ( [ -f @prefix@/config/buildinfo ] && [ "$(ls -A @prefix@/config/archived-configs)" ] )
+if [ "$1" = "remove" ] && ( [ -f ${deb.prefix}/config/buildinfo ] && [ "$(ls -A ${deb.prefix}/config/archived-configs)" ] )
then
echo *Stopping OpenDJ server...
- @prefix@/bin/./stop-ds
+ ${deb.prefix}/bin/./stop-ds
fi
# End prem script
\ No newline at end of file
--
Gitblit v1.10.0