[SCM] jenkins packaging branch, master, updated. debian/1.424.3+dfsg-1-11-gde57da4

James Page james.page at ubuntu.com
Wed May 2 14:31:29 UTC 2012


The following commit has been merged in the master branch:
commit 5621b00dd10c4fb48676e0d7c9ec04142dee89cc
Author: James Page <james.page at ubuntu.com>
Date:   Wed May 2 15:11:42 2012 +0100

    New upstream release:
    
    * New upstream release:
      - d/patches/dependency-upgrade/groovy-upgrade.patch: Dropped - now
        aligned to upstream version.
      - d/patches/build/jenkins-version-number.patch: Patch in small version
        handling library from Jenkins project rather than package separately.
      - d/patches/build/use-stock-jmdns.patch, d/maven.rules: Revert upstream
        use of minor fork of JmDNS.
      - d/patches/build/build.patch: Allow building with Maven 2, this works
        OK for this package as Maven 3 features are not used by the package
        build process at the moment.
      - Refreshed all other patches.
      - d/maven.ignoreRules, d/maven.properties: Disable unit testing and ignore
        powermock dependencies until powermock is packaged.
      - d/maven.ignoreRules, d/NEWS: Ignore jenkins sshd module until it gets
        packaged and let users know this feature is missing.
      - d/control: Added new dependencies on libsisu-guice-java, libmockito-java.

diff --git a/debian/NEWS b/debian/NEWS
index 7fac182..ffadf95 100644
--- a/debian/NEWS
+++ b/debian/NEWS
@@ -1,3 +1,13 @@
+jenkins (1.447.1+dfsg-1) unstable; urgency=low
+
+  This new upstream release of Jenkins does not currently include
+  the new sshd (Jenkins as a SSH server) feature. 
+
+  This will be added at a late date once this module and its dependencies
+  have been packaged for Debian.
+
+ -- James Page <james.page at ubuntu.com>  Wed, 02 May 2012 15:05:57 +0100
+
 jenkins (1.424.6+dfsg-1) unstable; urgency=low
 
   Jenkins ssh-cli and rsa identity management features have now been enabled.
diff --git a/debian/changelog b/debian/changelog
index e6def44..d11bf93 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,24 @@
+jenkins (1.447.1+dfsg-1) unstable; urgency=low
+
+  * New upstream release:
+    - d/patches/dependency-upgrade/groovy-upgrade.patch: Dropped - now
+      aligned to upstream version.
+    - d/patches/build/jenkins-version-number.patch: Patch in small version
+      handling library from Jenkins project rather than package separately.
+    - d/patches/build/use-stock-jmdns.patch, d/maven.rules: Revert upstream 
+      use of minor fork of JmDNS.
+    - d/patches/build/build.patch: Allow building with Maven 2, this works 
+      OK for this package as Maven 3 features are not used by the package
+      build process at the moment.
+    - Refreshed all other patches.
+    - d/maven.ignoreRules, d/maven.properties: Disable unit testing and ignore
+      powermock dependencies until powermock is packaged.
+    - d/maven.ignoreRules, d/NEWS: Ignore jenkins sshd module until it gets
+      packaged and let users know this feature is missing.
+    - d/control: Added new dependencies on libsisu-guice-java, libmockito-java.
+
+ -- James Page <james.page at ubuntu.com>  Wed, 02 May 2012 15:10:44 +0100
+
 jenkins (1.424.6+dfsg-1) unstable; urgency=low
 
   * New upstream release, fixing XSS security vulnerability (Closes: #664057):
diff --git a/debian/control b/debian/control
index 809372f..c2ee29d 100644
--- a/debian/control
+++ b/debian/control
@@ -27,7 +27,7 @@ Build-Depends-Indep:
  junit4,
  libaccess-modifier-checker-java,
  libacegi-security-java,
- libakuma-java,
+ libakuma-java (>= 1.8),
  libanimal-sniffer-java,
  libannotation-indexer-java,
  libantlr-java,
@@ -49,12 +49,12 @@ Build-Depends-Indep:
  libjellydoc-java,
  libjenkins-plugin-parent-java,
  libjenkins-commons-jelly-java,
- libjenkins-commons-jexl-java,
+ libjenkins-commons-jexl-java (>= 1.1-jenkins-20111212),
  libjenkins-htmlunit-java,
  libjenkins-json-java (>= 2.1-rev7),
- libjenkins-remoting-java,
+ libjenkins-remoting-java (>= 2.11),
  libjenkins-trilead-ssh2-java,
- libjenkins-winstone-java (>= 0.9.10-jenkins-31),
+ libjenkins-winstone-java (>= 0.9.10-jenkins-35),
  libjenkins-xstream-java,
  libjetty-java,
  libjffi-java,
@@ -78,9 +78,11 @@ Build-Depends-Indep:
  libmaven-war-plugin-java,
  libmaven2-core-java,
  libmetainf-services-java,
+ libmockito-java,
  libowasp-java-html-sanitizer-java,
  libpam4j-java,
  librobust-http-client-java,
+ libsisu-guice-java,
  libservlet2.5-java,
  libsezpoz-java,
  libspring-aop-java,
@@ -89,7 +91,7 @@ Build-Depends-Indep:
  libspring-web-java,
  libstapler-adjunct-codemirror-java,
  libstapler-adjunct-timeline-java,
- libstapler-java,
+ libstapler-java (>= 1.182),
  libtrilead-putty-extension-java,
  libtxw2-java,
  libxpp3-java,
diff --git a/debian/maven.ignoreRules b/debian/maven.ignoreRules
index ef68a02..0da7643 100644
--- a/debian/maven.ignoreRules
+++ b/debian/maven.ignoreRules
@@ -69,3 +69,14 @@ org.codehaus.mojo build-helper-maven-plugin * * * *
 org.kohsuke.stapler stapler-jrebel * * * *
 # Ignore core annotation processors - this is a dummy pakcage
 org.jenkins-ci core-annotation-processors * * * *
+# New suff for 1.447.1
+org.codehaus.gmaven gmaven-plugin * * * *
+# FIXME - package powermock and re-enable testing
+org.powermock * * * * *
+# Ignore
+findbugs annotations * * * *
+# This is a single Java file - patching into jenkins for the time being
+org.jenkins-ci version-number * * * *
+# FIXME - ignore sshd module until its packaged
+org.jenkins-ci.modules sshd * * * *
+
diff --git a/debian/maven.properties b/debian/maven.properties
index c8ad018..11f9276 100644
--- a/debian/maven.properties
+++ b/debian/maven.properties
@@ -1,4 +1,4 @@
 # Include here properties to pass to Maven during the build.
 # For example:
-#maven.test.skip=true
+maven.test.skip=true
 
diff --git a/debian/maven.rules b/debian/maven.rules
index 8bedea8..c2b63c7 100644
--- a/debian/maven.rules
+++ b/debian/maven.rules
@@ -19,10 +19,9 @@
 antlr antlr jar s/2\..*/2.x/ * *
 commons-collections commons-collections jar s/3\..*/3.x/ * *
 commons-httpclient commons-httpclient jar s/3\..*/3.x/ * *
-junit junit jar s/3\..*/3.x/ * *
-junit junit jar s/4\..*/4.x/ * *
+junit s/junit-dep/junit/ * s/.*/4.x/ * *
 # Map onto exact version during build process
-org.jenkins-ci.main * * s/1\..*/1.424.6/ * *
+org.jenkins-ci.main * * s/1\..*/1.447.1/ * *
 # Handle plugin package
 org.kohsuke access-modifier-annotation jar s/.*/1.0/ * *
 org.kohsuke access-modifier-checker *  s/.*/1.0/ * *
@@ -62,3 +61,6 @@ s/org.jvnet/org.codehaus.mojo/ s/animal-sniffer-annotation/animal-sniffer-annota
 javax.servlet servlet-api * s/.*/2.5/ * *
 # Updates for 1.424.6
 s/org.kohsuke/owasp-java-html-sanitizer/ s/owasp-html-sanitizer/owasp-java-html-sanitizer/ * s/.*/debian/ * *
+# Updates for 1.447.1
+s/org.jvnet.hudson/org.jenkins-ci/ commons-jexl * s/.*/debian/ * *
+s/org.jvnet.hudson/org.jenkins-ci/ annotation-indexer * s/.*/debian/ * *
diff --git a/debian/patches/build/apt-stapler-processing.patch b/debian/patches/build/apt-stapler-processing.patch
index 0d39fc7..9c9879e 100644
--- a/debian/patches/build/apt-stapler-processing.patch
+++ b/debian/patches/build/apt-stapler-processing.patch
@@ -10,9 +10,9 @@ Forwarded: not-needed
 
 Index: jenkins/core/pom.xml
 ===================================================================
---- jenkins.orig/core/pom.xml	2012-02-28 16:48:34.425690522 +0000
-+++ jenkins/core/pom.xml	2012-02-28 16:49:08.125793192 +0000
-@@ -562,6 +562,24 @@
+--- jenkins.orig/core/pom.xml	2012-04-26 14:11:30.000000000 +0100
++++ jenkins/core/pom.xml	2012-04-26 14:15:07.100640255 +0100
+@@ -617,6 +617,24 @@
          </executions>
        </plugin>
        <plugin>
diff --git a/debian/patches/build/build.patch b/debian/patches/build/build.patch
index 859258b..c349924 100644
--- a/debian/patches/build/build.patch
+++ b/debian/patches/build/build.patch
@@ -4,8 +4,8 @@ Forwarded: not-needed
 
 Index: jenkins/pom.xml
 ===================================================================
---- jenkins.orig/pom.xml	2012-02-28 16:48:20.877649207 +0000
-+++ jenkins/pom.xml	2012-02-28 16:48:34.425690522 +0000
+--- jenkins.orig/pom.xml	2012-04-26 14:29:34.000000000 +0100
++++ jenkins/pom.xml	2012-04-26 14:35:33.009556068 +0100
 @@ -48,10 +48,7 @@
  
    <modules>
@@ -17,11 +17,21 @@ Index: jenkins/pom.xml
      <module>cli</module>
    </modules>
  
+@@ -574,9 +571,6 @@
+                 <requireJavaVersion>
+                   <version>1.6.0-18</version>
+                 </requireJavaVersion>
+-                <requireMavenVersion>
+-                  <version>3.0</version>
+-                </requireMavenVersion>
+               </rules>
+             </configuration>
+           </execution>
 Index: jenkins/core/pom.xml
 ===================================================================
---- jenkins.orig/core/pom.xml	2012-02-28 16:48:20.889649243 +0000
-+++ jenkins/core/pom.xml	2012-02-28 16:48:34.425690522 +0000
-@@ -274,6 +274,16 @@
+--- jenkins.orig/core/pom.xml	2012-04-26 14:29:34.000000000 +0100
++++ jenkins/core/pom.xml	2012-04-26 14:35:16.893548264 +0100
+@@ -297,6 +297,16 @@
        <groupId>commons-jelly</groupId>
        <artifactId>commons-jelly-tags-fmt</artifactId>
        <version>1.0</version>
diff --git a/debian/patches/build/disable-plugins.patch b/debian/patches/build/disable-plugins.patch
index 0d7539a..6a7d7c9 100644
--- a/debian/patches/build/disable-plugins.patch
+++ b/debian/patches/build/disable-plugins.patch
@@ -4,9 +4,9 @@ Forwarded: not-needed
 
 Index: jenkins/war/pom.xml
 ===================================================================
---- jenkins.orig/war/pom.xml	2012-01-31 10:35:19.368316735 +0000
-+++ jenkins/war/pom.xml	2012-01-31 10:35:34.256316362 +0000
-@@ -121,6 +121,11 @@
+--- jenkins.orig/war/pom.xml	2012-04-26 14:09:39.411340903 +0100
++++ jenkins/war/pom.xml	2012-04-26 14:15:02.484642064 +0100
+@@ -149,6 +149,11 @@
        <scope>system</scope>
        <systemPath>/usr/local/yjp/lib/yjp.jar</systemPath>
      </dependency-->
@@ -18,7 +18,7 @@ Index: jenkins/war/pom.xml
    </dependencies>
  
    <build>
-@@ -208,30 +213,6 @@
+@@ -236,48 +241,6 @@
                    <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
                    <destFileName>winstone.jar</destFileName>
                  </artifactItem>
@@ -31,19 +31,37 @@ Index: jenkins/war/pom.xml
 -                <artifactItem>
 -                  <groupId>org.jenkins-ci.plugins</groupId>
 -                  <artifactId>ssh-slaves</artifactId>
--                  <version>0.17</version>
+-                  <version>0.21</version>
 -                  <type>hpi</type>
 -                </artifactItem>
 -                <artifactItem>
 -                  <groupId>org.jenkins-ci.plugins</groupId>
 -                  <artifactId>subversion</artifactId>
--                  <version>1.28</version>
+-                  <version>1.34</version>
 -                  <type>hpi</type>
 -                </artifactItem>
 -                <artifactItem>
--                  <groupId>org.jvnet.hudson.plugins</groupId>
+-                  <groupId>org.jenkins-ci.plugins</groupId>
 -                  <artifactId>cvs</artifactId>
--                  <version>1.2</version>
+-                  <version>1.6</version>
+-                  <type>hpi</type>
+-                </artifactItem>
+-                <artifactItem>
+-                  <groupId>org.jenkins-ci.plugins</groupId>
+-                  <artifactId>ant</artifactId>
+-                  <version>1.1</version>
+-                  <type>hpi</type>
+-                </artifactItem>
+-                <artifactItem>
+-                  <groupId>org.jenkins-ci.plugins</groupId>
+-                  <artifactId>javadoc</artifactId>
+-                  <version>1.0</version>
+-                  <type>hpi</type>
+-                </artifactItem>
+-                <artifactItem>
+-                  <groupId>org.jenkins-ci.plugins</groupId>
+-                  <artifactId>translation</artifactId>
+-                  <version>1.8</version>
 -                  <type>hpi</type>
 -                </artifactItem>
                </artifactItems>
diff --git a/debian/patches/build/jenkins-version-number.patch b/debian/patches/build/jenkins-version-number.patch
new file mode 100644
index 0000000..70a8fb9
--- /dev/null
+++ b/debian/patches/build/jenkins-version-number.patch
@@ -0,0 +1,501 @@
+Description: This is provided by upstream as a separate package.
+ As it is actually just a single Java file and has limited re-use
+ outside of Jenkins providing as a patch instead.
+ .
+ Might package this later if a) it changes alot or b) something else
+ needs it outside of Jenkins core.
+Author: James Page <james.page at ubuntu.com>
+Origin: https://github.com/jenkinsci/lib-version-number
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/util/VersionNumber.java
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ jenkins/core/src/main/java/hudson/util/VersionNumber.java	2012-04-26 15:18:40.597958728 +0100
+@@ -0,0 +1,486 @@
++package hudson.util;
++
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements.  See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership.  The ASF licenses this file
++ * to you 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.
++ */
++
++import java.math.BigInteger;
++import java.util.ArrayList;
++import java.util.Arrays;
++import java.util.Comparator;
++import java.util.Iterator;
++import java.util.List;
++import java.util.ListIterator;
++import java.util.Locale;
++import java.util.Properties;
++import java.util.Stack;
++
++/**
++ * Immutable representation of a version number based on the Mercury version numbering scheme.
++ *
++ * {@link VersionNumber}s are {@link Comparable}.
++ *
++ * <h2>Special tokens</h2>
++ * <p>
++ * We allow a component to be not just a number, but also "ea", "ea1", "ea2".
++ * "ea" is treated as "ea0", and eaN < M for any M > 0.
++ *
++ * <p>
++ * '*' is also allowed as a component, and '*' > M for any M > 0.
++ *
++ * <p>
++ * 'SNAPSHOT' is also allowed as a component, and "N.SNAPSHOT" is interpreted as "N-1.*"
++ *
++ * <pre>
++ * 2.0.* > 2.0.1 > 2.0.1-SNAPSHOT > 2.0.0.99 > 2.0.0 > 2.0.ea > 2.0
++ * </pre>
++ *
++ * This class is re-implemented in 1.415. The class was originally introduced in 1.139
++ *
++ * @since 1.139
++ * @author Stephen Connolly (stephenc at apache.org)
++ * @author Kenney Westerhof (kenney at apache.org)
++ * @author Hervé Boutemy (hboutemy at apache.org)
++ */
++public class VersionNumber implements Comparable<VersionNumber> {
++    private String value;
++
++    private String canonical;
++
++    private ListItem items;
++
++    private interface Item {
++        public static final int INTEGER_ITEM = 0;
++
++        public static final int STRING_ITEM = 1;
++
++        public static final int LIST_ITEM = 2;
++
++        public static final int WILDCARD_ITEM = 3;
++
++        public int compareTo(Item item);
++
++        public int getType();
++
++        public boolean isNull();
++    }
++
++    /**
++     * Represents a wild-card item in the version item list.
++     */
++    private static class WildCardItem implements Item {
++
++        public int compareTo(Item item) {
++            if (item==null) // 1.* ( > 1.99) > 1
++                return 1;
++            switch (item.getType()) {
++                case INTEGER_ITEM:
++                case LIST_ITEM:
++                case STRING_ITEM:
++                    return 1;
++                case WILDCARD_ITEM:
++                    return 0;
++                default:
++                    return 1;
++            }
++        }
++
++        public int getType() {
++            return WILDCARD_ITEM;
++        }
++
++        public boolean isNull() {
++            return false;
++        }
++
++        @Override
++        public String toString() {
++            return "*";
++        }
++    }
++
++    /**
++     * Represents a numeric item in the version item list.
++     */
++    private static class IntegerItem
++            implements Item {
++        private static final BigInteger BigInteger_ZERO = new BigInteger("0");
++
++        private final BigInteger value;
++
++        public static final IntegerItem ZERO = new IntegerItem();
++
++        private IntegerItem() {
++            this.value = BigInteger_ZERO;
++        }
++
++        public IntegerItem(String str) {
++            this.value = new BigInteger(str);
++        }
++
++        public int getType() {
++            return INTEGER_ITEM;
++        }
++
++        public boolean isNull() {
++            return BigInteger_ZERO.equals(value);
++        }
++
++        public int compareTo(Item item) {
++            if (item == null) {
++                return BigInteger_ZERO.equals(value) ? 0 : 1; // 1.0 == 1, 1.1 > 1
++            }
++
++            switch (item.getType()) {
++                case INTEGER_ITEM:
++                    return value.compareTo(((IntegerItem) item).value);
++
++                case STRING_ITEM:
++                    return 1; // 1.1 > 1-sp
++
++                case LIST_ITEM:
++                    return 1; // 1.1 > 1-1
++
++                case WILDCARD_ITEM:
++                    return 0;
++
++                default:
++                    throw new RuntimeException("invalid item: " + item.getClass());
++            }
++        }
++
++        public String toString() {
++            return value.toString();
++        }
++    }
++
++    /**
++     * Represents a string in the version item list, usually a qualifier.
++     */
++    private static class StringItem implements Item {
++        private final static String[] QUALIFIERS = {"snapshot", "alpha", "beta", "milestone", "rc", "", "sp"};
++
++        private final static List<String> _QUALIFIERS = Arrays.asList(QUALIFIERS);
++
++        private final static Properties ALIASES = new Properties();
++
++        static {
++            ALIASES.put("ga", "");
++            ALIASES.put("final", "");
++            ALIASES.put("cr", "rc");
++            ALIASES.put("ea", "rc");
++        }
++
++        /**
++         * A comparable for the empty-string qualifier. This one is used to determine if a given qualifier makes the
++         * version older than one without a qualifier, or more recent.
++         */
++        private static String RELEASE_VERSION_INDEX = String.valueOf(_QUALIFIERS.indexOf(""));
++
++        private String value;
++
++        public StringItem(String value, boolean followedByDigit) {
++            if (followedByDigit && value.length() == 1) {
++                // a1 = alpha-1, b1 = beta-1, m1 = milestone-1
++                switch (value.charAt(0)) {
++                    case 'a':
++                        value = "alpha";
++                        break;
++                    case 'b':
++                        value = "beta";
++                        break;
++                    case 'm':
++                        value = "milestone";
++                        break;
++                }
++            }
++            this.value = ALIASES.getProperty(value, value);
++        }
++
++        public int getType() {
++            return STRING_ITEM;
++        }
++
++        public boolean isNull() {
++            return (comparableQualifier(value).compareTo(RELEASE_VERSION_INDEX) == 0);
++        }
++
++        /**
++         * Returns a comparable for a qualifier.
++         * <p/>
++         * This method both takes into account the ordering of known qualifiers as well as lexical ordering for unknown
++         * qualifiers.
++         * <p/>
++         * just returning an Integer with the index here is faster, but requires a lot of if/then/else to check for -1
++         * or QUALIFIERS.size and then resort to lexical ordering. Most comparisons are decided by the first character,
++         * so this is still fast. If more characters are needed then it requires a lexical sort anyway.
++         *
++         * @param qualifier
++         * @return
++         */
++        public static String comparableQualifier(String qualifier) {
++            int i = _QUALIFIERS.indexOf(qualifier);
++
++            return i == -1 ? _QUALIFIERS.size() + "-" + qualifier : String.valueOf(i);
++        }
++
++        public int compareTo(Item item) {
++            if (item == null) {
++                // 1-rc < 1, 1-ga > 1
++                return comparableQualifier(value).compareTo(RELEASE_VERSION_INDEX);
++            }
++            switch (item.getType()) {
++                case INTEGER_ITEM:
++                    return -1; // 1.any < 1.1 ?
++
++                case STRING_ITEM:
++                    return comparableQualifier(value).compareTo(comparableQualifier(((StringItem) item).value));
++
++                case LIST_ITEM:
++                    return -1; // 1.any < 1-1
++
++                case WILDCARD_ITEM:
++                    return -1;
++
++                default:
++                    throw new RuntimeException("invalid item: " + item.getClass());
++            }
++        }
++
++        public String toString() {
++            return value;
++        }
++    }
++
++    /**
++     * Represents a version list item. This class is used both for the global item list and for sub-lists (which start
++     * with '-(number)' in the version specification).
++     */
++    private static class ListItem extends ArrayList<Item> implements Item {
++        public int getType() {
++            return LIST_ITEM;
++        }
++
++        public boolean isNull() {
++            return (size() == 0);
++        }
++
++        void normalize() {
++            for (ListIterator iterator = listIterator(size()); iterator.hasPrevious(); ) {
++                Item item = (Item) iterator.previous();
++                if (item.isNull()) {
++                    iterator.remove(); // remove null trailing items: 0, "", empty list
++                } else {
++                    break;
++                }
++            }
++        }
++
++        public int compareTo(Item item) {
++            if (item == null) {
++                if (size() == 0) {
++                    return 0; // 1-0 = 1- (normalize) = 1
++                }
++                Item first = (Item) get(0);
++                return first.compareTo(null);
++            }
++
++            switch (item.getType()) {
++                case INTEGER_ITEM:
++                    return -1; // 1-1 < 1.0.x
++
++                case STRING_ITEM:
++                    return 1; // 1-1 > 1-sp
++
++                case LIST_ITEM:
++                    Iterator left = iterator();
++                    Iterator right = ((ListItem) item).iterator();
++
++                    while (left.hasNext() || right.hasNext()) {
++                        Item l = left.hasNext() ? (Item) left.next() : null;
++                        Item r = right.hasNext() ? (Item) right.next() : null;
++
++                        // if this is shorter, then invert the compare and mul with -1
++                        int result = l == null ? -1 * r.compareTo(l) : l.compareTo(r);
++
++                        if (result != 0) {
++                            return result;
++                        }
++                    }
++
++                    return 0;
++
++                case WILDCARD_ITEM:
++                    return -1;
++
++                default:
++                    throw new RuntimeException("invalid item: " + item.getClass());
++            }
++        }
++
++        public String toString() {
++            StringBuilder buffer = new StringBuilder("(");
++            for (Iterator<Item> iter = iterator(); iter.hasNext(); ) {
++                buffer.append(iter.next());
++                if (iter.hasNext()) {
++                    buffer.append(',');
++                }
++            }
++            buffer.append(')');
++            return buffer.toString();
++        }
++    }
++
++    public VersionNumber(String version) {
++        parseVersion(version);
++    }
++
++    private void parseVersion(String version) {
++        this.value = version;
++
++        items = new ListItem();
++
++        version = version.toLowerCase(Locale.ENGLISH);
++
++        ListItem list = items;
++
++        Stack<Item> stack = new Stack<Item>();
++        stack.push(list);
++
++        boolean isDigit = false;
++
++        int startIndex = 0;
++
++        for (int i = 0; i < version.length(); i++) {
++            char c = version.charAt(i);
++
++            if (c == '.') {
++                if (i == startIndex) {
++                    list.add(IntegerItem.ZERO);
++                } else {
++                    list.add(parseItem(isDigit, version.substring(startIndex, i)));
++                }
++                startIndex = i + 1;
++            } else if (c == '-') {
++                if (i == startIndex) {
++                    list.add(IntegerItem.ZERO);
++                } else {
++                    list.add(parseItem(isDigit, version.substring(startIndex, i)));
++                }
++                startIndex = i + 1;
++
++                if (isDigit) {
++                    list.normalize(); // 1.0-* = 1-*
++
++                    if ((i + 1 < version.length()) && Character.isDigit(version.charAt(i + 1))) {
++                        // new ListItem only if previous were digits and new char is a digit,
++                        // ie need to differentiate only 1.1 from 1-1
++                        list.add(list = new ListItem());
++
++                        stack.push(list);
++                    }
++                }
++            } else if (c == '*') {
++                list.add(new WildCardItem());
++                startIndex = i + 1;
++            } else if (Character.isDigit(c)) {
++                if (!isDigit && i > startIndex) {
++                    list.add(new StringItem(version.substring(startIndex, i), true));
++                    startIndex = i;
++                }
++
++                isDigit = true;
++            } else if (Character.isWhitespace(c)) {
++                if (i > startIndex) {
++                    if (isDigit) {
++                        list.add(parseItem(true, version.substring(startIndex, i)));
++                    } else {
++                        list.add(new StringItem(version.substring(startIndex, i), true));
++                    }
++                    startIndex = i;
++                }
++
++                isDigit = false;
++            } else {
++                if (isDigit && i > startIndex) {
++                    list.add(parseItem(true, version.substring(startIndex, i)));
++                    startIndex = i;
++                }
++
++                isDigit = false;
++            }
++        }
++
++        if (version.length() > startIndex) {
++            list.add(parseItem(isDigit, version.substring(startIndex)));
++        }
++
++        while (!stack.isEmpty()) {
++            list = (ListItem) stack.pop();
++            list.normalize();
++        }
++
++        canonical = items.toString();
++    }
++
++    private static Item parseItem(boolean isDigit, String buf) {
++        return isDigit ? (Item) new IntegerItem(buf) : (Item) new StringItem(buf, false);
++    }
++
++    public int compareTo(VersionNumber o) {
++        return items.compareTo(o.items);
++    }
++
++    public String toString() {
++        return value;
++    }
++
++    public boolean equals(Object o) {
++        return (o instanceof VersionNumber) && canonical.equals(((VersionNumber) o).canonical);
++    }
++
++    public int hashCode() {
++        return canonical.hashCode();
++    }
++
++    public boolean isOlderThan(VersionNumber rhs) {
++        return compareTo(rhs) < 0;
++    }
++
++    public boolean isNewerThan(VersionNumber rhs) {
++        return compareTo(rhs) > 0;
++    }
++
++    public int digit(int idx) {
++        Iterator i = items.iterator();
++        Item item = (Item) i.next();
++        while (idx > 0 && i.hasNext()) {
++            if (item instanceof IntegerItem) {
++                idx--;
++            }
++            i.next();
++        }
++        return ((IntegerItem) item).value.intValue();
++    }
++
++    public static final Comparator<VersionNumber> DESCENDING = new Comparator<VersionNumber>() {
++        public int compare(VersionNumber o1, VersionNumber o2) {
++            return o2.compareTo(o1);
++        }
++    };
++}
diff --git a/debian/patches/build/openjdk6.patch b/debian/patches/build/openjdk6.patch
index 079024a..fbb0c45 100644
--- a/debian/patches/build/openjdk6.patch
+++ b/debian/patches/build/openjdk6.patch
@@ -6,9 +6,9 @@ Forwarded: https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/716959
 
 Index: jenkins/core/src/main/java/hudson/model/AbstractBuild.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/model/AbstractBuild.java	2012-02-28 16:46:08.813245244 +0000
-+++ jenkins/core/src/main/java/hudson/model/AbstractBuild.java	2012-02-28 16:48:39.265705276 +0000
-@@ -1196,4 +1196,13 @@
+--- jenkins.orig/core/src/main/java/hudson/model/AbstractBuild.java	2012-05-02 14:12:34.000000000 +0100
++++ jenkins/core/src/main/java/hudson/model/AbstractBuild.java	2012-05-02 14:16:24.006955598 +0100
+@@ -1243,6 +1243,15 @@
      }
  
      private static final Logger LOGGER = Logger.getLogger(AbstractBuild.class.getName());
@@ -22,11 +22,13 @@ Index: jenkins/core/src/main/java/hudson/model/AbstractBuild.java
 +
 +
  }
+ 
+ 
 Index: jenkins/core/src/main/java/hudson/DescriptorExtensionList.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/DescriptorExtensionList.java	2012-02-10 15:39:22.665867336 +0000
-+++ jenkins/core/src/main/java/hudson/DescriptorExtensionList.java	2012-02-28 16:48:39.265705276 +0000
-@@ -79,8 +79,9 @@
+--- jenkins.orig/core/src/main/java/hudson/DescriptorExtensionList.java	2012-05-02 14:12:34.000000000 +0100
++++ jenkins/core/src/main/java/hudson/DescriptorExtensionList.java	2012-05-02 14:16:24.006955598 +0100
+@@ -81,8 +81,9 @@
       * @deprecated as of 1.416
       *      Use {@link #create(Jenkins, Class)}
       */
@@ -38,3 +40,15 @@ Index: jenkins/core/src/main/java/hudson/DescriptorExtensionList.java
          return createDescriptorList((Jenkins)hudson,describableType);
      }
  
+Index: jenkins/core/src/main/java/jenkins/model/GlobalConfiguration.java
+===================================================================
+--- jenkins.orig/core/src/main/java/jenkins/model/GlobalConfiguration.java	2012-05-02 14:12:34.000000000 +0100
++++ jenkins/core/src/main/java/jenkins/model/GlobalConfiguration.java	2012-05-02 14:20:43.095765584 +0100
+@@ -48,6 +48,6 @@
+      * Returns all the registered {@link GlobalConfiguration} descriptors.
+      */
+     public static ExtensionList<GlobalConfiguration> all() {
+-        return Jenkins.getInstance().getDescriptorList(GlobalConfiguration.class);
++        return Jenkins.getInstance().<GlobalConfiguration,GlobalConfiguration>getDescriptorList(GlobalConfiguration.class);
+     }
+ }
diff --git a/debian/patches/build/use-stock-jmdns.patch b/debian/patches/build/use-stock-jmdns.patch
new file mode 100644
index 0000000..77bdf5c
--- /dev/null
+++ b/debian/patches/build/use-stock-jmdns.patch
@@ -0,0 +1,31 @@
+Description: Jenkins upstream ships with a forked version of
+ JmDNS which has a patched in abort method with shuts down
+ uncleanly without blocking.
+ .
+ Unit this feature ships in JmDNS upstream we will live with a
+ blocking shutdown in Debian and Ubuntu.
+Author: James Page <james.page at ubuntu.com>
+Forwarded: not-needed
+
+Index: jenkins/core/src/main/java/hudson/DNSMultiCast.java
+===================================================================
+--- jenkins.orig/core/src/main/java/hudson/DNSMultiCast.java	2012-05-02 14:34:03.000000000 +0100
++++ jenkins/core/src/main/java/hudson/DNSMultiCast.java	2012-05-02 14:37:53.066974670 +0100
+@@ -52,12 +52,12 @@
+ 
+     public void close() {
+         if (jmdns!=null) {
+-//            try {
+-                jmdns.abort();
++            try {
++                jmdns.close();
+                 jmdns = null;
+-//            } catch (final IOException e) {
+-//                LOGGER.log(Level.WARNING,"Failed to close down JmDNS instance!",e);
+-//            }
++            } catch (final IOException e) {
++                LOGGER.log(Level.WARNING,"Failed to close down JmDNS instance!",e);
++            }
+         }
+     }
+ 
diff --git a/debian/patches/dependency-upgrades/animal-sniffer-upgrade.patch b/debian/patches/dependency-upgrades/animal-sniffer-upgrade.patch
index fc98c21..248261d 100644
--- a/debian/patches/dependency-upgrades/animal-sniffer-upgrade.patch
+++ b/debian/patches/dependency-upgrades/animal-sniffer-upgrade.patch
@@ -5,9 +5,9 @@ Forwarded: https://github.com/jenkinsci/jenkins/commit/dd8cdda6eeb4a29d991a61d58
 
 Index: jenkins/core/src/main/java/hudson/Functions.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/Functions.java	2012-02-10 15:39:22.669867336 +0000
-+++ jenkins/core/src/main/java/hudson/Functions.java	2012-02-28 16:49:18.501824775 +0000
-@@ -63,7 +63,7 @@
+--- jenkins.orig/core/src/main/java/hudson/Functions.java	2012-04-26 14:09:39.191341016 +0100
++++ jenkins/core/src/main/java/hudson/Functions.java	2012-04-26 14:15:37.236628479 +0100
+@@ -65,7 +65,7 @@
  import org.apache.commons.jelly.XMLOutput;
  import org.apache.commons.jexl.parser.ASTSizeFunction;
  import org.apache.commons.jexl.util.Introspector;
@@ -18,8 +18,8 @@ Index: jenkins/core/src/main/java/hudson/Functions.java
  import org.kohsuke.stapler.Stapler;
 Index: jenkins/core/src/main/java/hudson/Util.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/Util.java	2012-02-10 15:39:22.673867336 +0000
-+++ jenkins/core/src/main/java/hudson/Util.java	2012-02-28 16:49:18.505824788 +0000
+--- jenkins.orig/core/src/main/java/hudson/Util.java	2012-02-28 16:49:30.713861930 +0000
++++ jenkins/core/src/main/java/hudson/Util.java	2012-04-26 14:15:37.236628479 +0100
 @@ -42,7 +42,7 @@
  import org.jruby.ext.posix.FileStat;
  import org.jruby.ext.posix.POSIX;
@@ -31,8 +31,8 @@ Index: jenkins/core/src/main/java/hudson/Util.java
  import javax.crypto.spec.SecretKeySpec;
 Index: jenkins/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java	2012-02-10 15:39:22.677867336 +0000
-+++ jenkins/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java	2012-02-28 16:49:18.505824788 +0000
+--- jenkins.orig/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java	2012-02-28 16:49:30.757862063 +0000
++++ jenkins/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java	2012-04-26 14:15:37.236628479 +0100
 @@ -26,7 +26,7 @@
  import hudson.Extension;
  import jenkins.model.Jenkins;
@@ -44,8 +44,8 @@ Index: jenkins/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.ja
  
 Index: jenkins/core/src/main/java/hudson/model/ExternalRun.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/model/ExternalRun.java	2012-02-10 15:39:22.693867337 +0000
-+++ jenkins/core/src/main/java/hudson/model/ExternalRun.java	2012-02-28 16:49:18.505824788 +0000
+--- jenkins.orig/core/src/main/java/hudson/model/ExternalRun.java	2012-04-26 14:09:39.203341010 +0100
++++ jenkins/core/src/main/java/hudson/model/ExternalRun.java	2012-04-26 14:15:37.236628479 +0100
 @@ -26,7 +26,7 @@
  import hudson.Proc;
  import hudson.util.DecodingStream;
@@ -57,8 +57,8 @@ Index: jenkins/core/src/main/java/hudson/model/ExternalRun.java
  import javax.xml.stream.XMLStreamException;
 Index: jenkins/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java	2012-02-10 15:39:22.709867337 +0000
-+++ jenkins/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java	2012-02-28 16:49:18.505824788 +0000
+--- jenkins.orig/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java	2012-02-28 16:49:30.737862003 +0000
++++ jenkins/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java	2012-04-26 14:15:37.240628476 +0100
 @@ -29,7 +29,7 @@
  import hudson.Util;
  import hudson.slaves.OfflineCause;
@@ -70,8 +70,8 @@ Index: jenkins/core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescripto
  import java.io.IOException;
 Index: jenkins/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java	2012-02-10 15:39:22.709867337 +0000
-+++ jenkins/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java	2012-02-28 16:49:18.505824788 +0000
+--- jenkins.orig/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java	2012-02-28 16:49:30.745862027 +0000
++++ jenkins/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java	2012-04-26 14:15:37.240628476 +0100
 @@ -31,7 +31,7 @@
  import jenkins.model.Jenkins;
  import hudson.node_monitors.DiskSpaceMonitorDescriptor.DiskSpace;
@@ -83,8 +83,8 @@ Index: jenkins/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.jav
  import java.io.File;
 Index: jenkins/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java	2012-02-10 15:39:22.713867337 +0000
-+++ jenkins/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java	2012-02-28 16:49:18.509824800 +0000
+--- jenkins.orig/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java	2012-04-26 14:09:39.211341006 +0100
++++ jenkins/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java	2012-04-26 14:15:37.240628476 +0100
 @@ -16,7 +16,7 @@
  import org.acegisecurity.userdetails.UserDetails;
  import org.acegisecurity.userdetails.UserDetailsService;
@@ -96,8 +96,8 @@ Index: jenkins/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityR
  import org.springframework.web.context.WebApplicationContext;
 Index: jenkins/core/src/main/java/hudson/tools/ZipExtractionInstaller.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/tools/ZipExtractionInstaller.java	2012-02-10 15:39:22.733867337 +0000
-+++ jenkins/core/src/main/java/hudson/tools/ZipExtractionInstaller.java	2012-02-28 16:49:18.509824800 +0000
+--- jenkins.orig/core/src/main/java/hudson/tools/ZipExtractionInstaller.java	2012-02-28 16:49:30.769862100 +0000
++++ jenkins/core/src/main/java/hudson/tools/ZipExtractionInstaller.java	2012-04-26 14:15:37.240628476 +0100
 @@ -45,7 +45,7 @@
  import java.net.URLConnection;
  import org.kohsuke.stapler.DataBoundConstructor;
diff --git a/debian/patches/dependency-upgrades/asm3-upgrade.patch b/debian/patches/dependency-upgrades/asm3-upgrade.patch
index 8f5a49c..9c70f9c 100644
--- a/debian/patches/dependency-upgrades/asm3-upgrade.patch
+++ b/debian/patches/dependency-upgrades/asm3-upgrade.patch
@@ -6,8 +6,8 @@ Forwarded: no
 
 Index: jenkins/core/src/main/java/hudson/util/SubClassGenerator.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/util/SubClassGenerator.java	2012-02-10 15:39:22.741867338 +0000
-+++ jenkins/core/src/main/java/hudson/util/SubClassGenerator.java	2012-02-28 16:49:17.545821866 +0000
+--- jenkins.orig/core/src/main/java/hudson/util/SubClassGenerator.java	2012-02-28 16:49:30.829862282 +0000
++++ jenkins/core/src/main/java/hudson/util/SubClassGenerator.java	2012-04-26 14:15:34.236629652 +0100
 @@ -44,7 +44,7 @@
      }
  
diff --git a/debian/patches/dependency-upgrades/groovy-upgrade.patch b/debian/patches/dependency-upgrades/groovy-upgrade.patch
index db7ad57..1cc47f0 100644
--- a/debian/patches/dependency-upgrades/groovy-upgrade.patch
+++ b/debian/patches/dependency-upgrades/groovy-upgrade.patch
@@ -5,10 +5,10 @@ Forwarded: not-needed
 
 Index: jenkins/core/pom.xml
 ===================================================================
---- jenkins.orig/core/pom.xml	2012-02-28 16:49:10.609800755 +0000
-+++ jenkins/core/pom.xml	2012-02-28 16:49:15.769816461 +0000
-@@ -365,6 +365,16 @@
-       <version>1.6.0</version>
+--- jenkins.orig/core/pom.xml	2012-04-26 14:15:16.100636735 +0100
++++ jenkins/core/pom.xml	2012-04-26 14:15:28.072632057 +0100
+@@ -399,6 +399,16 @@
+       <version>1.6</version>
      </dependency>
      <dependency>
 +      <groupId>jline</groupId>
diff --git a/debian/patches/dependency-upgrades/jnr-posix-upgrade.patch b/debian/patches/dependency-upgrades/jnr-posix-upgrade.patch
index 07ae616..b72c685 100644
--- a/debian/patches/dependency-upgrades/jnr-posix-upgrade.patch
+++ b/debian/patches/dependency-upgrades/jnr-posix-upgrade.patch
@@ -5,8 +5,8 @@ Forwarded: not-needed
 
 Index: jenkins/core/src/main/java/hudson/os/PosixAPI.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/os/PosixAPI.java	2012-02-10 15:39:22.709867337 +0000
-+++ jenkins/core/src/main/java/hudson/os/PosixAPI.java	2012-02-28 16:49:16.617819042 +0000
+--- jenkins.orig/core/src/main/java/hudson/os/PosixAPI.java	2012-02-28 16:49:30.869862404 +0000
++++ jenkins/core/src/main/java/hudson/os/PosixAPI.java	2012-04-26 14:15:30.844630973 +0100
 @@ -1,10 +1,9 @@
  package hudson.os;
  
@@ -44,8 +44,8 @@ Index: jenkins/core/src/main/java/hudson/os/PosixAPI.java
          public File getCurrentWorkingDirectory() {
 Index: jenkins/core/src/main/java/hudson/os/PosixException.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/os/PosixException.java	2012-02-10 15:39:22.709867337 +0000
-+++ jenkins/core/src/main/java/hudson/os/PosixException.java	2012-02-28 16:49:16.617819042 +0000
+--- jenkins.orig/core/src/main/java/hudson/os/PosixException.java	2012-02-28 16:49:30.885862453 +0000
++++ jenkins/core/src/main/java/hudson/os/PosixException.java	2012-04-26 14:15:30.844630973 +0100
 @@ -1,6 +1,6 @@
  package hudson.os;
  
@@ -74,9 +74,9 @@ Index: jenkins/core/src/main/java/hudson/os/PosixException.java
  
 Index: jenkins/core/pom.xml
 ===================================================================
---- jenkins.orig/core/pom.xml	2012-02-28 16:49:15.769816461 +0000
-+++ jenkins/core/pom.xml	2012-02-28 16:49:16.617819042 +0000
-@@ -86,6 +86,11 @@
+--- jenkins.orig/core/pom.xml	2012-04-26 14:15:28.072632057 +0100
++++ jenkins/core/pom.xml	2012-04-26 14:15:30.844630973 +0100
+@@ -105,6 +105,11 @@
        <version>1.0.3</version>
      </dependency>
      <dependency>
diff --git a/debian/patches/native-integration/filter-native-integrations.patch b/debian/patches/native-integration/filter-native-integrations.patch
index 81f5a14..bce7a6c 100644
--- a/debian/patches/native-integration/filter-native-integrations.patch
+++ b/debian/patches/native-integration/filter-native-integrations.patch
@@ -5,9 +5,9 @@ Forwarded: not-needed
 
 Index: jenkins/core/pom.xml
 ===================================================================
---- jenkins.orig/core/pom.xml	2012-02-28 16:49:09.501797382 +0000
-+++ jenkins/core/pom.xml	2012-02-28 16:49:10.609800755 +0000
-@@ -587,6 +587,17 @@
+--- jenkins.orig/core/pom.xml	2012-04-26 14:15:12.796638028 +0100
++++ jenkins/core/pom.xml	2012-04-26 14:15:16.100636735 +0100
+@@ -642,6 +642,17 @@
          <configuration>
            <fork>${staplerFork}</fork><!-- the source code is big enough now that otherwise it fails with OutOfMemoryError -->
            <maxmem>128m</maxmem>
diff --git a/debian/patches/native-integration/purge-embedded-su4j.patch b/debian/patches/native-integration/purge-embedded-su4j.patch
index a291269..5f9ce8b 100644
--- a/debian/patches/native-integration/purge-embedded-su4j.patch
+++ b/debian/patches/native-integration/purge-embedded-su4j.patch
@@ -4,8 +4,8 @@ Forwarded: not-needed
 
 Index: jenkins/core/src/main/java/hudson/os/SU.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/os/SU.java	2012-02-10 15:39:22.709867337 +0000
-+++ jenkins/core/src/main/java/hudson/os/SU.java	2012-02-28 16:49:11.729804164 +0000
+--- jenkins.orig/core/src/main/java/hudson/os/SU.java	2012-02-28 16:49:31.061862988 +0000
++++ jenkins/core/src/main/java/hudson/os/SU.java	2012-04-26 14:15:19.288635490 +0100
 @@ -23,7 +23,6 @@
   */
  package hudson.os;
diff --git a/debian/patches/native-integration/purge-windows-support.patch b/debian/patches/native-integration/purge-windows-support.patch
index 00fd79b..8b12e43 100644
--- a/debian/patches/native-integration/purge-windows-support.patch
+++ b/debian/patches/native-integration/purge-windows-support.patch
@@ -6,9 +6,9 @@ Forwarded: not-needed
 
 Index: jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/slaves/SlaveComputer.java	2012-02-10 15:39:22.725867337 +0000
-+++ jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java	2012-02-28 16:49:14.885813770 +0000
-@@ -34,7 +34,6 @@
+--- jenkins.orig/core/src/main/java/hudson/slaves/SlaveComputer.java	2012-04-26 14:09:39.211341006 +0100
++++ jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java	2012-04-26 14:15:25.276633148 +0100
+@@ -35,7 +35,6 @@
  import hudson.util.RingBufferLogHandler;
  import hudson.util.Futures;
  import hudson.FilePath;
@@ -16,7 +16,7 @@ Index: jenkins/core/src/main/java/hudson/slaves/SlaveComputer.java
  import hudson.Util;
  import hudson.AbortException;
  import hudson.remoting.Launcher;
-@@ -350,7 +349,6 @@
+@@ -362,7 +361,6 @@
          channel.pinClassLoader(getClass().getClassLoader());
  
          channel.call(new SlaveInitializer());
diff --git a/debian/patches/native-integration/purge-winp.patch b/debian/patches/native-integration/purge-winp.patch
index cf92673..8ded88b 100644
--- a/debian/patches/native-integration/purge-winp.patch
+++ b/debian/patches/native-integration/purge-winp.patch
@@ -5,8 +5,8 @@ Forwarded: not-needed
 
 Index: jenkins/core/src/main/java/hudson/util/ProcessTree.java
 ===================================================================
---- jenkins.orig/core/src/main/java/hudson/util/ProcessTree.java	2012-02-10 15:39:22.741867338 +0000
-+++ jenkins/core/src/main/java/hudson/util/ProcessTree.java	2012-02-28 16:49:13.945810909 +0000
+--- jenkins.orig/core/src/main/java/hudson/util/ProcessTree.java	2012-04-26 14:09:39.215341004 +0100
++++ jenkins/core/src/main/java/hudson/util/ProcessTree.java	2012-04-26 14:15:22.328634299 +0100
 @@ -37,8 +37,6 @@
  import hudson.util.ProcessTreeRemoting.IOSProcess;
  import hudson.util.ProcessTreeRemoting.IProcessTree;
@@ -108,7 +108,7 @@ Index: jenkins/core/src/main/java/hudson/util/ProcessTree.java
      static abstract class Unix extends Local {
          @Override
          public OSProcess get(Process proc) {
-@@ -1223,4 +1143,4 @@
+@@ -1227,4 +1147,4 @@
       */
      public static boolean enabled = !Boolean.getBoolean(ProcessTreeKiller.class.getName()+".disable")
                                   && !Boolean.getBoolean(ProcessTree.class.getName()+".disable");
diff --git a/debian/patches/native-integration/windows-service-disable.patch b/debian/patches/native-integration/windows-service-disable.patch
index 019ac64..2a25993 100644
--- a/debian/patches/native-integration/windows-service-disable.patch
+++ b/debian/patches/native-integration/windows-service-disable.patch
@@ -4,9 +4,9 @@ Forwarded: not-needed
 
 Index: jenkins/core/pom.xml
 ===================================================================
---- jenkins.orig/core/pom.xml	2012-02-28 16:49:08.125793192 +0000
-+++ jenkins/core/pom.xml	2012-02-28 16:49:09.501797382 +0000
-@@ -644,32 +644,6 @@
+--- jenkins.orig/core/pom.xml	2012-04-26 14:15:07.100640255 +0100
++++ jenkins/core/pom.xml	2012-04-26 14:15:12.796638028 +0100
+@@ -699,32 +699,6 @@
            </execution>
          </executions>
        </plugin>
diff --git a/debian/patches/series b/debian/patches/series
index 47e74e6..82f57f0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,13 +3,16 @@ build/openjdk6.patch
 build/remove-licensing-report.patch
 build/disable-plugins.patch
 build/apt-stapler-processing.patch
+build/jenkins-version-number.patch
+build/remove-findbugs.patch
 native-integration/windows-service-disable.patch
 native-integration/filter-native-integrations.patch
 native-integration/purge-embedded-su4j.patch
 native-integration/purge-winp.patch
 native-integration/purge-windows-support.patch
-dependency-upgrades/groovy-upgrade.patch
+#dependency-upgrades/groovy-upgrade.patch
 dependency-upgrades/jnr-posix-upgrade.patch
 dependency-upgrades/asm3-upgrade.patch
 dependency-upgrades/animal-sniffer-upgrade.patch
+build/use-stock-jmdns.patch
 ubuntu/ubuntu-font.patch
diff --git a/debian/patches/ubuntu/ubuntu-font.patch b/debian/patches/ubuntu/ubuntu-font.patch
index 3bd531a..dfadd42 100644
--- a/debian/patches/ubuntu/ubuntu-font.patch
+++ b/debian/patches/ubuntu/ubuntu-font.patch
@@ -4,8 +4,8 @@ Forwarded: not-needed
 
 Index: jenkins/war/src/main/webapp/css/style.css
 ===================================================================
---- jenkins.orig/war/src/main/webapp/css/style.css	2012-02-10 15:39:23.029867344 +0000
-+++ jenkins/war/src/main/webapp/css/style.css	2012-02-28 16:49:19.749828573 +0000
+--- jenkins.orig/war/src/main/webapp/css/style.css	2012-04-26 14:09:39.411340903 +0100
++++ jenkins/war/src/main/webapp/css/style.css	2012-04-26 14:15:40.692627130 +0100
 @@ -29,7 +29,7 @@
  
  body, table, form, input, td, th, p, textarea, select
@@ -15,7 +15,7 @@ Index: jenkins/war/src/main/webapp/css/style.css
    font-size: 11px;
  }
  
-@@ -373,7 +373,7 @@
+@@ -376,7 +376,7 @@
    padding: 4px 0;
    margin-left: 0;
    border-bottom: 1px solid #090;
diff --git a/debian/rules b/debian/rules
index a05436a..e5f18e8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -57,6 +57,7 @@ clean::
 	[ ! -f dummy.keystore ] || rm dummy.keystore
 	rm -rf debian/*.upstart
 	rm -rf debian/plugin-debian.pom
+	rm -rf core/src/main/java/jenkins/util
 
 get-orig-source:
 	uscan --download-version $(DEB_UPSTREAM_VERSION) --force-download --rename
@@ -70,6 +71,10 @@ before-mvn-build:: dummy.keystore
 	for module in jenkins-core cli pom jenkins-war; do \
 		find debian/maven-repo/org/jenkins-ci/main/$${module} -type l -delete || true ;\
 	done
+	# Hack in java files from groovy source folder - no idea why they are there
+	# might be maven3 related.
+	mkdir -p core/src/main/java/jenkins/util
+	cp core/src/main/groovy/jenkins/util/ServerTcpPort.java core/src/main/java/jenkins/util
 
 dummy.keystore:
 	keytool -genkeypair -dname "cn=Jenkins, ou=Jenkins Project, o=Debian, c=US" \

-- 
jenkins packaging



More information about the pkg-java-commits mailing list