From 5e040c4ad89738b8a0548bd4bcf67207ec52d3f8 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Fri, 06 Mar 2015 15:21:09 +0000
Subject: [PATCH] OPENDJ-1772: Add profile to build rpm package
---
opendj-sdk/opendj-server-legacy/pom.xml | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 217 insertions(+), 1 deletions(-)
diff --git a/opendj-sdk/opendj-server-legacy/pom.xml b/opendj-sdk/opendj-server-legacy/pom.xml
index be54391..4bc1644 100644
--- a/opendj-sdk/opendj-server-legacy/pom.xml
+++ b/opendj-sdk/opendj-server-legacy/pom.xml
@@ -75,9 +75,14 @@
<!-- Dependencies version properties -->
<project.version>3.0.0-SNAPSHOT</project.version>
<i18n.version>1.4.2-SNAPSHOT</i18n.version>
-
+
+ <!-- RPM package properties -->
+ <rpm.prefix>/opt/${lowerCaseProductName}</rpm.prefix>
+ <rpm.release>1</rpm.release>
+
<!-- Other properties -->
<checkstyleHeaderLocation>org/forgerock/checkstyle/opendj-java-header</checkstyleHeaderLocation>
+ <maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format>
</properties>
@@ -1509,6 +1514,217 @@
</build>
</profile>
+ <!-- Build the RPM package -->
+ <profile>
+ <id>package-rpm</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>rpm-maven-plugin</artifactId>
+ <version>2.0.1</version>
+ <executions>
+ <execution>
+ <id>generate-rpm-package</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>rpm</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <summary>${shortProductName}</summary>
+ <name>${lowerCaseProductName}</name>
+ <version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</version>
+ <release>${rpm.release}.${maven.build.timestamp}</release>
+ <prefix>${rpm.prefix}</prefix>
+ <license>CDDL</license>
+ <group>Productivity/Networking/LDAP/Servers</group>
+ <url>${docHomepageUrl}</url>
+ <needarch>noarch</needarch>
+ <targetOS>linux</targetOS>
+
+ <defineStatements>
+ <defineStatement>arch noarch</defineStatement>
+ <defineStatement>_prefix ${rpm.prefix}</defineStatement>
+ <defineStatement>_pre ${shortProductName}-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</defineStatement>
+ <defineStatement>__os_install_post %{nil}</defineStatement>
+ </defineStatements>
+
+ <mappings>
+ <!-- Add directories -->
+ <mapping>
+ <directory>${rpm.prefix}</directory>
+ </mapping>
+ <mapping>
+ <directory>${rpm.prefix}/bin</directory>
+ </mapping>
+ <mapping>
+ <directory>${rpm.prefix}/lib</directory>
+ </mapping>
+ <mapping>
+ <directory>${rpm.prefix}/lib/extensions</directory>
+ </mapping>
+ <mapping>
+ <directory>${rpm.prefix}/snmp</directory>
+ </mapping>
+ <mapping>
+ <directory>${rpm.prefix}/snmp/mib</directory>
+ </mapping>
+
+ <!-- Add service script -->
+ <mapping>
+ <directory>/etc/init.d</directory>
+ <directoryIncluded>false</directoryIncluded>
+ <filemode>755</filemode>
+ <sources>
+ <source>
+ <location>${basedir}/resource/sysv/opendj</location>
+ </source>
+ </sources>
+ </mapping>
+
+ <!-- Add documentation sources -->
+ <mapping>
+ <documentation>true</documentation>
+ <directory>/usr/share/doc/${lowerCaseProductName}-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/package/${lowerCaseProductName}</location>
+ <excludes>
+ <exclude>**/template/**</exclude>
+ <exclude>**/legals/**</exclude>
+ <exclude>**/snmp/**</exclude>
+ <exclude>**/legal-notices/**</exclude>
+ </excludes>
+ <includes>
+ <include>**/*.doc</include>
+ <include>**/*.txt</include>
+ <include>**/*example-plugin*</include>
+ </includes>
+ </source>
+ </sources>
+ </mapping>
+
+ <!-- Add legal notices documentation sources under doc main folder -->
+ <mapping>
+ <documentation>true</documentation>
+ <directory>/usr/share/doc/${lowerCaseProductName}-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/package/${lowerCaseProductName}/legal-notices</location>
+ <includes>
+ <include>**/*.doc</include>
+ <include>**/*.txt</include>
+ </includes>
+ </source>
+ </sources>
+ </mapping>
+
+ <!-- Add executables scripts and librairies -->
+ <mapping>
+ <directory>${rpm.prefix}</directory>
+ <filemode>755</filemode>
+ <sources>
+ <source>
+ <location>${project.build.directory}/package/${lowerCaseProductName}</location>
+ <includes>
+ <include>bin/**</include>
+ <include>lib/*.sh</include>
+ <include>setup</include>
+ <include>uninstall</include>
+ <include>upgrade</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.exe</exclude>
+ <exclude>**/*bat</exclude>
+ <exclude>**/*.app/**</exclude>
+ <exclude>**/*.app</exclude>
+ </excludes>
+ </source>
+ </sources>
+ </mapping>
+
+ <!-- Add other files to the rpm -->
+ <mapping>
+ <directory>${rpm.prefix}</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/package/${lowerCaseProductName}</location>
+ <excludes>
+ <exclude>template/**</exclude>
+ <exclude>bin/**</exclude>
+ <exclude>lib/*.sh</exclude>
+ <exclude>setup</exclude>
+ <exclude>uninstall</exclude>
+ <exclude>upgrade</exclude>
+ <exclude>**/*.exe</exclude>
+ <exclude>**/*bat</exclude>
+ <exclude>**/readme</exclude>
+ <exclude>**/README</exclude>
+ <exclude>**/*.app/**</exclude>
+ <exclude>**/*.app</exclude>
+ <exclude>**/legal-notices</exclude>
+ <exclude>**/*.doc</exclude>
+ <exclude>**/*.txt</exclude>
+ <exclude>**/*example-plugin*</exclude>
+ </excludes>
+ </source>
+ </sources>
+ </mapping>
+
+ <!-- Add files excluded in documentation mapping -->
+ <mapping>
+ <directory>${rpm.prefix}</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/package/${lowerCaseProductName}</location>
+ <includes>
+ <include>**/legals/**/*.doc</include>
+ <include>**/legals/**/*.txt</include>
+ <include>**/snmp/**/*.doc</include>
+ <include>**/snmp/**/*.txt</include>
+ </includes>
+ </source>
+ </sources>
+ </mapping>
+
+ <!-- Add template dir -->
+ <mapping>
+ <directory>${rpm.prefix}/template</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/package/${lowerCaseProductName}/template</location>
+ </source>
+ </sources>
+ </mapping>
+ </mappings>
+ <preinstallScriptlet>
+ <scriptFile>${basedir}/resource/rpm/specs/preinstall.sh</scriptFile>
+ <fileEncoding>utf-8</fileEncoding>
+ </preinstallScriptlet>
+ <postinstallScriptlet>
+ <scriptFile>${basedir}/resource/rpm/specs/postinstall.sh</scriptFile>
+ <fileEncoding>utf-8</fileEncoding>
+ </postinstallScriptlet>
+ <preremoveScriptlet>
+ <scriptFile>${basedir}/resource/rpm/specs/preuninstall.sh</scriptFile>
+ <fileEncoding>utf-8</fileEncoding>
+ </preremoveScriptlet>
+ <postremoveScriptlet>
+ <scriptFile>${basedir}/resource/rpm/specs/postuninstall.sh</scriptFile>
+ <fileEncoding>utf-8</fileEncoding>
+ </postremoveScriptlet>
+ <cleanScriptlet>
+ <scriptFile>${basedir}/resource/rpm/specs/clean.sh</scriptFile>
+ <fileEncoding>utf-8</fileEncoding>
+ </cleanScriptlet>
+ <changelogFile>${basedir}/resource/rpm/changelog</changelogFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
--
Gitblit v1.10.0