From 1551fd2fcd0c41409a26f5c8c32c25d99e059eb4 Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Wed, 29 May 2013 06:39:44 +0000
Subject: [PATCH] OPENDJ-946 Package build fails when special chars are contained in the VERSION_QUALIFIER. - The packages name for Deb/RPM follows the rules given by their respective documentation. - Adding a VERSION_QUALIFIER containing special chars no longer make fail the package build. 

---
 opends/src/build-tools/org/opends/build/tools/CreateVersionString.java |    8 ++++++++
 opends/build.xml                                                       |    6 +++---
 opends/src/build-tools/org/opends/build/tools/GenerateRpm.java         |    5 +++++
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/opends/build.xml b/opends/build.xml
index 4eb180c..45b9691 100644
--- a/opends/build.xml
+++ b/opends/build.xml
@@ -1336,8 +1336,8 @@
         referenceURL="${DOC_REFERENCE_HOME}"
         sourceDirName="${package.dir}/${SHORT_NAME}-${VERSION_NUMBER_STRING}"
         specFileName="${build.dir}/rpm/SPECS/specFile"
-        version="${VERSION_NUMBER_STRING}"
-        release="${release}"
+        version="${pkg_version_string}"
+        release="${release}.${pkg_version_qualifier}"
         overwrite="true">
     </genrpm>
 
@@ -1395,7 +1395,7 @@
 
     <replace dir="${build.dir}/deb/control/" token="@prefix@" value="${prefix}" />
 
-    <deb destfile="${package.dir}/${PKG_NAME}_${VERSION_NUMBER_STRING}-${release}_all.deb"
+    <deb destfile="${package.dir}/${PKG_NAME}_${pkg_version_string}-${release}${pkg_version_qualifier}_all.deb"
          control="${build.dir}/deb/control">
       <tarfileset dir="${package.dir}/${SHORT_NAME}-${VERSION_NUMBER_STRING}"
                   includes="**/*"
diff --git a/opends/src/build-tools/org/opends/build/tools/CreateVersionString.java b/opends/src/build-tools/org/opends/build/tools/CreateVersionString.java
index 4aaf9380..d07cbfc 100644
--- a/opends/src/build-tools/org/opends/build/tools/CreateVersionString.java
+++ b/opends/src/build-tools/org/opends/build/tools/CreateVersionString.java
@@ -71,9 +71,17 @@
     versionString.append(".");
     versionString.append(getProject().getProperty("POINT_VERSION"));
 
+    // Sets the version string to the property used by packages.
+    getProject().setNewProperty("pkg_version_string", versionString.toString());
+
     String versionQualifier = getProject().getProperty("VERSION_QUALIFIER");
     versionString.append(versionQualifier);
 
+    // Removes all special chars contained in the version qualifier
+    // Sets the version qualifier to the property used by packages.
+    getProject().setNewProperty("pkg_version_qualifier",
+        versionQualifier.replaceAll("[^A-Za-z0-9]", ""));
+
     try
     {
       int buildNumber =
diff --git a/opends/src/build-tools/org/opends/build/tools/GenerateRpm.java b/opends/src/build-tools/org/opends/build/tools/GenerateRpm.java
index 335df83..80d84ac 100644
--- a/opends/src/build-tools/org/opends/build/tools/GenerateRpm.java
+++ b/opends/src/build-tools/org/opends/build/tools/GenerateRpm.java
@@ -225,6 +225,11 @@
       sb.append("# Application Version" + EOL);
       sb.append("Version: " + version + EOL);
       sb.append("# Packaging Revision" + EOL);
+      // If VERSION_QUALIFIER is empty, need to remove '.' char.
+      if (release.endsWith("."))
+      {
+        release = release.substring(0, release.length() - 1);
+      }
       sb.append("Release: " + release + EOL);
       sb.append("# Software Licenced Under" + EOL);
       sb.append("License: CDDL" + EOL);

--
Gitblit v1.10.0